aboutsummaryrefslogtreecommitdiff
path: root/libjava/classpath/lib/java
diff options
context:
space:
mode:
authorAndrew Pinski <quic_apinski@quicinc.com>2025-05-04 19:24:09 +0000
committerAndrew Pinski <quic_apinski@quicinc.com>2025-05-07 14:33:05 +0000
commit8335fd561fa823d32556512c09dfce44463e8eaa (patch)
treea7ef13f27564908428dc30d2d244b2c425d2f106 /libjava/classpath/lib/java
parent2c8d632d9ed4e3aeee2156ba17fe631ecbc90dbf (diff)
downloadgcc-8335fd561fa823d32556512c09dfce44463e8eaa.zip
gcc-8335fd561fa823d32556512c09dfce44463e8eaa.tar.gz
gcc-8335fd561fa823d32556512c09dfce44463e8eaa.tar.bz2
Loop-IM: Hoist (non-expensive) stmts to executed all loop when running before PRE
While fixing up how rewrite_to_defined_overflow works, gcc.dg/Wrestrict-22.c started to fail. This is because `d p+ 2` would moved by LIM and then be rewritten not using pointer plus. The rewriting part is correct behavior. It only recently started to be moved out; due to r16-190-g6901d56fea2132. Which has the following comment: ``` When we run before PRE and PRE is active hoist all expressions since PRE would do so anyway and we can preserve range info but PRE cannot. ``` This is not true if hoisting past the always executed point; so, instead of hoisting these statements all the way out of the max loops, take into account the always executed loop too. Bootstrapped and tested on x86_64-linux-gnu. gcc/ChangeLog: * tree-ssa-loop-im.cc (compute_invariantness): Hoist to the always executed point if ignorning the cost. Signed-off-by: Andrew Pinski <quic_apinski@quicinc.com>
Diffstat (limited to 'libjava/classpath/lib/java')
0 files changed, 0 insertions, 0 deletions