PATCH: PR target/43921: Bootstrap comparison fails when using -march=atom
H.J. Lu
hjl.tools@gmail.com
Wed Apr 28 19:29:00 GMT 2010
On Wed, Apr 28, 2010 at 11:46 AM, Jakub Jelinek <jakub@redhat.com> wrote:
> On Wed, Apr 28, 2010 at 11:23:09AM -0700, H.J. Lu wrote:
>
>> @@ -26765,7 +26765,7 @@ extended_reg_mentioned_1 (rtx *p, void *data ATTRIBUTE_UNUSED)
>> bool
>> x86_extended_reg_mentioned_p (rtx insn)
>> {
>> - return for_each_rtx (INSN_P (insn) ? &PATTERN (insn) : &insn,
>> + return for_each_rtx (NONDEBUG_INSN_P (insn) ? &PATTERN (insn) : &insn,
>> extended_reg_mentioned_1, NULL);
>> }
>
> This hunk is IMHO wrong, for NONDEBUG_INSN_P just PATTERN should be
> scanned and nothing else. The rest looks good to me, though you need
> someone to approve it.
>
> Jakub
>
I am testing this on Linux/x86. OK for trunk and 4.5 if no regressions?
Thanks.
--
H.J.
-------------- next part --------------
2010-04-28 H.J. Lu <hongjiu.lu@intel.com>
PR target/43921
* config/i386/i386.c (get_some_local_dynamic_name): Replace
INSN_P with NONDEBUG_INSN_P.
(distance_non_agu_define): Likewise.
(distance_agu_use): Likewise.
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index 56226c0..4861eaf 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -11383,7 +11383,7 @@ get_some_local_dynamic_name (void)
return cfun->machine->some_ld_name;
for (insn = get_insns (); insn ; insn = NEXT_INSN (insn))
- if (INSN_P (insn)
+ if (NONDEBUG_INSN_P (insn)
&& for_each_rtx (&PATTERN (insn), get_some_local_dynamic_name_1, 0))
return cfun->machine->some_ld_name;
@@ -13629,7 +13629,7 @@ distance_non_agu_define (unsigned int regno1, unsigned int regno2,
rtx prev = PREV_INSN (insn);
while (prev && distance < LEA_SEARCH_THRESHOLD)
{
- if (INSN_P (prev))
+ if (NONDEBUG_INSN_P (prev))
{
distance++;
for (def_rec = DF_INSN_DEFS (prev); *def_rec; def_rec++)
@@ -13669,7 +13669,7 @@ distance_non_agu_define (unsigned int regno1, unsigned int regno2,
&& prev != insn
&& distance < LEA_SEARCH_THRESHOLD)
{
- if (INSN_P (prev))
+ if (NONDEBUG_INSN_P (prev))
{
distance++;
for (def_rec = DF_INSN_DEFS (prev); *def_rec; def_rec++)
@@ -13715,7 +13715,7 @@ distance_agu_use (unsigned int regno0, rtx insn)
rtx next = NEXT_INSN (insn);
while (next && distance < LEA_SEARCH_THRESHOLD)
{
- if (INSN_P (next))
+ if (NONDEBUG_INSN_P (next))
{
distance++;
@@ -13764,7 +13764,7 @@ distance_agu_use (unsigned int regno0, rtx insn)
&& next != insn
&& distance < LEA_SEARCH_THRESHOLD)
{
- if (INSN_P (next))
+ if (NONDEBUG_INSN_P (next))
{
distance++;
More information about the Gcc-patches
mailing list