Commit a4971e68 by Vladimir Makarov Committed by Vladimir Makarov

re PR target/60675 ([aarch64] internal compiler error: Max. number of generated…

re PR target/60675 ([aarch64] internal compiler error: Max. number of generated reload insns per insn is achieved (90))

2014-03-28  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/60675
	* lra-assigns.c (find_hard_regno_for): Remove unavailable hard
	regs from checking multi-reg pseudos.

2014-03-28  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/60675
	* gcc.target/aarch64/pr60675.C: New.

From-SVN: r208900
parent 2486c24a
2014-03-28 Vladimir Makarov <vmakarov@redhat.com>
PR target/60675
* lra-assigns.c (find_hard_regno_for): Remove unavailable hard
regs from checking multi-reg pseudos.
2014-03-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
* config/arm/t-aprofile (MULTILIB_MATCHES): Correct A12 rule.
......
......@@ -473,7 +473,7 @@ find_hard_regno_for (int regno, int *cost, int try_only_hard_regno,
enum reg_class rclass;
bitmap_iterator bi;
bool *rclass_intersect_p;
HARD_REG_SET impossible_start_hard_regs;
HARD_REG_SET impossible_start_hard_regs, available_regs;
COPY_HARD_REG_SET (conflict_set, lra_no_alloc_regs);
rclass = regno_allocno_class_array[regno];
......@@ -586,6 +586,8 @@ find_hard_regno_for (int regno, int *cost, int try_only_hard_regno,
biggest_nregs = hard_regno_nregs[hard_regno][biggest_mode];
nregs_diff = (biggest_nregs
- hard_regno_nregs[hard_regno][PSEUDO_REGNO_MODE (regno)]);
COPY_HARD_REG_SET (available_regs, reg_class_contents[rclass]);
AND_COMPL_HARD_REG_SET (available_regs, lra_no_alloc_regs);
for (i = 0; i < rclass_size; i++)
{
if (try_only_hard_regno >= 0)
......@@ -601,9 +603,9 @@ find_hard_regno_for (int regno, int *cost, int try_only_hard_regno,
&& (nregs_diff == 0
|| (WORDS_BIG_ENDIAN
? (hard_regno - nregs_diff >= 0
&& TEST_HARD_REG_BIT (reg_class_contents[rclass],
&& TEST_HARD_REG_BIT (available_regs,
hard_regno - nregs_diff))
: TEST_HARD_REG_BIT (reg_class_contents[rclass],
: TEST_HARD_REG_BIT (available_regs,
hard_regno + nregs_diff))))
{
if (hard_regno_costs_check[hard_regno]
......
2014-03-28 Vladimir Makarov <vmakarov@redhat.com>
PR target/60675
* gcc.target/aarch64/pr60675.C: New.
2014-03-28 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
* gcc.dg/tree-ssa/ssa-dom-thread-4.c: Remove s390 special
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment