aboutsummaryrefslogtreecommitdiff
path: root/libcpp/files.c
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2020-11-12 11:29:12 +0100
committerRichard Biener <rguenther@suse.de>2020-11-12 11:56:18 +0100
commit512c6ba04102295fccc62a173ee0086ca733c920 (patch)
tree674b8b35bd87e2d9461593eb1dfee207c095b28c /libcpp/files.c
parent7f445b5d6116000f1a6527f2164836cbc7c01dee (diff)
downloadgcc-512c6ba04102295fccc62a173ee0086ca733c920.zip
gcc-512c6ba04102295fccc62a173ee0086ca733c920.tar.gz
gcc-512c6ba04102295fccc62a173ee0086ca733c920.tar.bz2
Avoid PRE insert iteration when possible
The following make sure to only iterate PRE insertion when necessary - which is when AVAIL_OUT of a predecessor of a block we already visited changed (that's backedge destinations). To not regress this also makes sure to locally iterate insertion since even topological sort of expressions isn't enough to guarantee we get all opportunities of a block in one iteration. This avoids costly re-compute of the topologically sorted expression array (more micro-optimization is possible here). 2020-11-12 Richard Biener <rguenther@suse.de> * tree-ssa-pre.c (bitmap_value_replace_in_set): Return whether we have changed anything. (do_pre_regular_insertion): Get topologically sorted array of expressions from caller. (do_pre_partial_partial_insertion): Likewise. (insert): Compute topologically sorted arrays of expressions here and locally iterate actual insertion. Iterate only when AVAIL_OUT of an already visited block source changed.
Diffstat (limited to 'libcpp/files.c')
0 files changed, 0 insertions, 0 deletions