aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/dump-parse-tree.cc
diff options
context:
space:
mode:
authorVladimir N. Makarov <vmakarov@redhat.com>2023-07-13 10:42:17 -0400
committerVladimir N. Makarov <vmakarov@redhat.com>2023-07-13 10:47:59 -0400
commitb175b4887f928118af997f6d4d75097a64dcec5d (patch)
tree1bec2afbd97a8644ce36bbe9f414185705f7a401 /gcc/fortran/dump-parse-tree.cc
parent834f34947b20b18696487fc5d2bccab5ea720351 (diff)
downloadgcc-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