diff options
author | Vladimir N. Makarov <vmakarov@redhat.com> | 2023-07-07 09:53:38 -0400 |
---|---|---|
committer | Vladimir N. Makarov <vmakarov@redhat.com> | 2023-07-07 09:55:01 -0400 |
commit | 1f7e5a7b91862b999aab88ee0319052aaf00f0f1 (patch) | |
tree | 181df0d77fb81395cf34512230082d874a8d8aee /gcc/tree-vect-loop-manip.cc | |
parent | c496d15954cdeab7f9039328f94a6f62cf893d5f (diff) | |
download | gcc-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