2dfe36f8be
more optimizations
2025-12-31 02:39:57 -07:00
d28cdfcc7b
Improve dead code elimination in optimizer
...
- Refactored dead_store_elimination to separate forward and backward passes
- Improved register forwarding to better detect backward jumps
- Fixed handling of JumpAndLink instructions in register tracking
- Updated optimizer snapshots to reflect improved code generation
The forward pass now correctly eliminates writes that are immediately overwritten.
Register forwarding now better handles conditional branches and loops.
Note: Backward pass for dead code elimination disabled for now - it needs
additional work to properly handle return values and call site analysis.
2025-12-31 02:37:26 -07:00
95c17b563c
More optimizer fixes
CI/CD Pipeline / test (pull_request) Successful in 2m2s
CI/CD Pipeline / build (pull_request) Has been skipped
CI/CD Pipeline / release (pull_request) Has been skipped
2025-12-30 23:34:14 -07:00
dbc4c72c3b
Add .snap.new files to gitignore
2025-12-30 23:00:55 -07:00
964ad92077
More compiler optimizations
2025-12-30 23:00:17 -07:00
63f55b66cb
More optimizations
2025-12-30 22:24:47 -07:00
d19a53bbee
More optimizations and snapshot integration tests
2025-12-30 21:20:46 -07:00
f87fdc1b0a
Added another test to ensure all 3 tuple scenerios are covered
2025-12-30 20:09:45 -07:00
72e6981176
Update tests to reflect new changes with stack cleanup in functions that return tuples
2025-12-30 20:05:10 -07:00
d83341d90b
Update tuples to support member access and function calls
2025-12-30 16:33:11 -07:00
a53ea7fd13
removed debug variant macro
2025-12-30 12:49:28 -07:00
c1a8af6aa7
Refactored remaining tests to use check macro
2025-12-30 12:34:47 -07:00
8c8ae23a27
wip -- convert remaining tests to use check
2025-12-30 12:28:53 -07:00
04c205b31d
Fixed compiler bug as a result of the 'check' test variant
2025-12-30 12:05:54 -07:00
c133dc3c80
Refactor tests to use new check variant
2025-12-30 11:58:31 -07:00
9d8a867e5f
Add new macro variant 'check' to ensure there are no errors AND the compiled output matches
2025-12-30 11:53:02 -07:00
e2a45f0d05
Added more tests and updated existing to use snapshot style testing
2025-12-30 11:49:42 -07:00
fc13c465c0
Extract logic into reusable functions for better DRY
2025-12-30 11:21:44 -07:00
1ce3162fc0
Refactor Compiler struct to hold FunctionMetadata struct instead of flattening all that information directly onto the Compiler
2025-12-30 11:15:49 -07:00
3092e97d41
Minor DRY refactor. Added more tuple tests
2025-12-30 02:47:39 -07:00
8029fa82b0
complex tuple expressions supported
2025-12-30 02:38:32 -07:00
6d8a22459c
wip
2025-12-30 02:31:21 -07:00
20f0f4b9a1
working tuple types
2025-12-30 00:58:02 -07:00
5a88befac9
tuple return types just about implemented
2025-12-30 00:32:55 -07:00
e94fc0f5de
Functions returning tuples somewhat working, but they clobber the popped ra
2025-12-29 23:55:00 -07:00
b51800eb77
wip -- tuples compiling. need more work on function invocations
2025-12-29 23:17:18 -07:00
87951ab12f
Support tuple assignment expressions and tuple assignments and declarations with function invocations
2025-12-29 22:33:16 -07:00
00b0d4df26
Create new tuple expression types
2025-12-29 22:17:19 -07:00
8dfdad3f34
Added support for CRLF windows line endings
CI/CD Pipeline / test (pull_request) Successful in 34s
CI/CD Pipeline / build (pull_request) Has been skipped
CI/CD Pipeline / release (pull_request) Has been skipped
2025-12-29 12:29:01 -07:00
f679601818
Fixed const -> let bug
CI/CD Pipeline / test (pull_request) Successful in 33s
CI/CD Pipeline / build (pull_request) Has been skipped
CI/CD Pipeline / release (pull_request) Has been skipped
2025-12-29 02:31:23 -07:00
792bba4875
Removed unused macro imports as they are implicit
CI/CD Pipeline / test (pull_request) Successful in 33s
CI/CD Pipeline / build (pull_request) Has been skipped
CI/CD Pipeline / release (pull_request) Has been skipped
2025-12-24 12:39:21 -07:00
93873dfa93
Accept expressions for the slotIndex in the slot logic syscalls
2025-12-21 15:59:40 -07:00
6b18489f54
Added more optimizations in regards to function invocations and backing
...
up and restoring registers
2025-12-17 21:05:01 -07:00
0b354d4ec0
First pass getting loadReagent support into the compiler with optimizations
2025-12-17 17:49:34 -07:00
477c2b1aef
Fixed bug where temperature literals were not being calculated correctly with negative numbers
2025-12-15 23:13:40 -07:00
b98817c8a0
Fixed tests to show new line label convention for internal labels
2025-12-14 03:23:49 -07:00
6d5c179eac
Fixed stack overflow due to improper handling of leaf functions
2025-12-14 03:16:58 -07:00
b7fbc499b6
WIP fix stack overflow
2025-12-14 02:54:56 -07:00
378c7e18cd
version bump
2025-12-13 00:35:31 -07:00
9de59ee3b1
Fix source maps
2025-12-12 21:48:25 -07:00
20f7cb9a4b
wip
2025-12-12 17:36:57 -07:00
0be2e644e4
WIP optimization code
2025-12-12 17:23:04 -07:00
3fb04aef3b
Emit IL alongside raw IC10 for use in future optimization passes
2025-12-12 15:51:36 -07:00
92f0d22805
hook up compilationResult to FFI boundry
2025-12-11 13:32:46 -07:00
811f4f4959
Keep track of source map throughout the compilation process
2025-12-11 13:03:12 -07:00
236b50c813
Allow syscalls in infix operations
2025-12-11 02:24:01 -07:00
342b1ab107
Fix function invocation stack underflow
2025-12-11 01:03:43 -07:00
0ac010ef8f
Fixed documentation rendering and added ternary expressions
2025-12-10 18:00:20 -07:00
9c260ef2d5
Fixed bug where infix wouldn't rewind when encountering a comma, causing the rest of a syscall parse in an assignment expression to fail
2025-12-10 00:09:16 -07:00
0fde11a2bf
Added support for syscalls with assignment expressions
2025-12-09 23:57:19 -07:00