Hi,
This handles NULL targetm.spill_class in assign_by_spills. This showed
up as a segfault during a build for arm-none-linux-gnueabi(hf).
Fix pre-approved by richi on IRC , verified that bootstrap continues
from where things broke further on a tree (that reverts 211600 which is
the next breakage causing commit on arm-none-linux-gnueabihf)
I'll apply this in about 45 minutes when I get back to my desk if no one
objects.
regards
Ramana
2014-06-16 Ramana Radhakrishnan <ramana.radhakrish...@arm.com>
PR rtl-optimization/61522
* lra-assigns.c (assign_by_spills): Handle NULL
targetm.spill_class.
diff --git a/gcc/lra-assigns.c b/gcc/lra-assigns.c
index cea4c33..5de18e1 100644
--- a/gcc/lra-assigns.c
+++ b/gcc/lra-assigns.c
@@ -1420,7 +1420,7 @@ assign_by_spills (void)
alternatives of insns containing the pseudo. */
bitmap_set_bit (&changed_pseudo_bitmap, regno);
}
- else
+ else if (targetm.spill_class)
{
enum reg_class rclass = lra_get_allocno_class (regno);
enum reg_class spill_class;
@@ -1438,12 +1438,12 @@ assign_by_spills (void)
if (hard_regno < 0)
regno_allocno_class_array[regno] = rclass;
else
- {
- setup_reg_classes
- (regno, spill_class, spill_class, spill_class);
- assign_hard_regno (hard_regno, regno);
- bitmap_set_bit (&changed_pseudo_bitmap, regno);
- }
+ {
+ setup_reg_classes
+ (regno, spill_class, spill_class, spill_class);
+ assign_hard_regno (hard_regno, regno);
+ bitmap_set_bit (&changed_pseudo_bitmap, regno);
+ }
}
}
}