aboutsummaryrefslogtreecommitdiff
path: root/ABOUT-NLS
diff options
context:
space:
mode:
authorAndrew Pinski <quic_apinski@quicinc.com>2024-09-30 16:44:44 +0000
committerAndrew Pinski <quic_apinski@quicinc.com>2024-10-01 07:09:35 -0700
commit698e0ec89bc0960e074d2222208bffe47f5addd9 (patch)
tree3e524dc0fadc73f9745f8af66f99399b11859566 /ABOUT-NLS
parent8273e31adfa1ba5f0722eb37bcc8aeca8718a472 (diff)
downloadgcc-698e0ec89bc0960e074d2222208bffe47f5addd9.zip
gcc-698e0ec89bc0960e074d2222208bffe47f5addd9.tar.gz
gcc-698e0ec89bc0960e074d2222208bffe47f5addd9.tar.bz2
phi-opt: Improve factor heurstic with constants and conversions from bool [PR116890]
Take: ``` if (t_3(D) != 0) goto <bb 3>; else goto <bb 4>; <bb 3> _8 = c_4(D) != 0; _9 = (int) _8; <bb 4> # e_2 = PHI <_9(3), 0(2)> ``` We should factor out the conversion here as that will allow a simplfication to `(t_3 != 0) & (c_4 != 0)`. Unlike most other types; `a ? b : CST` will simplify for boolean result type to either `a | b` or `a & b` so allowing this conversion for all operations will be always profitable. Bootstrapped and tested on x86_64-linux-gnu with no regressions. Note on the phi-opt-7.c testcase change, we are now able to optimize this and remove the if due to the factoring out now so this is an improvement. PR tree-optimization/116890 gcc/ChangeLog: * tree-ssa-phiopt.cc (factor_out_conditional_operation): Conversions from bool is also should be considered as wanting to happen. gcc/testsuite/ChangeLog: * gcc.dg/tree-ssa/phi-opt-7.c: Update testcase for no ifs left. * gcc.dg/tree-ssa/phi-opt-42.c: New test. * gcc.dg/tree-ssa/phi-opt-43.c: New test. Signed-off-by: Andrew Pinski <quic_apinski@quicinc.com>
Diffstat (limited to 'ABOUT-NLS')
0 files changed, 0 insertions, 0 deletions