aboutsummaryrefslogtreecommitdiffhomepage
path: root/main.c
Commit message (Collapse)AuthorAgeFilesLines
* driver: recognize shared libraries; & backend: misc fixes for PIC isel edgecases lemon2026-02-221-5/+8
|
* project documentation lemon2026-02-211-7/+9
|
* ir: basic inlining pass implementation lemon2026-02-181-2/+4
|
* driver: -iquote, -isystem, etc lemon2026-01-121-12/+34
| | | | With GCC-like search order
* main: use time.h for time(), fexecve optional lemon2026-01-101-2/+20
|
* Add version tracking. Starting at 0.1.0 lemon2026-01-091-0/+11
|
* driver: remove hard limit for infiles lemon2026-01-091-38/+44
|
* driver: when linking, put libraries at the end of command lemon2026-01-011-1/+1
|
* Use a configure script, query system toolchain for default include paths lemon2026-01-011-5/+16
|
* cleantemps() fixes lemon2025-12-241-0/+6
|
* driver: use execvp lemon2025-12-231-7/+6
|
* lower alloca as a separate pass before isel lemon2025-12-231-1/+2
|
* driver: -fsyntax-only lemon2025-12-201-7/+11
|
* driver: -w, update help lemon2025-12-191-2/+7
|
* regalloc+emit: get rid of xsave/xrestore hack lemon2025-12-181-1/+1
| | | | | | | Was used for situation where we needed to spill more than 1 temporary and have to use a register that is already used. Instead of push/pop, we can just allocate and set aside specific stack slots for this purpose. Also, reworked linearscan() interval sets to separate FPR/GPR intervals.
* nicer defaults and facilities for cross-compilation lemon2025-12-171-19/+89
|
* Add -O optimization flag lemon2025-12-131-0/+6
|
* s/amd64/x86_64/ lemon2025-12-121-1/+1
|
* rename arraylength macro -> countof lemon2025-12-111-4/+4
|
* default to C11 lemon2025-12-111-1/+1
|
* -trigraphs option lemon2025-12-111-0/+2
|
* driver: add -Werror lemon2025-12-111-0/+3
|
* driver: update help lemon2025-12-081-14/+32
|
* driver: use fexecve for -run lemon2025-12-081-17/+18
|
* add command-line predefined macros (-D, -U) lemon2025-12-061-2/+5
|
* driver: more commandline option placeholders, .a file support lemon2025-12-041-3/+9
|
* driver: add -run option like tcc lemon2025-11-301-22/+78
| | | | convenient for quick testing
* use bstdout for -E lemon2025-11-261-6/+6
|
* main: fix memory leak lemon2025-11-231-0/+1
|
* debug output to stdout lemon2025-11-191-0/+1
|
* driver: allow passing thru objs when building executable lemon2025-11-161-17/+27
|
* driver: diagnostic for missing path after -o lemon2025-11-151-1/+1
|
* driver: placeholder cmdline option handlers lemon2025-11-121-1/+12
|
* driver: add -I commandline option lemon2025-11-081-6/+15
|
* use libc's stdout/stderr; also eliminate some unnecessary recursion in bfmt lemon2025-10-231-10/+1
|
* io: reject non file files lemon2025-10-201-1/+1
|
* driver: pass thru linker -l args lemon2025-10-201-0/+4
|
* Organize source files into directories lemon2025-10-191-1/+1
|
* #pragma once lemon2025-10-181-2/+4
|
* cmd: "-" to read from stdin lemon2025-10-171-1/+1
|
* add -E preprocessing option lemon2025-10-171-2/+39
|
* implement most of preprocessor lemon2025-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 changes lemon2025-09-171-2/+10
|
* license and readme lemon2025-09-141-0/+3
|
* preliminary pie and pic lemon2025-09-141-1/+13
|
* fixes, delnops lemon2025-09-091-0/+1
|
* regalloc: start implementing linear scan lemon2025-09-081-1/+21
|
* backend: fix mem2reg & regalloc lemon2023-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 mem2reg lemon2023-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 & lexer lemon2023-06-191-4/+3
|