diff options
author | Vladimir N. Makarov <vmakarov@redhat.com> | 2023-07-13 10:42:17 -0400 |
---|---|---|
committer | Vladimir N. Makarov <vmakarov@redhat.com> | 2023-07-13 10:47:59 -0400 |
commit | b175b4887f928118af997f6d4d75097a64dcec5d (patch) | |
tree | 1bec2afbd97a8644ce36bbe9f414185705f7a401 /gcc/fortran/dump-parse-tree.cc | |
parent | 834f34947b20b18696487fc5d2bccab5ea720351 (diff) | |
download | gcc-b175b4887f928118af997f6d4d75097a64dcec5d.zip gcc-b175b4887f928118af997f6d4d75097a64dcec5d.tar.gz gcc-b175b4887f928118af997f6d4d75097a64dcec5d.tar.bz2 |
[RA][PR109520]: Catch error when there are no enough registers for asm insn
Asm insn unlike other insns can have so many operands whose
constraints can not be satisfied. It results in LRA cycling for such
test case. The following patch catches such situation and reports the
problem.
PR middle-end/109520
gcc/ChangeLog:
* lra-int.h (lra_insn_recog_data): Add member asm_reloads_num.
(lra_asm_insn_error): New prototype.
* lra.cc: Include rtl_error.h.
(lra_set_insn_recog_data): Initialize asm_reloads_num.
(lra_asm_insn_error): New func whose code is taken from ...
* lra-assigns.cc (lra_split_hard_reg_for): ... here. Use lra_asm_insn_error.
* lra-constraints.cc (curr_insn_transform): Check reloads nummber for asm.
gcc/testsuite/ChangeLog:
* gcc.target/i386/pr109520.c: New test.
Diffstat (limited to 'gcc/fortran/dump-parse-tree.cc')
0 files changed, 0 insertions, 0 deletions