File tree Expand file tree Collapse file tree 2 files changed +4
-2
lines changed
Expand file tree Collapse file tree 2 files changed +4
-2
lines changed Original file line number Diff line number Diff line change @@ -8,6 +8,9 @@ binaries are no longer stripped by default.
88Stripping is now done during linking, rather than shelling out to
99` strip ` . This is faster and more robust.
1010
11+ Improved dead code elimination after multiply loops, e.g. ` [>++<-][-] `
12+ is equivalent to ` [>++<-] ` .
13+
1114# v1.10.0
1215
1316Updated to LLVM 13.
Original file line number Diff line number Diff line change @@ -379,15 +379,14 @@ fn remove_dead_loops(instrs: Vec<AstNode>) -> Vec<AstNode> {
379379 if let Some ( prev_change_index) = previous_cell_change ( & instrs, index) {
380380 let prev_instr = & instrs[ prev_change_index] ;
381381 // If the previous instruction set to zero, our loop is dead.
382- // TODO: MultiplyMove also zeroes the current cell.
383382 // TODO: define an is_set_zero() helper.
384383 if matches ! (
385384 prev_instr,
386385 Set {
387386 amount: Wrapping ( 0 ) ,
388387 offset: 0 ,
389388 ..
390- }
389+ } | MultiplyMove { .. }
391390 ) {
392391 return false ;
393392 }
You can’t perform that action at this time.
0 commit comments