Commit Graph

181 Commits

Author SHA1 Message Date
drmortalwombat 0b1d42b7d5 Expand global aliasing analysis 2023-07-29 22:15:00 +02:00
drmortalwombat 02e7f15810 Improve outer loop optimizations 2023-07-28 18:51:29 +02:00
drmortalwombat 893aa7effa Add late inlining step 2023-07-23 17:41:56 +02:00
drmortalwombat 9b2d90ec58 Add autotest for string stream 2023-07-23 11:19:26 +02:00
drmortalwombat 9cdfad7d34 Improve cpp code generation 2023-07-17 07:52:59 +02:00
drmortalwombat ed9aa3503b Added virtual functions 2023-07-08 18:53:06 +02:00
drmortalwombat 7858c2135b Add malloc/free as intrinsic 2023-07-02 12:00:53 +02:00
drmortalwombat e593e2affb Loop optimizations 2023-06-08 20:27:11 +02:00
drmortalwombat 5564b01d11 Fix sample build crash on linux 2023-05-23 11:05:29 +02:00
drmortalwombat e6b46a3acf More aggressive value forwarding with local arrays 2023-05-20 13:49:34 +02:00
drmortalwombat d58e74e19a Bump version number 2023-05-19 22:49:54 +02:00
drmortalwombat f8d69f7945 Add "enter" and "leave" attributes to dbj for local variables 2023-05-17 18:27:09 +02:00
drmortalwombat d4caa6bb71 Optimize right shift of byte values with variable shift distance 2023-05-16 19:07:59 +02:00
drmortalwombat 0639fdc008 Unify instruction dependency check in optimizer 2023-05-06 18:28:59 +02:00
drmortalwombat 7d12fd4c02 Fix same XY optimization 2023-05-04 11:32:12 +02:00
drmortalwombat 6308f22f25 Fix warnings 2023-04-12 19:02:27 +02:00
drmortalwombat e23ab50512 Add local variables to debug file 2023-04-09 19:19:57 +02:00
drmortalwombat 85df217c50 Add warning for const integer truncation 2023-04-09 09:45:13 +02:00
drmortalwombat 97bb7981a3 Improve struct copy alias analysis 2023-04-06 17:14:53 +02:00
drmortalwombat 32ea493c17 Prepare per function optimization config using pragmas 2023-04-02 19:04:10 +02:00
drmortalwombat 2f1172076a Add source level debug information 2023-03-28 21:01:17 +02:00
drmortalwombat c2c0244990 More native code common subexpression elimination 2023-03-24 20:23:10 +01:00
drmortalwombat 0f4f0ed297 Improve compiler speed 2023-03-08 08:37:43 +01:00
drmortalwombat df89082846 Track state of fast call parameters across function calls to avoid duplicate push 2023-03-01 08:49:51 +01:00
drmortalwombat a91112c05c Pointer in loop optimizations 2023-02-19 18:07:25 +01:00
drmortalwombat 23091a0536 Combining consecutive pointer arithmetic 2023-02-12 20:09:02 +01:00
drmortalwombat 71a071fea4 Loop direction inversion for simple counts 2023-02-11 10:36:46 +01:00
drmortalwombat acbd70a84f Fix XY register propagation for incomming fast parameters 2023-02-10 18:10:41 +01:00
drmortalwombat 0fae7abd72 Optimize simple inline assembler code 2023-01-21 22:41:13 +01:00
drmortalwombat 677de2508b Shuffle temp moves to avoid duplicates 2023-01-21 08:42:22 +01:00
drmortalwombat 0b30258f80 Dataflow optimizations 2023-01-17 22:42:02 +01:00
drmortalwombat 02db5b5eb1 Static call graph analysis for function arguments 2023-01-15 18:38:18 +01:00
drmortalwombat 761206d009 Propagation of unsigend attribute accross function arguments 2023-01-13 20:14:16 +01:00
drmortalwombat 9daf4fa621 Some more cross block pointer forwarding 2022-12-18 20:33:52 +01:00
drmortalwombat 0aa9ca0c70 Bump Version number 2022-12-10 16:15:04 +01:00
drmortalwombat 8b631d564e Add autotest for striped arrays 2022-12-03 13:28:03 +01:00
drmortalwombat 02e4d4bd1b Optimize indexing in loops 2022-11-26 14:12:13 +01:00
drmortalwombat c6d0f44364 Fix unsigend int to/from float conversion 2022-11-19 10:58:44 +01:00
drmortalwombat 42b4f46356 Add striped array memory layout 2022-11-16 08:59:02 +01:00
drmortalwombat e52e554fec Add warning for missing return statement 2022-10-16 14:06:27 +02:00
drmortalwombat 4ff762b711 Add warning/error for unassigned variable access 2022-10-16 13:33:20 +02:00
drmortalwombat 4daecdc51a Optimize select statement 2022-10-03 18:56:17 +02:00
drmortalwombat 0c633d114c Added late stage loop optimization for indexed offset addressing 2022-09-29 15:32:00 +02:00
drmortalwombat 121f0476e1 Bump version number 2022-09-24 14:31:09 +02:00
drmortalwombat 259abf4c4b Improve compiler speed 2022-09-20 15:01:47 +02:00
drmortalwombat 49a822afbf Fix load int range estimation 2022-09-17 16:15:35 +02:00
drmortalwombat 65fc43c123 More multi path constant folding 2022-08-14 17:52:58 +02:00
drmortalwombat 0742be3204 Improve dataflow analysis 2022-07-16 14:14:02 +02:00
drmortalwombat bcc59a9afb Add intermediat code select operator 2022-07-02 14:53:00 +02:00
drmortalwombat fdcaf54666 Add unroll pragma for simple loops 2022-06-30 09:33:11 +02:00
drmortalwombat 2eeef2d71c Fix data dependency lost due to instruction reshuffling 2022-06-22 22:09:32 +02:00
drmortalwombat 002c10ad13 Optimize array access and value propagation across simple loops 2022-06-21 20:57:58 +02:00
drmortalwombat ecfb206d1c Improve zero page register allocator 2022-06-19 15:20:53 +02:00
drmortalwombat 5000d521a1 Intermediate code generator cleanup 2022-06-18 20:21:41 +02:00
drmortalwombat fc7bb2c377 Optimize parameter handling in loops 2022-06-18 17:32:14 +02:00
drmortalwombat e7332192c0 Fix over eager elimination of byte to word conversion 2022-06-14 22:29:42 +02:00
drmortalwombat 6e37060c24 More aggressive reverse value range limit forwarding 2022-06-12 13:39:46 +02:00
drmortalwombat a81f810a63 Size optimizations 2022-06-10 15:56:08 +02:00
drmortalwombat 36a5eaae00 Propagate independent instructions across diamond shaped basic blocks 2022-06-04 20:56:28 +02:00
drmortalwombat a86f5b877a Upstream variant constant propagation 2022-05-29 21:02:57 +02:00
drmortalwombat 3351ee81cc Extend static stack allocation to zero page spilling 2022-05-22 13:22:36 +02:00
drmortalwombat 29bd0c8d2d Optimizations for global variables 2022-05-07 14:03:56 +02:00
drmortalwombat f619c5e0ab More verbose debug output 2022-04-25 07:57:31 +02:00
drmortalwombat 4cdc501a34 Bit shift optimizations 2022-04-21 08:26:04 +02:00
drmortalwombat 41a4db4402 Prepare compressed embedded data 2022-04-17 18:41:53 +02:00
drmortalwombat 72d2fc1fac Reverse integer range limit calculation 2022-04-15 11:06:49 +02:00
drmortalwombat 7ed7134b53 Remove superfluous temporary move 2022-04-10 21:54:12 +02:00
drmortalwombat 7bd3622bbd Instructions bypassing small if branches 2022-03-27 22:41:29 +02:00
drmortalwombat d2503aaf1f Constant folding address of global and static variables 2022-03-27 17:18:44 +02:00
drmortalwombat a4fa4cd482 Basic block struct copy propagation 2022-03-14 14:07:09 +01:00
drmortalwombat a65c802485 Address promotion into struct copy inter instructions 2022-03-14 08:35:59 +01:00
drmortalwombat ea09c2aa7b Static stack allocations for complex locals in non recursive calls 2022-03-13 15:46:03 +01:00
drmortalwombat 736298238e Pointer and float loop optimizations 2022-03-12 12:52:43 +01:00
drmortalwombat 6fe9a4f167 Fastcall optimization for 2nd and 3rd level calls 2022-03-10 16:35:35 +01:00
drmortalwombat 6ac606c91b Fix compile order based on dependency graph 2022-02-19 12:58:51 +01:00
drmortalwombat d4352ef043 Add __hwinterrupt function decoration 2022-02-06 10:28:09 +01:00
drmortalwombat 5147ec6bc9 Fix function pointers in struct consts 2022-02-05 16:52:54 +01:00
drmortalwombat 5c8b1c6daf Add __export, __native and __interrupt storage class specifiers 2022-01-26 21:48:19 +01:00
drmortalwombat 0ea87ea322 Reduce speculation of integer value range analyzer 2022-01-25 21:05:00 +01:00
drmortalwombat f25bf80a0f Fix LF line ending on windows, float and loop optimizations 2022-01-25 14:31:36 +01:00
drmortalwombat 9f41a55a18 Fix static declaration in header files 2022-01-23 21:14:30 +01:00
drmortalwombat fad67d18aa Add auto loop unrolling and binary (verbatim) format linking 2022-01-21 21:52:16 +01:00
drmortalwombat 76322c005d Fix errors introduced with strength reduction 2022-01-20 13:39:55 +01:00
drmortalwombat 9161b088ee More integer range optimizations 2022-01-16 18:30:38 +01:00
drmortalwombat 6eedb931a7 More value range optimizations 2022-01-16 09:41:59 +01:00
drmortalwombat 640007546f Add __assume builtin function 2022-01-08 15:51:17 +01:00
drmortalwombat 2b7c7300d7 Integer value range optimizations 2022-01-04 22:26:44 +01:00
drmortalwombat 78615c0725 Optimize cross block single evaluation 2022-01-04 11:44:01 +01:00
drmortalwombat 60ca42e759 Inner loop invariant optimization for non single block intermediate loops 2022-01-03 14:36:31 +01:00
drmortalwombat 743510b54e Add verbose option -v to compiler 2021-12-26 11:31:04 +01:00
drmortalwombat 183864208f More integer value range optimizations 2021-12-22 12:58:17 +01:00
drmortalwombat 05a6c71698 Value range annotation for intermediate code 2021-12-22 07:46:06 +01:00
drmortalwombat 18ab7ce079 Fix broken left shift optimization due to branch in basic block 2021-12-06 22:56:03 +01:00
drmortalwombat f1f3c609fd Join similar instructions on conditional paths 2021-11-30 21:32:49 +01:00
drmortalwombat 2ed784ea17 Optimize signed range comparison 2021-11-13 15:05:53 +01:00
drmortalwombat cb5f5f421f Optimize single conditional path value evaluation 2021-11-09 22:24:29 +01:00
drmortalwombat 2cd7956736 Remove stores to global variables that are never read 2021-11-01 16:08:37 +01:00
drmortalwombat d3cba85efe Optimize global variable alias analysis 2021-11-01 12:42:03 +01:00
drmortalwombat 135d357dbc Strcpy as intrinsic 2021-10-31 19:14:07 +01:00
drmortalwombat 7e340cc816 Optimize static and global variable usage 2021-10-31 16:22:11 +01:00