diff --git a/src/main/java/dk/camelot64/kickc/Compiler.java b/src/main/java/dk/camelot64/kickc/Compiler.java index 70047a85f..35a6cf596 100644 --- a/src/main/java/dk/camelot64/kickc/Compiler.java +++ b/src/main/java/dk/camelot64/kickc/Compiler.java @@ -252,7 +252,6 @@ public class Compiler { * @param optimizations The optimizations to repeat */ private void pass2Execute(List optimizations) { - getLog().append("OPTIMIZING CONTROL FLOW GRAPH"); boolean ssaOptimized = true; while(ssaOptimized) { pass2AssertSSA(); diff --git a/src/test/java/dk/camelot64/kickc/test/ref/array-length-symbolic-min.log b/src/test/java/dk/camelot64/kickc/test/ref/array-length-symbolic-min.log index 5896f1797..21ceee947 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/array-length-symbolic-min.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/array-length-symbolic-min.log @@ -111,7 +111,6 @@ SYMBOL TABLE SSA (byte) main::sub#1 (byte) main::sub#2 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks Alias (byte) SZ#0 = (byte) SZ#3 @@ -134,7 +133,6 @@ Constant (const byte*) main::cur_item#0 = items#0 Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value main::sub#1 ← ++ main::sub#2 to ++ Resolved ranged comparison value if(main::sub#1!=rangelast(0,SZ#0)) goto main::@1 to (const byte) SZ#0+(byte/signed byte/word/signed word/dword/signed dword) 1 -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte) main::sub#0 Constant inlined main::sub#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined main::cur_item#0 = (const byte[SZ#0]) items#0 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/array-length-symbolic.log b/src/test/java/dk/camelot64/kickc/test/ref/array-length-symbolic.log index 5fe3a2325..7f6964922 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/array-length-symbolic.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/array-length-symbolic.log @@ -188,7 +188,6 @@ SYMBOL TABLE SSA (byte) main::sub#1 (byte) main::sub#2 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks Alias (byte*) main::cur_item#2 = (byte*) main::cur_item#3 @@ -230,7 +229,6 @@ Constant (const byte/signed word/word/dword/signed dword) main::$1 = ITEM_SIZE#0 Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value main::sub#1 ← ++ main::sub#2 to ++ Resolved ranged comparison value if(main::sub#1!=rangelast(0,main::$1)) goto main::@2 to (const byte/signed word/word/dword/signed dword) main::$1+(byte/signed byte/word/signed word/dword/signed dword) 1 -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte) main::item#0 Inlining constant with var siblings (const byte) main::sub#0 Inlining constant with var siblings (const byte*) main::cur_item#0 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/arrays-init.log b/src/test/java/dk/camelot64/kickc/test/ref/arrays-init.log index 15284a913..9a173178c 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/arrays-init.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/arrays-init.log @@ -103,7 +103,6 @@ SYMBOL TABLE SSA (byte*~) main::$1 (label) main::@return -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks Alias (byte*) SCREEN#0 = (byte*) SCREEN#2 @@ -123,7 +122,6 @@ Consolidated array index constant in *(b#0+0) Consolidated array index constant in *(c#0+1) Consolidated array index constant in *(d#0+2) Successful SSA optimization Pass2ConstantAdditionElimination -OPTIMIZING CONTROL FLOW GRAPH Constant inlined main::$1 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 2 Constant inlined $0 = (const byte[]) d#0 Constant inlined main::$0 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 1 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/asm-clobber.log b/src/test/java/dk/camelot64/kickc/test/ref/asm-clobber.log index d36553447..24a97e410 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/asm-clobber.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/asm-clobber.log @@ -219,7 +219,6 @@ SYMBOL TABLE SSA (byte) main::l#1 (byte) main::l#2 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks Alias (byte) main::i#2 = (byte) main::i#3 @@ -266,7 +265,6 @@ Successful SSA optimization Pass2SelfPhiElimination Redundant Phi (byte*) SCREEN#3 (const byte*) SCREEN#0 Redundant Phi (byte*) SCREEN#4 (byte*) SCREEN#3 Successful SSA optimization Pass2RedundantPhiElimination -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte) main::i#0 Inlining constant with var siblings (const byte) main::j#0 Inlining constant with var siblings (const byte) main::k#0 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/bitmap-bresenham.log b/src/test/java/dk/camelot64/kickc/test/ref/bitmap-bresenham.log index ef8cd2ce6..565a88e3f 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/bitmap-bresenham.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/bitmap-bresenham.log @@ -2608,7 +2608,6 @@ SYMBOL TABLE SSA (label) main::@6 (label) main::@return -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) bitmap_line::@29 Culled Empty Block (label) bitmap_line::@30 Culled Empty Block (label) bitmap_line::@31 @@ -2860,7 +2859,6 @@ Successful SSA optimization Pass2AliasElimination Consolidated array index constant in *(bitmap_plot_xhi#0+0) Consolidated array index constant in *(bitmap_plot_xlo#0+0) Successful SSA optimization Pass2ConstantAdditionElimination -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte) bitmap_init::bits#0 Inlining constant with var siblings (const byte) bitmap_init::x#0 Inlining constant with var siblings (const byte) bitmap_init::bits#2 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/bitmap-plotter.log b/src/test/java/dk/camelot64/kickc/test/ref/bitmap-plotter.log index a8e66d991..8b9de475d 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/bitmap-plotter.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/bitmap-plotter.log @@ -937,7 +937,6 @@ SYMBOL TABLE SSA (byte[]) plots_y (byte[]) plots_y#0 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @6 Successful SSA optimization Pass2CullEmptyBlocks Inversing boolean not (bool~) init_plot_tables::$4 ← (byte) init_plot_tables::bits#1 != (byte/signed byte/word/signed word/dword/signed dword) 0 from (bool~) init_plot_tables::$3 ← (byte) init_plot_tables::bits#1 == (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -1082,7 +1081,6 @@ Culled Empty Block (label) @2 Culled Empty Block (label) init_plot_tables::@6 Culled Empty Block (label) init_screen::@3 Successful SSA optimization Pass2CullEmptyBlocks -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte) plots::i#0 Inlining constant with var siblings (const byte*) plot::plotter_x#0 Inlining constant with var siblings (const word) plot::plotter_y#0 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/bool-const.log b/src/test/java/dk/camelot64/kickc/test/ref/bool-const.log index a5372836d..8e3bc2a06 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/bool-const.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/bool-const.log @@ -357,7 +357,6 @@ SYMBOL TABLE SSA (label) main::@3 (label) main::@return -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) main::@3 Culled Empty Block (label) @5 Successful SSA optimization Pass2CullEmptyBlocks @@ -445,7 +444,6 @@ Culled Empty Block (label) bool_const_vars::@5 Culled Empty Block (label) bool_const_vars::@6 Culled Empty Block (label) bool_const_vars::@7 Successful SSA optimization Pass2CullEmptyBlocks -OPTIMIZING CONTROL FLOW GRAPH Simplifying constant plus zero SCREEN#0+0 Adding NOP phi() at start of @begin Adding NOP phi() at start of @4 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/bool-function.log b/src/test/java/dk/camelot64/kickc/test/ref/bool-function.log index b3c50987c..7b0c921a8 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/bool-function.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/bool-function.log @@ -221,7 +221,6 @@ SYMBOL TABLE SSA (byte*) main::screen#4 (byte*) main::screen#5 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @3 Successful SSA optimization Pass2CullEmptyBlocks Alias (bool) isSet::b#0 = (bool~) main::$1 @@ -246,7 +245,6 @@ Constant (const byte) main::i#0 = 0 Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value main::i#1 ← ++ main::i#2 to ++ Resolved ranged comparison value if(main::i#1!=rangelast(0,100)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) 101 -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte) main::i#0 Constant inlined main::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Successful SSA optimization Pass2ConstantInlining diff --git a/src/test/java/dk/camelot64/kickc/test/ref/bool-ifs.log b/src/test/java/dk/camelot64/kickc/test/ref/bool-ifs.log index 42fd2a139..9983de506 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/bool-ifs.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/bool-ifs.log @@ -555,7 +555,6 @@ SYMBOL TABLE SSA (label) main::@4 (label) main::@return -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) main::@4 Culled Empty Block (label) @6 Successful SSA optimization Pass2CullEmptyBlocks @@ -618,7 +617,6 @@ Simple Condition (bool~) bool_complex::$4 if((byte) bool_complex::i#2<(byte/sign Simple Condition (bool~) bool_complex::$2 if((byte~) bool_complex::$1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto bool_complex::@2 Simple Condition (bool~) bool_complex::$6 if((byte~) bool_complex::$5==(byte/signed byte/word/signed word/dword/signed dword) 0) goto bool_complex::@4 Successful SSA optimization Pass2ConditionalJumpSimplification -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte) bool_and::i#0 Inlining constant with var siblings (const byte) bool_or::i#0 Inlining constant with var siblings (const byte) bool_not::i#0 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/bool-pointer.log b/src/test/java/dk/camelot64/kickc/test/ref/bool-pointer.log index 22aac5f73..12dc39fd6 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/bool-pointer.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/bool-pointer.log @@ -104,7 +104,6 @@ SYMBOL TABLE SSA (bool*) main::bscreen#2 (bool*) main::bscreen#3 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) main::@1 Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks @@ -121,7 +120,6 @@ Successful SSA optimization Pass2ConstantIdentification Consolidated array index constant in *(main::bscreen#0+0) Consolidated array index constant in *(main::bscreen#0+1) Successful SSA optimization Pass2ConstantAdditionElimination -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with different constant siblings (const bool*) main::bscreen#0 Inlining constant with different constant siblings (const bool*) main::bscreen#1 Inlining constant with different constant siblings (const bool*) main::bscreen#2 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/bool-vars.log b/src/test/java/dk/camelot64/kickc/test/ref/bool-vars.log index 3d3fc79f5..a282a0fa6 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/bool-vars.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/bool-vars.log @@ -627,7 +627,6 @@ SYMBOL TABLE SSA (label) main::@4 (label) main::@return -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) main::@4 Culled Empty Block (label) @6 Successful SSA optimization Pass2CullEmptyBlocks @@ -700,7 +699,6 @@ Simple Condition (bool) bool_and::o2#0 if((byte~) bool_and::$1==(byte/signed byt Simple Condition (bool) bool_or::o2#0 if((byte~) bool_or::$1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto bool_or::@2 Simple Condition (bool) bool_not::o2#0 if((byte~) bool_not::$1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto bool_not::@4 Successful SSA optimization Pass2ConditionalJumpSimplification -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte) bool_and::i#0 Inlining constant with var siblings (const byte) bool_or::i#0 Inlining constant with var siblings (const byte) bool_not::i#0 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/bresenham.log b/src/test/java/dk/camelot64/kickc/test/ref/bresenham.log index 9c37847e2..072a8b1c2 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/bresenham.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/bresenham.log @@ -301,7 +301,6 @@ SYMBOL TABLE SSA (byte) main::yd#2 (byte) main::yd#3 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks Inversing boolean not (bool~) main::$10 ← (byte) main::xd#1 > (byte) main::e#1 from (bool~) main::$9 ← (byte) main::xd#1 <= (byte) main::e#1 @@ -363,7 +362,6 @@ Constant (const byte*) main::$4 = SCREEN#0+main::$3 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) main::cursor#0 = main::$4+main::x#0 Successful SSA optimization Pass2ConstantIdentification -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte) main::x#0 Inlining constant with var siblings (const byte) main::y#0 Inlining constant with var siblings (const byte) main::e#0 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/bresenhamarr.log b/src/test/java/dk/camelot64/kickc/test/ref/bresenhamarr.log index 5c5663fb7..cf87d8064 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/bresenhamarr.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/bresenhamarr.log @@ -293,7 +293,6 @@ SYMBOL TABLE SSA (byte) main::yd#2 (byte) main::yd#3 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks Inversing boolean not (bool~) main::$10 ← (byte) main::xd#1 >= (byte) main::e#1 from (bool~) main::$9 ← (byte) main::xd#1 < (byte) main::e#1 @@ -351,7 +350,6 @@ Successful SSA optimization Pass2ConstantIdentification Constant (const byte) main::e#0 = main::yd#0/2 Constant (const word) main::idx#0 = main::x#0+main::$4 Successful SSA optimization Pass2ConstantIdentification -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte) main::x#0 Inlining constant with var siblings (const byte) main::y#0 Inlining constant with var siblings (const byte) main::e#0 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/c64dtv-8bppcharstretch.log b/src/test/java/dk/camelot64/kickc/test/ref/c64dtv-8bppcharstretch.log index 90d931929..d9e255826 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/c64dtv-8bppcharstretch.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/c64dtv-8bppcharstretch.log @@ -2076,7 +2076,6 @@ SYMBOL TABLE SSA (byte) main::rst#2 (byte) main::rst#3 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) gfx_init::@2 Culled Empty Block (label) gfx_init_plane_charset8::@10 Culled Empty Block (label) @9 @@ -2257,7 +2256,6 @@ Self Phi Eliminated (byte) gfx_init_plane_charset8::ch#7 Successful SSA optimization Pass2SelfPhiElimination Redundant Phi (byte) gfx_init_plane_charset8::ch#7 (byte) gfx_init_plane_charset8::ch#8 Successful SSA optimization Pass2RedundantPhiElimination -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte) dtvSetCpuBankSegment1::cpuBankIdx#1 Inlining constant with var siblings (const byte) dtvSetCpuBankSegment1::cpuBankIdx#0 Inlining constant with var siblings (const byte) main::j#0 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/c64dtv-8bppchunkystretch.log b/src/test/java/dk/camelot64/kickc/test/ref/c64dtv-8bppchunkystretch.log index 4a627bfc6..66d680f1c 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/c64dtv-8bppchunkystretch.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/c64dtv-8bppchunkystretch.log @@ -1766,7 +1766,6 @@ SYMBOL TABLE SSA (byte) main::rst#2 (byte) main::rst#3 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) gfx_init_chunky::@9 Culled Empty Block (label) @7 Successful SSA optimization Pass2CullEmptyBlocks @@ -1894,7 +1893,6 @@ Culled Empty Block (label) main::@2 Culled Empty Block (label) main::@6 Culled Empty Block (label) gfx_init_chunky::@7 Successful SSA optimization Pass2CullEmptyBlocks -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte) dtvSetCpuBankSegment1::cpuBankIdx#2 Inlining constant with var siblings (const byte) dtvSetCpuBankSegment1::cpuBankIdx#0 Inlining constant with var siblings (const byte) main::j#0 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/c64dtv-blittermin.log b/src/test/java/dk/camelot64/kickc/test/ref/c64dtv-blittermin.log index 2bc2801f3..77fee43cb 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/c64dtv-blittermin.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/c64dtv-blittermin.log @@ -1437,7 +1437,6 @@ SYMBOL TABLE SSA (byte) main::r#3 (byte) main::r#4 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @6 Successful SSA optimization Pass2CullEmptyBlocks Alias (byte) main::r#1 = (byte) main::r#4 @@ -1525,7 +1524,6 @@ Culled Empty Block (label) @3 Culled Empty Block (label) @4 Culled Empty Block (label) main::@1 Successful SSA optimization Pass2CullEmptyBlocks -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte) main::r#0 Constant inlined main::r#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined main::$12 = (const byte) DTV_BLIT_FORCE_START#0|(const byte) DTV_BLIT_SRCA_FWD#0 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/c64dtv-color.log b/src/test/java/dk/camelot64/kickc/test/ref/c64dtv-color.log index 1b5f742b5..b75d962a7 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/c64dtv-color.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/c64dtv-color.log @@ -1272,7 +1272,6 @@ SYMBOL TABLE SSA (byte) main::r#1 (byte) main::r#2 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) main::@2 Culled Empty Block (label) main::@5 Culled Empty Block (label) @6 @@ -1310,7 +1309,6 @@ Culled Empty Block (label) @3 Culled Empty Block (label) main::@1 Culled Empty Block (label) main::@14 Successful SSA optimization Pass2CullEmptyBlocks -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte) main::r#0 Inlining constant with var siblings (const byte) main::c#0 Constant inlined main::r#0 = (byte/signed byte/word/signed word/dword/signed dword) 49 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/c64dtv-gfxexplorer.log b/src/test/java/dk/camelot64/kickc/test/ref/c64dtv-gfxexplorer.log index 29003d9ce..b7764c994 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/c64dtv-gfxexplorer.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/c64dtv-gfxexplorer.log @@ -13930,7 +13930,6 @@ SYMBOL TABLE SSA (byte*) render_preset_name::name#8 (byte*) render_preset_name::name#9 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) bitmap_line::@29 Culled Empty Block (label) bitmap_line::@30 Culled Empty Block (label) bitmap_line::@31 @@ -15628,7 +15627,6 @@ Consolidated array index constant in *(bitmap_plot_xlo#0+0) Successful SSA optimization Pass2ConstantAdditionElimination Culled Empty Block (label) gfx_mode::@16 Successful SSA optimization Pass2CullEmptyBlocks -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte) dtvSetCpuBankSegment1::cpuBankIdx#2 Inlining constant with var siblings (const byte) dtvSetCpuBankSegment1::cpuBankIdx#4 Inlining constant with var siblings (const byte) dtvSetCpuBankSegment1::cpuBankIdx#6 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/c64dtv-gfxmodes.log b/src/test/java/dk/camelot64/kickc/test/ref/c64dtv-gfxmodes.log index 14572ab9a..0f4de9762 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/c64dtv-gfxmodes.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/c64dtv-gfxmodes.log @@ -12481,7 +12481,6 @@ SYMBOL TABLE SSA (byte*) print_str_lines::str#8 (byte*) print_str_lines::str#9 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) bitmap_line::@29 Culled Empty Block (label) bitmap_line::@30 Culled Empty Block (label) bitmap_line::@31 @@ -14059,7 +14058,6 @@ Self Phi Eliminated (byte) dtv_control#244 Successful SSA optimization Pass2SelfPhiElimination Redundant Phi (byte) dtv_control#244 (const byte) dtv_control#48 Successful SSA optimization Pass2RedundantPhiElimination -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte) dtvSetCpuBankSegment1::cpuBankIdx#2 Inlining constant with var siblings (const byte) dtvSetCpuBankSegment1::cpuBankIdx#0 Inlining constant with var siblings (const byte*) print_str_lines::str#1 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/callconstparam.log b/src/test/java/dk/camelot64/kickc/test/ref/callconstparam.log index 4e847ca08..74685136c 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/callconstparam.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/callconstparam.log @@ -184,7 +184,6 @@ SYMBOL TABLE SSA (byte*) screen#8 (byte*) screen#9 -OPTIMIZING CONTROL FLOW GRAPH Alias (byte*) screen#1 = (byte*) screen#7 Alias (byte*) screen#2 = (byte*) screen#8 (byte*) screen#9 (byte*) screen#3 Alias (byte) line::x#0 = (byte) line::x0#2 @@ -211,7 +210,6 @@ Successful SSA optimization Pass2ConstantIdentification Culled Empty Block (label) main::@2 Culled Empty Block (label) @3 Successful SSA optimization Pass2CullEmptyBlocks -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with different constant siblings (const byte) line::x0#0 Inlining constant with var siblings (const byte) line::x1#0 Inlining constant with different constant siblings (const byte) line::x0#1 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/cast-deref.log b/src/test/java/dk/camelot64/kickc/test/ref/cast-deref.log index b3627b511..fc8168d4b 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/cast-deref.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/cast-deref.log @@ -116,7 +116,6 @@ SYMBOL TABLE SSA (signed byte[]) main::sbs (signed byte[]) main::sbs#0 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks Self Phi Eliminated (byte*) main::SCREEN#1 @@ -138,7 +137,6 @@ Eliminating Noop Cast (byte~) main::$4 ← ((byte)) *((const signed byte[]) main Successful SSA optimization Pass2NopCastElimination Resolved ranged next value main::i#1 ← ++ main::i#2 to ++ Resolved ranged comparison value if(main::i#1!=rangelast(0,3)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) 4 -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte) main::i#0 Constant inlined main::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined main::$3 = -(byte/signed byte/word/signed word/dword/signed dword) 4 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/cast-precedence-problem.log b/src/test/java/dk/camelot64/kickc/test/ref/cast-precedence-problem.log index 9995639a0..b1fdf5562 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/cast-precedence-problem.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/cast-precedence-problem.log @@ -175,7 +175,6 @@ SYMBOL TABLE SSA (word) main::sumw (word) main::sumw#0 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks Alias (byte) main::midw#0 = (byte/signed word/word/dword/signed dword~) main::$3 @@ -208,7 +207,6 @@ Consolidated array index constant in *(main::SCREEN#0+1) Consolidated array index constant in *(main::SCREEN#0+0) Consolidated array index constant in *(main::SCREEN#0+1) Successful SSA optimization Pass2ConstantAdditionElimination -OPTIMIZING CONTROL FLOW GRAPH Constant inlined main::$5 = (const byte) main::sumb#0>>(byte/signed byte/word/signed word/dword/signed dword) 1 Constant inlined main::$1 = (const word) main::sumw#0>>(byte/signed byte/word/signed word/dword/signed dword) 1 Constant inlined main::$2 = ((byte))(const word) main::sumw#0>>(byte/signed byte/word/signed word/dword/signed dword) 1 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/casting.log b/src/test/java/dk/camelot64/kickc/test/ref/casting.log index 1ec694ff0..8eb457b2d 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/casting.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/casting.log @@ -310,7 +310,6 @@ SYMBOL TABLE SSA (word) w::w2 (word) w::w2#0 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) main::@3 Culled Empty Block (label) @3 Successful SSA optimization Pass2CullEmptyBlocks @@ -372,7 +371,6 @@ Resolved ranged next value main::b#1 ← ++ main::b#2 to ++ Resolved ranged comparison value if(main::b#1!=rangelast(0,100)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) 101 Resolved ranged next value w::i#1 ← ++ w::i#2 to ++ Resolved ranged comparison value if(w::i#1!=rangelast(0,10)) goto w::@1 to (byte/signed byte/word/signed word/dword/signed dword) 11 -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte) main::b#0 Inlining constant with var siblings (const byte) w::i#0 Constant inlined $4 = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 9 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/chained-assignment.log b/src/test/java/dk/camelot64/kickc/test/ref/chained-assignment.log index 76d4c380a..87c2e543e 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/chained-assignment.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/chained-assignment.log @@ -91,7 +91,6 @@ SYMBOL TABLE SSA (byte*) main::screen (byte*) main::screen#0 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks Constant (const byte*) main::screen#0 = ((byte*))1024 @@ -108,7 +107,6 @@ Consolidated array index constant in *(main::screen#0+41) Consolidated array index constant in *(main::screen#0+2) Consolidated array index constant in *(main::screen#0+42) Successful SSA optimization Pass2ConstantAdditionElimination -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte) main::a#0 Inlining constant with var siblings (const byte) main::a#2 Constant inlined main::a#0 = (byte) 'c' diff --git a/src/test/java/dk/camelot64/kickc/test/ref/chargen-analysis.log b/src/test/java/dk/camelot64/kickc/test/ref/chargen-analysis.log index 0280e6ca9..87caa3fef 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/chargen-analysis.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/chargen-analysis.log @@ -3191,7 +3191,6 @@ SYMBOL TABLE SSA (byte*) print_str_at::str#6 (byte*) print_str_at::str#7 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @19 Successful SSA optimization Pass2CullEmptyBlocks Inversing boolean not (bool~) mul8u::$3 ← (byte~) mul8u::$1 == (byte/signed byte/word/signed word/dword/signed dword) 0 from (bool~) mul8u::$2 ← (byte~) mul8u::$1 != (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -3474,7 +3473,6 @@ Constant (const byte*) plot_chargen::$6 = SCREEN#0 Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) plot_chargen::$7 = plot_chargen::$6+40+1 Successful SSA optimization Pass2ConstantIdentification -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const word) mul8u::res#0 Inlining constant with var siblings (const word) mul8u::mb#0 Inlining constant with var siblings (const byte) keyboard_key_pressed::key#0 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/chargen.log b/src/test/java/dk/camelot64/kickc/test/ref/chargen.log index 1cb2af248..836a97dae 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/chargen.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/chargen.log @@ -295,7 +295,6 @@ SYMBOL TABLE SSA (byte) main::y#5 (byte) main::y#6 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks Inversing boolean not (bool~) main::$3 ← (byte~) main::$1 == (byte/signed byte/word/signed word/dword/signed dword) 0 from (bool~) main::$2 ← (byte~) main::$1 != (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -360,7 +359,6 @@ Successful SSA optimization Pass2SelfPhiElimination Redundant Phi (byte*) main::CHAR_A#1 (const byte*) main::CHAR_A#0 Redundant Phi (byte*) PROCPORT#8 (const byte*) PROCPORT#0 Successful SSA optimization Pass2RedundantPhiElimination -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte) main::y#0 Inlining constant with var siblings (const byte) main::x#0 Inlining constant with var siblings (const byte) main::c#0 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/chessboard.log b/src/test/java/dk/camelot64/kickc/test/ref/chessboard.log index 2b173b147..8d249af20 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/chessboard.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/chessboard.log @@ -190,7 +190,6 @@ SYMBOL TABLE SSA (byte*) main::screen#3 (byte*) main::screen#4 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks Alias (byte) main::color#1 = (byte/word/dword~) main::$0 (byte) main::color#4 @@ -222,7 +221,6 @@ Resolved ranged next value main::column#1 ← ++ main::column#2 to ++ Resolved ranged comparison value if(main::column#1!=rangelast(0,7)) goto main::@2 to (byte/signed byte/word/signed word/dword/signed dword) 8 Resolved ranged next value main::row#1 ← ++ main::row#4 to ++ Resolved ranged comparison value if(main::row#1!=rangelast(0,7)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) 8 -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte*) main::screen#0 Inlining constant with var siblings (const byte*) main::colors#0 Inlining constant with var siblings (const byte) main::color#0 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/compound-assignment.log b/src/test/java/dk/camelot64/kickc/test/ref/compound-assignment.log index 146ef10b7..00dc692d4 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/compound-assignment.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/compound-assignment.log @@ -579,7 +579,6 @@ SYMBOL TABLE SSA (byte) test::i#8 (byte) test::i#9 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @3 Successful SSA optimization Pass2CullEmptyBlocks Alias (byte*) screen2#0 = (byte*~) $0 (byte*) screen2#13 @@ -698,7 +697,6 @@ Eliminating unused constant (const byte) main::i#11 Successful SSA optimization PassNEliminateUnusedVars Culled Empty Block (label) main::@11 Successful SSA optimization Pass2CullEmptyBlocks -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with different constant siblings (const byte) main::i#0 Inlining constant with different constant siblings (const byte) main::a#0 Inlining constant with different constant siblings (const byte) main::i#1 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/concat-char.log b/src/test/java/dk/camelot64/kickc/test/ref/concat-char.log index cd8fb8544..fe5565910 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/concat-char.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/concat-char.log @@ -108,7 +108,6 @@ SYMBOL TABLE SSA (byte*) main::screen#0 (byte*) main::screen#1 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks Alias (byte[]) main::msg#0 = (string~) main::$0 @@ -130,7 +129,6 @@ Eliminating unused constant (const byte) main::l#0 Successful SSA optimization PassNEliminateUnusedVars Resolved ranged next value main::i#1 ← ++ main::i#2 to ++ Resolved ranged comparison value if(main::i#1!=rangelast(0,2)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) 3 -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte) main::i#0 Constant inlined main::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Successful SSA optimization Pass2ConstantInlining diff --git a/src/test/java/dk/camelot64/kickc/test/ref/const-condition.log b/src/test/java/dk/camelot64/kickc/test/ref/const-condition.log index 8cd483eee..664ea8404 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/const-condition.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/const-condition.log @@ -94,7 +94,6 @@ SYMBOL TABLE SSA (byte*) main::SCREEN (byte*) main::SCREEN#0 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks Simple Condition (bool~) main::$0 if((byte/signed byte/word/signed word/dword/signed dword) 7<(byte/signed byte/word/signed word/dword/signed dword) 4) goto main::@1 @@ -108,7 +107,6 @@ if() condition always false - eliminating if((byte/signed byte/word/signed word/ Successful SSA optimization Pass2ConstantIfs Removing unused block main::@1 Successful SSA optimization Pass2EliminateUnusedBlocks -OPTIMIZING CONTROL FLOW GRAPH Simplifying constant plus zero main::SCREEN#0+0 Adding NOP phi() at start of @begin Adding NOP phi() at start of @1 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/const-identification.log b/src/test/java/dk/camelot64/kickc/test/ref/const-identification.log index b2417d07b..e3f56ad64 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/const-identification.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/const-identification.log @@ -283,7 +283,6 @@ SYMBOL TABLE SSA (byte*) plots (byte*) plots#0 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) line::@7 Culled Empty Block (label) @4 Successful SSA optimization Pass2CullEmptyBlocks @@ -326,7 +325,6 @@ Redundant Phi (byte) plot::x#2 (byte) plot::x#1 Successful SSA optimization Pass2RedundantPhiElimination Eliminating unused constant (const byte) plot::x#0 Successful SSA optimization PassNEliminateUnusedVars -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte) main::i#0 Constant inlined main::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Successful SSA optimization Pass2ConstantInlining diff --git a/src/test/java/dk/camelot64/kickc/test/ref/const-mult-div.log b/src/test/java/dk/camelot64/kickc/test/ref/const-mult-div.log index 939d2be88..8aede8699 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/const-mult-div.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/const-mult-div.log @@ -82,7 +82,6 @@ SYMBOL TABLE SSA (byte*) main::screen (byte*) main::screen#0 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks Alias (byte) main::b#0 = (byte/signed word/word/dword/signed dword/signed byte~) main::$3 @@ -97,7 +96,6 @@ Constant (const byte) main::b#0 = main::$1+main::$2 Successful SSA optimization Pass2ConstantIdentification Consolidated array index constant in *(main::screen#0+0) Successful SSA optimization Pass2ConstantAdditionElimination -OPTIMIZING CONTROL FLOW GRAPH Constant inlined main::$1 = (byte/signed byte/word/signed word/dword/signed dword) 6*(byte/signed byte/word/signed word/dword/signed dword) 14/(byte/signed byte/word/signed word/dword/signed dword) 3 Constant inlined main::$2 = (byte/signed byte/word/signed word/dword/signed dword) 22%(byte/signed byte/word/signed word/dword/signed dword) 3 Constant inlined main::$0 = (byte/signed byte/word/signed word/dword/signed dword) 14/(byte/signed byte/word/signed word/dword/signed dword) 3 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/const-param.log b/src/test/java/dk/camelot64/kickc/test/ref/const-param.log index 01d30c426..240c3a43c 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/const-param.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/const-param.log @@ -174,7 +174,6 @@ SYMBOL TABLE SSA (byte) sum::return#7 (byte) sum::return#8 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @3 Successful SSA optimization Pass2CullEmptyBlocks Alias (byte) sum::return#0 = (byte) sum::return#5 @@ -197,7 +196,6 @@ Consolidated array index constant in *(main::screen#0+0) Consolidated array index constant in *(main::screen#0+1) Consolidated array index constant in *(main::screen#0+2) Successful SSA optimization Pass2ConstantAdditionElimination -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte) sum::b#0 Inlining constant with var siblings (const byte) sum::b#1 Inlining constant with var siblings (const byte) sum::b#2 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/const-pointer.log b/src/test/java/dk/camelot64/kickc/test/ref/const-pointer.log index c1ea5db98..eb99ac989 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/const-pointer.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/const-pointer.log @@ -111,7 +111,6 @@ SYMBOL TABLE SSA (byte*) main::screen#1 (byte*) main::screen#2 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks Alias (byte*) main::screen#0 = (byte*) main::screen#1 (byte*) main::screen#2 @@ -132,7 +131,6 @@ Eliminating unused constant (const byte*) main::rem#0 Successful SSA optimization PassNEliminateUnusedVars Removing unused block main::@3 Successful SSA optimization Pass2EliminateUnusedBlocks -OPTIMIZING CONTROL FLOW GRAPH Simplifying constant plus zero main::screen#0+0 Adding NOP phi() at start of @begin Adding NOP phi() at start of @1 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/const-word-pointer.log b/src/test/java/dk/camelot64/kickc/test/ref/const-word-pointer.log index a74f54bfb..05608e79e 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/const-word-pointer.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/const-word-pointer.log @@ -106,7 +106,6 @@ SYMBOL TABLE SSA (word*) main::wp (word*) main::wp#0 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks Alias (word*) main::wp#0 = (word*~) main::$0 @@ -119,7 +118,6 @@ Consolidated array index constant in *(main::screen#0+1) Consolidated array index constant in *(main::screen#0+2) Consolidated array index constant in *(main::screen#0+3) Successful SSA optimization Pass2ConstantAdditionElimination -OPTIMIZING CONTROL FLOW GRAPH Simplifying constant plus zero main::screen#0+0 Adding NOP phi() at start of @begin Adding NOP phi() at start of @1 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/constabsmin.log b/src/test/java/dk/camelot64/kickc/test/ref/constabsmin.log index 32214227b..cfc47207d 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/constabsmin.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/constabsmin.log @@ -59,12 +59,10 @@ SYMBOL TABLE SSA (void()) main() (label) main::@return -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks Constant (const byte*) SCREEN#0 = ((byte*))1024 Successful SSA optimization Pass2ConstantIdentification -OPTIMIZING CONTROL FLOW GRAPH Adding NOP phi() at start of @begin Adding NOP phi() at start of @1 Adding NOP phi() at start of @end diff --git a/src/test/java/dk/camelot64/kickc/test/ref/constant-string-concat.log b/src/test/java/dk/camelot64/kickc/test/ref/constant-string-concat.log index 00be7051a..11fdedd65 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/constant-string-concat.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/constant-string-concat.log @@ -157,7 +157,6 @@ SYMBOL TABLE SSA (byte[]) main::s5 (byte[]) main::s5#0 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks Alias (byte[]) main::s#0 = (string~) main::$0 @@ -195,7 +194,6 @@ Eliminating unused constant (const byte[]) main::s2#0 Successful SSA optimization PassNEliminateUnusedVars Resolved ranged next value main::i#1 ← ++ main::i#2 to ++ Resolved ranged comparison value if(main::i#1!=rangelast(0,7)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) 8 -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte) main::i#0 Constant inlined main::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Successful SSA optimization Pass2ConstantInlining diff --git a/src/test/java/dk/camelot64/kickc/test/ref/constantmin.log b/src/test/java/dk/camelot64/kickc/test/ref/constantmin.log index 6f5d2b6ea..1e4d8534c 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/constantmin.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/constantmin.log @@ -144,7 +144,6 @@ SYMBOL TABLE SSA (byte) main::i#1 (byte) main::i#2 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks Alias (byte*) BGCOL#0 = (byte*~) $2 (byte*) BGCOL#2 @@ -169,7 +168,6 @@ Constant (const byte*) BGCOL#0 = $1+1 Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value main::i#1 ← ++ main::i#2 to ++ Resolved ranged comparison value if(main::i#1!=rangelast(40,79)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) 80 -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte) main::i#0 Constant inlined main::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 40 Constant inlined $0 = (byte/signed byte/word/signed word/dword/signed dword) 16*(byte/signed byte/word/signed word/dword/signed dword) 2 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/constants.log b/src/test/java/dk/camelot64/kickc/test/ref/constants.log index e60c2fc7d..0cc592fbd 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/constants.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/constants.log @@ -1578,7 +1578,6 @@ SYMBOL TABLE SSA (const string) test_sbytes::msg3 = (string) "-(0+2-4)=2@" (const string) test_sbytes::msg4 = (string) "-127-127=2@" -OPTIMIZING CONTROL FLOW GRAPH Alias (byte*) print_line_cursor#0 = (byte*) print_screen#0 (byte*) print_char_cursor#0 (byte*) print_line_cursor#58 (byte*) print_char_cursor#81 (byte*) print_screen#6 (byte*) print_line_cursor#53 (byte*) print_char_cursor#79 (byte*) print_screen#5 Alias (byte*) print_str::str#10 = (byte*) print_str::str#9 Alias (byte*) print_char_cursor#2 = (byte*) print_char_cursor#34 (byte*) print_char_cursor#66 (byte*) print_char_cursor#35 @@ -1770,7 +1769,6 @@ Culled Empty Block (label) assert_sbyte::@8 Culled Empty Block (label) assert_sbyte::@9 Culled Empty Block (label) @20 Successful SSA optimization Pass2CullEmptyBlocks -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte*) print_str::str#2 Inlining constant with var siblings (const byte*) print_str::str#3 Inlining constant with var siblings (const byte*) print_str::str#4 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/double-assignment.log b/src/test/java/dk/camelot64/kickc/test/ref/double-assignment.log index 65b9e12e7..51f3ff506 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/double-assignment.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/double-assignment.log @@ -77,7 +77,6 @@ SYMBOL TABLE SSA (byte*) main::screen (byte*) main::screen#0 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks Alias (byte) main::a#0 = (byte) main::b#0 @@ -88,7 +87,6 @@ Successful SSA optimization Pass2ConstantIdentification Consolidated array index constant in *(main::screen#0+0) Consolidated array index constant in *(main::screen#0+1) Successful SSA optimization Pass2ConstantAdditionElimination -OPTIMIZING CONTROL FLOW GRAPH Simplifying constant plus zero main::screen#0+0 Adding NOP phi() at start of @begin Adding NOP phi() at start of @1 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/double-import.log b/src/test/java/dk/camelot64/kickc/test/ref/double-import.log index 033b200b9..44d29e1e7 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/double-import.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/double-import.log @@ -71,13 +71,11 @@ SYMBOL TABLE SSA (void()) main() (label) main::@return -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks Constant (const byte*) BGCOL#0 = ((byte*))53281 Constant (const byte) RED#0 = 2 Successful SSA optimization Pass2ConstantIdentification -OPTIMIZING CONTROL FLOW GRAPH Adding NOP phi() at start of @begin Adding NOP phi() at start of @1 Adding NOP phi() at start of @end diff --git a/src/test/java/dk/camelot64/kickc/test/ref/dword.log b/src/test/java/dk/camelot64/kickc/test/ref/dword.log index c40fdfc23..51f42a3b6 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/dword.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/dword.log @@ -116,7 +116,6 @@ SYMBOL TABLE SSA (byte) main::i#1 (byte) main::i#2 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks Alias (dword) main::b#0 = (dword~) main::$0 @@ -134,7 +133,6 @@ Constant (const byte*) main::SCREEN#0 = ((byte*))1024 Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value main::i#1 ← ++ main::i#2 to ++ Resolved ranged comparison value if(main::i#1!=rangelast(0,100)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) 101 -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte) main::i#0 Constant inlined main::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Successful SSA optimization Pass2ConstantInlining diff --git a/src/test/java/dk/camelot64/kickc/test/ref/emptyblock-error.log b/src/test/java/dk/camelot64/kickc/test/ref/emptyblock-error.log index 504d60d2a..6f5e6349b 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/emptyblock-error.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/emptyblock-error.log @@ -284,7 +284,6 @@ SYMBOL TABLE SSA (label) mode::@4 (label) mode::@return -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) menu::@8 Culled Empty Block (label) @4 Successful SSA optimization Pass2CullEmptyBlocks @@ -322,7 +321,6 @@ Culled Empty Block (label) menu::@1 Culled Empty Block (label) @2 Culled Empty Block (label) mode::@1 Successful SSA optimization Pass2CullEmptyBlocks -OPTIMIZING CONTROL FLOW GRAPH Adding NOP phi() at start of @begin Adding NOP phi() at start of @3 Adding NOP phi() at start of @end diff --git a/src/test/java/dk/camelot64/kickc/test/ref/fibmem.log b/src/test/java/dk/camelot64/kickc/test/ref/fibmem.log index 31a31a480..1e4406990 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/fibmem.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/fibmem.log @@ -107,7 +107,6 @@ SYMBOL TABLE SSA (byte) main::i#1 (byte) main::i#2 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks Simple Condition (bool~) main::$3 if((byte) main::i#1<(byte/signed byte/word/signed word/dword/signed dword) 15) goto main::@1 @@ -124,7 +123,6 @@ Inferred type updated to byte in (byte/signed word/word/dword/signed dword~) mai Inferred type updated to byte in (byte/signed word/word/dword/signed dword~) main::$1 ← (byte) main::i#2 Alias (byte) main::i#2 = (byte~) main::$0 (byte~) main::$1 Successful SSA optimization Pass2AliasElimination -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte) main::i#0 Constant inlined main::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Successful SSA optimization Pass2ConstantInlining diff --git a/src/test/java/dk/camelot64/kickc/test/ref/fillscreen.log b/src/test/java/dk/camelot64/kickc/test/ref/fillscreen.log index b992d26e4..fa3cd0ca8 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/fillscreen.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/fillscreen.log @@ -180,7 +180,6 @@ SYMBOL TABLE SSA (byte) main::c (byte) main::c#0 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) main::@1 Culled Empty Block (label) @3 Successful SSA optimization Pass2CullEmptyBlocks @@ -209,7 +208,6 @@ Constant (const byte*) fillscreen::SCREEN4#0 = SCREEN#0+1000 Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value fillscreen::j#1 ← ++ fillscreen::j#2 to ++ Resolved ranged comparison value if(fillscreen::j#1!=rangelast(0,255)) goto fillscreen::@1 to (byte/signed byte/word/signed word/dword/signed dword) 0 -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte) fillscreen::j#0 Constant inlined fillscreen::j#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Successful SSA optimization Pass2ConstantInlining diff --git a/src/test/java/dk/camelot64/kickc/test/ref/flipper-rex2.log b/src/test/java/dk/camelot64/kickc/test/ref/flipper-rex2.log index b4ee45304..8c5a5efa3 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/flipper-rex2.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/flipper-rex2.log @@ -598,7 +598,6 @@ SYMBOL TABLE SSA (byte) prepare::i#1 (byte) prepare::i#2 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @5 Successful SSA optimization Pass2CullEmptyBlocks Alias (byte*) RASTER#6 = (byte*) RASTER#8 @@ -710,7 +709,6 @@ Constant (const byte*) plot::line#0 = plot::$1+plot::$0+12 Successful SSA optimization Pass2ConstantIdentification Culled Empty Block (label) main::@1 Successful SSA optimization Pass2CullEmptyBlocks -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte) main::c#0 Inlining constant with var siblings (const byte) prepare::i#0 Inlining constant with var siblings (const byte) flip::srcIdx#0 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/forclassicmin.log b/src/test/java/dk/camelot64/kickc/test/ref/forclassicmin.log index 2fe5c9782..ed53158ba 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/forclassicmin.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/forclassicmin.log @@ -104,7 +104,6 @@ SYMBOL TABLE SSA (byte) main::i#1 (byte) main::i#2 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks Alias (byte*) SCREEN#0 = (byte*~) $0 (byte*) SCREEN#3 @@ -119,7 +118,6 @@ Successful SSA optimization Pass2ConditionalJumpSimplification Constant (const byte*) SCREEN#0 = ((byte*))1024 Constant (const byte) main::i#0 = 0 Successful SSA optimization Pass2ConstantIdentification -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte) main::i#0 Constant inlined main::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Successful SSA optimization Pass2ConstantInlining diff --git a/src/test/java/dk/camelot64/kickc/test/ref/forincrementassign.log b/src/test/java/dk/camelot64/kickc/test/ref/forincrementassign.log index 1fbc9416a..d3b34e196 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/forincrementassign.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/forincrementassign.log @@ -101,7 +101,6 @@ SYMBOL TABLE SSA (byte) main::i#1 (byte) main::i#2 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks Alias (byte) main::i#1 = (byte/signed word/word/dword/signed dword~) main::$0 @@ -117,7 +116,6 @@ Successful SSA optimization Pass2ConditionalJumpSimplification Constant (const byte*) SCREEN#0 = ((byte*))1024 Constant (const byte) main::i#0 = 0 Successful SSA optimization Pass2ConstantIdentification -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte) main::i#0 Constant inlined main::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Successful SSA optimization Pass2ConstantInlining diff --git a/src/test/java/dk/camelot64/kickc/test/ref/forrangedwords.log b/src/test/java/dk/camelot64/kickc/test/ref/forrangedwords.log index 59ba50e15..e93d1b81a 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/forrangedwords.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/forrangedwords.log @@ -153,7 +153,6 @@ SYMBOL TABLE SSA (word) main::w#1 (word) main::w#2 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks Not aliassing identity: main::SCREEN#2 main::SCREEN#2 @@ -185,7 +184,6 @@ Resolved ranged next value main::sw#1 ← ++ main::sw#2 to ++ Resolved ranged comparison value if(main::sw#1!=rangelast(main::sw#0,32766)) goto main::@2 to (word/signed word/dword/signed dword) 32767 Culled Empty Block (label) main::@3 Successful SSA optimization Pass2CullEmptyBlocks -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const word) main::w#0 Inlining constant with var siblings (const signed word) main::sw#0 Constant inlined main::w#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/forrangemin.log b/src/test/java/dk/camelot64/kickc/test/ref/forrangemin.log index 8a6009226..74f79c0c8 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/forrangemin.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/forrangemin.log @@ -152,7 +152,6 @@ SYMBOL TABLE SSA (byte) main::j#1 (byte) main::j#2 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks Not aliassing identity: SCREEN2#1 SCREEN2#1 @@ -185,7 +184,6 @@ Resolved ranged next value main::j#1 ← -- main::j#2 to -- Resolved ranged comparison value if(main::j#1!=rangelast(100,0)) goto main::@2 to (byte/word/signed word/dword/signed dword) 255 Culled Empty Block (label) main::@3 Successful SSA optimization Pass2CullEmptyBlocks -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte) main::i#0 Inlining constant with var siblings (const byte) main::j#0 Constant inlined main::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/forrangesymbolic.log b/src/test/java/dk/camelot64/kickc/test/ref/forrangesymbolic.log index 4f73db908..bfdcf90bc 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/forrangesymbolic.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/forrangesymbolic.log @@ -93,7 +93,6 @@ SYMBOL TABLE SSA (byte*) main::b#1 (byte*) main::b#2 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks Alias (byte*) main::b#0 = (byte*~) main::$0 @@ -106,7 +105,6 @@ Constant (const byte*) main::b#0 = main::BITMAP#0+8191 Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value main::b#1 ← -- main::b#2 to -- Resolved ranged comparison value if(main::b#1!=rangelast(main::b#0,main::BITMAP#0)) goto main::@1 to (byte*)(const byte*) main::BITMAP#0-(byte/signed byte/word/signed word/dword/signed dword) 1 -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte*) main::b#0 Constant inlined main::b#0 = (const byte*) main::BITMAP#0+(word/signed word/dword/signed dword) 8191 Successful SSA optimization Pass2ConstantInlining diff --git a/src/test/java/dk/camelot64/kickc/test/ref/fragment-synth.log b/src/test/java/dk/camelot64/kickc/test/ref/fragment-synth.log index 68bbad031..c7af6cf03 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/fragment-synth.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/fragment-synth.log @@ -198,7 +198,6 @@ SYMBOL TABLE SSA (byte*) main::z#1 (byte*) main::z#2 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @3 Successful SSA optimization Pass2CullEmptyBlocks Alias (byte) fct::return#0 = (byte) fct::return#4 @@ -226,7 +225,6 @@ Consolidated array index constant in *(main::z#0+3) Consolidated array index constant in *(main::screen#0+0) Consolidated array index constant in *(main::screen#0+1) Successful SSA optimization Pass2ConstantAdditionElimination -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with different constant siblings (const byte*) main::z#0 Inlining constant with different constant siblings (const byte) main::x#0 Inlining constant with different constant siblings (const byte) main::x#1 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/halfscii.log b/src/test/java/dk/camelot64/kickc/test/ref/halfscii.log index aeeec7cd4..757f8de4c 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/halfscii.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/halfscii.log @@ -642,7 +642,6 @@ SYMBOL TABLE SSA (byte) main::i#1 (byte) main::i#2 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks Inversing boolean not (bool~) main::$8 ← (byte) main::bits#0 < (byte/signed byte/word/signed word/dword/signed dword) 2 from (bool~) main::$7 ← (byte) main::bits#0 >= (byte/signed byte/word/signed word/dword/signed dword) 2 @@ -747,7 +746,6 @@ Constant (const byte*) main::$38 = CHARGEN#0+2048 Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value main::i#1 ← ++ main::i#2 to ++ Resolved ranged comparison value if(main::i#1!=rangelast(0,255)) goto main::@6 to (byte/signed byte/word/signed word/dword/signed dword) 0 -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte) main::bits_gen#0 Inlining constant with var siblings (const byte) main::i#0 Inlining constant with var siblings (const byte*) main::chargen#0 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/helloworld.log b/src/test/java/dk/camelot64/kickc/test/ref/helloworld.log index 23c7e8c3d..6fca15b2d 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/helloworld.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/helloworld.log @@ -740,7 +740,6 @@ SYMBOL TABLE SSA (byte*) print_str::str#3 (byte*) print_str::str#4 -OPTIMIZING CONTROL FLOW GRAPH Alias (byte*) print_char_cursor#0 = (byte*) print_line_cursor#0 (byte*) print_screen#0 (byte*) print_char_cursor#20 (byte*) print_line_cursor#14 Alias (byte*) print_str::str#2 = (byte*) print_str::str#3 Alias (byte*) print_char_cursor#10 = (byte*) print_char_cursor#9 (byte*) print_char_cursor#17 (byte*) print_char_cursor#2 @@ -777,7 +776,6 @@ Culled Empty Block (label) print_ln::@2 Culled Empty Block (label) main::@2 Culled Empty Block (label) @16 Successful SSA optimization Pass2CullEmptyBlocks -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte*) print_str::str#1 Inlining constant with var siblings (const byte*) print_char_cursor#0 Constant inlined print_char_cursor#0 = ((byte*))(word/signed word/dword/signed dword) 1024 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/helloworld2.log b/src/test/java/dk/camelot64/kickc/test/ref/helloworld2.log index 5fc1480df..fec2cdf66 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/helloworld2.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/helloworld2.log @@ -178,7 +178,6 @@ SYMBOL TABLE SSA (byte*) screen#2 (byte*) screen#3 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) main::@2 Culled Empty Block (label) @3 Successful SSA optimization Pass2CullEmptyBlocks @@ -206,7 +205,6 @@ Constant (const byte*) print2::msg#0 = main::hello#0 Constant (const byte*) print2::at#1 = screen#0+80 Constant (const byte*) print2::msg#1 = main::hello#0 Successful SSA optimization Pass2ConstantIdentification -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte) print2::j#0 Inlining constant with var siblings (const byte) print2::i#0 Inlining constant with var siblings (const byte*) print2::at#0 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/ifmin.log b/src/test/java/dk/camelot64/kickc/test/ref/ifmin.log index 5a9d26e94..9d95bf316 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/ifmin.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/ifmin.log @@ -131,7 +131,6 @@ SYMBOL TABLE SSA (byte) main::i#3 (byte) main::i#4 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks Inversing boolean not (bool~) main::$1 ← (byte) main::i#2 >= (byte/signed byte/word/signed word/dword/signed dword) 50 from (bool~) main::$0 ← (byte) main::i#2 < (byte/signed byte/word/signed word/dword/signed dword) 50 @@ -154,7 +153,6 @@ Successful SSA optimization Pass2ConditionalJumpSimplification Constant (const byte*) SCREEN#0 = ((byte*))1024 Constant (const byte) main::i#0 = 0 Successful SSA optimization Pass2ConstantIdentification -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte) main::i#0 Constant inlined main::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Successful SSA optimization Pass2ConstantInlining diff --git a/src/test/java/dk/camelot64/kickc/test/ref/immzero.log b/src/test/java/dk/camelot64/kickc/test/ref/immzero.log index f18183dee..b5011b625 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/immzero.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/immzero.log @@ -104,7 +104,6 @@ SYMBOL TABLE SSA (word) main::w#1 (word) main::w#2 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks Alias (word) main::w#0 = (byte/signed byte/word/signed word/dword/signed dword~) main::$0 @@ -117,7 +116,6 @@ Constant (const byte) main::j#0 = 0 Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value main::j#1 ← ++ main::j#2 to ++ Resolved ranged comparison value if(main::j#1!=rangelast(0,10)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) 11 -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const word) main::w#0 Inlining constant with var siblings (const byte) main::j#0 Constant inlined main::w#0 = ((word))(byte/signed byte/word/signed word/dword/signed dword) 0 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/importing.log b/src/test/java/dk/camelot64/kickc/test/ref/importing.log index 3d9b3c805..3d6762224 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/importing.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/importing.log @@ -79,14 +79,12 @@ SYMBOL TABLE SSA (byte*) main::screen (byte*) main::screen#0 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks Constant (const byte*) BGCOL#0 = ((byte*))53281 Constant (const byte) RED#0 = 2 Constant (const byte*) main::screen#0 = ((byte*))1024 Successful SSA optimization Pass2ConstantIdentification -OPTIMIZING CONTROL FLOW GRAPH Adding NOP phi() at start of @begin Adding NOP phi() at start of @1 Adding NOP phi() at start of @end diff --git a/src/test/java/dk/camelot64/kickc/test/ref/incd020.log b/src/test/java/dk/camelot64/kickc/test/ref/incd020.log index 3f4336b5b..36b030c85 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/incd020.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/incd020.log @@ -88,7 +88,6 @@ SYMBOL TABLE SSA (label) main::@1 (label) main::@return -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks Alias (byte*) BGCOL#0 = (byte*) BGCOL#3 @@ -104,7 +103,6 @@ if() condition always true - replacing block destination if(true) goto main::@1 Successful SSA optimization Pass2ConstantIfs Removing unused block main::@return Successful SSA optimization Pass2EliminateUnusedBlocks -OPTIMIZING CONTROL FLOW GRAPH Adding NOP phi() at start of @begin Adding NOP phi() at start of @1 Adding NOP phi() at start of @end diff --git a/src/test/java/dk/camelot64/kickc/test/ref/incrementinarray.log b/src/test/java/dk/camelot64/kickc/test/ref/incrementinarray.log index f162d6111..5a178c699 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/incrementinarray.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/incrementinarray.log @@ -862,7 +862,6 @@ SYMBOL TABLE SSA (byte[]) txt (byte[]) txt#0 -OPTIMIZING CONTROL FLOW GRAPH Alias (byte*) print_line_cursor#0 = (byte*) print_screen#0 (byte*) print_char_cursor#0 (byte*) print_line_cursor#22 (byte*) print_char_cursor#28 (byte*) print_screen#6 (byte*) print_line_cursor#20 (byte*) print_char_cursor#26 (byte*) print_screen#5 Alias (byte*) print_str::str#2 = (byte*) print_str::str#3 Alias (byte*) print_char_cursor#12 = (byte*) print_char_cursor#22 (byte*) print_char_cursor#13 (byte*) print_char_cursor#2 @@ -923,7 +922,6 @@ Culled Empty Block (label) @14 Culled Empty Block (label) main::@3 Culled Empty Block (label) @16 Successful SSA optimization Pass2CullEmptyBlocks -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte*) print_str::str#1 Inlining constant with var siblings (const byte*) print_cls::sc#0 Inlining constant with var siblings (const byte) main::i#0 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/inline-asm.log b/src/test/java/dk/camelot64/kickc/test/ref/inline-asm.log index 540c448fa..920122351 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/inline-asm.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/inline-asm.log @@ -63,10 +63,8 @@ SYMBOL TABLE SSA (void()) main() (label) main::@return -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks -OPTIMIZING CONTROL FLOW GRAPH Adding NOP phi() at start of @begin Adding NOP phi() at start of @1 Adding NOP phi() at start of @end diff --git a/src/test/java/dk/camelot64/kickc/test/ref/inline-assignment.log b/src/test/java/dk/camelot64/kickc/test/ref/inline-assignment.log index 1a757ef97..0ad31a09f 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/inline-assignment.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/inline-assignment.log @@ -100,7 +100,6 @@ SYMBOL TABLE SSA (byte) main::i#1 (byte) main::i#2 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks Alias (byte) main::a#0 = (byte) main::i#2 @@ -114,7 +113,6 @@ Constant (const byte*) main::$0 = SCREEN#0+80 Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value main::i#1 ← ++ main::a#0 to ++ Resolved ranged comparison value if(main::i#1!=rangelast(0,39)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) 40 -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte) main::i#0 Constant inlined main::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined main::$0 = (const byte*) SCREEN#0+(byte/signed byte/word/signed word/dword/signed dword) 80 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/inline-function-if.log b/src/test/java/dk/camelot64/kickc/test/ref/inline-function-if.log index c755e744e..fb443fd46 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/inline-function-if.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/inline-function-if.log @@ -241,7 +241,6 @@ SYMBOL TABLE SSA (byte*) screen#8 (byte*) screen#9 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @3 Successful SSA optimization Pass2CullEmptyBlocks Alias (byte) main::toUpper1_ch#0 = (byte) main::toUpper1_ch#1 (byte) main::toUpper1_res#0 (byte) main::toUpper1_res#3 @@ -297,7 +296,6 @@ Successful SSA optimization PassNEliminateUnusedVars Culled Empty Block (label) main::toUpper1_@1 Culled Empty Block (label) main::toUpper2_@1 Successful SSA optimization Pass2CullEmptyBlocks -OPTIMIZING CONTROL FLOW GRAPH Simplifying constant plus zero screen#0+0 Adding NOP phi() at start of @begin Adding NOP phi() at start of @2 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/inline-function-level2.log b/src/test/java/dk/camelot64/kickc/test/ref/inline-function-level2.log index 040a730f7..fd3c05057 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/inline-function-level2.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/inline-function-level2.log @@ -412,7 +412,6 @@ SYMBOL TABLE SSA (byte*) main::sc#1 (byte*) main::sc#2 -OPTIMIZING CONTROL FLOW GRAPH Alias (byte) main::line1_xpos#0 = (byte) main::line1_xpos#1 Alias (byte) main::line1_ch#0 = (byte) main::line1_ch#3 Alias (byte) main::line1_xadd#0 = (byte) main::line1_xadd#4 @@ -498,7 +497,6 @@ Successful SSA optimization Pass2AliasElimination Constant (const word) main::line1_pos#0 = main::line1_xpos#0*256+0 Constant (const word) main::line2_pos#0 = main::line2_xpos#0*256+0 Successful SSA optimization Pass2ConstantIdentification -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte*) main::sc#0 Inlining constant with var siblings (const byte) main::line1_i#0 Inlining constant with var siblings (const byte) main::line2_i#0 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/inline-function-min.log b/src/test/java/dk/camelot64/kickc/test/ref/inline-function-min.log index cf24442d3..cf33af246 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/inline-function-min.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/inline-function-min.log @@ -230,7 +230,6 @@ SYMBOL TABLE SSA (byte*) screen#8 (byte*) screen#9 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @3 Successful SSA optimization Pass2CullEmptyBlocks Alias (byte) main::sum1_a#0 = (byte) main::sum1_a#1 @@ -267,7 +266,6 @@ Culled Empty Block (label) main::sum1_@return Culled Empty Block (label) main::sum2_@return Culled Empty Block (label) main::sum3_@return Successful SSA optimization Pass2CullEmptyBlocks -OPTIMIZING CONTROL FLOW GRAPH Simplifying constant plus zero screen#0+0 Adding NOP phi() at start of @begin Adding NOP phi() at start of @2 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/inline-function-print.log b/src/test/java/dk/camelot64/kickc/test/ref/inline-function-print.log index 2629641b8..4fe893489 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/inline-function-print.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/inline-function-print.log @@ -227,7 +227,6 @@ SYMBOL TABLE SSA (byte*) screen#4 (byte*) screen#5 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @3 Successful SSA optimization Pass2CullEmptyBlocks Alias (byte*) main::print1_msg#0 = (byte*) main::hello#0 (byte*) main::print1_msg#2 (byte*) main::hello#3 @@ -269,7 +268,6 @@ Constant (const byte*) main::print2_at#0 = screen#0+main::$1 Successful SSA optimization Pass2ConstantIdentification Culled Empty Block (label) main::@1 Successful SSA optimization Pass2CullEmptyBlocks -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte) main::print1_j#0 Inlining constant with var siblings (const byte) main::print1_i#0 Inlining constant with var siblings (const byte) main::print2_j#0 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/inline-function.log b/src/test/java/dk/camelot64/kickc/test/ref/inline-function.log index aaaac6057..dff5ab125 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/inline-function.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/inline-function.log @@ -559,7 +559,6 @@ SYMBOL TABLE SSA (byte*) screen#8 (byte*) screen#9 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @3 Successful SSA optimization Pass2CullEmptyBlocks Alias (byte*) RASTER#3 = (byte*) RASTER#7 @@ -684,7 +683,6 @@ Culled Empty Block (label) main::@1 Culled Empty Block (label) main::@6 Culled Empty Block (label) main::@9 Successful SSA optimization Pass2CullEmptyBlocks -OPTIMIZING CONTROL FLOW GRAPH Constant inlined main::toD0181_screen#0 = (const byte*) screen#0 Constant inlined main::toD0182_charset#0 = (const byte*) charset2#0 Constant inlined main::toD0181_$3#0 = (word)(const byte*) charset1#0/(word/signed word/dword/signed dword) 1024 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/inline-string-2.log b/src/test/java/dk/camelot64/kickc/test/ref/inline-string-2.log index dc5a354d3..ad92d79bc 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/inline-string-2.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/inline-string-2.log @@ -291,7 +291,6 @@ SYMBOL TABLE SSA (byte*) screen#8 (byte*) screen#9 -OPTIMIZING CONTROL FLOW GRAPH Alias (byte*) screen#0 = (byte*) screen#9 Alias (byte*) screen#1 = (byte*) screen#10 (byte*) screen#11 (byte*) screen#2 Alias (byte*) screen#21 = (byte*) screen#24 (byte*) screen#22 @@ -326,7 +325,6 @@ Culled Empty Block (label) print_msg::@5 Culled Empty Block (label) @2 Culled Empty Block (label) @4 Successful SSA optimization Pass2CullEmptyBlocks -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte) print_msg::idx#0 Inlining constant with var siblings (const byte) print_msg::idx#1 Inlining constant with var siblings (const byte*) print_msg::msg#0 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/inline-string-3.log b/src/test/java/dk/camelot64/kickc/test/ref/inline-string-3.log index 2150e4ea6..1949c4b4b 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/inline-string-3.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/inline-string-3.log @@ -108,7 +108,6 @@ SYMBOL TABLE SSA (byte*) main::ptr (byte*) main::ptr#0 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks Alias (byte*) main::ptr#0 = (byte*~) main::$4 @@ -126,7 +125,6 @@ Fixing inline constructor with main::$6 ← *(main::$3) w= *(main::PTR#0) Successful SSA optimization Pass2FixInlineConstructors Eliminating Noop Cast (byte*) main::ptr#0 ← ((byte*)) (word~) main::$6 Successful SSA optimization Pass2NopCastElimination -OPTIMIZING CONTROL FLOW GRAPH Constant inlined main::$5 = (const byte[]) main::STRING#0 Constant inlined main::$3 = (const byte*) main::PTR#0+(byte/signed byte/word/signed word/dword/signed dword) 1 Constant inlined main::$1 = (const byte*) main::PTR#0+(byte/signed byte/word/signed word/dword/signed dword) 1 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/inline-string.log b/src/test/java/dk/camelot64/kickc/test/ref/inline-string.log index a1b501096..aa1c8f2cb 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/inline-string.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/inline-string.log @@ -222,7 +222,6 @@ SYMBOL TABLE SSA (byte*) screen#8 (byte*) screen#9 -OPTIMIZING CONTROL FLOW GRAPH Alias (byte*) screen#0 = (byte*) screen#8 Alias (byte*) screen#1 = (byte*) screen#9 Alias (byte*) screen#10 = (byte*) screen#2 (byte*) screen#11 (byte*) screen#3 @@ -251,7 +250,6 @@ Culled Empty Block (label) main::@3 Culled Empty Block (label) @1 Culled Empty Block (label) @3 Successful SSA optimization Pass2CullEmptyBlocks -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte*) print::msg#2 Inlining constant with var siblings (const byte*) print::msg#0 Inlining constant with var siblings (const byte*) print::msg#1 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/inline-word.log b/src/test/java/dk/camelot64/kickc/test/ref/inline-word.log index cab5409f0..e09179269 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/inline-word.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/inline-word.log @@ -164,7 +164,6 @@ SYMBOL TABLE SSA (word) main::w (word) main::w#0 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks Alias (byte*) main::sc#0 = (byte*~) main::$5 @@ -200,7 +199,6 @@ Resolved ranged next value main::h#1 ← ++ main::h#4 to ++ Resolved ranged comparison value if(main::h#1!=rangelast(0,2)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) 3 Alias (word) main::w#0 = (word~) main::$8 Successful SSA optimization Pass2AliasElimination -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte) main::h#0 Inlining constant with var siblings (const byte) main::l#0 Constant inlined main::$1 = (const byte*) SCREEN#0+(word/signed word/dword/signed dword) 256 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/inlinearrayproblem.log b/src/test/java/dk/camelot64/kickc/test/ref/inlinearrayproblem.log index 067754c29..a07ddfa3e 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/inlinearrayproblem.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/inlinearrayproblem.log @@ -131,7 +131,6 @@ SYMBOL TABLE SSA (byte[]) main::txt (byte[]) main::txt#0 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks Alias (byte*) SCREEN#0 = (byte*) SCREEN#3 @@ -157,7 +156,6 @@ Constant (const byte*) SCREEN2#0 = ((byte*))$0 Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value main::i#1 ← ++ main::i#2 to ++ Resolved ranged comparison value if(main::i#1!=rangelast(0,3)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) 4 -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte) main::i#0 Constant inlined $0 = (word/signed word/dword/signed dword) 1024+(byte/signed byte/word/signed word/dword/signed dword) 40 Constant inlined main::$1 = (const byte[]) main::txt#0 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/inmem-const-array.log b/src/test/java/dk/camelot64/kickc/test/ref/inmem-const-array.log index 72b0f1a14..77b5e5be2 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/inmem-const-array.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/inmem-const-array.log @@ -194,7 +194,6 @@ SYMBOL TABLE SSA (byte*) main::screen#2 (byte*) main::screen#3 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks Inversing boolean not (bool~) main::$1 ← (byte) main::j#1 != (byte/signed byte/word/signed word/dword/signed dword) 3 from (bool~) main::$0 ← (byte) main::j#1 == (byte/signed byte/word/signed word/dword/signed dword) 3 @@ -235,7 +234,6 @@ Constant (const byte[]) main::colseq#0 = { WHITE#0, RED#0, GREEN#0 } Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value main::i#1 ← ++ main::i#2 to ++ Resolved ranged comparison value if(main::i#1!=rangelast(0,39)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) 40 -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte) main::j#0 Inlining constant with var siblings (const byte) main::i#0 Inlining constant with var siblings (const byte) main::j#2 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/inmemarray.log b/src/test/java/dk/camelot64/kickc/test/ref/inmemarray.log index 22587e8c8..785143a69 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/inmemarray.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/inmemarray.log @@ -152,7 +152,6 @@ SYMBOL TABLE SSA (byte) main::j#3 (byte) main::j#4 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks Inversing boolean not (bool~) main::$1 ← (byte) main::j#1 != (byte/signed byte/word/signed word/dword/signed dword) 8 from (bool~) main::$0 ← (byte) main::j#1 == (byte/signed byte/word/signed word/dword/signed dword) 8 @@ -180,7 +179,6 @@ Constant (const byte) main::j#2 = 0 Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value main::i#1 ← ++ main::i#2 to ++ Resolved ranged comparison value if(main::i#1!=rangelast(0,100)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) 101 -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte) main::j#0 Inlining constant with var siblings (const byte) main::i#0 Inlining constant with var siblings (const byte) main::j#2 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/inmemstring.log b/src/test/java/dk/camelot64/kickc/test/ref/inmemstring.log index 5e0dd350f..cde039cab 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/inmemstring.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/inmemstring.log @@ -159,7 +159,6 @@ SYMBOL TABLE SSA (byte) main::i#3 (byte) main::i#4 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks Inversing boolean not (bool~) main::$1 ← (byte) main::i#1 != (byte/signed byte/word/signed word/dword/signed dword) 8 from (bool~) main::$0 ← (byte) main::i#1 == (byte/signed byte/word/signed word/dword/signed dword) 8 @@ -187,7 +186,6 @@ Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) main::cursor#0 = SCREEN#0 Constant (const byte*) main::$2 = SCREEN#0+1000 Successful SSA optimization Pass2ConstantIdentification -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte) main::i#0 Inlining constant with var siblings (const byte) main::i#2 Inlining constant with var siblings (const byte*) main::cursor#0 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/irq-hardware-clobber-jsr.log b/src/test/java/dk/camelot64/kickc/test/ref/irq-hardware-clobber-jsr.log index b60f0f848..0842824c3 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/irq-hardware-clobber-jsr.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/irq-hardware-clobber-jsr.log @@ -703,7 +703,6 @@ interrupt(HARDWARE_CLOBBER)(void()) irq() (label) main::@2 (label) main::@return -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) irq::@1 Culled Empty Block (label) @7 Successful SSA optimization Pass2CullEmptyBlocks @@ -731,7 +730,6 @@ Removing unused block main::@return Successful SSA optimization Pass2EliminateUnusedBlocks Culled Empty Block (label) main::@1 Successful SSA optimization Pass2CullEmptyBlocks -OPTIMIZING CONTROL FLOW GRAPH Constant inlined main::$0 = &interrupt(HARDWARE_CLOBBER)(void()) irq() Successful SSA optimization Pass2ConstantInlining Adding NOP phi() at start of @begin diff --git a/src/test/java/dk/camelot64/kickc/test/ref/irq-hardware-clobber.log b/src/test/java/dk/camelot64/kickc/test/ref/irq-hardware-clobber.log index 0f14d8bef..b7afe43e8 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/irq-hardware-clobber.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/irq-hardware-clobber.log @@ -287,7 +287,6 @@ interrupt(HARDWARE_CLOBBER)(void()) irq() (label) main::@2 (label) main::@return -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @3 Successful SSA optimization Pass2CullEmptyBlocks Constant (const void()**) HARDWARE_IRQ#0 = ((void()**))65534 @@ -314,7 +313,6 @@ Removing unused block main::@return Successful SSA optimization Pass2EliminateUnusedBlocks Culled Empty Block (label) main::@1 Successful SSA optimization Pass2CullEmptyBlocks -OPTIMIZING CONTROL FLOW GRAPH Constant inlined main::$0 = &interrupt(HARDWARE_CLOBBER)(void()) irq() Successful SSA optimization Pass2ConstantInlining Adding NOP phi() at start of @begin diff --git a/src/test/java/dk/camelot64/kickc/test/ref/irq-hardware.log b/src/test/java/dk/camelot64/kickc/test/ref/irq-hardware.log index 49ecc4ebc..1d84433d3 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/irq-hardware.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/irq-hardware.log @@ -287,7 +287,6 @@ interrupt(HARDWARE_ALL)(void()) irq() (label) main::@2 (label) main::@return -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @3 Successful SSA optimization Pass2CullEmptyBlocks Constant (const void()**) HARDWARE_IRQ#0 = ((void()**))65534 @@ -314,7 +313,6 @@ Removing unused block main::@return Successful SSA optimization Pass2EliminateUnusedBlocks Culled Empty Block (label) main::@1 Successful SSA optimization Pass2CullEmptyBlocks -OPTIMIZING CONTROL FLOW GRAPH Constant inlined main::$0 = &interrupt(HARDWARE_ALL)(void()) irq() Successful SSA optimization Pass2ConstantInlining Adding NOP phi() at start of @begin diff --git a/src/test/java/dk/camelot64/kickc/test/ref/irq-hyperscreen.log b/src/test/java/dk/camelot64/kickc/test/ref/irq-hyperscreen.log index 4ccee7144..1c388bc82 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/irq-hyperscreen.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/irq-hyperscreen.log @@ -288,7 +288,6 @@ interrupt(KERNEL_KEYBOARD)(void()) irq_bottom_2() (void()*~) main::$0 (label) main::@return -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @4 Successful SSA optimization Pass2CullEmptyBlocks Constant (const void()**) KERNEL_IRQ#0 = ((void()**))788 @@ -310,7 +309,6 @@ Constant (const void()*) irq_bottom_2::$0 = &irq_bottom_1 Successful SSA optimization Pass2ConstantIdentification Constant (const byte/word/dword) irq_bottom_1::$0 = 255^VIC_RSEL#0 Successful SSA optimization Pass2ConstantIdentification -OPTIMIZING CONTROL FLOW GRAPH Constant inlined irq_bottom_2::$0 = &interrupt(KERNEL_MIN)(void()) irq_bottom_1() Constant inlined irq_bottom_1::$0 = (byte/word/signed word/dword/signed dword) 255^(const byte) VIC_RSEL#0 Constant inlined main::$0 = &interrupt(KERNEL_MIN)(void()) irq_bottom_1() diff --git a/src/test/java/dk/camelot64/kickc/test/ref/irq-kernel.log b/src/test/java/dk/camelot64/kickc/test/ref/irq-kernel.log index 5effa11e5..04d7f38d2 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/irq-kernel.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/irq-kernel.log @@ -199,7 +199,6 @@ interrupt(KERNEL_KEYBOARD)(void()) irq() (void()*~) main::$0 (label) main::@return -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @3 Successful SSA optimization Pass2CullEmptyBlocks Constant (const void()**) KERNEL_IRQ#0 = ((void()**))788 @@ -215,7 +214,6 @@ Constant (const byte*) CIA1_INTERRUPT#0 = ((byte*))56333 Constant (const byte) CIA_INTERRUPT_CLEAR#0 = 127 Constant (const void()*) main::$0 = &irq Successful SSA optimization Pass2ConstantIdentification -OPTIMIZING CONTROL FLOW GRAPH Constant inlined main::$0 = &interrupt(KERNEL_KEYBOARD)(void()) irq() Successful SSA optimization Pass2ConstantInlining Adding NOP phi() at start of @begin diff --git a/src/test/java/dk/camelot64/kickc/test/ref/irq-raster.log b/src/test/java/dk/camelot64/kickc/test/ref/irq-raster.log index ec77cd7e2..c03204f21 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/irq-raster.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/irq-raster.log @@ -199,7 +199,6 @@ interrupt(KERNEL_MIN)(void()) irq() (void()*~) main::$0 (label) main::@return -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @3 Successful SSA optimization Pass2CullEmptyBlocks Constant (const void()**) KERNEL_IRQ#0 = ((void()**))788 @@ -215,7 +214,6 @@ Constant (const byte*) CIA1_INTERRUPT#0 = ((byte*))56333 Constant (const byte) CIA_INTERRUPT_CLEAR#0 = 127 Constant (const void()*) main::$0 = &irq Successful SSA optimization Pass2ConstantIdentification -OPTIMIZING CONTROL FLOW GRAPH Constant inlined main::$0 = &interrupt(KERNEL_MIN)(void()) irq() Successful SSA optimization Pass2ConstantInlining Adding NOP phi() at start of @begin diff --git a/src/test/java/dk/camelot64/kickc/test/ref/iterarray.log b/src/test/java/dk/camelot64/kickc/test/ref/iterarray.log index 9c32d72dc..456c85b5f 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/iterarray.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/iterarray.log @@ -100,7 +100,6 @@ SYMBOL TABLE SSA (byte) main::i#1 (byte) main::i#2 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks Alias (byte) main::i#1 = (byte/signed word/word/dword/signed dword~) main::$2 @@ -115,7 +114,6 @@ Successful SSA optimization Pass2ConstantAdditionElimination Inferred type updated to byte in (byte/signed word/word/dword/signed dword~) main::$0 ← (byte) main::i#2 Alias (byte) main::i#2 = (byte~) main::$0 Successful SSA optimization Pass2AliasElimination -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte) main::i#0 Constant inlined main::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 5 Successful SSA optimization Pass2ConstantInlining diff --git a/src/test/java/dk/camelot64/kickc/test/ref/keyboard-glitch.log b/src/test/java/dk/camelot64/kickc/test/ref/keyboard-glitch.log index 946cde40b..1e28837f7 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/keyboard-glitch.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/keyboard-glitch.log @@ -1839,7 +1839,6 @@ SYMBOL TABLE SSA (label) pressed::@4 (label) pressed::@return -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) menu::@18 Culled Empty Block (label) pressed::@4 Culled Empty Block (label) @14 @@ -1908,7 +1907,6 @@ Culled Empty Block (label) @11 Culled Empty Block (label) menu::@1 Culled Empty Block (label) pressed::@1 Successful SSA optimization Pass2CullEmptyBlocks -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte) keyboard_key_pressed::key#0 Inlining constant with var siblings (const byte) keyboard_key_pressed::key#1 Inlining constant with var siblings (const byte) keyboard_key_pressed::key#2 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/line-anim.log b/src/test/java/dk/camelot64/kickc/test/ref/line-anim.log index ff8787f82..98000a447 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/line-anim.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/line-anim.log @@ -3042,7 +3042,6 @@ SYMBOL TABLE SSA (byte[4]) y_start (byte[4]) y_start#0 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) main::@3 Culled Empty Block (label) main::@6 Culled Empty Block (label) @19 @@ -3347,7 +3346,6 @@ Successful SSA optimization Pass2ConditionalJumpSimplification Consolidated array index constant in *(bitmap_plot_yhi#0+0) Consolidated array index constant in *(bitmap_plot_ylo#0+0) Successful SSA optimization Pass2ConstantAdditionElimination -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const word) divr16u::quotient#0 Inlining constant with var siblings (const byte) divr16u::i#0 Inlining constant with var siblings (const byte) divr16s::neg#0 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/linegen.log b/src/test/java/dk/camelot64/kickc/test/ref/linegen.log index 0020a9847..fa40c3e8e 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/linegen.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/linegen.log @@ -2548,7 +2548,6 @@ SYMBOL TABLE SSA (word) rem16u#8 (word) rem16u#9 -OPTIMIZING CONTROL FLOW GRAPH Inversing boolean not (bool~) divr16u::$4 ← (byte~) divr16u::$2 == (byte/signed byte/word/signed word/dword/signed dword) 0 from (bool~) divr16u::$3 ← (byte~) divr16u::$2 != (byte/signed byte/word/signed word/dword/signed dword) 0 Inversing boolean not (bool~) divr16u::$9 ← (word) divr16u::rem#6 < (word) divr16u::divisor#2 from (bool~) divr16u::$8 ← (word) divr16u::rem#6 >= (word) divr16u::divisor#2 Successful SSA optimization Pass2UnaryNotSimplification @@ -2794,7 +2793,6 @@ Successful SSA optimization Pass2CullEmptyBlocks Alias (dword) lin16u_gen::step#0 = (dword~) lin16u_gen::$9 Alias (dword) lin16u_gen::val#0 = (dword~) lin16u_gen::$10 Successful SSA optimization Pass2AliasElimination -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const word) divr16u::quotient#0 Inlining constant with var siblings (const byte) divr16u::i#0 Inlining constant with var siblings (const word) divr16u::rem#3 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/literals.log b/src/test/java/dk/camelot64/kickc/test/ref/literals.log index e72b515f6..ee3e3f167 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/literals.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/literals.log @@ -156,7 +156,6 @@ SYMBOL TABLE SSA (byte[]) str (byte[]) str#0 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks Alias (byte[]) str#0 = (string~) $1 @@ -197,7 +196,6 @@ Resolved ranged next value main::i#1 ← ++ main::i#2 to ++ Resolved ranged comparison value if(main::i#1!=rangelast(0,3)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) 4 Alias (byte) main::i#2 = (byte~) main::$0 (byte~) main::$1 Successful SSA optimization Pass2AliasElimination -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte) main::i#0 Constant inlined main::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Successful SSA optimization Pass2ConstantInlining diff --git a/src/test/java/dk/camelot64/kickc/test/ref/liverange-call-problem.log b/src/test/java/dk/camelot64/kickc/test/ref/liverange-call-problem.log index 8d18b964d..c11f7452e 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/liverange-call-problem.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/liverange-call-problem.log @@ -143,11 +143,9 @@ SYMBOL TABLE SSA (label) main::@4 (label) main::@return -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) main::@4 Culled Empty Block (label) @4 Successful SSA optimization Pass2CullEmptyBlocks -OPTIMIZING CONTROL FLOW GRAPH Adding NOP phi() at start of @begin Adding NOP phi() at start of @3 Adding NOP phi() at start of @end diff --git a/src/test/java/dk/camelot64/kickc/test/ref/liverange.log b/src/test/java/dk/camelot64/kickc/test/ref/liverange.log index c4b255530..4752a5aa7 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/liverange.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/liverange.log @@ -195,7 +195,6 @@ SYMBOL TABLE SSA (byte) main::a#3 (byte) main::a#4 -OPTIMIZING CONTROL FLOW GRAPH Alias (byte) inci::return#0 = (byte) inci::return#4 Alias (byte) main::a#0 = (byte) main::a#3 Alias (byte) i#1 = (byte) i#7 @@ -221,7 +220,6 @@ Constant (const byte*) main::$4 = main::SCREEN#0+1 Successful SSA optimization Pass2ConstantIdentification Culled Empty Block (label) @3 Successful SSA optimization Pass2CullEmptyBlocks -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte) main::a#0 Inlining constant with var siblings (const byte) i#0 Constant inlined main::a#0 = (byte/signed byte/word/signed word/dword/signed dword) 4 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/local-string.log b/src/test/java/dk/camelot64/kickc/test/ref/local-string.log index 81d82a96a..6c63aca59 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/local-string.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/local-string.log @@ -123,7 +123,6 @@ SYMBOL TABLE SSA (byte*) main::screen#1 (byte*) main::screen#2 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks Alias (byte) main::i#2 = (byte) main::i#3 @@ -139,7 +138,6 @@ Constant (const byte*) main::screen#0 = ((byte*))1024 Constant (const byte[]) main::msg#0 = main::$1 Constant (const byte) main::i#0 = 0 Successful SSA optimization Pass2ConstantIdentification -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte) main::i#0 Constant inlined main::$1 = (const byte[]) main::msg#0 Constant inlined main::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/longjump.log b/src/test/java/dk/camelot64/kickc/test/ref/longjump.log index af4a0e864..f8892fc87 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/longjump.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/longjump.log @@ -351,7 +351,6 @@ SYMBOL TABLE SSA (byte) main::i#1 (byte) main::i#2 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks Self Phi Eliminated (byte*) main::SCREEN#1 @@ -365,7 +364,6 @@ Constant (const byte) main::i#0 = 0 Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value main::i#1 ← ++ main::i#2 to ++ Resolved ranged comparison value if(main::i#1!=rangelast(0,10)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) 11 -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte) main::i#0 Constant inlined main::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Successful SSA optimization Pass2ConstantInlining diff --git a/src/test/java/dk/camelot64/kickc/test/ref/longjump2.log b/src/test/java/dk/camelot64/kickc/test/ref/longjump2.log index fb35e6b3d..f0198ff6a 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/longjump2.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/longjump2.log @@ -710,7 +710,6 @@ SYMBOL TABLE SSA (label) main::@2 (label) main::@return -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) main::@2 Culled Empty Block (label) @4 Successful SSA optimization Pass2CullEmptyBlocks @@ -732,7 +731,6 @@ Resolved ranged next value long1::i#1 ← ++ long1::i#2 to ++ Resolved ranged comparison value if(long1::i#1!=rangelast(0,10)) goto long1::@1 to (byte/signed byte/word/signed word/dword/signed dword) 11 Resolved ranged next value long2::i#1 ← ++ long2::i#2 to ++ Resolved ranged comparison value if(long2::i#1!=rangelast(0,10)) goto long2::@1 to (byte/signed byte/word/signed word/dword/signed dword) 11 -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte) long1::i#0 Inlining constant with var siblings (const byte) long2::i#0 Constant inlined long1::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/loop-problem.log b/src/test/java/dk/camelot64/kickc/test/ref/loop-problem.log index 9017073d5..1649e4a82 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/loop-problem.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/loop-problem.log @@ -178,7 +178,6 @@ SYMBOL TABLE SSA (label) main::@2 (label) main::@return -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) main::@2 Culled Empty Block (label) @4 Successful SSA optimization Pass2CullEmptyBlocks @@ -202,7 +201,6 @@ Constant (const byte) b::i#0 = 0 Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value b::i#1 ← ++ b::i#2 to ++ Resolved ranged comparison value if(b::i#1!=rangelast(0,3)) goto b::@1 to (byte/signed byte/word/signed word/dword/signed dword) 4 -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte) b::i#0 Constant inlined b::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Successful SSA optimization Pass2ConstantInlining diff --git a/src/test/java/dk/camelot64/kickc/test/ref/loop-problem2.log b/src/test/java/dk/camelot64/kickc/test/ref/loop-problem2.log index fddb44fe5..8c537ba58 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/loop-problem2.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/loop-problem2.log @@ -232,7 +232,6 @@ SYMBOL TABLE SSA (byte*) print_cls::sc#1 (byte*) print_cls::sc#2 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) main::@2 Culled Empty Block (label) @4 Successful SSA optimization Pass2CullEmptyBlocks @@ -251,7 +250,6 @@ Removing unused block mode_ctrl::@return Successful SSA optimization Pass2EliminateUnusedBlocks Culled Empty Block (label) mode_ctrl::@1 Successful SSA optimization Pass2CullEmptyBlocks -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte*) print_cls::sc#0 Constant inlined print_cls::$0 = (const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1000 Constant inlined print_cls::sc#0 = (const byte*) SCREEN#0 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/loop100.log b/src/test/java/dk/camelot64/kickc/test/ref/loop100.log index fb3558797..fe67670aa 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/loop100.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/loop100.log @@ -77,14 +77,12 @@ SYMBOL TABLE SSA (byte) main::i#1 (byte) main::i#2 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks Simple Condition (bool~) main::$0 if((byte) main::i#1<(byte/signed byte/word/signed word/dword/signed dword) 100) goto main::@1 Successful SSA optimization Pass2ConditionalJumpSimplification Constant (const byte) main::i#0 = 0 Successful SSA optimization Pass2ConstantIdentification -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte) main::i#0 Constant inlined main::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Successful SSA optimization Pass2ConstantInlining diff --git a/src/test/java/dk/camelot64/kickc/test/ref/loopmin.log b/src/test/java/dk/camelot64/kickc/test/ref/loopmin.log index 3ddaf7d1d..350bcc5b0 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/loopmin.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/loopmin.log @@ -129,7 +129,6 @@ SYMBOL TABLE SSA (byte) main::s#3 (byte) main::s#4 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks Inversing boolean not (bool~) main::$1 ← (byte) main::i#2 <= (byte/signed byte/word/signed word/dword/signed dword) 5 from (bool~) main::$0 ← (byte) main::i#2 > (byte/signed byte/word/signed word/dword/signed dword) 5 @@ -146,7 +145,6 @@ Successful SSA optimization Pass2ConditionalJumpSimplification Constant (const byte) main::i#0 = 10 Constant (const byte) main::s#0 = 0 Successful SSA optimization Pass2ConstantIdentification -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte) main::i#0 Inlining constant with var siblings (const byte) main::s#0 Constant inlined main::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 10 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/loopnest.log b/src/test/java/dk/camelot64/kickc/test/ref/loopnest.log index 252b2c8de..f7f74a623 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/loopnest.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/loopnest.log @@ -167,7 +167,6 @@ SYMBOL TABLE SSA (byte) nest::j#1 (byte) nest::j#2 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @3 Successful SSA optimization Pass2CullEmptyBlocks Alias (byte) main::i#2 = (byte) main::i#3 @@ -189,7 +188,6 @@ Constant (const byte*) SCREEN#0 = ((byte*))1024 Constant (const byte) main::i#0 = 100 Constant (const byte) nest::j#0 = 100 Successful SSA optimization Pass2ConstantIdentification -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte) main::i#0 Inlining constant with var siblings (const byte) nest::j#0 Constant inlined main::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 100 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/loopnest2.log b/src/test/java/dk/camelot64/kickc/test/ref/loopnest2.log index c104d194f..2bc450575 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/loopnest2.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/loopnest2.log @@ -363,7 +363,6 @@ SYMBOL TABLE SSA (byte) nest2::j#1 (byte) nest2::j#2 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @4 Successful SSA optimization Pass2CullEmptyBlocks Alias (byte) main::j#2 = (byte) main::j#3 @@ -416,7 +415,6 @@ Redundant Phi (byte*) SCREEN#11 (const byte*) SCREEN#0 Redundant Phi (byte*) SCREEN#6 (byte*) SCREEN#11 Redundant Phi (byte*) SCREEN#2 (byte*) SCREEN#6 Successful SSA optimization Pass2RedundantPhiElimination -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte) main::i#0 Inlining constant with var siblings (const byte) main::j#0 Inlining constant with var siblings (const byte) nest1::i#0 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/loopnest3.log b/src/test/java/dk/camelot64/kickc/test/ref/loopnest3.log index bc2867fc4..e8c0b534a 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/loopnest3.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/loopnest3.log @@ -193,7 +193,6 @@ SYMBOL TABLE SSA (byte) main::i#2 (byte) main::i#3 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) b::@1 Culled Empty Block (label) @4 Successful SSA optimization Pass2CullEmptyBlocks @@ -218,7 +217,6 @@ Resolved ranged next value c::j#1 ← ++ c::j#2 to ++ Resolved ranged comparison value if(c::j#1!=rangelast(0,100)) goto c::@1 to (byte/signed byte/word/signed word/dword/signed dword) 101 Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte) main::i#0 Inlining constant with var siblings (const byte) c::j#0 Constant inlined main::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/loopsplit.log b/src/test/java/dk/camelot64/kickc/test/ref/loopsplit.log index 00f9e62c0..add190297 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/loopsplit.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/loopsplit.log @@ -141,7 +141,6 @@ SYMBOL TABLE SSA (byte) main::i#3 (byte) main::i#4 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks Alias (byte) main::i#1 = (byte) main::i#3 (byte) main::i#4 @@ -151,7 +150,6 @@ Simple Condition (bool~) main::$1 if((byte) main::i#1>(byte/signed byte/word/sig Successful SSA optimization Pass2ConditionalJumpSimplification Constant (const byte) main::i#0 = 100 Successful SSA optimization Pass2ConstantIdentification -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte) main::i#0 Constant inlined main::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 100 Successful SSA optimization Pass2ConstantInlining diff --git a/src/test/java/dk/camelot64/kickc/test/ref/mem-alignment.log b/src/test/java/dk/camelot64/kickc/test/ref/mem-alignment.log index c7e008621..ad97aebd1 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/mem-alignment.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/mem-alignment.log @@ -139,7 +139,6 @@ SYMBOL TABLE SSA (byte) main::j#1 (byte) main::j#2 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks Simple Condition (bool~) main::$0 if((byte) main::i#1!=rangelast(0,255)) goto main::@1 @@ -157,7 +156,6 @@ Resolved ranged next value main::i#3 ← ++ main::i#5 to ++ Resolved ranged comparison value if(main::i#3!=rangelast(0,255)) goto main::@2 to (byte/signed byte/word/signed word/dword/signed dword) 0 Culled Empty Block (label) main::@3 Successful SSA optimization Pass2CullEmptyBlocks -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte) main::i#0 Inlining constant with var siblings (const byte) main::j#0 Inlining constant with var siblings (const byte) main::i#2 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/modglobal.log b/src/test/java/dk/camelot64/kickc/test/ref/modglobal.log index 61be12d3c..99f0e866d 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/modglobal.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/modglobal.log @@ -187,7 +187,6 @@ SYMBOL TABLE SSA (label) main::@2 (label) main::@return -OPTIMIZING CONTROL FLOW GRAPH Alias (byte) inccnt::return#0 = (byte) inccnt::return#4 Alias (byte) cnt#1 = (byte) cnt#8 Alias (byte) inccnt::return#1 = (byte) inccnt::return#5 @@ -210,7 +209,6 @@ Consolidated array index constant in *(SCREEN#0+1) Successful SSA optimization Pass2ConstantAdditionElimination Culled Empty Block (label) @3 Successful SSA optimization Pass2CullEmptyBlocks -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte) cnt#0 Constant inlined cnt#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Successful SSA optimization Pass2ConstantInlining diff --git a/src/test/java/dk/camelot64/kickc/test/ref/modglobalmin.log b/src/test/java/dk/camelot64/kickc/test/ref/modglobalmin.log index a80f08c54..646d31b6b 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/modglobalmin.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/modglobalmin.log @@ -151,7 +151,6 @@ SYMBOL TABLE SSA (label) main::@2 (label) main::@return -OPTIMIZING CONTROL FLOW GRAPH Alias (byte) cnt#1 = (byte) cnt#9 Alias (byte) cnt#10 = (byte) cnt#3 Alias (byte) cnt#11 = (byte) cnt#4 (byte) cnt#5 @@ -172,7 +171,6 @@ Consolidated array index constant in *(SCREEN#0+1) Successful SSA optimization Pass2ConstantAdditionElimination Culled Empty Block (label) @3 Successful SSA optimization Pass2CullEmptyBlocks -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte) cnt#0 Constant inlined cnt#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Successful SSA optimization Pass2ConstantInlining diff --git a/src/test/java/dk/camelot64/kickc/test/ref/norom-charset.log b/src/test/java/dk/camelot64/kickc/test/ref/norom-charset.log index 8a4f9fb2b..9aa2e139f 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/norom-charset.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/norom-charset.log @@ -405,7 +405,6 @@ SYMBOL TABLE SSA (byte*) main::charset#2 (byte*) main::charset#3 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @3 Successful SSA optimization Pass2CullEmptyBlocks Inversing boolean not (bool~) gen_char3::$3 ← (byte~) gen_char3::$1 == (byte/signed byte/word/signed word/dword/signed dword) 0 from (bool~) gen_char3::$2 ← (byte~) gen_char3::$1 != (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -487,7 +486,6 @@ Self Phi Eliminated (byte*) gen_char3::dst#5 Successful SSA optimization Pass2SelfPhiElimination Redundant Phi (byte*) gen_char3::dst#5 (byte*) gen_char3::dst#0 Successful SSA optimization Pass2RedundantPhiElimination -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte) main::c#0 Inlining constant with var siblings (const byte*) main::charset#0 Inlining constant with var siblings (const byte) gen_char3::r#0 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/operator-lohi-problem.log b/src/test/java/dk/camelot64/kickc/test/ref/operator-lohi-problem.log index 4ac4818ec..89e6989f1 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/operator-lohi-problem.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/operator-lohi-problem.log @@ -98,7 +98,6 @@ SYMBOL TABLE SSA (byte~) main::$5 (label) main::@return -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks Constant (const dword) DVAL#0 = 131072 @@ -116,7 +115,6 @@ Successful SSA optimization Pass2ConstantIdentification Consolidated array index constant in *(SCREEN#0+0) Consolidated array index constant in *(SCREEN#0+1) Successful SSA optimization Pass2ConstantAdditionElimination -OPTIMIZING CONTROL FLOW GRAPH Constant inlined main::$1 = ((word))(const dword) DVAL#0/(word/signed word/dword/signed dword) 1024 Constant inlined main::$2 = <((word))(const dword) DVAL#0/(word/signed word/dword/signed dword) 1024 Constant inlined main::$0 = (const dword) DVAL#0/(word/signed word/dword/signed dword) 1024 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/overlap-allocation-2.log b/src/test/java/dk/camelot64/kickc/test/ref/overlap-allocation-2.log index f0a2e6b97..e23f9a606 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/overlap-allocation-2.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/overlap-allocation-2.log @@ -243,7 +243,6 @@ SYMBOL TABLE SSA (byte) plot::x#1 (byte) plot::x#2 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) line::@2 Culled Empty Block (label) @4 Successful SSA optimization Pass2CullEmptyBlocks @@ -279,7 +278,6 @@ Resolved ranged next value main::j#1 ← ++ main::j#2 to ++ Resolved ranged comparison value if(main::j#1!=rangelast(10,18)) goto main::@2 to (byte/signed byte/word/signed word/dword/signed dword) 19 Culled Empty Block (label) main::@3 Successful SSA optimization Pass2CullEmptyBlocks -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte) main::i#0 Inlining constant with var siblings (const byte) main::j#0 Constant inlined main::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/overlap-allocation.log b/src/test/java/dk/camelot64/kickc/test/ref/overlap-allocation.log index 04d674cc4..27e8673ae 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/overlap-allocation.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/overlap-allocation.log @@ -236,7 +236,6 @@ SYMBOL TABLE SSA (byte) plot::x#2 (byte) plot::x#3 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @3 Successful SSA optimization Pass2CullEmptyBlocks Alias (byte) main::i#2 = (byte) main::i#3 @@ -276,7 +275,6 @@ Resolved ranged comparison value if(main::k#1!=rangelast(0,10)) goto main::@3 to Culled Empty Block (label) main::@4 Culled Empty Block (label) main::@5 Successful SSA optimization Pass2CullEmptyBlocks -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte) main::i#0 Inlining constant with var siblings (const byte) main::j#0 Inlining constant with var siblings (const byte) main::k#0 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/print-problem.log b/src/test/java/dk/camelot64/kickc/test/ref/print-problem.log index dd5f3c3b1..2e09e4908 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/print-problem.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/print-problem.log @@ -220,7 +220,6 @@ SYMBOL TABLE SSA (label) main::@3 (label) main::@return -OPTIMIZING CONTROL FLOW GRAPH Alias (byte) line#0 = (byte) char#0 (byte) line#16 (byte) char#17 Alias (byte*) SCREEN#1 = (byte*) SCREEN#3 (byte*) SCREEN#4 (byte*) SCREEN#2 Alias (byte) line#1 = (byte) line#8 @@ -254,7 +253,6 @@ Eliminating unused variable (byte) char#4 and assignment [3] (byte) char#4 ← + Successful SSA optimization PassNEliminateUnusedVars Culled Empty Block (label) @3 Successful SSA optimization Pass2CullEmptyBlocks -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte) line#0 Constant inlined line#0 = (byte/signed byte/word/signed word/dword/signed dword) 64 Successful SSA optimization Pass2ConstantInlining diff --git a/src/test/java/dk/camelot64/kickc/test/ref/printmsg.log b/src/test/java/dk/camelot64/kickc/test/ref/printmsg.log index 1ba1a078a..607e474e0 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/printmsg.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/printmsg.log @@ -834,7 +834,6 @@ SYMBOL TABLE SSA (byte*) print_str::str#5 (byte*) print_str::str#6 -OPTIMIZING CONTROL FLOW GRAPH Alias (byte*) print_char_cursor#0 = (byte*) print_line_cursor#0 (byte*) print_screen#0 (byte*) print_char_cursor#30 (byte*) print_line_cursor#22 (byte*) print_char_cursor#28 (byte*) print_line_cursor#20 Alias (byte*) print_str::str#4 = (byte*) print_str::str#5 Alias (byte*) print_char_cursor#13 = (byte*) print_char_cursor#25 (byte*) print_char_cursor#14 (byte*) print_char_cursor#2 @@ -888,7 +887,6 @@ Culled Empty Block (label) @14 Culled Empty Block (label) main::@6 Culled Empty Block (label) @16 Successful SSA optimization Pass2CullEmptyBlocks -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte*) print_str::str#1 Inlining constant with var siblings (const byte*) print_str::str#2 Inlining constant with var siblings (const byte*) print_str::str#3 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/ptr-complex.log b/src/test/java/dk/camelot64/kickc/test/ref/ptr-complex.log index 44dac0ae7..900758f06 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/ptr-complex.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/ptr-complex.log @@ -253,7 +253,6 @@ SYMBOL TABLE SSA (byte*) main::screen#2 (byte*) main::screen#3 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks Not aliassing identity: main::screen#3 main::screen#3 @@ -290,7 +289,6 @@ Resolved ranged next value main::i#1 ← ++ main::i#2 to ++ Resolved ranged comparison value if(main::i#1!=rangelast(0,10)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) 11 Resolved ranged next value main::j#1 ← ++ main::j#2 to ++ Resolved ranged comparison value if(main::j#1!=rangelast(0,10)) goto main::@2 to (byte/signed byte/word/signed word/dword/signed dword) 11 -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte) main::i#0 Inlining constant with var siblings (const byte) main::j#0 Constant inlined main::$16 = (word/dword/signed dword) 53248+(byte/signed byte/word/signed word/dword/signed dword) 33 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/ptrtest.log b/src/test/java/dk/camelot64/kickc/test/ref/ptrtest.log index bdbfeeac1..2952d0aca 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/ptrtest.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/ptrtest.log @@ -467,7 +467,6 @@ SYMBOL TABLE SSA (byte) rvaluevar::i#2 (byte) rvaluevar::i#3 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) main::@4 Culled Empty Block (label) @6 Successful SSA optimization Pass2CullEmptyBlocks @@ -497,7 +496,6 @@ Constant (const byte) rvaluevar::i#0 = 2 Successful SSA optimization Pass2ConstantIdentification Consolidated array index constant in *(lvalue::SCREEN#0+1) Successful SSA optimization Pass2ConstantAdditionElimination -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte) lvalue::i#0 Inlining constant with var siblings (const byte) rvalue::i#0 Inlining constant with var siblings (const byte*) lvaluevar::screen#0 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/ptrtestmin.log b/src/test/java/dk/camelot64/kickc/test/ref/ptrtestmin.log index a17528203..14beab627 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/ptrtestmin.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/ptrtestmin.log @@ -117,7 +117,6 @@ SYMBOL TABLE SSA (byte) main::i#2 (byte) main::i#3 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks Alias (byte) main::i#2 = (byte) main::i#3 @@ -126,7 +125,6 @@ Simple Condition (bool~) main::$0 if((byte) main::i#2<(byte/signed byte/word/sig Successful SSA optimization Pass2ConditionalJumpSimplification Constant (const byte) main::i#0 = 2 Successful SSA optimization Pass2ConstantIdentification -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte) main::i#0 Constant inlined main::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 2 Successful SSA optimization Pass2ConstantInlining diff --git a/src/test/java/dk/camelot64/kickc/test/ref/raster-bars.log b/src/test/java/dk/camelot64/kickc/test/ref/raster-bars.log index 2e96ca032..fb3e095e6 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/raster-bars.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/raster-bars.log @@ -734,7 +734,6 @@ SYMBOL TABLE SSA (byte[]) rastercols (byte[]) rastercols#0 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) main::@1 Culled Empty Block (label) @6 Successful SSA optimization Pass2CullEmptyBlocks @@ -757,7 +756,6 @@ Successful SSA optimization Pass2EliminateUnusedBlocks Culled Empty Block (label) main::@7 Culled Empty Block (label) @4 Successful SSA optimization Pass2CullEmptyBlocks -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte) raster::i#0 Constant inlined raster::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Successful SSA optimization Pass2ConstantInlining diff --git a/src/test/java/dk/camelot64/kickc/test/ref/scroll-clobber.log b/src/test/java/dk/camelot64/kickc/test/ref/scroll-clobber.log index cdcb21da8..19266e7de 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/scroll-clobber.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/scroll-clobber.log @@ -171,7 +171,6 @@ SYMBOL TABLE SSA (byte*) main::nxt#3 (byte*) main::nxt#4 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks Inversing boolean not (bool~) main::$1 ← (byte) main::c#0 != (byte) '@' from (bool~) main::$0 ← (byte) main::c#0 == (byte) '@' @@ -201,7 +200,6 @@ if() condition always true - replacing block destination if(true) goto main::@1 Successful SSA optimization Pass2ConstantIfs Removing unused block main::@return Successful SSA optimization Pass2EliminateUnusedBlocks -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte) main::i#0 Inlining constant with var siblings (const byte*) main::nxt#0 Inlining constant with var siblings (const byte*) main::nxt#2 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/scroll.log b/src/test/java/dk/camelot64/kickc/test/ref/scroll.log index 32fb5da33..fa5e26434 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/scroll.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/scroll.log @@ -526,7 +526,6 @@ SYMBOL TABLE SSA (byte) main::scroll#8 (byte) main::scroll#9 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @3 Successful SSA optimization Pass2CullEmptyBlocks Inversing boolean not (bool~) main::$5 ← (byte) main::scroll#1 != (byte/word/signed word/dword/signed dword) 255 from (bool~) main::$4 ← (byte) main::scroll#1 == (byte/word/signed word/dword/signed dword) 255 @@ -692,7 +691,6 @@ Redundant Phi (byte*) TEXT#10 (const byte*) TEXT#0 Successful SSA optimization Pass2RedundantPhiElimination Constant (const byte*) main::nxt#2 = TEXT#0 Successful SSA optimization Pass2ConstantIdentification -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte) main::scroll#0 Inlining constant with var siblings (const byte) main::scroll#2 Inlining constant with var siblings (const byte) main::i#0 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/scrollbig.log b/src/test/java/dk/camelot64/kickc/test/ref/scrollbig.log index aea0c857b..83aa1eec1 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/scrollbig.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/scrollbig.log @@ -1368,7 +1368,6 @@ SYMBOL TABLE SSA (label) scroll_soft::@3 (label) scroll_soft::@return -OPTIMIZING CONTROL FLOW GRAPH Inversing boolean not (bool~) scroll_soft::$1 ← (byte) scroll#3 != (byte/word/signed word/dword/signed dword) 255 from (bool~) scroll_soft::$0 ← (byte) scroll#3 == (byte/word/signed word/dword/signed dword) 255 Inversing boolean not (bool~) scroll_bit::$2 ← (byte) current_bit#5 != (byte/signed byte/word/signed word/dword/signed dword) 0 from (bool~) scroll_bit::$1 ← (byte) current_bit#5 == (byte/signed byte/word/signed word/dword/signed dword) 0 Inversing boolean not (bool~) scroll_bit::$11 ← (byte~) scroll_bit::$9 == (byte/signed byte/word/signed word/dword/signed dword) 0 from (bool~) scroll_bit::$10 ← (byte~) scroll_bit::$9 != (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -1693,7 +1692,6 @@ Inferred type updated to byte in (byte/signed word/word/dword/signed dword~) scr Inferred type updated to byte in (byte/signed word/word/dword/signed dword~) scroll_hard::$39 ← (byte) scroll_hard::i#2 Alias (byte) scroll_hard::i#2 = (byte~) scroll_hard::$4 (byte~) scroll_hard::$9 (byte~) scroll_hard::$14 (byte~) scroll_hard::$19 (byte~) scroll_hard::$24 (byte~) scroll_hard::$29 (byte~) scroll_hard::$34 (byte~) scroll_hard::$39 Successful SSA optimization Pass2AliasElimination -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte) scroll_bit::r#0 Inlining constant with var siblings (const byte) scroll_bit::b#0 Inlining constant with var siblings (const byte) scroll_bit::b#1 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/scrolllogo.log b/src/test/java/dk/camelot64/kickc/test/ref/scrolllogo.log index f8da69f32..39a75bdd5 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/scrolllogo.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/scrolllogo.log @@ -4342,7 +4342,6 @@ SYMBOL TABLE SSA (word) xsin_idx#8 (word) xsin_idx#9 -OPTIMIZING CONTROL FLOW GRAPH Inversing boolean not (bool~) divr16u::$4 ← (byte~) divr16u::$2 == (byte/signed byte/word/signed word/dword/signed dword) 0 from (bool~) divr16u::$3 ← (byte~) divr16u::$2 != (byte/signed byte/word/signed word/dword/signed dword) 0 Inversing boolean not (bool~) divr16u::$9 ← (word) divr16u::rem#6 < (word) divr16u::divisor#2 from (bool~) divr16u::$8 ← (word) divr16u::rem#6 >= (word) divr16u::divisor#2 Inversing boolean not (bool~) mul16u::$3 ← (byte/word~) mul16u::$1 == (byte/signed byte/word/signed word/dword/signed dword) 0 from (bool~) mul16u::$2 ← (byte/word~) mul16u::$1 != (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -4778,7 +4777,6 @@ Redundant Phi (byte*) SCREEN#14 (byte*) SCREEN#13 Successful SSA optimization Pass2RedundantPhiElimination Unrolling loop Loop head: render_logo::@5 tails: render_logo::@5 blocks: render_logo::@5 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) render_logo::line#9 (const byte) render_logo::line#1 Successful SSA optimization Pass2RedundantPhiElimination Constant (const byte/signed word/word/dword/signed dword) render_logo::$8 = 40*render_logo::line#1 @@ -4790,7 +4788,6 @@ if() condition always true - replacing block destination [165] if((const byte) r Successful SSA optimization Pass2ConstantIfs Unrolling loop Loop head: render_logo::@9 tails: render_logo::@9 blocks: render_logo::@9 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) render_logo::line#10 (const byte) render_logo::line#3 Successful SSA optimization Pass2RedundantPhiElimination Constant (const byte/signed word/word/dword/signed dword) render_logo::$12 = 40*render_logo::line#3 @@ -4803,7 +4800,6 @@ if() condition always true - replacing block destination [48] if((const byte) re Successful SSA optimization Pass2ConstantIfs Unrolling loop Loop head: render_logo::@9_1 tails: render_logo::@9_1 blocks: render_logo::@9_1 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) render_logo::line#15 (const byte) render_logo::line#4 Successful SSA optimization Pass2RedundantPhiElimination Constant (const byte/signed word/word/dword/signed dword) render_logo::$31 = 40*render_logo::line#4 @@ -4816,7 +4812,6 @@ if() condition always true - replacing block destination [50] if((const byte) re Successful SSA optimization Pass2ConstantIfs Unrolling loop Loop head: render_logo::@9_2 tails: render_logo::@9_2 blocks: render_logo::@9_2 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) render_logo::line#17 (const byte) render_logo::line#16 Successful SSA optimization Pass2RedundantPhiElimination Constant (const byte/signed word/word/dword/signed dword) render_logo::$35 = 40*render_logo::line#16 @@ -4829,7 +4824,6 @@ if() condition always true - replacing block destination [52] if((const byte) re Successful SSA optimization Pass2ConstantIfs Unrolling loop Loop head: render_logo::@9_3 tails: render_logo::@9_3 blocks: render_logo::@9_3 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) render_logo::line#19 (const byte) render_logo::line#18 Successful SSA optimization Pass2RedundantPhiElimination Constant (const byte/signed word/word/dword/signed dword) render_logo::$39 = 40*render_logo::line#18 @@ -4842,7 +4836,6 @@ if() condition always true - replacing block destination [54] if((const byte) re Successful SSA optimization Pass2ConstantIfs Unrolling loop Loop head: render_logo::@9_4 tails: render_logo::@9_4 blocks: render_logo::@9_4 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) render_logo::line#21 (const byte) render_logo::line#20 Successful SSA optimization Pass2RedundantPhiElimination Constant (const byte/signed word/word/dword/signed dword) render_logo::$43 = 40*render_logo::line#20 @@ -4855,7 +4848,6 @@ if() condition always true - replacing block destination [56] if((const byte) re Successful SSA optimization Pass2ConstantIfs Unrolling loop Loop head: render_logo::@9_5 tails: render_logo::@9_5 blocks: render_logo::@9_5 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) render_logo::line#23 (const byte) render_logo::line#22 Successful SSA optimization Pass2RedundantPhiElimination Constant (const byte/signed word/word/dword/signed dword) render_logo::$47 = 40*render_logo::line#22 @@ -4879,7 +4871,6 @@ Removing unused block render_logo::@9_6 Successful SSA optimization Pass2EliminateUnusedBlocks Unrolling loop Loop head: render_logo::@5_1 tails: render_logo::@5_1 blocks: render_logo::@5_1 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) render_logo::line#13 (const byte) render_logo::line#2 Successful SSA optimization Pass2RedundantPhiElimination Constant (const byte/signed word/word/dword/signed dword) render_logo::$29 = 40*render_logo::line#2 @@ -4891,7 +4882,6 @@ if() condition always true - replacing block destination [61] if((const byte) re Successful SSA optimization Pass2ConstantIfs Unrolling loop Loop head: render_logo::@5_2 tails: render_logo::@5_2 blocks: render_logo::@5_2 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) render_logo::line#27 (const byte) render_logo::line#14 Successful SSA optimization Pass2RedundantPhiElimination Constant (const byte/signed word/word/dword/signed dword) render_logo::$55 = 40*render_logo::line#14 @@ -4903,7 +4893,6 @@ if() condition always true - replacing block destination [62] if((const byte) re Successful SSA optimization Pass2ConstantIfs Unrolling loop Loop head: render_logo::@5_3 tails: render_logo::@5_3 blocks: render_logo::@5_3 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) render_logo::line#29 (const byte) render_logo::line#28 Successful SSA optimization Pass2RedundantPhiElimination Constant (const byte/signed word/word/dword/signed dword) render_logo::$57 = 40*render_logo::line#28 @@ -4915,7 +4904,6 @@ if() condition always true - replacing block destination [63] if((const byte) re Successful SSA optimization Pass2ConstantIfs Unrolling loop Loop head: render_logo::@5_4 tails: render_logo::@5_4 blocks: render_logo::@5_4 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) render_logo::line#31 (const byte) render_logo::line#30 Successful SSA optimization Pass2RedundantPhiElimination Constant (const byte/signed word/word/dword/signed dword) render_logo::$59 = 40*render_logo::line#30 @@ -4927,7 +4915,6 @@ if() condition always true - replacing block destination [64] if((const byte) re Successful SSA optimization Pass2ConstantIfs Unrolling loop Loop head: render_logo::@5_5 tails: render_logo::@5_5 blocks: render_logo::@5_5 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) render_logo::line#33 (const byte) render_logo::line#32 Successful SSA optimization Pass2RedundantPhiElimination Constant (const byte/signed word/word/dword/signed dword) render_logo::$61 = 40*render_logo::line#32 @@ -4948,7 +4935,6 @@ Removing unused block render_logo::@5_6 Successful SSA optimization Pass2EliminateUnusedBlocks Unrolling loop Loop head: render_logo::@18 tails: render_logo::@18 blocks: render_logo::@18 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) render_logo::line#12 (const byte) render_logo::line#7 Successful SSA optimization Pass2RedundantPhiElimination Constant (const byte/signed word/word/dword/signed dword) render_logo::$26 = 40*render_logo::line#7 @@ -4960,7 +4946,6 @@ if() condition always true - replacing block destination [72] if((const byte) re Successful SSA optimization Pass2ConstantIfs Unrolling loop Loop head: render_logo::@18_1 tails: render_logo::@18_1 blocks: render_logo::@18_1 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) render_logo::line#37 (const byte) render_logo::line#8 Successful SSA optimization Pass2RedundantPhiElimination Constant (const byte/signed word/word/dword/signed dword) render_logo::$65 = 40*render_logo::line#8 @@ -4972,7 +4957,6 @@ if() condition always true - replacing block destination [73] if((const byte) re Successful SSA optimization Pass2ConstantIfs Unrolling loop Loop head: render_logo::@18_2 tails: render_logo::@18_2 blocks: render_logo::@18_2 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) render_logo::line#39 (const byte) render_logo::line#38 Successful SSA optimization Pass2RedundantPhiElimination Constant (const byte/signed word/word/dword/signed dword) render_logo::$67 = 40*render_logo::line#38 @@ -4984,7 +4968,6 @@ if() condition always true - replacing block destination [74] if((const byte) re Successful SSA optimization Pass2ConstantIfs Unrolling loop Loop head: render_logo::@18_3 tails: render_logo::@18_3 blocks: render_logo::@18_3 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) render_logo::line#41 (const byte) render_logo::line#40 Successful SSA optimization Pass2RedundantPhiElimination Constant (const byte/signed word/word/dword/signed dword) render_logo::$69 = 40*render_logo::line#40 @@ -4996,7 +4979,6 @@ if() condition always true - replacing block destination [75] if((const byte) re Successful SSA optimization Pass2ConstantIfs Unrolling loop Loop head: render_logo::@18_4 tails: render_logo::@18_4 blocks: render_logo::@18_4 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) render_logo::line#43 (const byte) render_logo::line#42 Successful SSA optimization Pass2RedundantPhiElimination Constant (const byte/signed word/word/dword/signed dword) render_logo::$71 = 40*render_logo::line#42 @@ -5008,7 +4990,6 @@ if() condition always true - replacing block destination [76] if((const byte) re Successful SSA optimization Pass2ConstantIfs Unrolling loop Loop head: render_logo::@18_5 tails: render_logo::@18_5 blocks: render_logo::@18_5 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) render_logo::line#45 (const byte) render_logo::line#44 Successful SSA optimization Pass2RedundantPhiElimination Constant (const byte/signed word/word/dword/signed dword) render_logo::$73 = 40*render_logo::line#44 @@ -5029,7 +5010,6 @@ Removing unused block render_logo::@18_6 Successful SSA optimization Pass2EliminateUnusedBlocks Unrolling loop Loop head: render_logo::@14 tails: render_logo::@14 blocks: render_logo::@14 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) render_logo::line#11 (const byte) render_logo::line#5 Successful SSA optimization Pass2RedundantPhiElimination Constant (const byte/signed word/word/dword/signed dword) render_logo::$20 = 40*render_logo::line#5 @@ -5042,7 +5022,6 @@ if() condition always true - replacing block destination [81] if((const byte) re Successful SSA optimization Pass2ConstantIfs Unrolling loop Loop head: render_logo::@14_1 tails: render_logo::@14_1 blocks: render_logo::@14_1 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) render_logo::line#49 (const byte) render_logo::line#6 Successful SSA optimization Pass2RedundantPhiElimination Constant (const byte/signed word/word/dword/signed dword) render_logo::$77 = 40*render_logo::line#6 @@ -5055,7 +5034,6 @@ if() condition always true - replacing block destination [83] if((const byte) re Successful SSA optimization Pass2ConstantIfs Unrolling loop Loop head: render_logo::@14_2 tails: render_logo::@14_2 blocks: render_logo::@14_2 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) render_logo::line#51 (const byte) render_logo::line#50 Successful SSA optimization Pass2RedundantPhiElimination Constant (const byte/signed word/word/dword/signed dword) render_logo::$81 = 40*render_logo::line#50 @@ -5068,7 +5046,6 @@ if() condition always true - replacing block destination [85] if((const byte) re Successful SSA optimization Pass2ConstantIfs Unrolling loop Loop head: render_logo::@14_3 tails: render_logo::@14_3 blocks: render_logo::@14_3 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) render_logo::line#53 (const byte) render_logo::line#52 Successful SSA optimization Pass2RedundantPhiElimination Constant (const byte/signed word/word/dword/signed dword) render_logo::$85 = 40*render_logo::line#52 @@ -5081,7 +5058,6 @@ if() condition always true - replacing block destination [87] if((const byte) re Successful SSA optimization Pass2ConstantIfs Unrolling loop Loop head: render_logo::@14_4 tails: render_logo::@14_4 blocks: render_logo::@14_4 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) render_logo::line#55 (const byte) render_logo::line#54 Successful SSA optimization Pass2RedundantPhiElimination Constant (const byte/signed word/word/dword/signed dword) render_logo::$89 = 40*render_logo::line#54 @@ -5094,7 +5070,6 @@ if() condition always true - replacing block destination [89] if((const byte) re Successful SSA optimization Pass2ConstantIfs Unrolling loop Loop head: render_logo::@14_5 tails: render_logo::@14_5 blocks: render_logo::@14_5 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) render_logo::line#57 (const byte) render_logo::line#56 Successful SSA optimization Pass2RedundantPhiElimination Constant (const byte/signed word/word/dword/signed dword) render_logo::$93 = 40*render_logo::line#56 @@ -5116,7 +5091,6 @@ Eliminating variable (byte/signed word/word/dword/signed dword~) render_logo::$1 Eliminating variable (byte) render_logo::line#60 from unused block render_logo::@14_6 Removing unused block render_logo::@14_6 Successful SSA optimization Pass2EliminateUnusedBlocks -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const word) divr16u::quotient#0 Inlining constant with var siblings (const byte) divr16u::i#0 Inlining constant with var siblings (const word) divr16u::rem#3 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/showlogo.log b/src/test/java/dk/camelot64/kickc/test/ref/showlogo.log index 28f6534ad..f53132fa0 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/showlogo.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/showlogo.log @@ -919,7 +919,6 @@ SYMBOL TABLE SSA (byte*) main::toD0181_screen#0 (byte*) main::toD0181_screen#1 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @6 Successful SSA optimization Pass2CullEmptyBlocks Not aliassing identity: SCREEN#3 SCREEN#3 @@ -1005,7 +1004,6 @@ Culled Empty Block (label) main::toD0181_@return Culled Empty Block (label) main::@11 Culled Empty Block (label) main::@2 Successful SSA optimization Pass2CullEmptyBlocks -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte) main::ch#0 Inlining constant with var siblings (const word) fill::size#0 Inlining constant with var siblings (const word) fill::size#1 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/signed-bytes.log b/src/test/java/dk/camelot64/kickc/test/ref/signed-bytes.log index 91d89e0e5..d1dea5b6e 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/signed-bytes.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/signed-bytes.log @@ -139,7 +139,6 @@ SYMBOL TABLE SSA (byte*) main::screen#1 (byte*) main::screen#2 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks Alias (signed byte) main::i#0 = (signed byte/signed word/signed dword~) main::$0 @@ -159,7 +158,6 @@ Constant (const signed byte) main::i#0 = -127 Successful SSA optimization Pass2ConstantIdentification Eliminating Noop Cast (byte~) main::$2 ← ((byte)) (signed byte) main::i#2 Successful SSA optimization Pass2NopCastElimination -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte) main::j#0 Inlining constant with var siblings (const signed byte) main::i#0 Constant inlined main::i#0 = -(byte/signed byte/word/signed word/dword/signed dword) 127 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/signed-words.log b/src/test/java/dk/camelot64/kickc/test/ref/signed-words.log index 9e363a576..24e2b67e4 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/signed-words.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/signed-words.log @@ -1178,7 +1178,6 @@ SYMBOL TABLE SSA (signed word) yvel_init#8 (signed word) yvel_init#9 -OPTIMIZING CONTROL FLOW GRAPH Inversing boolean not (bool~) anim::$1 ← (signed word) ypos#9 >= (byte/signed byte/word/signed word/dword/signed dword) 0 from (bool~) anim::$0 ← (signed word) ypos#9 < (byte/signed byte/word/signed word/dword/signed dword) 0 Inversing boolean not (bool~) anim::$6 ← (signed word) yvel_init#3 >= (signed word/signed dword~) anim::$4 from (bool~) anim::$5 ← (signed word) yvel_init#3 < (signed word/signed dword~) anim::$4 Successful SSA optimization Pass2UnaryNotSimplification @@ -1310,7 +1309,6 @@ Culled Empty Block (label) init::@3 Culled Empty Block (label) @5 Culled Empty Block (label) @7 Successful SSA optimization Pass2CullEmptyBlocks -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte) init::i#0 Inlining constant with var siblings (const byte*) init::sc#0 Inlining constant with var siblings (const signed word) xpos#15 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/simple-multiplexer.log b/src/test/java/dk/camelot64/kickc/test/ref/simple-multiplexer.log index 4ab1cbcf8..4307750cc 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/simple-multiplexer.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/simple-multiplexer.log @@ -2511,7 +2511,6 @@ SYMBOL TABLE SSA (byte) plex_sprite_msb#8 (byte) plex_sprite_msb#9 -OPTIMIZING CONTROL FLOW GRAPH Inversing boolean not (bool~) plexSort::$3 ← (byte) plexSort::nxt_y#0 >= *((byte[PLEX_COUNT#0]) PLEX_YPOS#0 + *((byte[PLEX_COUNT#0]) PLEX_SORTED_IDX#0 + (byte) plexSort::m#2)) from (bool~) plexSort::$2 ← (byte) plexSort::nxt_y#0 < *((byte[PLEX_COUNT#0]) PLEX_YPOS#0 + *((byte[PLEX_COUNT#0]) PLEX_SORTED_IDX#0 + (byte) plexSort::m#2)) Inversing boolean not (bool~) plexShowSprite::$10 ← (byte) plex_sprite_msb#3 != (byte/signed byte/word/signed word/dword/signed dword) 0 from (bool~) plexShowSprite::$9 ← (byte) plex_sprite_msb#3 == (byte/signed byte/word/signed word/dword/signed dword) 0 Successful SSA optimization Pass2UnaryNotSimplification @@ -2948,7 +2947,6 @@ Successful SSA optimization Pass2SelfPhiElimination Redundant Phi (byte*) YSIN#4 (const byte*) YSIN#0 Redundant Phi (byte*) PLEX_SCREEN_PTR#44 (const byte*) PLEX_SCREEN_PTR#1 Successful SSA optimization Pass2RedundantPhiElimination -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte) plexInit::i#0 Inlining constant with var siblings (const byte) plexSort::m#0 Inlining constant with var siblings (const byte) plexSort::plexFreePrepare1_s#0 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/sine-plotter.log b/src/test/java/dk/camelot64/kickc/test/ref/sine-plotter.log index a47ed96cd..d4e26b663 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/sine-plotter.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/sine-plotter.log @@ -4483,7 +4483,6 @@ SYMBOL TABLE SSA (signed word) wrap_y::y#8 (signed word) wrap_y::y#9 -OPTIMIZING CONTROL FLOW GRAPH Inversing boolean not (bool~) divr16u::$4 ← (byte~) divr16u::$2 == (byte/signed byte/word/signed word/dword/signed dword) 0 from (bool~) divr16u::$3 ← (byte~) divr16u::$2 != (byte/signed byte/word/signed word/dword/signed dword) 0 Inversing boolean not (bool~) divr16u::$9 ← (word) divr16u::rem#6 < (word) divr16u::divisor#2 from (bool~) divr16u::$8 ← (word) divr16u::rem#6 >= (word) divr16u::divisor#2 Inversing boolean not (bool~) mul16u::$3 ← (byte/word~) mul16u::$1 == (byte/signed byte/word/signed word/dword/signed dword) 0 from (bool~) mul16u::$2 ← (byte/word~) mul16u::$1 != (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -4866,7 +4865,6 @@ Successful SSA optimization Pass2AliasElimination Consolidated array index constant in *(bitmap_plot_yhi#0+0) Consolidated array index constant in *(bitmap_plot_ylo#0+0) Successful SSA optimization Pass2ConstantAdditionElimination -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const word) divr16u::quotient#0 Inlining constant with var siblings (const byte) divr16u::i#0 Inlining constant with var siblings (const word) divr16u::rem#3 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/sinus-basic.log b/src/test/java/dk/camelot64/kickc/test/ref/sinus-basic.log index 2c6d91589..1ca14d84d 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/sinus-basic.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/sinus-basic.log @@ -1896,7 +1896,6 @@ SYMBOL TABLE SSA (void()) sinFAC() (label) sinFAC::@return -OPTIMIZING CONTROL FLOW GRAPH Alias (byte*) print_char_cursor#0 = (byte*) print_line_cursor#0 (byte*) print_screen#0 (byte*) print_char_cursor#36 (byte*) print_line_cursor#17 (byte*) print_char_cursor#35 (byte*) print_line_cursor#16 (byte*) print_char_cursor#33 (byte*) print_line_cursor#14 Alias (byte*) print_line_cursor#1 = (byte*~) print_ln::$0 (byte*) print_line_cursor#7 (byte*) print_char_cursor#1 (byte*) print_line_cursor#8 (byte*) print_char_cursor#16 (byte*) print_line_cursor#2 (byte*) print_char_cursor#2 Alias (byte) print_byte::b#0 = (byte~) print_word::$0 @@ -1985,7 +1984,6 @@ Culled Empty Block (label) @43 Successful SSA optimization Pass2CullEmptyBlocks Alias (word) getFAC::return#0 = (word~) getFAC::$0 Successful SSA optimization Pass2AliasElimination -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte*) prepareMEM::mem#2 Inlining constant with var siblings (const byte*) prepareMEM::mem#3 Inlining constant with var siblings (const word) setFAC::w#0 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/sinus-sprites.log b/src/test/java/dk/camelot64/kickc/test/ref/sinus-sprites.log index e4620adb2..5388acfce 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/sinus-sprites.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/sinus-sprites.log @@ -4220,7 +4220,6 @@ SYMBOL TABLE SSA (void()) subFACfromARG() (label) subFACfromARG::@return -OPTIMIZING CONTROL FLOW GRAPH Inversing boolean not (bool~) progress_inc::$1 ← (byte) progress_idx#10 != (byte/signed byte/word/signed word/dword/signed dword) 8 from (bool~) progress_inc::$0 ← (byte) progress_idx#10 == (byte/signed byte/word/signed word/dword/signed dword) 8 Inversing boolean not (bool~) anim::$8 ← (byte) anim::xidx#1 < (byte) sinlen_x#0 from (bool~) anim::$7 ← (byte) anim::xidx#1 >= (byte) sinlen_x#0 Inversing boolean not (bool~) anim::$12 ← (byte) anim::yidx#1 < (byte) sinlen_y#0 from (bool~) anim::$11 ← (byte) anim::yidx#1 >= (byte) sinlen_y#0 @@ -4600,7 +4599,6 @@ Self Phi Eliminated (byte*) gen_chargen_sprite::chargen#1 Successful SSA optimization Pass2SelfPhiElimination Redundant Phi (byte*) gen_chargen_sprite::chargen#1 (byte*) gen_chargen_sprite::chargen#0 Successful SSA optimization Pass2RedundantPhiElimination -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const word) setFAC::w#2 Inlining constant with var siblings (const byte*) setMEMtoFAC::mem#0 Inlining constant with var siblings (const byte*) setMEMtoFAC::mem#1 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/sinusgen16.log b/src/test/java/dk/camelot64/kickc/test/ref/sinusgen16.log index 89e86c069..2841cfb6e 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/sinusgen16.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/sinusgen16.log @@ -3545,7 +3545,6 @@ SYMBOL TABLE SSA (dword) sin16s_gen::x#2 (dword) sin16s_gen::x#3 -OPTIMIZING CONTROL FLOW GRAPH Inversing boolean not (bool~) divr16u::$4 ← (byte~) divr16u::$2 == (byte/signed byte/word/signed word/dword/signed dword) 0 from (bool~) divr16u::$3 ← (byte~) divr16u::$2 != (byte/signed byte/word/signed word/dword/signed dword) 0 Inversing boolean not (bool~) divr16u::$9 ← (word) divr16u::rem#6 < (word) divr16u::divisor#2 from (bool~) divr16u::$8 ← (word) divr16u::rem#6 >= (word) divr16u::divisor#2 Inversing boolean not (bool~) mul16u::$3 ← (byte/word~) mul16u::$1 == (byte/signed byte/word/signed word/dword/signed dword) 0 from (bool~) mul16u::$2 ← (byte/word~) mul16u::$1 != (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -3823,7 +3822,6 @@ Culled Empty Block (label) @36 Successful SSA optimization Pass2CullEmptyBlocks Alias (dword) div32u16u::return#0 = (dword~) div32u16u::$4 Successful SSA optimization Pass2AliasElimination -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const word) divr16u::quotient#0 Inlining constant with var siblings (const byte) divr16u::i#0 Inlining constant with var siblings (const word) divr16u::rem#3 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/sinusgen16b.log b/src/test/java/dk/camelot64/kickc/test/ref/sinusgen16b.log index b1ec07e41..2b9f63954 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/sinusgen16b.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/sinusgen16b.log @@ -4153,7 +4153,6 @@ SYMBOL TABLE SSA (word) sin16sb::x5_128 (word) sin16sb::x5_128#0 -OPTIMIZING CONTROL FLOW GRAPH Inversing boolean not (bool~) divr16u::$4 ← (byte~) divr16u::$2 == (byte/signed byte/word/signed word/dword/signed dword) 0 from (bool~) divr16u::$3 ← (byte~) divr16u::$2 != (byte/signed byte/word/signed word/dword/signed dword) 0 Inversing boolean not (bool~) divr16u::$9 ← (word) divr16u::rem#6 < (word) divr16u::divisor#2 from (bool~) divr16u::$8 ← (word) divr16u::rem#6 >= (word) divr16u::divisor#2 Inversing boolean not (bool~) mul16u::$3 ← (byte/word~) mul16u::$1 == (byte/signed byte/word/signed word/dword/signed dword) 0 from (bool~) mul16u::$2 ← (byte/word~) mul16u::$1 != (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -4508,7 +4507,6 @@ Culled Empty Block (label) @38 Successful SSA optimization Pass2CullEmptyBlocks Alias (dword) div32u16u::return#0 = (dword~) div32u16u::$4 Successful SSA optimization Pass2AliasElimination -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const word) divr16u::quotient#0 Inlining constant with var siblings (const byte) divr16u::i#0 Inlining constant with var siblings (const word) divr16u::rem#3 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/sinusgen8.log b/src/test/java/dk/camelot64/kickc/test/ref/sinusgen8.log index 3bfddc396..01c50bbc5 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/sinusgen8.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/sinusgen8.log @@ -3407,7 +3407,6 @@ SYMBOL TABLE SSA (word) sin8s_gen::x#2 (word) sin8s_gen::x#3 -OPTIMIZING CONTROL FLOW GRAPH Inversing boolean not (bool~) divr16u::$4 ← (byte~) divr16u::$2 == (byte/signed byte/word/signed word/dword/signed dword) 0 from (bool~) divr16u::$3 ← (byte~) divr16u::$2 != (byte/signed byte/word/signed word/dword/signed dword) 0 Inversing boolean not (bool~) divr16u::$9 ← (word) divr16u::rem#5 < (word) divr16u::divisor#1 from (bool~) divr16u::$8 ← (word) divr16u::rem#5 >= (word) divr16u::divisor#1 Inversing boolean not (bool~) mul8u::$3 ← (byte~) mul8u::$1 == (byte/signed byte/word/signed word/dword/signed dword) 0 from (bool~) mul8u::$2 ← (byte~) mul8u::$1 != (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -3637,7 +3636,6 @@ Culled Empty Block (label) main::@6 Culled Empty Block (label) main::@9 Culled Empty Block (label) @36 Successful SSA optimization Pass2CullEmptyBlocks -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const word) divr16u::quotient#0 Inlining constant with var siblings (const byte) divr16u::i#0 Inlining constant with var siblings (const word) divr16u::rem#3 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/sinusgen8b.log b/src/test/java/dk/camelot64/kickc/test/ref/sinusgen8b.log index c233f0772..698f943eb 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/sinusgen8b.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/sinusgen8b.log @@ -4085,7 +4085,6 @@ SYMBOL TABLE SSA (word) sin8s_gen::x#2 (word) sin8s_gen::x#3 -OPTIMIZING CONTROL FLOW GRAPH Inversing boolean not (bool~) divr16u::$4 ← (byte~) divr16u::$2 == (byte/signed byte/word/signed word/dword/signed dword) 0 from (bool~) divr16u::$3 ← (byte~) divr16u::$2 != (byte/signed byte/word/signed word/dword/signed dword) 0 Inversing boolean not (bool~) divr16u::$9 ← (word) divr16u::rem#7 < (word) divr16u::divisor#3 from (bool~) divr16u::$8 ← (word) divr16u::rem#7 >= (word) divr16u::divisor#3 Inversing boolean not (bool~) mul8u::$3 ← (byte~) mul8u::$1 == (byte/signed byte/word/signed word/dword/signed dword) 0 from (bool~) mul8u::$2 ← (byte~) mul8u::$1 != (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -4459,7 +4458,6 @@ Culled Empty Block (label) @36 Successful SSA optimization Pass2CullEmptyBlocks Alias (dword) div32u16u::return#0 = (dword~) div32u16u::$4 Successful SSA optimization Pass2AliasElimination -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const word) divr16u::quotient#0 Inlining constant with var siblings (const byte) divr16u::i#0 Inlining constant with var siblings (const word) divr16u::rem#3 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/sinusgenscale8.log b/src/test/java/dk/camelot64/kickc/test/ref/sinusgenscale8.log index f2751580c..147604a73 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/sinusgenscale8.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/sinusgenscale8.log @@ -4340,7 +4340,6 @@ SYMBOL TABLE SSA (word) sin8u_table::x#8 (word) sin8u_table::x#9 -OPTIMIZING CONTROL FLOW GRAPH Inversing boolean not (bool~) divr16u::$4 ← (byte~) divr16u::$2 == (byte/signed byte/word/signed word/dword/signed dword) 0 from (bool~) divr16u::$3 ← (byte~) divr16u::$2 != (byte/signed byte/word/signed word/dword/signed dword) 0 Inversing boolean not (bool~) divr16u::$9 ← (word) divr16u::rem#5 < (word) divr16u::divisor#1 from (bool~) divr16u::$8 ← (word) divr16u::rem#5 >= (word) divr16u::divisor#1 Inversing boolean not (bool~) mul8u::$3 ← (byte~) mul8u::$1 == (byte/signed byte/word/signed word/dword/signed dword) 0 from (bool~) mul8u::$2 ← (byte~) mul8u::$1 != (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -4683,7 +4682,6 @@ Culled Empty Block (label) main::@2 Culled Empty Block (label) sin8u_table::@14 Culled Empty Block (label) @37 Successful SSA optimization Pass2CullEmptyBlocks -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const word) divr16u::quotient#0 Inlining constant with var siblings (const byte) divr16u::i#0 Inlining constant with var siblings (const word) divr16u::rem#3 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/summin.log b/src/test/java/dk/camelot64/kickc/test/ref/summin.log index 30b588ddf..3fcebdbe5 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/summin.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/summin.log @@ -208,7 +208,6 @@ SYMBOL TABLE SSA (byte) sum::return#7 (byte) sum::return#8 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @3 Successful SSA optimization Pass2CullEmptyBlocks Alias (byte) sum::return#0 = (byte) sum::return#5 @@ -232,7 +231,6 @@ Constant (const byte) sum::b#1 = 4 Constant (const byte) sum::a#2 = 9 Constant (const byte) sum::b#2 = 13 Successful SSA optimization Pass2ConstantIdentification -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte) sum::a#0 Inlining constant with var siblings (const byte) sum::b#0 Inlining constant with var siblings (const byte) sum::a#1 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/test-address-of-param.log b/src/test/java/dk/camelot64/kickc/test/ref/test-address-of-param.log index 6f13be6e7..8f6be43b4 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/test-address-of-param.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/test-address-of-param.log @@ -191,7 +191,6 @@ SYMBOL TABLE SSA (byte*) setByte::ptr#2 (byte*) setByte::ptr#3 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @3 Successful SSA optimization Pass2CullEmptyBlocks Alias (byte*) setByte::ptr#0 = (byte*~) main::$0 @@ -214,7 +213,6 @@ Consolidated array index constant in *(main::SCREEN#0+0) Consolidated array index constant in *(main::SCREEN#0+1) Consolidated array index constant in *(main::SCREEN#0+2) Successful SSA optimization Pass2ConstantAdditionElimination -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte*) setByte::ptr#0 Inlining constant with var siblings (const byte) setByte::b#0 Inlining constant with var siblings (const byte*) setByte::ptr#1 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/test-address-of.log b/src/test/java/dk/camelot64/kickc/test/ref/test-address-of.log index a5535c69b..14b9d371c 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/test-address-of.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/test-address-of.log @@ -111,7 +111,6 @@ SYMBOL TABLE SSA (byte) main::c (byte) main::c#0 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks Alias (byte*) main::bp#0 = (byte*~) main::$0 @@ -129,7 +128,6 @@ Constant (const byte*) main::bp#0 = &main::b#2 Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value main::b#1 ← ++ main::b#2 to ++ Resolved ranged comparison value if(main::b#1!=rangelast(0,10)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) 11 -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte) main::b#0 Constant inlined main::b#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Successful SSA optimization Pass2ConstantInlining diff --git a/src/test/java/dk/camelot64/kickc/test/ref/test-comparisons.log b/src/test/java/dk/camelot64/kickc/test/ref/test-comparisons.log index 807ad90e0..c746c960d 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/test-comparisons.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/test-comparisons.log @@ -2779,7 +2779,6 @@ SYMBOL TABLE SSA (byte) printu::res#8 (byte) printu::res#9 -OPTIMIZING CONTROL FLOW GRAPH Inversing boolean not (bool~) main::$3 ← (byte) main::a#2 >= (byte) main::b#0 from (bool~) main::$2 ← (byte) main::a#2 < (byte) main::b#0 Inversing boolean not (bool~) main::$6 ← (byte) main::a#4 >= (byte/signed byte/word/signed word/dword/signed dword) 55 from (bool~) main::$5 ← (byte) main::a#4 < (byte/signed byte/word/signed word/dword/signed dword) 55 Inversing boolean not (bool~) main::$9 ← (byte) main::a#6 >= *((byte[5]) main::cs#0 + (byte) main::i#2) from (bool~) main::$8 ← (byte) main::a#6 < *((byte[5]) main::cs#0 + (byte) main::i#2) @@ -3149,7 +3148,6 @@ Culled Empty Block (label) main::@45 Culled Empty Block (label) printu::@6 Culled Empty Block (label) @17 Successful SSA optimization Pass2CullEmptyBlocks -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte) print_char::ch#2 Inlining constant with var siblings (const byte) print_char::ch#3 Inlining constant with var siblings (const byte*) print_cls::sc#0 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/test-division.log b/src/test/java/dk/camelot64/kickc/test/ref/test-division.log index a065ae6d6..4fc86a0ea 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/test-division.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/test-division.log @@ -4171,7 +4171,6 @@ SYMBOL TABLE SSA (const string) test_8u::str1 = (string) " = @" (const string) test_8u::str2 = (string) " @" -OPTIMIZING CONTROL FLOW GRAPH Inversing boolean not (bool~) print_sword::$1 ← (signed word) print_sword::w#5 >= (byte/signed byte/word/signed word/dword/signed dword) 0 from (bool~) print_sword::$0 ← (signed word) print_sword::w#5 < (byte/signed byte/word/signed word/dword/signed dword) 0 Inversing boolean not (bool~) print_sbyte::$1 ← (signed byte) print_sbyte::b#5 >= (byte/signed byte/word/signed word/dword/signed dword) 0 from (bool~) print_sbyte::$0 ← (signed byte) print_sbyte::b#5 < (byte/signed byte/word/signed word/dword/signed dword) 0 Inversing boolean not (bool~) divr8u::$3 ← (byte~) divr8u::$1 == (byte/signed byte/word/signed word/dword/signed dword) 0 from (bool~) divr8u::$2 ← (byte~) divr8u::$1 != (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -4718,7 +4717,6 @@ Culled Empty Block (label) divr16s::@16 Successful SSA optimization Pass2CullEmptyBlocks Simple Condition (bool~) divr16s::$0 if((signed word) divr16s::dividend#0<(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16s::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte*) print_str::str#1 Inlining constant with var siblings (const byte*) print_str::str#2 Inlining constant with var siblings (const byte*) print_str::str#3 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/test-interrupt-volatile.log b/src/test/java/dk/camelot64/kickc/test/ref/test-interrupt-volatile.log index 438340d8a..c9cc22b60 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/test-interrupt-volatile.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/test-interrupt-volatile.log @@ -165,7 +165,6 @@ interrupt(KERNEL_MIN)(void()) irq() (label) main::@2 (label) main::@return -OPTIMIZING CONTROL FLOW GRAPH Alias (byte) col#2 = (byte) col#4 (byte) col#8 (byte) col#5 Alias (byte) col#0 = (byte) col#9 Alias (byte) col#3 = (byte) col#7 @@ -184,7 +183,6 @@ Removing unused block main::@return Successful SSA optimization Pass2EliminateUnusedBlocks Culled Empty Block (label) @3 Successful SSA optimization Pass2CullEmptyBlocks -OPTIMIZING CONTROL FLOW GRAPH Constant inlined main::$0 = &interrupt(KERNEL_MIN)(void()) irq() Successful SSA optimization Pass2ConstantInlining Adding NOP phi() at start of @2 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/test-interrupt.log b/src/test/java/dk/camelot64/kickc/test/ref/test-interrupt.log index 10b79291d..aa1cf9265 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/test-interrupt.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/test-interrupt.log @@ -145,7 +145,6 @@ interrupt(KERNEL_MIN)(void()) irq() (label) main::@2 (label) main::@return -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @3 Successful SSA optimization Pass2CullEmptyBlocks Constant (const void()**) KERNEL_IRQ#0 = ((void()**))788 @@ -159,7 +158,6 @@ Removing unused block main::@return Successful SSA optimization Pass2EliminateUnusedBlocks Culled Empty Block (label) main::@1 Successful SSA optimization Pass2CullEmptyBlocks -OPTIMIZING CONTROL FLOW GRAPH Constant inlined main::$0 = &interrupt(KERNEL_MIN)(void()) irq() Successful SSA optimization Pass2ConstantInlining Adding NOP phi() at start of @begin diff --git a/src/test/java/dk/camelot64/kickc/test/ref/test-kasm.log b/src/test/java/dk/camelot64/kickc/test/ref/test-kasm.log index 22032b374..6a8bd80c7 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/test-kasm.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/test-kasm.log @@ -97,7 +97,6 @@ SYMBOL TABLE SSA (label) main::@2 (label) main::@return -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks if() condition always true - replacing block destination if(true) goto main::@2 @@ -106,7 +105,6 @@ Removing unused block main::@return Successful SSA optimization Pass2EliminateUnusedBlocks Culled Empty Block (label) main::@1 Successful SSA optimization Pass2CullEmptyBlocks -OPTIMIZING CONTROL FLOW GRAPH Adding NOP phi() at start of @begin Adding NOP phi() at start of @end Adding NOP phi() at start of main diff --git a/src/test/java/dk/camelot64/kickc/test/ref/test-keyboard-space.log b/src/test/java/dk/camelot64/kickc/test/ref/test-keyboard-space.log index 36b59aa69..e74a97084 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/test-keyboard-space.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/test-keyboard-space.log @@ -1545,7 +1545,6 @@ SYMBOL TABLE SSA (label) main::@9 (label) main::@return -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) main::@13 Culled Empty Block (label) main::@2 Culled Empty Block (label) @12 @@ -1592,7 +1591,6 @@ Successful SSA optimization Pass2EliminateUnusedBlocks Culled Empty Block (label) @3 Culled Empty Block (label) main::@1 Successful SSA optimization Pass2CullEmptyBlocks -OPTIMIZING CONTROL FLOW GRAPH Constant inlined keyboard_key_pressed::key#0 = (const byte) KEY_SPACE#0 Constant inlined keyboard_matrix_read::rowid#0 = (const byte) keyboard_key_pressed::rowidx#0 Successful SSA optimization Pass2ConstantInlining diff --git a/src/test/java/dk/camelot64/kickc/test/ref/test-keyboard.log b/src/test/java/dk/camelot64/kickc/test/ref/test-keyboard.log index 81a56c9e1..1597b5c69 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/test-keyboard.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/test-keyboard.log @@ -2045,7 +2045,6 @@ SYMBOL TABLE SSA (byte*) main::screen#8 (byte*) main::screen#9 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) main::@27 Culled Empty Block (label) main::@3 Culled Empty Block (label) @12 @@ -2191,7 +2190,6 @@ Culled Empty Block (label) main::@2 Culled Empty Block (label) main::@17 Culled Empty Block (label) main::@12 Successful SSA optimization Pass2CullEmptyBlocks -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte*) main::sc#0 Inlining constant with var siblings (const byte*) main::screen#0 Inlining constant with var siblings (const byte) main::row#0 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/test-lohiconst.log b/src/test/java/dk/camelot64/kickc/test/ref/test-lohiconst.log index 26dd267ad..e03d400f3 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/test-lohiconst.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/test-lohiconst.log @@ -107,7 +107,6 @@ SYMBOL TABLE SSA (byte*) main::SCREEN (byte*) main::SCREEN#0 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks Constant (const dword) PI_u4f28#0 = 843314857 @@ -128,7 +127,6 @@ Consolidated array index constant in *(main::SCREEN#0+1) Consolidated array index constant in *(main::SCREEN#0+2) Consolidated array index constant in *(main::SCREEN#0+3) Successful SSA optimization Pass2ConstantAdditionElimination -OPTIMIZING CONTROL FLOW GRAPH Constant inlined main::$1 = >>(const dword) PI_u4f28#0 Constant inlined main::$2 = >(const dword) PI_u4f28#0 Constant inlined main::$0 = >(const dword) PI_u4f28#0 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/test-lowhigh.log b/src/test/java/dk/camelot64/kickc/test/ref/test-lowhigh.log index 3f4a80bee..9958122b8 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/test-lowhigh.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/test-lowhigh.log @@ -1297,7 +1297,6 @@ SYMBOL TABLE SSA (word) print_word::w#4 (word) print_word::w#5 -OPTIMIZING CONTROL FLOW GRAPH Alias (byte*) print_line_cursor#0 = (byte*) print_screen#0 (byte*) print_char_cursor#0 (byte*) print_line_cursor#22 (byte*) print_char_cursor#71 (byte*) print_screen#6 (byte*) print_line_cursor#20 (byte*) print_char_cursor#70 (byte*) print_screen#5 Alias (byte*) print_line_cursor#1 = (byte*~) print_ln::$0 (byte*) print_line_cursor#10 (byte*) print_char_cursor#1 (byte*) print_line_cursor#11 (byte*) print_char_cursor#34 (byte*) print_line_cursor#2 (byte*) print_char_cursor#2 Alias (byte) print_byte::b#0 = (byte~) print_word::$0 @@ -1411,7 +1410,6 @@ Culled Empty Block (label) print_cls::@2 Culled Empty Block (label) main::@3 Culled Empty Block (label) @16 Successful SSA optimization Pass2CullEmptyBlocks -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte) print_char::ch#2 Inlining constant with var siblings (const byte) print_char::ch#3 Inlining constant with var siblings (const byte) print_char::ch#4 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/test-multiply-16bit.log b/src/test/java/dk/camelot64/kickc/test/ref/test-multiply-16bit.log index 5c4f839b6..8b8dee36f 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/test-multiply-16bit.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/test-multiply-16bit.log @@ -3954,7 +3954,6 @@ SYMBOL TABLE SSA (word) print_word::w#5 (word) print_word::w#6 -OPTIMIZING CONTROL FLOW GRAPH Inversing boolean not (bool~) print_sword::$1 ← (signed word) print_sword::w#3 >= (byte/signed byte/word/signed word/dword/signed dword) 0 from (bool~) print_sword::$0 ← (signed word) print_sword::w#3 < (byte/signed byte/word/signed word/dword/signed dword) 0 Inversing boolean not (bool~) print_sdword::$1 ← (signed dword) print_sdword::dw#3 >= (byte/signed byte/word/signed word/dword/signed dword) 0 from (bool~) print_sdword::$0 ← (signed dword) print_sdword::dw#3 < (byte/signed byte/word/signed word/dword/signed dword) 0 Inversing boolean not (bool~) mul16u::$3 ← (byte/word~) mul16u::$1 == (byte/signed byte/word/signed word/dword/signed dword) 0 from (bool~) mul16u::$2 ← (byte/word~) mul16u::$1 != (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -4435,7 +4434,6 @@ Redundant Phi (byte*) BGCOL#17 (const byte*) BGCOL#0 Redundant Phi (byte*) print_char_cursor#151 (byte*) print_line_cursor#1 Redundant Phi (byte*) print_line_cursor#78 (byte*) print_line_cursor#1 Successful SSA optimization Pass2RedundantPhiElimination -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte*) print_str::str#1 Inlining constant with var siblings (const byte*) print_str::str#2 Inlining constant with var siblings (const byte*) print_str::str#3 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/test-multiply-8bit.log b/src/test/java/dk/camelot64/kickc/test/ref/test-multiply-8bit.log index e3c0a8788..0d6332327 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/test-multiply-8bit.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/test-multiply-8bit.log @@ -4692,7 +4692,6 @@ SYMBOL TABLE SSA (word) print_word::w#6 (word) print_word::w#7 -OPTIMIZING CONTROL FLOW GRAPH Inversing boolean not (bool~) print_sword::$1 ← (signed word) print_sword::w#4 >= (byte/signed byte/word/signed word/dword/signed dword) 0 from (bool~) print_sword::$0 ← (signed word) print_sword::w#4 < (byte/signed byte/word/signed word/dword/signed dword) 0 Inversing boolean not (bool~) print_sbyte::$1 ← (signed byte) print_sbyte::b#3 >= (byte/signed byte/word/signed word/dword/signed dword) 0 from (bool~) print_sbyte::$0 ← (signed byte) print_sbyte::b#3 < (byte/signed byte/word/signed word/dword/signed dword) 0 Inversing boolean not (bool~) mul8u::$3 ← (byte~) mul8u::$1 == (byte/signed byte/word/signed word/dword/signed dword) 0 from (bool~) mul8u::$2 ← (byte~) mul8u::$1 != (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -5280,7 +5279,6 @@ Redundant Phi (byte*) BGCOL#31 (const byte*) BGCOL#0 Redundant Phi (byte*) print_char_cursor#181 (byte*) print_line_cursor#1 Redundant Phi (byte*) print_line_cursor#106 (byte*) print_line_cursor#1 Successful SSA optimization Pass2RedundantPhiElimination -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte*) print_str::str#1 Inlining constant with var siblings (const byte*) print_str::str#2 Inlining constant with var siblings (const byte*) print_str::str#3 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/true-inline-words.log b/src/test/java/dk/camelot64/kickc/test/ref/true-inline-words.log index 4632de55d..315082fe0 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/true-inline-words.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/true-inline-words.log @@ -148,7 +148,6 @@ SYMBOL TABLE SSA (word) main::w2 (word) main::w2#0 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks Alias (word) main::w2#0 = (byte/signed byte/word/signed word/dword/signed dword*/word~) main::$1 @@ -183,7 +182,6 @@ Constant (const word/signed dword/dword) main::$0 = main::$4+main::w#0 Successful SSA optimization Pass2ConstantIdentification Constant (const word) main::w2#0 = main::$0+main::$5 Successful SSA optimization Pass2ConstantIdentification -OPTIMIZING CONTROL FLOW GRAPH Constant inlined main::$5 = (byte/signed byte/word/signed word/dword/signed dword) 0*(word/signed word/dword/signed dword) 256+(byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined main::$4 = (byte/signed byte/word/signed word/dword/signed dword) 1*(word/signed word/dword/signed dword) 256+(byte/signed byte/word/signed word/dword/signed dword) 1 Constant inlined main::$0 = (byte/signed byte/word/signed word/dword/signed dword) 1*(word/signed word/dword/signed dword) 256+(byte/signed byte/word/signed word/dword/signed dword) 1+(const word) main::w#0 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/unroll-loop-modifyvar.log b/src/test/java/dk/camelot64/kickc/test/ref/unroll-loop-modifyvar.log index b2e2d622f..4f6b20cbb 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/unroll-loop-modifyvar.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/unroll-loop-modifyvar.log @@ -104,7 +104,6 @@ SYMBOL TABLE SSA (byte) main::a#2 (byte) main::a#3 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks Alias (byte) main::a#1 = (byte) main::a#3 @@ -122,7 +121,6 @@ Successful SSA optimization Pass2ConstantIdentification Creating PHI for main::a#1 in block main::@2 - (byte) main::a#4 ← phi( main::@1/(byte) main::a#1 ) Unrolling loop Loop head: main::@1 tails: main::@1 blocks: main::@1 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::a#2 (const byte) main::a#0 Successful SSA optimization Pass2RedundantPhiElimination Constant (const byte) main::a#1 = ++main::a#0 @@ -137,7 +135,6 @@ Successful SSA optimization Pass2AliasElimination Creating PHI for main::a#4 in block main::@2 - (byte) main::a#7 ← phi( main::@1_1/(byte) main::a#4 ) Unrolling loop Loop head: main::@1_1 tails: main::@1_1 blocks: main::@1_1 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::a#5 (const byte) main::a#1 Successful SSA optimization Pass2RedundantPhiElimination Constant (const byte) main::a#4 = ++main::a#1 @@ -152,7 +149,6 @@ Successful SSA optimization Pass2AliasElimination Creating PHI for main::a#7 in block main::@2 - (byte) main::a#10 ← phi( main::@1_2/(byte) main::a#7 ) Unrolling loop Loop head: main::@1_2 tails: main::@1_2 blocks: main::@1_2 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::a#8 (const byte) main::a#4 Successful SSA optimization Pass2RedundantPhiElimination Constant (const byte) main::a#7 = ++main::a#4 @@ -167,7 +163,6 @@ Successful SSA optimization Pass2AliasElimination Creating PHI for main::a#10 in block main::@2 - (byte) main::a#13 ← phi( main::@1_3/(byte) main::a#10 ) Unrolling loop Loop head: main::@1_3 tails: main::@1_3 blocks: main::@1_3 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::a#11 (const byte) main::a#7 Successful SSA optimization Pass2RedundantPhiElimination Constant (const byte) main::a#10 = ++main::a#7 @@ -182,7 +177,6 @@ Successful SSA optimization Pass2AliasElimination Creating PHI for main::a#13 in block main::@2 - (byte) main::a#16 ← phi( main::@1_4/(byte) main::a#13 ) Unrolling loop Loop head: main::@1_4 tails: main::@1_4 blocks: main::@1_4 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::a#14 (const byte) main::a#10 Successful SSA optimization Pass2RedundantPhiElimination Constant (const byte) main::a#13 = ++main::a#10 @@ -197,7 +191,6 @@ Successful SSA optimization Pass2AliasElimination Creating PHI for main::a#16 in block main::@2 - (byte) main::a#19 ← phi( main::@1_5/(byte) main::a#16 ) Unrolling loop Loop head: main::@1_5 tails: main::@1_5 blocks: main::@1_5 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::a#17 (const byte) main::a#13 Successful SSA optimization Pass2RedundantPhiElimination Constant (const byte) main::a#16 = ++main::a#13 @@ -212,7 +205,6 @@ Successful SSA optimization Pass2AliasElimination Creating PHI for main::a#19 in block main::@2 - (byte) main::a#22 ← phi( main::@1_6/(byte) main::a#19 ) Unrolling loop Loop head: main::@1_6 tails: main::@1_6 blocks: main::@1_6 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::a#20 (const byte) main::a#16 Successful SSA optimization Pass2RedundantPhiElimination Constant (const byte) main::a#19 = ++main::a#16 @@ -227,7 +219,6 @@ Successful SSA optimization Pass2AliasElimination Creating PHI for main::a#22 in block main::@2 - (byte) main::a#25 ← phi( main::@1_7/(byte) main::a#22 ) Unrolling loop Loop head: main::@1_7 tails: main::@1_7 blocks: main::@1_7 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::a#23 (const byte) main::a#19 Successful SSA optimization Pass2RedundantPhiElimination Constant (const byte) main::a#22 = ++main::a#19 @@ -242,7 +233,6 @@ Successful SSA optimization Pass2AliasElimination Creating PHI for main::a#25 in block main::@2 - (byte) main::a#28 ← phi( main::@1_8/(byte) main::a#25 ) Unrolling loop Loop head: main::@1_8 tails: main::@1_8 blocks: main::@1_8 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::a#26 (const byte) main::a#22 Successful SSA optimization Pass2RedundantPhiElimination Constant (const byte) main::a#25 = ++main::a#22 @@ -257,7 +247,6 @@ Successful SSA optimization Pass2AliasElimination Creating PHI for main::a#28 in block main::@2 - (byte) main::a#31 ← phi( main::@1_9/(byte) main::a#28 ) Unrolling loop Loop head: main::@1_9 tails: main::@1_9 blocks: main::@1_9 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::a#29 (const byte) main::a#25 Successful SSA optimization Pass2RedundantPhiElimination Constant (const byte) main::a#28 = ++main::a#25 @@ -272,7 +261,6 @@ Successful SSA optimization Pass2AliasElimination Creating PHI for main::a#31 in block main::@2 - (byte) main::a#34 ← phi( main::@1_10/(byte) main::a#31 ) Unrolling loop Loop head: main::@1_10 tails: main::@1_10 blocks: main::@1_10 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::a#32 (const byte) main::a#28 Successful SSA optimization Pass2RedundantPhiElimination Constant (const byte) main::a#31 = ++main::a#28 @@ -291,7 +279,6 @@ Redundant Phi (byte) main::a#34 (const byte) main::a#31 Successful SSA optimization Pass2RedundantPhiElimination Consolidated array index constant in *(main::SCREEN#0+main::a#31) Successful SSA optimization Pass2ConstantAdditionElimination -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with different constant siblings (const byte) main::a#0 Inlining constant with different constant siblings (const byte) main::a#1 Inlining constant with different constant siblings (const byte) main::a#4 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/unroll-screenfill-for-double.log b/src/test/java/dk/camelot64/kickc/test/ref/unroll-screenfill-for-double.log index ab33a4982..652178c4a 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/unroll-screenfill-for-double.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/unroll-screenfill-for-double.log @@ -139,7 +139,6 @@ SYMBOL TABLE SSA (byte) main::x#3 (byte) main::x#4 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks Alias (byte) main::x#2 = (byte) main::x#3 @@ -168,7 +167,6 @@ Redundant Phi (byte*) main::SCREEN#2 (const byte*) main::SCREEN#0 Successful SSA optimization Pass2RedundantPhiElimination Unrolling loop Loop head: main::@2 tails: main::@2 blocks: main::@2 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::line#2 (const byte) main::line#0 Successful SSA optimization Pass2RedundantPhiElimination Constant (const byte/signed word/word/dword/signed dword) main::$0 = main::line#0*40 @@ -180,7 +178,6 @@ if() condition always true - replacing block destination [6] if((const byte) mai Successful SSA optimization Pass2ConstantIfs Unrolling loop Loop head: main::@2_1 tails: main::@2_1 blocks: main::@2_1 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::line#3 (const byte) main::line#1 Successful SSA optimization Pass2RedundantPhiElimination Constant (const byte/signed word/word/dword/signed dword) main::$4 = main::line#1*40 @@ -192,7 +189,6 @@ if() condition always true - replacing block destination [8] if((const byte) mai Successful SSA optimization Pass2ConstantIfs Unrolling loop Loop head: main::@2_2 tails: main::@2_2 blocks: main::@2_2 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::line#5 (const byte) main::line#4 Successful SSA optimization Pass2RedundantPhiElimination Constant (const byte/signed word/word/dword/signed dword) main::$6 = main::line#4*40 @@ -204,7 +200,6 @@ if() condition always true - replacing block destination [9] if((const byte) mai Successful SSA optimization Pass2ConstantIfs Unrolling loop Loop head: main::@2_3 tails: main::@2_3 blocks: main::@2_3 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::line#7 (const byte) main::line#6 Successful SSA optimization Pass2RedundantPhiElimination Constant (const byte/signed word/word/dword/signed dword) main::$8 = main::line#6*40 @@ -216,7 +211,6 @@ if() condition always true - replacing block destination [10] if((const byte) ma Successful SSA optimization Pass2ConstantIfs Unrolling loop Loop head: main::@2_4 tails: main::@2_4 blocks: main::@2_4 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::line#9 (const byte) main::line#8 Successful SSA optimization Pass2RedundantPhiElimination Constant (const byte/signed word/word/dword/signed dword) main::$10 = main::line#8*40 @@ -228,7 +222,6 @@ if() condition always true - replacing block destination [11] if((const byte) ma Successful SSA optimization Pass2ConstantIfs Unrolling loop Loop head: main::@2_5 tails: main::@2_5 blocks: main::@2_5 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::line#11 (const byte) main::line#10 Successful SSA optimization Pass2RedundantPhiElimination Constant (const byte/signed word/word/dword/signed dword) main::$12 = main::line#10*40 @@ -240,7 +233,6 @@ if() condition always true - replacing block destination [12] if((const byte) ma Successful SSA optimization Pass2ConstantIfs Unrolling loop Loop head: main::@2_6 tails: main::@2_6 blocks: main::@2_6 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::line#13 (const byte) main::line#12 Successful SSA optimization Pass2RedundantPhiElimination Constant (const byte/signed word/word/dword/signed dword) main::$14 = main::line#12*40 @@ -252,7 +244,6 @@ if() condition always true - replacing block destination [13] if((const byte) ma Successful SSA optimization Pass2ConstantIfs Unrolling loop Loop head: main::@2_7 tails: main::@2_7 blocks: main::@2_7 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::line#15 (const byte) main::line#14 Successful SSA optimization Pass2RedundantPhiElimination Constant (const word/signed word/dword/signed dword) main::$16 = main::line#14*40 @@ -264,7 +255,6 @@ if() condition always true - replacing block destination [14] if((const byte) ma Successful SSA optimization Pass2ConstantIfs Unrolling loop Loop head: main::@2_8 tails: main::@2_8 blocks: main::@2_8 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::line#17 (const byte) main::line#16 Successful SSA optimization Pass2RedundantPhiElimination Constant (const word/signed word/dword/signed dword) main::$18 = main::line#16*40 @@ -276,7 +266,6 @@ if() condition always true - replacing block destination [15] if((const byte) ma Successful SSA optimization Pass2ConstantIfs Unrolling loop Loop head: main::@2_9 tails: main::@2_9 blocks: main::@2_9 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::line#19 (const byte) main::line#18 Successful SSA optimization Pass2RedundantPhiElimination Constant (const word/signed word/dword/signed dword) main::$20 = main::line#18*40 @@ -288,7 +277,6 @@ if() condition always true - replacing block destination [16] if((const byte) ma Successful SSA optimization Pass2ConstantIfs Unrolling loop Loop head: main::@2_10 tails: main::@2_10 blocks: main::@2_10 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::line#21 (const byte) main::line#20 Successful SSA optimization Pass2RedundantPhiElimination Constant (const word/signed word/dword/signed dword) main::$22 = main::line#20*40 @@ -309,7 +297,6 @@ Removing unused block main::@2_11 Successful SSA optimization Pass2EliminateUnusedBlocks Unrolling loop Loop head: main::@1 tails: main::@3 blocks: main::@3 main::@2_10 main::@2_9 main::@2_8 main::@2_7 main::@2_6 main::@2_5 main::@2_4 main::@2_3 main::@2_2 main::@2_1 main::@2 main::@1 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::x#4 (const byte) main::x#0 Successful SSA optimization Pass2RedundantPhiElimination Constant (const byte) main::x#1 = ++main::x#0 @@ -333,7 +320,6 @@ Culled Empty Block (label) main::@3 Successful SSA optimization Pass2CullEmptyBlocks Unrolling loop Loop head: main::@1_1 tails: main::@3_1 blocks: main::@3_1 main::@2_21 main::@2_20 main::@2_19 main::@2_18 main::@2_17 main::@2_16 main::@2_15 main::@2_14 main::@2_13 main::@2_12 main::@2_11 main::@1_1 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::x#5 (const byte) main::x#1 Successful SSA optimization Pass2RedundantPhiElimination Constant (const byte) main::x#6 = ++main::x#1 @@ -357,7 +343,6 @@ Culled Empty Block (label) main::@3_1 Successful SSA optimization Pass2CullEmptyBlocks Unrolling loop Loop head: main::@1_2 tails: main::@3_2 blocks: main::@3_2 main::@2_32 main::@2_31 main::@2_30 main::@2_29 main::@2_28 main::@2_27 main::@2_26 main::@2_25 main::@2_24 main::@2_23 main::@2_22 main::@1_2 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::x#7 (const byte) main::x#6 Successful SSA optimization Pass2RedundantPhiElimination Constant (const byte) main::x#8 = ++main::x#6 @@ -381,7 +366,6 @@ Culled Empty Block (label) main::@3_2 Successful SSA optimization Pass2CullEmptyBlocks Unrolling loop Loop head: main::@1_1 tails: main::@3_1 blocks: main::@3_1 main::@2_43 main::@2_42 main::@2_41 main::@2_40 main::@2_39 main::@2_38 main::@2_37 main::@2_36 main::@2_35 main::@2_34 main::@2_33 main::@1_1 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::x#9 (const byte) main::x#8 Successful SSA optimization Pass2RedundantPhiElimination Constant (const byte) main::x#10 = ++main::x#8 @@ -405,7 +389,6 @@ Culled Empty Block (label) main::@3_1 Successful SSA optimization Pass2CullEmptyBlocks Unrolling loop Loop head: main::@1_2 tails: main::@3_2 blocks: main::@3_2 main::@2_54 main::@2_53 main::@2_52 main::@2_51 main::@2_50 main::@2_49 main::@2_48 main::@2_47 main::@2_46 main::@2_45 main::@2_44 main::@1_2 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::x#11 (const byte) main::x#10 Successful SSA optimization Pass2RedundantPhiElimination Constant (const byte) main::x#12 = ++main::x#10 @@ -429,7 +412,6 @@ Culled Empty Block (label) main::@3_2 Successful SSA optimization Pass2CullEmptyBlocks Unrolling loop Loop head: main::@1_1 tails: main::@3_1 blocks: main::@3_1 main::@2_65 main::@2_64 main::@2_63 main::@2_62 main::@2_61 main::@2_60 main::@2_59 main::@2_58 main::@2_57 main::@2_56 main::@2_55 main::@1_1 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::x#13 (const byte) main::x#12 Successful SSA optimization Pass2RedundantPhiElimination Constant (const byte) main::x#14 = ++main::x#12 @@ -453,7 +435,6 @@ Culled Empty Block (label) main::@3_1 Successful SSA optimization Pass2CullEmptyBlocks Unrolling loop Loop head: main::@1_2 tails: main::@3_2 blocks: main::@3_2 main::@2_76 main::@2_75 main::@2_74 main::@2_73 main::@2_72 main::@2_71 main::@2_70 main::@2_69 main::@2_68 main::@2_67 main::@2_66 main::@1_2 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::x#15 (const byte) main::x#14 Successful SSA optimization Pass2RedundantPhiElimination Constant (const byte) main::x#16 = ++main::x#14 @@ -477,7 +458,6 @@ Culled Empty Block (label) main::@3_2 Successful SSA optimization Pass2CullEmptyBlocks Unrolling loop Loop head: main::@1_1 tails: main::@3_1 blocks: main::@3_1 main::@2_87 main::@2_86 main::@2_85 main::@2_84 main::@2_83 main::@2_82 main::@2_81 main::@2_80 main::@2_79 main::@2_78 main::@2_77 main::@1_1 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::x#17 (const byte) main::x#16 Successful SSA optimization Pass2RedundantPhiElimination Constant (const byte) main::x#18 = ++main::x#16 @@ -501,7 +481,6 @@ Culled Empty Block (label) main::@3_1 Successful SSA optimization Pass2CullEmptyBlocks Unrolling loop Loop head: main::@1_2 tails: main::@3_2 blocks: main::@3_2 main::@2_98 main::@2_97 main::@2_96 main::@2_95 main::@2_94 main::@2_93 main::@2_92 main::@2_91 main::@2_90 main::@2_89 main::@2_88 main::@1_2 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::x#19 (const byte) main::x#18 Successful SSA optimization Pass2RedundantPhiElimination Constant (const byte) main::x#20 = ++main::x#18 @@ -525,7 +504,6 @@ Culled Empty Block (label) main::@3_2 Successful SSA optimization Pass2CullEmptyBlocks Unrolling loop Loop head: main::@1_1 tails: main::@3_1 blocks: main::@3_1 main::@2_109 main::@2_108 main::@2_107 main::@2_106 main::@2_105 main::@2_104 main::@2_103 main::@2_102 main::@2_101 main::@2_100 main::@2_99 main::@1_1 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::x#21 (const byte) main::x#20 Successful SSA optimization Pass2RedundantPhiElimination Constant (const byte) main::x#22 = ++main::x#20 @@ -549,7 +527,6 @@ Culled Empty Block (label) main::@3_1 Successful SSA optimization Pass2CullEmptyBlocks Unrolling loop Loop head: main::@1_2 tails: main::@3_2 blocks: main::@3_2 main::@2_120 main::@2_119 main::@2_118 main::@2_117 main::@2_116 main::@2_115 main::@2_114 main::@2_113 main::@2_112 main::@2_111 main::@2_110 main::@1_2 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::x#23 (const byte) main::x#22 Successful SSA optimization Pass2RedundantPhiElimination Constant (const byte) main::x#24 = ++main::x#22 @@ -590,7 +567,6 @@ Successful SSA optimization Pass2EliminateUnusedBlocks Culled Empty Block (label) main::@1_2 Culled Empty Block (label) main::@3_2 Successful SSA optimization Pass2CullEmptyBlocks -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with different constant siblings (const byte) main::x#0 Inlining constant with different constant siblings (const byte) main::line#0 Inlining constant with different constant siblings (const byte) main::line#1 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/unroll-screenfill-for.log b/src/test/java/dk/camelot64/kickc/test/ref/unroll-screenfill-for.log index 10554b9a0..b4592729d 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/unroll-screenfill-for.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/unroll-screenfill-for.log @@ -141,7 +141,6 @@ SYMBOL TABLE SSA (byte) main::x#3 (byte) main::x#4 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks Alias (byte) main::x#2 = (byte) main::x#3 @@ -170,7 +169,6 @@ Redundant Phi (byte*) main::SCREEN#2 (const byte*) main::SCREEN#0 Successful SSA optimization Pass2RedundantPhiElimination Unrolling loop Loop head: main::@2 tails: main::@2 blocks: main::@2 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::line#2 (const byte) main::line#0 Successful SSA optimization Pass2RedundantPhiElimination Constant (const byte/signed word/word/dword/signed dword) main::$0 = main::line#0*40 @@ -182,7 +180,6 @@ if() condition always true - replacing block destination [6] if((const byte) mai Successful SSA optimization Pass2ConstantIfs Unrolling loop Loop head: main::@2_1 tails: main::@2_1 blocks: main::@2_1 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::line#3 (const byte) main::line#1 Successful SSA optimization Pass2RedundantPhiElimination Constant (const byte/signed word/word/dword/signed dword) main::$4 = main::line#1*40 @@ -194,7 +191,6 @@ if() condition always true - replacing block destination [8] if((const byte) mai Successful SSA optimization Pass2ConstantIfs Unrolling loop Loop head: main::@2_2 tails: main::@2_2 blocks: main::@2_2 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::line#5 (const byte) main::line#4 Successful SSA optimization Pass2RedundantPhiElimination Constant (const byte/signed word/word/dword/signed dword) main::$6 = main::line#4*40 @@ -206,7 +202,6 @@ if() condition always true - replacing block destination [9] if((const byte) mai Successful SSA optimization Pass2ConstantIfs Unrolling loop Loop head: main::@2_3 tails: main::@2_3 blocks: main::@2_3 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::line#7 (const byte) main::line#6 Successful SSA optimization Pass2RedundantPhiElimination Constant (const byte/signed word/word/dword/signed dword) main::$8 = main::line#6*40 @@ -218,7 +213,6 @@ if() condition always true - replacing block destination [10] if((const byte) ma Successful SSA optimization Pass2ConstantIfs Unrolling loop Loop head: main::@2_4 tails: main::@2_4 blocks: main::@2_4 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::line#9 (const byte) main::line#8 Successful SSA optimization Pass2RedundantPhiElimination Constant (const byte/signed word/word/dword/signed dword) main::$10 = main::line#8*40 @@ -230,7 +224,6 @@ if() condition always true - replacing block destination [11] if((const byte) ma Successful SSA optimization Pass2ConstantIfs Unrolling loop Loop head: main::@2_5 tails: main::@2_5 blocks: main::@2_5 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::line#11 (const byte) main::line#10 Successful SSA optimization Pass2RedundantPhiElimination Constant (const byte/signed word/word/dword/signed dword) main::$12 = main::line#10*40 @@ -242,7 +235,6 @@ if() condition always true - replacing block destination [12] if((const byte) ma Successful SSA optimization Pass2ConstantIfs Unrolling loop Loop head: main::@2_6 tails: main::@2_6 blocks: main::@2_6 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::line#13 (const byte) main::line#12 Successful SSA optimization Pass2RedundantPhiElimination Constant (const byte/signed word/word/dword/signed dword) main::$14 = main::line#12*40 @@ -254,7 +246,6 @@ if() condition always true - replacing block destination [13] if((const byte) ma Successful SSA optimization Pass2ConstantIfs Unrolling loop Loop head: main::@2_7 tails: main::@2_7 blocks: main::@2_7 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::line#15 (const byte) main::line#14 Successful SSA optimization Pass2RedundantPhiElimination Constant (const word/signed word/dword/signed dword) main::$16 = main::line#14*40 @@ -266,7 +257,6 @@ if() condition always true - replacing block destination [14] if((const byte) ma Successful SSA optimization Pass2ConstantIfs Unrolling loop Loop head: main::@2_8 tails: main::@2_8 blocks: main::@2_8 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::line#17 (const byte) main::line#16 Successful SSA optimization Pass2RedundantPhiElimination Constant (const word/signed word/dword/signed dword) main::$18 = main::line#16*40 @@ -278,7 +268,6 @@ if() condition always true - replacing block destination [15] if((const byte) ma Successful SSA optimization Pass2ConstantIfs Unrolling loop Loop head: main::@2_9 tails: main::@2_9 blocks: main::@2_9 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::line#19 (const byte) main::line#18 Successful SSA optimization Pass2RedundantPhiElimination Constant (const word/signed word/dword/signed dword) main::$20 = main::line#18*40 @@ -290,7 +279,6 @@ if() condition always true - replacing block destination [16] if((const byte) ma Successful SSA optimization Pass2ConstantIfs Unrolling loop Loop head: main::@2_10 tails: main::@2_10 blocks: main::@2_10 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::line#21 (const byte) main::line#20 Successful SSA optimization Pass2RedundantPhiElimination Constant (const word/signed word/dword/signed dword) main::$22 = main::line#20*40 @@ -302,7 +290,6 @@ if() condition always true - replacing block destination [17] if((const byte) ma Successful SSA optimization Pass2ConstantIfs Unrolling loop Loop head: main::@2_11 tails: main::@2_11 blocks: main::@2_11 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::line#23 (const byte) main::line#22 Successful SSA optimization Pass2RedundantPhiElimination Constant (const word/signed word/dword/signed dword) main::$24 = main::line#22*40 @@ -314,7 +301,6 @@ if() condition always true - replacing block destination [18] if((const byte) ma Successful SSA optimization Pass2ConstantIfs Unrolling loop Loop head: main::@2_12 tails: main::@2_12 blocks: main::@2_12 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::line#25 (const byte) main::line#24 Successful SSA optimization Pass2RedundantPhiElimination Constant (const word/signed word/dword/signed dword) main::$26 = main::line#24*40 @@ -326,7 +312,6 @@ if() condition always true - replacing block destination [19] if((const byte) ma Successful SSA optimization Pass2ConstantIfs Unrolling loop Loop head: main::@2_13 tails: main::@2_13 blocks: main::@2_13 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::line#27 (const byte) main::line#26 Successful SSA optimization Pass2RedundantPhiElimination Constant (const word/signed word/dword/signed dword) main::$28 = main::line#26*40 @@ -338,7 +323,6 @@ if() condition always true - replacing block destination [20] if((const byte) ma Successful SSA optimization Pass2ConstantIfs Unrolling loop Loop head: main::@2_14 tails: main::@2_14 blocks: main::@2_14 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::line#29 (const byte) main::line#28 Successful SSA optimization Pass2RedundantPhiElimination Constant (const word/signed word/dword/signed dword) main::$30 = main::line#28*40 @@ -350,7 +334,6 @@ if() condition always true - replacing block destination [21] if((const byte) ma Successful SSA optimization Pass2ConstantIfs Unrolling loop Loop head: main::@2_15 tails: main::@2_15 blocks: main::@2_15 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::line#31 (const byte) main::line#30 Successful SSA optimization Pass2RedundantPhiElimination Constant (const word/signed word/dword/signed dword) main::$32 = main::line#30*40 @@ -362,7 +345,6 @@ if() condition always true - replacing block destination [22] if((const byte) ma Successful SSA optimization Pass2ConstantIfs Unrolling loop Loop head: main::@2_16 tails: main::@2_16 blocks: main::@2_16 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::line#33 (const byte) main::line#32 Successful SSA optimization Pass2RedundantPhiElimination Constant (const word/signed word/dword/signed dword) main::$34 = main::line#32*40 @@ -374,7 +356,6 @@ if() condition always true - replacing block destination [23] if((const byte) ma Successful SSA optimization Pass2ConstantIfs Unrolling loop Loop head: main::@2_17 tails: main::@2_17 blocks: main::@2_17 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::line#35 (const byte) main::line#34 Successful SSA optimization Pass2RedundantPhiElimination Constant (const word/signed word/dword/signed dword) main::$36 = main::line#34*40 @@ -386,7 +367,6 @@ if() condition always true - replacing block destination [24] if((const byte) ma Successful SSA optimization Pass2ConstantIfs Unrolling loop Loop head: main::@2_18 tails: main::@2_18 blocks: main::@2_18 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::line#37 (const byte) main::line#36 Successful SSA optimization Pass2RedundantPhiElimination Constant (const word/signed word/dword/signed dword) main::$38 = main::line#36*40 @@ -398,7 +378,6 @@ if() condition always true - replacing block destination [25] if((const byte) ma Successful SSA optimization Pass2ConstantIfs Unrolling loop Loop head: main::@2_19 tails: main::@2_19 blocks: main::@2_19 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::line#39 (const byte) main::line#38 Successful SSA optimization Pass2RedundantPhiElimination Constant (const word/signed word/dword/signed dword) main::$40 = main::line#38*40 @@ -410,7 +389,6 @@ if() condition always true - replacing block destination [26] if((const byte) ma Successful SSA optimization Pass2ConstantIfs Unrolling loop Loop head: main::@2_20 tails: main::@2_20 blocks: main::@2_20 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::line#41 (const byte) main::line#40 Successful SSA optimization Pass2RedundantPhiElimination Constant (const word/signed word/dword/signed dword) main::$42 = main::line#40*40 @@ -422,7 +400,6 @@ if() condition always true - replacing block destination [27] if((const byte) ma Successful SSA optimization Pass2ConstantIfs Unrolling loop Loop head: main::@2_21 tails: main::@2_21 blocks: main::@2_21 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::line#43 (const byte) main::line#42 Successful SSA optimization Pass2RedundantPhiElimination Constant (const word/signed word/dword/signed dword) main::$44 = main::line#42*40 @@ -434,7 +411,6 @@ if() condition always true - replacing block destination [28] if((const byte) ma Successful SSA optimization Pass2ConstantIfs Unrolling loop Loop head: main::@2_22 tails: main::@2_22 blocks: main::@2_22 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::line#45 (const byte) main::line#44 Successful SSA optimization Pass2RedundantPhiElimination Constant (const word/signed word/dword/signed dword) main::$46 = main::line#44*40 @@ -446,7 +422,6 @@ if() condition always true - replacing block destination [29] if((const byte) ma Successful SSA optimization Pass2ConstantIfs Unrolling loop Loop head: main::@2_23 tails: main::@2_23 blocks: main::@2_23 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::line#47 (const byte) main::line#46 Successful SSA optimization Pass2RedundantPhiElimination Constant (const word/signed word/dword/signed dword) main::$48 = main::line#46*40 @@ -458,7 +433,6 @@ if() condition always true - replacing block destination [30] if((const byte) ma Successful SSA optimization Pass2ConstantIfs Unrolling loop Loop head: main::@2_24 tails: main::@2_24 blocks: main::@2_24 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::line#49 (const byte) main::line#48 Successful SSA optimization Pass2RedundantPhiElimination Constant (const word/signed word/dword/signed dword) main::$50 = main::line#48*40 @@ -477,7 +451,6 @@ Eliminating variable (byte*~) main::$53 from unused block main::@2_25 Eliminating variable (byte) main::line#52 from unused block main::@2_25 Removing unused block main::@2_25 Successful SSA optimization Pass2EliminateUnusedBlocks -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte) main::x#0 Inlining constant with different constant siblings (const byte) main::line#0 Inlining constant with different constant siblings (const byte) main::line#1 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/unroll-screenfill-while.log b/src/test/java/dk/camelot64/kickc/test/ref/unroll-screenfill-while.log index 65180be85..439ae616a 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/unroll-screenfill-while.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/unroll-screenfill-while.log @@ -167,7 +167,6 @@ SYMBOL TABLE SSA (byte) main::x#4 (byte) main::x#5 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks Alias (byte) main::line#2 = (byte) main::line#3 @@ -195,7 +194,6 @@ Redundant Phi (byte*) main::SCREEN#3 (const byte*) main::SCREEN#0 Successful SSA optimization Pass2RedundantPhiElimination Unrolling loop Loop head: main::@2 tails: main::@3 blocks: main::@3 main::@2 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::line#2 (const byte) main::line#0 Successful SSA optimization Pass2RedundantPhiElimination Constant (const byte/signed word/word/dword/signed dword) main::$1 = main::line#0*40 @@ -209,7 +207,6 @@ Culled Empty Block (label) main::@2 Successful SSA optimization Pass2CullEmptyBlocks Unrolling loop Loop head: main::@2_1 tails: main::@3_1 blocks: main::@3_1 main::@2_1 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::line#4 (const byte) main::line#1 Successful SSA optimization Pass2RedundantPhiElimination Constant (const byte/signed word/word/dword/signed dword) main::$4 = main::line#1*40 @@ -223,7 +220,6 @@ Culled Empty Block (label) main::@2_1 Successful SSA optimization Pass2CullEmptyBlocks Unrolling loop Loop head: main::@2_2 tails: main::@3_2 blocks: main::@3_2 main::@2_2 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::line#6 (const byte) main::line#5 Successful SSA optimization Pass2RedundantPhiElimination Constant (const byte/signed word/word/dword/signed dword) main::$6 = main::line#5*40 @@ -237,7 +233,6 @@ Culled Empty Block (label) main::@2_2 Successful SSA optimization Pass2CullEmptyBlocks Unrolling loop Loop head: main::@2_1 tails: main::@3_3 blocks: main::@3_3 main::@2_1 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::line#8 (const byte) main::line#7 Successful SSA optimization Pass2RedundantPhiElimination Constant (const byte/signed word/word/dword/signed dword) main::$8 = main::line#7*40 @@ -251,7 +246,6 @@ Culled Empty Block (label) main::@2_1 Successful SSA optimization Pass2CullEmptyBlocks Unrolling loop Loop head: main::@2_2 tails: main::@3_4 blocks: main::@3_4 main::@2_2 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::line#10 (const byte) main::line#9 Successful SSA optimization Pass2RedundantPhiElimination Constant (const byte/signed word/word/dword/signed dword) main::$10 = main::line#9*40 @@ -265,7 +259,6 @@ Culled Empty Block (label) main::@2_2 Successful SSA optimization Pass2CullEmptyBlocks Unrolling loop Loop head: main::@2_1 tails: main::@3_5 blocks: main::@3_5 main::@2_1 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::line#12 (const byte) main::line#11 Successful SSA optimization Pass2RedundantPhiElimination Constant (const byte/signed word/word/dword/signed dword) main::$12 = main::line#11*40 @@ -279,7 +272,6 @@ Culled Empty Block (label) main::@2_1 Successful SSA optimization Pass2CullEmptyBlocks Unrolling loop Loop head: main::@2_2 tails: main::@3_6 blocks: main::@3_6 main::@2_2 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::line#14 (const byte) main::line#13 Successful SSA optimization Pass2RedundantPhiElimination Constant (const byte/signed word/word/dword/signed dword) main::$14 = main::line#13*40 @@ -293,7 +285,6 @@ Culled Empty Block (label) main::@2_2 Successful SSA optimization Pass2CullEmptyBlocks Unrolling loop Loop head: main::@2_1 tails: main::@3_7 blocks: main::@3_7 main::@2_1 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::line#16 (const byte) main::line#15 Successful SSA optimization Pass2RedundantPhiElimination Constant (const word/signed word/dword/signed dword) main::$16 = main::line#15*40 @@ -307,7 +298,6 @@ Culled Empty Block (label) main::@2_1 Successful SSA optimization Pass2CullEmptyBlocks Unrolling loop Loop head: main::@2_2 tails: main::@3_8 blocks: main::@3_8 main::@2_2 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::line#18 (const byte) main::line#17 Successful SSA optimization Pass2RedundantPhiElimination Constant (const word/signed word/dword/signed dword) main::$18 = main::line#17*40 @@ -321,7 +311,6 @@ Culled Empty Block (label) main::@2_2 Successful SSA optimization Pass2CullEmptyBlocks Unrolling loop Loop head: main::@2_1 tails: main::@3_9 blocks: main::@3_9 main::@2_1 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::line#20 (const byte) main::line#19 Successful SSA optimization Pass2RedundantPhiElimination Constant (const word/signed word/dword/signed dword) main::$20 = main::line#19*40 @@ -335,7 +324,6 @@ Culled Empty Block (label) main::@2_1 Successful SSA optimization Pass2CullEmptyBlocks Unrolling loop Loop head: main::@2_2 tails: main::@3_10 blocks: main::@3_10 main::@2_2 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::line#22 (const byte) main::line#21 Successful SSA optimization Pass2RedundantPhiElimination Constant (const word/signed word/dword/signed dword) main::$22 = main::line#21*40 @@ -349,7 +337,6 @@ Culled Empty Block (label) main::@2_2 Successful SSA optimization Pass2CullEmptyBlocks Unrolling loop Loop head: main::@2_1 tails: main::@3_11 blocks: main::@3_11 main::@2_1 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::line#24 (const byte) main::line#23 Successful SSA optimization Pass2RedundantPhiElimination Constant (const word/signed word/dword/signed dword) main::$24 = main::line#23*40 @@ -363,7 +350,6 @@ Culled Empty Block (label) main::@2_1 Successful SSA optimization Pass2CullEmptyBlocks Unrolling loop Loop head: main::@2_2 tails: main::@3_12 blocks: main::@3_12 main::@2_2 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::line#26 (const byte) main::line#25 Successful SSA optimization Pass2RedundantPhiElimination Constant (const word/signed word/dword/signed dword) main::$26 = main::line#25*40 @@ -377,7 +363,6 @@ Culled Empty Block (label) main::@2_2 Successful SSA optimization Pass2CullEmptyBlocks Unrolling loop Loop head: main::@2_1 tails: main::@3_13 blocks: main::@3_13 main::@2_1 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::line#28 (const byte) main::line#27 Successful SSA optimization Pass2RedundantPhiElimination Constant (const word/signed word/dword/signed dword) main::$28 = main::line#27*40 @@ -391,7 +376,6 @@ Culled Empty Block (label) main::@2_1 Successful SSA optimization Pass2CullEmptyBlocks Unrolling loop Loop head: main::@2_2 tails: main::@3_14 blocks: main::@3_14 main::@2_2 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::line#30 (const byte) main::line#29 Successful SSA optimization Pass2RedundantPhiElimination Constant (const word/signed word/dword/signed dword) main::$30 = main::line#29*40 @@ -405,7 +389,6 @@ Culled Empty Block (label) main::@2_2 Successful SSA optimization Pass2CullEmptyBlocks Unrolling loop Loop head: main::@2_1 tails: main::@3_15 blocks: main::@3_15 main::@2_1 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::line#32 (const byte) main::line#31 Successful SSA optimization Pass2RedundantPhiElimination Constant (const word/signed word/dword/signed dword) main::$32 = main::line#31*40 @@ -419,7 +402,6 @@ Culled Empty Block (label) main::@2_1 Successful SSA optimization Pass2CullEmptyBlocks Unrolling loop Loop head: main::@2_2 tails: main::@3_16 blocks: main::@3_16 main::@2_2 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::line#34 (const byte) main::line#33 Successful SSA optimization Pass2RedundantPhiElimination Constant (const word/signed word/dword/signed dword) main::$34 = main::line#33*40 @@ -433,7 +415,6 @@ Culled Empty Block (label) main::@2_2 Successful SSA optimization Pass2CullEmptyBlocks Unrolling loop Loop head: main::@2_1 tails: main::@3_17 blocks: main::@3_17 main::@2_1 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::line#36 (const byte) main::line#35 Successful SSA optimization Pass2RedundantPhiElimination Constant (const word/signed word/dword/signed dword) main::$36 = main::line#35*40 @@ -447,7 +428,6 @@ Culled Empty Block (label) main::@2_1 Successful SSA optimization Pass2CullEmptyBlocks Unrolling loop Loop head: main::@2_2 tails: main::@3_18 blocks: main::@3_18 main::@2_2 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::line#38 (const byte) main::line#37 Successful SSA optimization Pass2RedundantPhiElimination Constant (const word/signed word/dword/signed dword) main::$38 = main::line#37*40 @@ -461,7 +441,6 @@ Culled Empty Block (label) main::@2_2 Successful SSA optimization Pass2CullEmptyBlocks Unrolling loop Loop head: main::@2_1 tails: main::@3_19 blocks: main::@3_19 main::@2_1 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::line#40 (const byte) main::line#39 Successful SSA optimization Pass2RedundantPhiElimination Constant (const word/signed word/dword/signed dword) main::$40 = main::line#39*40 @@ -475,7 +454,6 @@ Culled Empty Block (label) main::@2_1 Successful SSA optimization Pass2CullEmptyBlocks Unrolling loop Loop head: main::@2_2 tails: main::@3_20 blocks: main::@3_20 main::@2_2 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::line#42 (const byte) main::line#41 Successful SSA optimization Pass2RedundantPhiElimination Constant (const word/signed word/dword/signed dword) main::$42 = main::line#41*40 @@ -489,7 +467,6 @@ Culled Empty Block (label) main::@2_2 Successful SSA optimization Pass2CullEmptyBlocks Unrolling loop Loop head: main::@2_1 tails: main::@3_21 blocks: main::@3_21 main::@2_1 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::line#44 (const byte) main::line#43 Successful SSA optimization Pass2RedundantPhiElimination Constant (const word/signed word/dword/signed dword) main::$44 = main::line#43*40 @@ -503,7 +480,6 @@ Culled Empty Block (label) main::@2_1 Successful SSA optimization Pass2CullEmptyBlocks Unrolling loop Loop head: main::@2_2 tails: main::@3_22 blocks: main::@3_22 main::@2_2 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::line#46 (const byte) main::line#45 Successful SSA optimization Pass2RedundantPhiElimination Constant (const word/signed word/dword/signed dword) main::$46 = main::line#45*40 @@ -517,7 +493,6 @@ Culled Empty Block (label) main::@2_2 Successful SSA optimization Pass2CullEmptyBlocks Unrolling loop Loop head: main::@2_1 tails: main::@3_23 blocks: main::@3_23 main::@2_1 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::line#48 (const byte) main::line#47 Successful SSA optimization Pass2RedundantPhiElimination Constant (const word/signed word/dword/signed dword) main::$48 = main::line#47*40 @@ -531,7 +506,6 @@ Culled Empty Block (label) main::@2_1 Successful SSA optimization Pass2CullEmptyBlocks Unrolling loop Loop head: main::@2_2 tails: main::@3_24 blocks: main::@3_24 main::@2_2 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::line#50 (const byte) main::line#49 Successful SSA optimization Pass2RedundantPhiElimination Constant (const word/signed word/dword/signed dword) main::$50 = main::line#49*40 @@ -545,7 +519,6 @@ Culled Empty Block (label) main::@2_2 Successful SSA optimization Pass2CullEmptyBlocks Unrolling loop Loop head: main::@2_1 tails: main::@3_25 blocks: main::@3_25 main::@2_1 Successful SSA optimization Pass2LoopUnroll -OPTIMIZING CONTROL FLOW GRAPH Redundant Phi (byte) main::line#52 (const byte) main::line#51 Successful SSA optimization Pass2RedundantPhiElimination Constant (const word/signed word/dword/signed dword) main::$52 = main::line#51*40 @@ -573,7 +546,6 @@ Eliminating unused constant (const word/signed word/dword/signed dword) main::$5 Successful SSA optimization PassNEliminateUnusedVars Eliminating unused constant (const byte) main::line#51 Successful SSA optimization PassNEliminateUnusedVars -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte) main::x#0 Inlining constant with different constant siblings (const byte) main::line#0 Inlining constant with different constant siblings (const byte) main::line#1 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/unused-method.log b/src/test/java/dk/camelot64/kickc/test/ref/unused-method.log index 4a9be1549..8818bd647 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/unused-method.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/unused-method.log @@ -84,14 +84,12 @@ SYMBOL TABLE SSA (byte*) main::screen (byte*) main::screen#0 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @3 Successful SSA optimization Pass2CullEmptyBlocks Constant (const byte*) main::screen#0 = ((byte*))1024 Successful SSA optimization Pass2ConstantIdentification Consolidated array index constant in *(main::screen#0+0) Successful SSA optimization Pass2ConstantAdditionElimination -OPTIMIZING CONTROL FLOW GRAPH Simplifying constant plus zero main::screen#0+0 Adding NOP phi() at start of @begin Adding NOP phi() at start of @2 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/unused-vars.log b/src/test/java/dk/camelot64/kickc/test/ref/unused-vars.log index 860c80908..0603b7c28 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/unused-vars.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/unused-vars.log @@ -275,7 +275,6 @@ SYMBOL TABLE SSA (byte) s::return#2 (byte) s::return#3 -OPTIMIZING CONTROL FLOW GRAPH Not aliassing identity: main::col#1 main::col#1 Not aliassing identity: main::COLS#1 main::COLS#1 Not aliassing identity: b#8 b#8 @@ -326,7 +325,6 @@ Resolved ranged comparison value if(main::i#1!=rangelast(0,100)) goto main::@1 t Culled Empty Block (label) main::@3 Culled Empty Block (label) @3 Successful SSA optimization Pass2CullEmptyBlocks -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte) main::i#0 Inlining constant with different constant siblings (const byte) b#0 Inlining constant with different constant siblings (const byte) b#11 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/unusedblockproblem.log b/src/test/java/dk/camelot64/kickc/test/ref/unusedblockproblem.log index ff032dfee..d1caa2c72 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/unusedblockproblem.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/unusedblockproblem.log @@ -135,7 +135,6 @@ SYMBOL TABLE SSA (byte) main::line#1 (byte) main::line#2 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks Alias (byte*) main::SCREEN#1 = (byte*) main::SCREEN#3 (byte*) main::SCREEN#4 @@ -164,7 +163,6 @@ Culled Empty Block (label) main::@1 Successful SSA optimization Pass2CullEmptyBlocks Eliminating unused constant (const byte) main::line#0 Successful SSA optimization PassNEliminateUnusedVars -OPTIMIZING CONTROL FLOW GRAPH Adding NOP phi() at start of @begin Adding NOP phi() at start of @1 Adding NOP phi() at start of @end diff --git a/src/test/java/dk/camelot64/kickc/test/ref/useglobal.log b/src/test/java/dk/camelot64/kickc/test/ref/useglobal.log index 8919ce644..f0426cf70 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/useglobal.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/useglobal.log @@ -64,7 +64,6 @@ SYMBOL TABLE SSA (void()) main() (label) main::@return -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks Alias (byte*) SCREEN#0 = (byte*) SCREEN#2 @@ -73,7 +72,6 @@ Redundant Phi (byte*) SCREEN#1 (byte*) SCREEN#0 Successful SSA optimization Pass2RedundantPhiElimination Constant (const byte*) SCREEN#0 = ((byte*))1024 Successful SSA optimization Pass2ConstantIdentification -OPTIMIZING CONTROL FLOW GRAPH Adding NOP phi() at start of @begin Adding NOP phi() at start of @1 Adding NOP phi() at start of @end diff --git a/src/test/java/dk/camelot64/kickc/test/ref/var-forward-problem.log b/src/test/java/dk/camelot64/kickc/test/ref/var-forward-problem.log index 8ca35b9ff..114d33a87 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/var-forward-problem.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/var-forward-problem.log @@ -69,13 +69,11 @@ SYMBOL TABLE SSA (byte*) screen (byte*) screen#0 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks Constant (const byte*) screen#0 = ((byte*))1024 Constant (const byte) b#0 = 'a' Successful SSA optimization Pass2ConstantIdentification -OPTIMIZING CONTROL FLOW GRAPH Adding NOP phi() at start of @begin Adding NOP phi() at start of @1 Adding NOP phi() at start of @end diff --git a/src/test/java/dk/camelot64/kickc/test/ref/var-register.log b/src/test/java/dk/camelot64/kickc/test/ref/var-register.log index 17071aa35..096e8668f 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/var-register.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/var-register.log @@ -219,7 +219,6 @@ SYMBOL TABLE SSA (byte) print::val#0 (byte) print::val#1 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @3 Successful SSA optimization Pass2CullEmptyBlocks Alias (byte) main::val1#0 = (byte~) main::$0 @@ -254,7 +253,6 @@ Self Phi Eliminated (byte) main::x#4 Successful SSA optimization Pass2SelfPhiElimination Redundant Phi (byte) main::x#4 (byte) main::x#7 Successful SSA optimization Pass2RedundantPhiElimination -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte) main::x#0 Inlining constant with var siblings (const byte) main::y#0 Inlining constant with var siblings (const byte) main::a#0 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/voronoi.log b/src/test/java/dk/camelot64/kickc/test/ref/voronoi.log index 713e41cff..57da2b4fb 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/voronoi.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/voronoi.log @@ -1096,7 +1096,6 @@ SYMBOL TABLE SSA (byte) render::y#4 (byte) render::y#5 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) animate::@5 Culled Empty Block (label) animate::@6 Culled Empty Block (label) @6 @@ -1282,7 +1281,6 @@ Self Phi Eliminated (byte) numpoints#15 Successful SSA optimization Pass2SelfPhiElimination Redundant Phi (byte) numpoints#15 (const byte) numpoints#0 Successful SSA optimization Pass2RedundantPhiElimination -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte*) initscreen::screen#0 Inlining constant with var siblings (const byte) render::y#0 Inlining constant with var siblings (const byte) render::x#0 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/wordexpr.log b/src/test/java/dk/camelot64/kickc/test/ref/wordexpr.log index 741325efc..2b202068c 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/wordexpr.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/wordexpr.log @@ -99,7 +99,6 @@ SYMBOL TABLE SSA (byte) main::i#1 (byte) main::i#2 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks Alias (word) main::b#1 = (word/signed dword/dword~) main::$1 @@ -112,7 +111,6 @@ Constant (const word/signed word/dword/signed dword) main::$0 = 40*8 Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value main::i#1 ← ++ main::i#2 to ++ Resolved ranged comparison value if(main::i#1!=rangelast(0,10)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) 11 -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const word) main::b#0 Inlining constant with var siblings (const byte) main::i#0 Constant inlined main::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/zpparammin.log b/src/test/java/dk/camelot64/kickc/test/ref/zpparammin.log index e01a51256..bf6c8ba53 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/zpparammin.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/zpparammin.log @@ -294,7 +294,6 @@ SYMBOL TABLE SSA (byte) sum2::return#3 (byte) sum2::return#4 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @4 Successful SSA optimization Pass2CullEmptyBlocks Alias (byte) sum::b#0 = (byte/signed word/word/dword/signed dword~) main::$0 @@ -335,7 +334,6 @@ Constant (const byte*) SCREEN2#0 = ((byte*))$0 Successful SSA optimization Pass2ConstantIdentification Resolved ranged next value main::i#1 ← ++ main::i#2 to ++ Resolved ranged comparison value if(main::i#1!=rangelast(0,10)) goto main::@1 to (byte/signed byte/word/signed word/dword/signed dword) 11 -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte) main::i#0 Constant inlined $0 = (word/signed word/dword/signed dword) 1024+(byte/signed byte/word/signed word/dword/signed dword) 40 Constant inlined main::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 diff --git a/src/test/java/dk/camelot64/kickc/test/ref/zpptr.log b/src/test/java/dk/camelot64/kickc/test/ref/zpptr.log index 039861a37..d671d5753 100644 --- a/src/test/java/dk/camelot64/kickc/test/ref/zpptr.log +++ b/src/test/java/dk/camelot64/kickc/test/ref/zpptr.log @@ -200,7 +200,6 @@ SYMBOL TABLE SSA (byte*) main::zpptr2#0 (byte*) main::zpptr2#1 -OPTIMIZING CONTROL FLOW GRAPH Culled Empty Block (label) @2 Successful SSA optimization Pass2CullEmptyBlocks Alias (byte*) main::zpptr2#0 = (byte*~) main::$0 @@ -243,7 +242,6 @@ Self Phi Eliminated (byte*) main::zpptr#3 Successful SSA optimization Pass2SelfPhiElimination Redundant Phi (byte*) main::zpptr#3 (const byte*) main::zpptr#0 Successful SSA optimization Pass2RedundantPhiElimination -OPTIMIZING CONTROL FLOW GRAPH Inlining constant with var siblings (const byte) main::j#0 Inlining constant with var siblings (const byte) main::i#0 Inlining constant with var siblings (const byte) main::k#0