aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-vect-loop-manip.cc
diff options
context:
space:
mode:
authorVladimir N. Makarov <vmakarov@redhat.com>2023-07-07 09:53:38 -0400
committerVladimir N. Makarov <vmakarov@redhat.com>2023-07-07 09:55:01 -0400
commit1f7e5a7b91862b999aab88ee0319052aaf00f0f1 (patch)
tree181df0d77fb81395cf34512230082d874a8d8aee /gcc/tree-vect-loop-manip.cc
parentc496d15954cdeab7f9039328f94a6f62cf893d5f (diff)
downloadgcc-1f7e5a7b91862b999aab88ee0319052aaf00f0f1.zip
gcc-1f7e5a7b91862b999aab88ee0319052aaf00f0f1.tar.gz
gcc-1f7e5a7b91862b999aab88ee0319052aaf00f0f1.tar.bz2
LRA: Refine reload pseudo class
For given testcase a reload pseudo happened to occur only in reload insns created on one constraint sub-pass. Therefore its initial class (ALL_REGS) was not refined and the reload insns were not processed on the next constraint sub-passes. This resulted into the wrong insn. PR rtl-optimization/110372 gcc/ChangeLog: * lra-assigns.cc (assign_by_spills): Add reload insns involving reload pseudos with non-refined class to be processed on the next sub-pass. * lra-constraints.cc (enough_allocatable_hard_regs_p): New func. (in_class_p): Use it. (print_curr_insn_alt): New func. (process_alt_operands): Use it. Improve debug info. (curr_insn_transform): Use print_curr_insn_alt. Refine reload pseudo class if it is not refined yet. gcc/testsuite/ChangeLog: * gcc.target/i386/pr110372.c: New.
Diffstat (limited to 'gcc/tree-vect-loop-manip.cc')
0 files changed, 0 insertions, 0 deletions