diff options
author | Andrew Pinski <quic_apinski@quicinc.com> | 2024-10-01 18:34:00 +0000 |
---|---|---|
committer | Andrew Pinski <quic_apinski@quicinc.com> | 2024-10-02 17:16:01 +0000 |
commit | 1f619fe25925a5f79b9c33962e7a72e1f9fa4444 (patch) | |
tree | fb81f4c957a59b18a60d81fa1f4d300f97359ae6 /gcc/ChangeLog | |
parent | 77c3ef08e946306329070ea6415abe7d9e328cd6 (diff) | |
download | gcc-1f619fe25925a5f79b9c33962e7a72e1f9fa4444.zip gcc-1f619fe25925a5f79b9c33962e7a72e1f9fa4444.tar.gz gcc-1f619fe25925a5f79b9c33962e7a72e1f9fa4444.tar.bz2 |
phiopt: Fix VCE moving by rewriting it into cast [PR116098]
Phiopt match_and_simplify might move a well defined VCE assign statement
from being conditional to being uncondtitional; that VCE might no longer
being defined. It will need a rewrite into a cast instead.
This adds the rewriting code to move_stmt for the VCE case.
This is enough to fix the issue at hand. It should also be using rewrite_to_defined_overflow
but first I need to move the check to see a rewrite is needed into its own function
and that is causing issues (see https://gcc.gnu.org/pipermail/gcc-patches/2024-September/663938.html).
Plus this version is easiest to backport.
Bootstrapped and tested on x86_64-linux-gnu.
PR tree-optimization/116098
gcc/ChangeLog:
* tree-ssa-phiopt.cc (move_stmt): Rewrite VCEs from integer to integer
types to case.
gcc/testsuite/ChangeLog:
* c-c++-common/torture/pr116098-2.c: New test.
* g++.dg/torture/pr116098-1.C: New test.
Signed-off-by: Andrew Pinski <quic_apinski@quicinc.com>
Diffstat (limited to 'gcc/ChangeLog')
0 files changed, 0 insertions, 0 deletions