aboutsummaryrefslogtreecommitdiff
path: root/gcc/lra.c
diff options
context:
space:
mode:
authorVladimir Makarov <vmakarov@redhat.com>2018-12-13 20:54:27 +0000
committerVladimir Makarov <vmakarov@gcc.gnu.org>2018-12-13 20:54:27 +0000
commit11067dee85df4812303ebda57642675a0b89ef67 (patch)
tree9ad654ea7adca3344fcf62deb2226109e55539ea /gcc/lra.c
parentb46e1a69975d64ad436ff1c928e008105b2b2a8d (diff)
downloadgcc-11067dee85df4812303ebda57642675a0b89ef67.zip
gcc-11067dee85df4812303ebda57642675a0b89ef67.tar.gz
gcc-11067dee85df4812303ebda57642675a0b89ef67.tar.bz2
re PR rtl-optimization/88414 (ICE in lra_assign, at lra-assigns.c:1624)
2018-12-13 Vladimir Makarov <vmakarov@redhat.com> PR rtl-optimization/88414 * lra-int.h (lra_asm_error_p): New. * lra-assigns.c (lra_assign): Check lra_asm_error_p for checking call crossed pseudo assignment correctness. (lra_split_hard_reg_for): Set up lra_asm_error_p. * lra-constraints.c (curr_insn_transform): Ditto. * lra.c (lra_asm_error_p): New. (lra): Reset lra_asm_error_p. 2018-12-13 Vladimir Makarov <vmakarov@redhat.com> PR rtl-optimization/88414 * gcc.target/i386/pr88414.c: New. From-SVN: r267109
Diffstat (limited to 'gcc/lra.c')
-rw-r--r--gcc/lra.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/gcc/lra.c b/gcc/lra.c
index 5d58d90..537b4ae 100644
--- a/gcc/lra.c
+++ b/gcc/lra.c
@@ -2334,6 +2334,9 @@ bitmap_head lra_subreg_reload_pseudos;
/* File used for output of LRA debug information. */
FILE *lra_dump_file;
+/* True if we found an asm error. */
+bool lra_asm_error_p;
+
/* True if we should try spill into registers of different classes
instead of memory. */
bool lra_reg_spill_p;
@@ -2371,7 +2374,8 @@ lra (FILE *f)
bool live_p, inserted_p;
lra_dump_file = f;
-
+ lra_asm_error_p = false;
+
timevar_push (TV_LRA);
/* Make sure that the last insn is a note. Some subsequent passes