aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-loop-distribution.c
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2021-11-18 13:40:32 +0100
committerRichard Biener <rguenther@suse.de>2021-11-19 09:35:21 +0100
commit0fc859f5efcb4624a8b4ffdbf34d63972af179a8 (patch)
treeedca5ac944ef0ed42fce6f17db03cb5f7b0c9558 /gcc/tree-loop-distribution.c
parent09d462146b3107c665265b11ad925c61a91c6efb (diff)
downloadgcc-0fc859f5efcb4624a8b4ffdbf34d63972af179a8.zip
gcc-0fc859f5efcb4624a8b4ffdbf34d63972af179a8.tar.gz
gcc-0fc859f5efcb4624a8b4ffdbf34d63972af179a8.tar.bz2
tree-optimization/102436 - restore loop store motion
This restores a case of conditional store motion we fail to handle after the rewrite. We can recognize the special case of all stores in a loop happening in a single conditionally executed block which ensures stores are not re-ordered by executing them in different loop iterations. Separating out the case avoids complicating the already complex main path. 2021-11-18 Richard Biener <rguenther@suse.de> PR tree-optimization/102436 * tree-ssa-loop-im.c (execute_sm_if_changed): Add mode to just create the if structure and return the then block. (execute_sm): Add flag to indicate the var will re-use another flag var. (hoist_memory_references): Support a single conditional block with all stores as special case. * gcc.dg/torture/20211118-1.c: New testcase. * gcc.dg/tree-ssa/ssa-lim-18.c: Likewise.
Diffstat (limited to 'gcc/tree-loop-distribution.c')
0 files changed, 0 insertions, 0 deletions