aboutsummaryrefslogtreecommitdiffhomepage
path: root/main.c
Commit message (Collapse)AuthorAgeFilesLines
* add command-line predefined macros (-D, -U)lemon2025-12-061-2/+5
|
* driver: more commandline option placeholders, .a file supportlemon2025-12-041-3/+9
|
* driver: add -run option like tcclemon2025-11-301-22/+78
| | | | convenient for quick testing
* use bstdout for -Elemon2025-11-261-6/+6
|
* main: fix memory leaklemon2025-11-231-0/+1
|
* debug output to stdoutlemon2025-11-191-0/+1
|
* driver: allow passing thru objs when building executablelemon2025-11-161-17/+27
|
* driver: diagnostic for missing path after -olemon2025-11-151-1/+1
|
* driver: placeholder cmdline option handlerslemon2025-11-121-1/+12
|
* driver: add -I commandline optionlemon2025-11-081-6/+15
|
* use libc's stdout/stderr; also eliminate some unnecessary recursion in bfmtlemon2025-10-231-10/+1
|
* io: reject non file fileslemon2025-10-201-1/+1
|
* driver: pass thru linker -l argslemon2025-10-201-0/+4
|
* Organize source files into directorieslemon2025-10-191-1/+1
|
* #pragma oncelemon2025-10-181-2/+4
|
* cmd: "-" to read from stdinlemon2025-10-171-1/+1
|
* add -E preprocessing optionlemon2025-10-171-2/+39
|
* implement most of preprocessorlemon2025-10-131-0/+17
| | | | | | | | - 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
* alloc changeslemon2025-09-171-2/+10
|
* license and readmelemon2025-09-141-0/+3
|
* preliminary pie and piclemon2025-09-141-1/+13
|
* fixes, delnopslemon2025-09-091-0/+1
|
* regalloc: start implementing linear scanlemon2025-09-081-1/+21
|
* backend: fix mem2reg & regalloclemon2023-06-261-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | they were broken, especially for unstructured control flow. most significant fix is to register allocator for temporaries that are used before the first definition in the source order, e.g.: @1: %x = add %y, 1 b @3 @2 %y = ... b @1 it's legal for %x to use %y there (assuming @2 dominates @1) but from the point of view of the register allocator %y is defined and freed and then used again, which broke things. the fix is to introduce phis for this situation: @1: %y.1 = phi @2 %y %x = add %y.1, 1 b @3 @2 %y = ... b @1 then regalloc phi handling code makes it work
* add basic mem2reglemon2023-06-201-0/+1
| | | | | | | promotes uniform stack slots to temporaries currently only for immutable variables, next thing to implement is ssa construction
* frontend: separate compiler & lexerlemon2023-06-191-4/+3
|
* don't try to compile when debugging IRlemon2023-06-191-4/+5
|
* basic cli driverlemon2023-06-181-60/+293
|
* basic ELF outputlemon2023-06-171-5/+9
|
* isel skeletonlemon2023-06-101-0/+1
|
* codegen skeletonlemon2023-06-061-0/+3
|
* command line switch for debug optionslemon2023-06-051-1/+10
|
* better diagnosticslemon2023-06-041-1/+4
|
* check color outputlemon2023-05-281-0/+12
|
* bool fixeslemon2023-05-281-2/+2
|
* hmlemon2023-05-261-2/+36
|
* initial commitlemon2023-05-101-0/+27