Commit Graph

77 Commits

Author SHA1 Message Date
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
drmortalwombat 640477f88d Add peephole size optimizations 2021-10-30 10:42:41 +02:00
drmortalwombat 480270f4c9 Fix array to pointer cast 2021-10-24 14:58:06 +02:00
drmortalwombat 33433403b1 Fix optimizer errors 2021-10-23 00:33:09 +02:00
drmortalwombat ed52725a01 Remove copies from struct function return 2021-10-16 18:17:54 +02:00