aboutsummaryrefslogtreecommitdiff
path: root/gcc/analyzer/program-state.cc
diff options
context:
space:
mode:
authorIlya Leoshkevich <iii@linux.ibm.com>2021-03-02 23:37:26 +0100
committerIlya Leoshkevich <iii@linux.ibm.com>2021-03-23 19:44:22 +0100
commitb61461ac7f9bdd0e98145be79423d19b933afaa0 (patch)
tree32bdc72e60004b8cb1085701134a8b35f850f600 /gcc/analyzer/program-state.cc
parentd1aa5f57db7c14a62e9b7e2a2aa8a9c402a89363 (diff)
downloadgcc-b61461ac7f9bdd0e98145be79423d19b933afaa0.zip
gcc-b61461ac7f9bdd0e98145be79423d19b933afaa0.tar.gz
gcc-b61461ac7f9bdd0e98145be79423d19b933afaa0.tar.bz2
fwprop: Fix single_use_p calculation
Commit efb6bc55a93a ("fwprop: Allow (subreg (mem)) simplifications") introduced a check that was supposed to look at the propagated def's number of uses. It uses insn_info::num_uses (), which in reality returns the number of uses def's insn has. The whole change therefore works only by accident. Fix by looking at set_info's uses instead of insn_info's uses. This requires passing around set_info instead of insn_info. gcc/ChangeLog: 2021-03-02 Ilya Leoshkevich <iii@linux.ibm.com> * fwprop.c (fwprop_propagation::fwprop_propagation): Look at set_info's uses. (try_fwprop_subst_note): Use set_info instead of insn_info. (try_fwprop_subst_pattern): Likewise. (try_fwprop_subst_notes): Likewise. (try_fwprop_subst): Likewise. (forward_propagate_subreg): Likewise. (forward_propagate_and_simplify): Likewise. (forward_propagate_into): Likewise. * rtl-ssa/accesses.h (set_info::single_nondebug_use) New method. (set_info::single_nondebug_insn_use): Likewise. (set_info::single_phi_use): Likewise. * rtl-ssa/member-fns.inl (set_info::single_nondebug_use) New method. (set_info::single_nondebug_insn_use): Likewise. (set_info::single_phi_use): Likewise. gcc/testsuite/ChangeLog: * gcc.target/s390/vector/long-double-asm-abi.c: New test.
Diffstat (limited to 'gcc/analyzer/program-state.cc')
0 files changed, 0 insertions, 0 deletions