diff options
author | Richard Biener <rguenther@suse.de> | 2022-07-22 09:57:38 +0200 |
---|---|---|
committer | Richard Biener <rguenther@suse.de> | 2022-07-22 10:06:59 +0200 |
commit | b2e99bb6900f33f46a0f4ca6ae94b8a39b0b9bb1 (patch) | |
tree | a895d7c63a41513adb9c1aa3ae84a7205a9a4302 /gcc/graphds.cc | |
parent | 3c4af0f0549a07799d76e9e48d3d3bd85197b92a (diff) | |
download | gcc-b2e99bb6900f33f46a0f4ca6ae94b8a39b0b9bb1.zip gcc-b2e99bb6900f33f46a0f4ca6ae94b8a39b0b9bb1.tar.gz gcc-b2e99bb6900f33f46a0f4ca6ae94b8a39b0b9bb1.tar.bz2 |
tree-optimization/106397 - array prefetch and LC SSA
The following fixes maintaining LC SSA when array prefetch inserts
mfence instructions on loop exits that do not use memory. It also
fixes the latent issue that it might split exit edges for this
which will break LC SSA for non-virtuals as well. It should also
make the process cheaper by accumulating the required (LC) SSA
update until the end of the pass.
PR tree-optimization/106397
* tree-ssa-loop-prefetch.cc (emit_mfence_after_loop): Do
not update SSA form here.
(mark_nontemporal_stores): Return whether we marked any
non-temporal stores and inserted mfence.
(loop_prefetch_arrays): Note when we need to update SSA.
(tree_ssa_prefetch_arrays): Perform required (LC) SSA update
at the end of the pass.
* gcc.dg/pr106397.c: New testcase.
Diffstat (limited to 'gcc/graphds.cc')
0 files changed, 0 insertions, 0 deletions