This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[vta] get ppc64 to pass bootstrap-debug and bootstrap4-debug(-g0)
- From: Alexandre Oliva <aoliva at redhat dot com>
- To: gcc-patches at gcc dot gnu dot org
- Date: Thu, 03 Jan 2008 06:17:19 -0200
- Subject: [vta] get ppc64 to pass bootstrap-debug and bootstrap4-debug(-g0)
This is the only ppc-specific patch I needed for ppc64-linux-gnu to
generate the same code for host and target directories in a full
bootstrap with all languages.
Most of them would be obviated by changing the debug insn pattern to
(use (var_location)) rather than just (var_location), but the memory
waste is not worth it.
I'm installing this in the vta branch.
for gcc/ChangeLog.vta
from Alexandre Oliva <aoliva@redhat.com>
* config/rs6000/rs6000.c (is_microcoded_insn): Exclude debug insns.
(is_cracked_insn, is_branch_slot_insn): Likewise.
(is_nonpipeline_insn, insn_must_be_first_in_group): Likewise.
(insn_must_be_last_in_group): Likewise.
(force_new_group): Let debug insns through.
Index: gcc/config/rs6000/rs6000.c
===================================================================
--- gcc/config/rs6000/rs6000.c.orig 2007-12-28 16:16:54.000000000 -0200
+++ gcc/config/rs6000/rs6000.c 2007-12-31 14:59:51.000000000 -0200
@@ -17940,7 +17940,7 @@ rs6000_adjust_cost (rtx insn, rtx link,
static bool
is_microcoded_insn (rtx insn)
{
- if (!insn || !INSN_P (insn)
+ if (!insn || !INSN_P (insn) || DEBUG_INSN_P (insn)
|| GET_CODE (PATTERN (insn)) == USE
|| GET_CODE (PATTERN (insn)) == CLOBBER)
return false;
@@ -17968,7 +17968,7 @@ is_microcoded_insn (rtx insn)
static bool
is_cracked_insn (rtx insn)
{
- if (!insn || !INSN_P (insn)
+ if (!insn || !INSN_P (insn) || DEBUG_INSN_P (insn)
|| GET_CODE (PATTERN (insn)) == USE
|| GET_CODE (PATTERN (insn)) == CLOBBER)
return false;
@@ -17996,7 +17996,7 @@ is_cracked_insn (rtx insn)
static bool
is_branch_slot_insn (rtx insn)
{
- if (!insn || !INSN_P (insn)
+ if (!insn || !INSN_P (insn) || DEBUG_INSN_P (insn)
|| GET_CODE (PATTERN (insn)) == USE
|| GET_CODE (PATTERN (insn)) == CLOBBER)
return false;
@@ -18156,7 +18156,7 @@ static bool
is_nonpipeline_insn (rtx insn)
{
enum attr_type type;
- if (!insn || !INSN_P (insn)
+ if (!insn || !INSN_P (insn) || DEBUG_INSN_P (insn)
|| GET_CODE (PATTERN (insn)) == USE
|| GET_CODE (PATTERN (insn)) == CLOBBER)
return false;
@@ -18721,8 +18721,8 @@ insn_must_be_first_in_group (rtx insn)
enum attr_type type;
if (!insn
- || insn == NULL_RTX
|| GET_CODE (insn) == NOTE
+ || DEBUG_INSN_P (insn)
|| GET_CODE (PATTERN (insn)) == USE
|| GET_CODE (PATTERN (insn)) == CLOBBER)
return false;
@@ -18817,8 +18817,8 @@ insn_must_be_last_in_group (rtx insn)
enum attr_type type;
if (!insn
- || insn == NULL_RTX
|| GET_CODE (insn) == NOTE
+ || DEBUG_INSN_P (insn)
|| GET_CODE (PATTERN (insn)) == USE
|| GET_CODE (PATTERN (insn)) == CLOBBER)
return false;
@@ -18927,7 +18927,7 @@ force_new_group (int sched_verbose, FILE
bool end = *group_end;
int i;
- if (next_insn == NULL_RTX)
+ if (next_insn == NULL_RTX || DEBUG_INSN_P (next_insn))
return can_issue_more;
if (rs6000_sched_insert_nops > sched_finish_regroup_exact)
--
Alexandre Oliva http://www.lsd.ic.unicamp.br/~oliva/
FSF Latin America Board Member http://www.fsfla.org/
Red Hat Compiler Engineer aoliva@{redhat.com, gcc.gnu.org}
Free Software Evangelist oliva@{lsd.ic.unicamp.br, gnu.org}