Commit Graph
437 Commits
Author SHA1 Message Date
Irmen de Jong 82aa67ffda lineclip module added 2026-05-15 17:45:13 +02:00
Irmen de Jong 7c44835772 const folding is always done even when -noopt is used 2026-05-15 12:22:52 +02:00
Irmen de Jong 08c12131d4 tweak the rules for turning pointers into consts 2026-05-10 19:51:06 +02:00
Irmen de Jong 5a3ddf705a threshold 2 on ptr usages before no longer const
version 12.2-BETA
2026-05-10 03:08:54 +02:00
Irmen de Jong fd3d59e159 fix sizeof() on a memory slab reference to return const 2 again
diskio.list_filenames() now checks filenames_buf_size minimum (>20)
2026-05-09 23:43:05 +02:00
Irmen de Jong 6d1dfd2a09 due to internal complexity, only pointers to bytes can be made const 2026-05-09 22:45:44 +02:00
Irmen de Jong 1fe5ff18b1 memory() turned into 2 new ast nodes (slab reservation and slab ref) - still somewhat broken 2026-05-09 11:16:09 +02:00
Irmen de Jong 793b2a703b first step refactoring memory() calls 2026-05-08 19:32:33 +02:00
Irmen de Jong fd93d103f6 fix const value problems related to memory(), and fix a bug in constvalue calculation for ArrayIndexedExpression 2026-05-07 03:07:01 +02:00
Irmen de Jong 28977996e2 non-const pointers now can get optimized to const too. 2026-05-06 19:50:21 +02:00
Irmen de Jong 1ba8dfcc8b actually doing some const-folding for most const pointer usages. 2026-05-06 00:31:47 +02:00
Irmen de Jong cd2d30c2c7 const pointer support added (but lacks proper const-folding still) 2026-05-05 23:21:32 +02:00
Irmen de Jong 6be70af79f fix Inliner crash when using void in multi-value assignment.
update to gradle 9.4.1, tweak agent instructions.
2026-05-03 21:01:57 +02:00
Irmen de Jong 0a1d06b7f2 corrected associative -> commutative operators names, simplified maySwapOperandOrder logic 2026-04-30 01:13:50 +02:00
Irmen de Jong 7383ffae46 fix UnusedCodeRemover wrongly removing var initializers 2026-04-27 00:19:16 +02:00
Irmen de Jong 6f9f31cd8a better const folding for multivalue assignments / vardecl inits in StatementReorderer 2026-04-24 07:18:01 +02:00
Irmen de Jong 7cd70acc01 implemented const folding of lmh() and divmod() 2026-04-24 06:02:16 +02:00
Irmen de Jong a5c078be14 fix inline warning 2026-04-21 06:27:40 +02:00
Irmen de Jong 547d21a42b added more redundant variable initialization removals 2026-04-21 06:13:39 +02:00
Irmen de Jong 8592a3a200 use VarDecl builder instead of constructor 2026-04-19 02:26:50 +02:00
Irmen de Jong 5dcc11d67e try to avoid crash when importing modules twice (via symlink for instance). 2026-04-18 18:06:41 +02:00
Irmen de Jong d3f19bb438 fix lacking checks for IO registers in asm optimizer, caused incorrect instruction removals 2026-04-11 18:01:57 +02:00
Irmen de Jong 59d0f7d49c 2-dimensional array support 2026-04-10 04:22:38 +02:00
Irmen de Jong 5c1aa2307d for loops where the counter variable is unused in the loop body and count is constant -> simple repeat loops 2026-04-05 23:35:58 +02:00
Irmen de Jong 1100ab0d22 performance tweaks 2026-04-03 19:54:37 +02:00
Irmen de Jong 1ed618c474 performance improvements in parser 2026-04-03 04:31:29 +02:00
Irmen de Jong 3da3d63eb4 more inlining support
fix invalid character in LSP
2026-04-01 19:04:03 +02:00
Irmen de Jong 45c05522d5 fix inliner bug 2026-03-31 21:25:34 +02:00
Irmen de Jong db417ab9ce refactoring AstModification 2026-03-31 19:59:56 +02:00
Irmen de Jong c17a3aff5c refactoring AstModification 2026-03-31 15:37:55 +02:00
Irmen de Jong f38c701658 some support for inlining multi-value returns (where there are no function parameters to deal with) 2026-03-31 04:42:34 +02:00
Irmen de Jong 331e2b8f2b improve ast source position tracking 2026-03-29 19:49:42 +02:00
Irmen de Jong 05093e35c8 refactor inliner 2026-03-29 11:00:26 +02:00
Irmen de Jong 5fd11ca036 more consistent allowance of inline keyword 2026-03-29 10:15:51 +02:00
Irmen de Jong 400149d5a3 standardize gradle project configurations across submodules 2026-03-28 10:08:47 +01:00
Irmen de Jong 8d44a1b226 implemented bitmap text drawing for the virtual target (so monogfx.text() now works there) 2026-03-26 22:47:44 +01:00
Irmen de Jong 68226a8fcd Update Kotlin and dependencies to latest versions
- Bump Kotlin to 2.3.20 across all configurations.
- Upgrade `kotlin-result-jvm` to 2.3.1 in all modules.
- Update Gradle wrapper to 9.4.0.
- Add `poweroff_system()` function in virtual target symboldump
2026-03-25 17:51:01 +01:00
Irmen de Jong bc959435ec fix missing const-evaluation for abs() and clamp()
add `poweroff_system()` for virtual target function
clarify CX16 usage and debugging tips
2026-03-20 02:31:17 +01:00
Irmen de Jong ca56cf26c5 more work on making memory() const (virtual target only for now) 2026-03-18 02:20:50 +01:00
Irmen de Jong e56ccdbc3a add signed divmod() support for virtual target 2026-03-16 01:19:02 +01:00
Irmen de Jong 652da4c692 fix some (not all) problems with directly returning multivalue returncalls 2026-03-15 22:33:17 +01:00
Irmen de Jong e61328b6d6 update Java dependency to 17, update results library version 2026-03-14 00:04:11 +01:00
Irmen de Jong b8ef64139a avoid always including profile support routine in resulting asm 2026-03-08 03:16:17 +01:00
Irmen de Jong a326c6f079 adding multivalue vardecls and assignments 2026-03-03 00:06:48 +01:00
Irmen de Jong da6e47d422 fix IR long comparisons (used in for loops for instance) 2026-03-01 01:17:22 +01:00
Irmen de Jong 859a02fb0a adding profiling instrumentation support 2026-02-27 22:41:42 +01:00
Irmen de Jong bdbdf6e5cd add lmh(longvalue) builtin function that returns the low, mid, hi (=bank) bytes of a long
symboldumps now also contain the builtin functions
2026-02-23 21:30:39 +01:00
Irmen de Jong 9736ac19d1 implementing multiple return values for builtin functions 2026-02-22 19:54:21 +01:00
Irmen de Jong 093be9f2dd sys.push(), sys.pop() etc etc are now builtin functions again push() pop() to avoid storing value in temporary variables
this means that all of the syslib.p8 library files no longer contain all those stack related asmsubs
2026-02-21 02:11:34 +01:00
Irmen de Jong 2613d45cd5 swap() is now a statement instead of a builtin function call 2026-02-17 20:56:21 +01:00