Commit 7e82354a by Uros Bizjak Committed by Uros Bizjak

re PR target/42113 (Internal Compiler error with -O3, breaking commit known)

	PR target/42113
	* config/alpha/alpha.md (*cmp_sadd_si): Change mode
	of scratch register to SImode.
	(*cmp_sadd_sidi): Ditto.
	(*cmp_ssub_si): Ditto.
	(*cmp_ssub_sidi): Ditto.

testsuite/ChangeLog:

	PR target/42113
	* gcc.target/alpha/pr42113.c: New test.

From-SVN: r154423
parent ed2eaa9f
2009-11-22 Uros Bizjak <ubizjak@gmail.com>
PR target/42113
* config/alpha/alpha.md (*cmp_sadd_si): Change mode
of scratch register to SImode.
(*cmp_sadd_sidi): Ditto.
(*cmp_ssub_si): Ditto.
(*cmp_ssub_sidi): Ditto.
2009-11-21 Ian Lance Taylor <iant@google.com> 2009-11-21 Ian Lance Taylor <iant@google.com>
* Makefile.in (HOST_LIBS): Move higher in file. * Makefile.in (HOST_LIBS): Move higher in file.
...@@ -4197,7 +4197,7 @@ ...@@ -4197,7 +4197,7 @@
(match_dup 4)))] (match_dup 4)))]
{ {
if (can_create_pseudo_p ()) if (can_create_pseudo_p ())
operands[5] = gen_reg_rtx (DImode); operands[5] = gen_reg_rtx (SImode);
else if (reg_overlap_mentioned_p (operands[5], operands[4])) else if (reg_overlap_mentioned_p (operands[5], operands[4]))
operands[5] = operands[0]; operands[5] = operands[0];
}) })
...@@ -4223,9 +4223,9 @@ ...@@ -4223,9 +4223,9 @@
(match_dup 4))))] (match_dup 4))))]
{ {
if (can_create_pseudo_p ()) if (can_create_pseudo_p ())
operands[5] = gen_reg_rtx (DImode); operands[5] = gen_reg_rtx (SImode);
else if (reg_overlap_mentioned_p (operands[5], operands[4])) else if (reg_overlap_mentioned_p (operands[5], operands[4]))
operands[5] = operands[0]; operands[5] = gen_rtx_REG (SImode, REGNO (operands[0]));
}) })
(define_insn_and_split "*cmp_ssub_di" (define_insn_and_split "*cmp_ssub_di"
...@@ -4273,7 +4273,7 @@ ...@@ -4273,7 +4273,7 @@
(match_dup 4)))] (match_dup 4)))]
{ {
if (can_create_pseudo_p ()) if (can_create_pseudo_p ())
operands[5] = gen_reg_rtx (DImode); operands[5] = gen_reg_rtx (SImode);
else if (reg_overlap_mentioned_p (operands[5], operands[4])) else if (reg_overlap_mentioned_p (operands[5], operands[4]))
operands[5] = operands[0]; operands[5] = operands[0];
}) })
...@@ -4299,9 +4299,9 @@ ...@@ -4299,9 +4299,9 @@
(match_dup 4))))] (match_dup 4))))]
{ {
if (can_create_pseudo_p ()) if (can_create_pseudo_p ())
operands[5] = gen_reg_rtx (DImode); operands[5] = gen_reg_rtx (SImode);
else if (reg_overlap_mentioned_p (operands[5], operands[4])) else if (reg_overlap_mentioned_p (operands[5], operands[4]))
operands[5] = operands[0]; operands[5] = gen_rtx_REG (SImode, REGNO (operands[0]));
}) })
;; Here are the CALL and unconditional branch insns. Calls on NT and OSF ;; Here are the CALL and unconditional branch insns. Calls on NT and OSF
......
2009-11-22 Uros Bizjak <ubizjak@gmail.com>
PR target/42113
* gcc.target/alpha/pr42113.c: New test.
2009-11-21 Jerry DeLisle <jvdelisle@gcc.gnu.org> 2009-11-21 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR fortran/41807 PR fortran/41807
......
/* { dg-do compile } */
/* { dg-options "-O2" } */
int foo (int a, int b)
{
int bar = a * sizeof (int);
if (b)
bar += sizeof (int);
return bar;
}
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