aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-switch-conversion.c
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2021-02-09 11:59:06 +0100
committerRichard Biener <rguenther@suse.de>2021-02-09 13:06:55 +0100
commit396cc31317ebad416e234dfa5f85d42585d32437 (patch)
tree90973acdc77a92ed5a5630f73b6b0075c6b4e310 /gcc/tree-switch-conversion.c
parente14ea108faa6eba6a60a45ff0ca3099ce6ae45c2 (diff)
downloadgcc-396cc31317ebad416e234dfa5f85d42585d32437.zip
gcc-396cc31317ebad416e234dfa5f85d42585d32437.tar.gz
gcc-396cc31317ebad416e234dfa5f85d42585d32437.tar.bz2
Fix O(region-size) unwind in VN
This fixes the currently O(region-size) unwinding of avail info to be O(unwind-size) by tracking a linked-list stack of pushed avails. This reduces the compile-time spent in complete unrolling for WRF. 2021-02-09 Richard Biener <rguenther@suse.de> PR tree-optimization/98863 * tree-ssa-sccvn.h (vn_avail::next_undo): Add. * tree-ssa-sccvn.c (last_pushed_avail): New global. (rpo_elim::eliminate_push_avail): Chain pushed avails. (unwind_state::avail_top): Add. (do_unwind): Rewrite unwinding of avail entries. (do_rpo_vn): Initialize last_pushed_avail and avail_top of the undo state.
Diffstat (limited to 'gcc/tree-switch-conversion.c')
0 files changed, 0 insertions, 0 deletions