aboutsummaryrefslogtreecommitdiff
path: root/gcc/graphds.cc
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2022-07-22 09:57:38 +0200
committerRichard Biener <rguenther@suse.de>2022-07-22 10:06:59 +0200
commitb2e99bb6900f33f46a0f4ca6ae94b8a39b0b9bb1 (patch)
treea895d7c63a41513adb9c1aa3ae84a7205a9a4302 /gcc/graphds.cc
parent3c4af0f0549a07799d76e9e48d3d3bd85197b92a (diff)
downloadgcc-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