aboutsummaryrefslogtreecommitdiffhomepage
path: root/common.h
Commit message (Collapse)AuthorAgeFilesLines
* REFACTOR: move sources to src/lemon2026-03-171-465/+0
|
* ccopt.dbg.any -> uintlemon2026-03-041-1/+1
| | | | So it encompasses every bitfield.
* cpp: add __COUNTER__ macrolemon2026-02-231-0/+14
|
* cpp: better diagnosticslemon2026-02-211-0/+3
|
* alloccopy: explicit no-op on zero size.lemon2026-02-181-0/+1
| | | | Allows src/dst to be null for zero size, which memcpy doesn't
* ir: basic inlining pass implementationlemon2026-02-181-0/+2
|
* driver: -iquote, -isystem, etclemon2026-01-121-4/+13
| | | | With GCC-like search order
* backend: start implementing aarch64lemon2025-12-281-4/+4
|
* lower alloca as a separate pass before isellemon2025-12-231-0/+1
|
* optimize lexer a bit morelemon2025-12-201-1/+2
|
* driver: -w, update helplemon2025-12-191-0/+1
|
* nicer defaults and facilities for cross-compilationlemon2025-12-171-2/+6
|
* bitset: better implementation of bsiter() and stufflemon2025-12-161-9/+15
| | | | Also changed the type to size_t for portability
* create distinct interned string typelemon2025-12-151-3/+4
| | | | | | | | | | | | | | Interned strings are used pervasively, so it's a good idea to add a layer of type safety to differentiate them from general cstrs and avoid potential bugs from comparing non-interned and interned strings. Not that that's happened so far that I can remember, but it could. I'm 90% sure it's legal to alias `struct {char c;}` pointers with `char` pointers. This specific typedef gives type safety but with a simple one-way `internstr -> const char *` typecast (with `&istr->c`). Converting the other way around is more intentional: a straight up cast `(internstr)cstr` which sticks out as unchecked and probably wrong, or calling the intern(cstr) function, which is the right way.
* move intern() to mem.clemon2025-12-151-0/+3
| | | | | Being in lex.c was vestigial, since it was being used all over the frontend and backend.
* cpp: support #line directiveslemon2025-12-141-2/+3
|
* Add -O optimization flaglemon2025-12-131-0/+4
|
* s/amd64/x86_64/lemon2025-12-121-1/+1
|
* lex: use pmap for macro lookuplemon2025-12-121-2/+5
| | | | To reduce hashmap code repetition. Also add pmap_del for this purpose
* rename arraylength macro -> countoflemon2025-12-111-1/+1
|
* _Alignof and stufflemon2025-12-111-0/+2
|
* driver: add -Werrorlemon2025-12-111-0/+1
|
* fatal() make noreturnlemon2025-12-111-2/+8
|
* make fatal() _Noreturnlemon2025-12-111-1/+1
|
* misc fixeslemon2025-12-101-1/+1
|
* mem: fix pmap_init and change hashmap load factors to 75%lemon2025-12-091-1/+1
|
* lex: make some hashtables resizablelemon2025-12-091-7/+6
| | | | Was hiting the fixed limits trying to preprocess sqlite3amalgamation
* add command-line predefined macros (-D, -U)lemon2025-12-061-0/+3
|
* preprocessor: add #ifndef...#endif include guard optimizationlemon2025-12-021-2/+2
|
* use bstdout for -Elemon2025-11-261-1/+1
|
* debug output to stdoutlemon2025-11-191-0/+1
|
* factor type stuff into type.hlemon2025-11-161-208/+1
|
* amd64: fix aggregate abi stuff;; ir: fold, peephole optimizing constructorslemon2025-11-051-3/+3
|
* c: make builtin va_list an opaque structlemon2025-10-231-2/+2
|
* use libc's stdout/stderr; also eliminate some unnecessary recursion in bfmtlemon2025-10-231-6/+13
|
* refactor vec_of(T) and misclemon2025-10-201-32/+42
|
* c irgen fixeslemon2025-10-191-1/+0
|
* #pragma oncelemon2025-10-181-2/+7
|
* add -E preprocessing optionlemon2025-10-171-1/+2
|
* wide str and char literalslemon2025-10-161-2/+6
|
* lowsetsetbitlemon2025-10-151-1/+2
|
* c: fix codegen for enum typeslemon2025-10-151-2/+7
|
* implement most of preprocessorlemon2025-10-131-0/+11
| | | | | | | | - concatenation (##) - builtin macros (__FILE__ etc) - fails in some edge cases, and code needs cleanup - add embedded system include files (stddef.h, stdarg.h for now) - can handle stdio.h now
* c: call memset for some runtime zero initializationslemon2025-10-091-0/+8
|
* alloc changeslemon2025-09-171-0/+4
|
* preliminary pie and piclemon2025-09-141-0/+1
|
* regset doesnt need all those macroslemon2025-09-141-5/+2
|
* change freearena for correctnesslemon2025-09-141-4/+4
|
* regalloc improvementslemon2025-09-141-0/+1
|
* fixes, delnopslemon2025-09-091-0/+1
|