public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug bootstrap/54128] New: GCC does not bootstrap on little endian mips due to mis-compare on tree-data-ref.c
@ 2012-07-30 16:18 sje at gcc dot gnu.org
  2012-07-31  9:34 ` [Bug bootstrap/54128] " rguenth at gcc dot gnu.org
                   ` (19 more replies)
  0 siblings, 20 replies; 21+ messages in thread
From: sje at gcc dot gnu.org @ 2012-07-30 16:18 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54128

             Bug #: 54128
           Summary: GCC does not bootstrap on little endian mips due to
                    mis-compare on tree-data-ref.c
    Classification: Unclassified
           Product: gcc
           Version: 4.8.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: bootstrap
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: sje@gcc.gnu.org


A bootstrap using the latest GCC fails on a little endian MIPS system due to a
compare failure.

make[3]: Leaving directory `/home2/sje/gcc_native/obj-native/gcc'
Comparing stages 2 and 3
warning: gcc/cc1plus-checksum.o differs
warning: gcc/cc1-checksum.o differs
Bootstrap comparison failure!
gcc/tree-data-ref.o differs
make[2]: *** [compare] Error 1

It looks like someone else saw this on a debian box and submitted a debian
bug, http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=634881, but their fix
was to workaround it by using -gtoggle for both the stage 2 and stage 3 builds.
It is -gtoggle that is causing the difference.  Comparing the two objects I see
a small code gen difference in  "analyze_subscript_affine".  I have attached
the preprocessed version of that source file to this bug report.  Compiling it
with C++ and "-g -O2 -fno-exceptions -fno-rtti -fno-common" in one case and
adding -gtoggle in the second case should show the codegen difference.  You may
need -EL if using a mips GCC that does not generated little-endian by default.


^ permalink raw reply	[flat|nested] 21+ messages in thread

* [Bug bootstrap/54128] GCC does not bootstrap on little endian mips due to mis-compare on tree-data-ref.c
  2012-07-30 16:18 [Bug bootstrap/54128] New: GCC does not bootstrap on little endian mips due to mis-compare on tree-data-ref.c sje at gcc dot gnu.org
@ 2012-07-31  9:34 ` rguenth at gcc dot gnu.org
  2012-07-31  9:40 ` pinskia at gcc dot gnu.org
                   ` (18 subsequent siblings)
  19 siblings, 0 replies; 21+ messages in thread
From: rguenth at gcc dot gnu.org @ 2012-07-31  9:34 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54128

Richard Guenther <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |WAITING
   Last reconfirmed|                            |2012-07-31
     Ever Confirmed|0                           |1

--- Comment #1 from Richard Guenther <rguenth at gcc dot gnu.org> 2012-07-31 09:34:22 UTC ---
Attachment missing.  How is GCC configured?


^ permalink raw reply	[flat|nested] 21+ messages in thread

* [Bug bootstrap/54128] GCC does not bootstrap on little endian mips due to mis-compare on tree-data-ref.c
  2012-07-30 16:18 [Bug bootstrap/54128] New: GCC does not bootstrap on little endian mips due to mis-compare on tree-data-ref.c sje at gcc dot gnu.org
  2012-07-31  9:34 ` [Bug bootstrap/54128] " rguenth at gcc dot gnu.org
@ 2012-07-31  9:40 ` pinskia at gcc dot gnu.org
  2012-07-31 15:17 ` sje at gcc dot gnu.org
                   ` (17 subsequent siblings)
  19 siblings, 0 replies; 21+ messages in thread
From: pinskia at gcc dot gnu.org @ 2012-07-31  9:40 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54128

--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> 2012-07-31 09:39:34 UTC ---
>http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=634881,
That was an issue with Ada.

Can you attach the preprocessed source for tree-data-ref.i?

I might debug this later today.

Also is this mips-linux-gnu or mipsisa-linux-gnu or mips64-linux-gnu or
mipsisa64-linux-gnu ?  Yes it matters which one.  The ISA ones default to EABI.


^ permalink raw reply	[flat|nested] 21+ messages in thread

* [Bug bootstrap/54128] GCC does not bootstrap on little endian mips due to mis-compare on tree-data-ref.c
  2012-07-30 16:18 [Bug bootstrap/54128] New: GCC does not bootstrap on little endian mips due to mis-compare on tree-data-ref.c sje at gcc dot gnu.org
  2012-07-31  9:34 ` [Bug bootstrap/54128] " rguenth at gcc dot gnu.org
  2012-07-31  9:40 ` pinskia at gcc dot gnu.org
@ 2012-07-31 15:17 ` sje at gcc dot gnu.org
  2012-07-31 15:27 ` sje at gcc dot gnu.org
                   ` (16 subsequent siblings)
  19 siblings, 0 replies; 21+ messages in thread
From: sje at gcc dot gnu.org @ 2012-07-31 15:17 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54128

--- Comment #3 from Steve Ellcey <sje at gcc dot gnu.org> 2012-07-31 15:17:15 UTC ---
Created attachment 27906
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=27906
Compressed preprocessed test case

Sorry about not including the attachment earlier, I thought I had done so with
the initial submission but apparently it didn't work.  Looks like it was too
big, I'm compressing it and trying again.


^ permalink raw reply	[flat|nested] 21+ messages in thread

* [Bug bootstrap/54128] GCC does not bootstrap on little endian mips due to mis-compare on tree-data-ref.c
  2012-07-30 16:18 [Bug bootstrap/54128] New: GCC does not bootstrap on little endian mips due to mis-compare on tree-data-ref.c sje at gcc dot gnu.org
                   ` (2 preceding siblings ...)
  2012-07-31 15:17 ` sje at gcc dot gnu.org
@ 2012-07-31 15:27 ` sje at gcc dot gnu.org
  2012-08-02 17:20 ` sje at gcc dot gnu.org
                   ` (15 subsequent siblings)
  19 siblings, 0 replies; 21+ messages in thread
From: sje at gcc dot gnu.org @ 2012-07-31 15:27 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54128

--- Comment #4 from Steve Ellcey <sje at gcc dot gnu.org> 2012-07-31 15:26:56 UTC ---
I configured with:

--disable-libssp --disable-libgomp --disable-libmudflap --disable-fixed-point
--disable-decimal-float --with-arch=mips32r2 --with-synci --with-llsc
--with-mips-plt --enable-languages=c,c++

on a little endian debian system, I did not specify the target but it defaulted
to mipsel-unknown-linux-gnu.


^ permalink raw reply	[flat|nested] 21+ messages in thread

* [Bug bootstrap/54128] GCC does not bootstrap on little endian mips due to mis-compare on tree-data-ref.c
  2012-07-30 16:18 [Bug bootstrap/54128] New: GCC does not bootstrap on little endian mips due to mis-compare on tree-data-ref.c sje at gcc dot gnu.org
                   ` (3 preceding siblings ...)
  2012-07-31 15:27 ` sje at gcc dot gnu.org
@ 2012-08-02 17:20 ` sje at gcc dot gnu.org
  2012-08-09 23:47 ` sje at gcc dot gnu.org
                   ` (14 subsequent siblings)
  19 siblings, 0 replies; 21+ messages in thread
From: sje at gcc dot gnu.org @ 2012-08-02 17:20 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54128

Steve Ellcey <sje at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|WAITING                     |NEW


^ permalink raw reply	[flat|nested] 21+ messages in thread

* [Bug bootstrap/54128] GCC does not bootstrap on little endian mips due to mis-compare on tree-data-ref.c
  2012-07-30 16:18 [Bug bootstrap/54128] New: GCC does not bootstrap on little endian mips due to mis-compare on tree-data-ref.c sje at gcc dot gnu.org
                   ` (4 preceding siblings ...)
  2012-08-02 17:20 ` sje at gcc dot gnu.org
@ 2012-08-09 23:47 ` sje at gcc dot gnu.org
  2012-08-10 20:11 ` sje at gcc dot gnu.org
                   ` (13 subsequent siblings)
  19 siblings, 0 replies; 21+ messages in thread
From: sje at gcc dot gnu.org @ 2012-08-09 23:47 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54128

--- Comment #5 from Steve Ellcey <sje at gcc dot gnu.org> 2012-08-09 23:46:52 UTC ---
Created attachment 27976
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=27976
Cutdown test case

I have attached a new test case, cut down from the original.  I have duplicated
the bug using a x86 to mips cross compiler and the mips-unknown-linux-gnu
target
so it doesn't look specific to little-endian.  I get the difference in
instruction scheduling with -mips1 or -mips32r2 and with no options other then
-O2 so it doesn't seem specific to a particular mips architecture either.

The difference with and without -g is in the instruction scheduling and
sometimes with the register selection.


^ permalink raw reply	[flat|nested] 21+ messages in thread

* [Bug bootstrap/54128] GCC does not bootstrap on little endian mips due to mis-compare on tree-data-ref.c
  2012-07-30 16:18 [Bug bootstrap/54128] New: GCC does not bootstrap on little endian mips due to mis-compare on tree-data-ref.c sje at gcc dot gnu.org
                   ` (5 preceding siblings ...)
  2012-08-09 23:47 ` sje at gcc dot gnu.org
@ 2012-08-10 20:11 ` sje at gcc dot gnu.org
  2012-08-14 23:35 ` sje at gcc dot gnu.org
                   ` (12 subsequent siblings)
  19 siblings, 0 replies; 21+ messages in thread
From: sje at gcc dot gnu.org @ 2012-08-10 20:11 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54128

--- Comment #6 from Steve Ellcey <sje at gcc dot gnu.org> 2012-08-10 20:10:56 UTC ---
It looks like the code generation is going different (between -g and no -g)
during the IRA/reload phase.  With the cut down test case and using -O2 -g
the x.i.195r.reload file (for debug) contains:

insn=71, live_throughout: 4, 5, 6, 7, 28, 29, 79, 209, dead_or_set: 2

Insn 71 is:
(debug_insn 71 23 25 3 (var_location:SI D#1 (reg:SI 2 $2)) -1
     (nil))
(debug_insn 25 71 85 3 (var_location:DI step_c (concatn/v:DI [
            (debug_expr:SI D#1)
            (debug_expr:SI D#2)
        ])) x.i:55 -1
     (nil))

but something about this is causing IRA to think that $2 is a used psuedo
register that cannot be used for anything else so it uses $3 instead and
that is where the debug and non-debug code differs.


^ permalink raw reply	[flat|nested] 21+ messages in thread

* [Bug bootstrap/54128] GCC does not bootstrap on little endian mips due to mis-compare on tree-data-ref.c
  2012-07-30 16:18 [Bug bootstrap/54128] New: GCC does not bootstrap on little endian mips due to mis-compare on tree-data-ref.c sje at gcc dot gnu.org
                   ` (6 preceding siblings ...)
  2012-08-10 20:11 ` sje at gcc dot gnu.org
@ 2012-08-14 23:35 ` sje at gcc dot gnu.org
  2012-08-15  8:52 ` [Bug bootstrap/54128] [4.8 Regression] " rguenth at gcc dot gnu.org
                   ` (11 subsequent siblings)
  19 siblings, 0 replies; 21+ messages in thread
From: sje at gcc dot gnu.org @ 2012-08-14 23:35 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54128

--- Comment #7 from Steve Ellcey <sje at gcc dot gnu.org> 2012-08-14 23:35:03 UTC ---
The cutdown test case only shows the difference in code generation (between
"-O2" and "-O2 -g") in big-endian mode.  The original larger test case had
differences in both big-endian and little-endian modes.


^ permalink raw reply	[flat|nested] 21+ messages in thread

* [Bug bootstrap/54128] [4.8 Regression] GCC does not bootstrap on little endian mips due to mis-compare on tree-data-ref.c
  2012-07-30 16:18 [Bug bootstrap/54128] New: GCC does not bootstrap on little endian mips due to mis-compare on tree-data-ref.c sje at gcc dot gnu.org
                   ` (7 preceding siblings ...)
  2012-08-14 23:35 ` sje at gcc dot gnu.org
@ 2012-08-15  8:52 ` rguenth at gcc dot gnu.org
  2012-08-15 18:02 ` sje at gcc dot gnu.org
                   ` (10 subsequent siblings)
  19 siblings, 0 replies; 21+ messages in thread
From: rguenth at gcc dot gnu.org @ 2012-08-15  8:52 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54128

Richard Guenther <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Target|                            |mipsel-unknown-linux-gnu
   Target Milestone|---                         |4.8.0
            Summary|GCC does not bootstrap on   |[4.8 Regression] GCC does
                   |little endian mips due to   |not bootstrap on little
                   |mis-compare on              |endian mips due to
                   |tree-data-ref.c             |mis-compare on
                   |                            |tree-data-ref.c

--- Comment #8 from Richard Guenther <rguenth at gcc dot gnu.org> 2012-08-15 08:52:06 UTC ---
We have -fcompare-debug. I assume the cutdown testcase does not fail
on mipsel-* but the original testcase would fail on mipsel with
-O2 -fcompare-debug.


^ permalink raw reply	[flat|nested] 21+ messages in thread

* [Bug bootstrap/54128] [4.8 Regression] GCC does not bootstrap on little endian mips due to mis-compare on tree-data-ref.c
  2012-07-30 16:18 [Bug bootstrap/54128] New: GCC does not bootstrap on little endian mips due to mis-compare on tree-data-ref.c sje at gcc dot gnu.org
                   ` (8 preceding siblings ...)
  2012-08-15  8:52 ` [Bug bootstrap/54128] [4.8 Regression] " rguenth at gcc dot gnu.org
@ 2012-08-15 18:02 ` sje at gcc dot gnu.org
  2012-08-15 23:22 ` sje at gcc dot gnu.org
                   ` (9 subsequent siblings)
  19 siblings, 0 replies; 21+ messages in thread
From: sje at gcc dot gnu.org @ 2012-08-15 18:02 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54128

--- Comment #9 from Steve Ellcey <sje at gcc dot gnu.org> 2012-08-15 18:01:58 UTC ---
That is correct, the original test fails with -fcompare-debug on a mipsel*
target
or a mips* (big-endian) target.  The cutdown test case only fails on mips*
big-endian targets.

The original gives:
g++: error: x.i: -fcompare-debug failure (length)
The cutdown one gives:
gcc: error: x.i: -fcompare-debug failure

I am going to use delta to create a cut-down test case that fails in little
endian mode.


^ permalink raw reply	[flat|nested] 21+ messages in thread

* [Bug bootstrap/54128] [4.8 Regression] GCC does not bootstrap on little endian mips due to mis-compare on tree-data-ref.c
  2012-07-30 16:18 [Bug bootstrap/54128] New: GCC does not bootstrap on little endian mips due to mis-compare on tree-data-ref.c sje at gcc dot gnu.org
                   ` (9 preceding siblings ...)
  2012-08-15 18:02 ` sje at gcc dot gnu.org
@ 2012-08-15 23:22 ` sje at gcc dot gnu.org
  2012-08-28 23:07 ` sje at gcc dot gnu.org
                   ` (8 subsequent siblings)
  19 siblings, 0 replies; 21+ messages in thread
From: sje at gcc dot gnu.org @ 2012-08-15 23:22 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54128

--- Comment #10 from Steve Ellcey <sje at gcc dot gnu.org> 2012-08-15 23:21:42 UTC ---
Created attachment 28026
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=28026
Cutdown test case that fails in little endian mode

Here is a second cut-down test case, this one fails for mipsel-* targets
that use little-endian mode and mips-* targets that use big-endian.  This test
case needs to be compiled with g++ not gcc.


% mips-linux-gnu-g++ -mel -O2 -fcompare-debug -c cutdown-el.i
mips-linux-gnu-g++: error: cutdown-el.i: -fcompare-debug failure (length)

% mips-linux-gnu-g++ -meb -O2 -fcompare-debug -c cutdown-el.i
mips-linux-gnu-g++: error: cutdown-el.i: -fcompare-debug failure (length)


^ permalink raw reply	[flat|nested] 21+ messages in thread

* [Bug bootstrap/54128] [4.8 Regression] GCC does not bootstrap on little endian mips due to mis-compare on tree-data-ref.c
  2012-07-30 16:18 [Bug bootstrap/54128] New: GCC does not bootstrap on little endian mips due to mis-compare on tree-data-ref.c sje at gcc dot gnu.org
                   ` (10 preceding siblings ...)
  2012-08-15 23:22 ` sje at gcc dot gnu.org
@ 2012-08-28 23:07 ` sje at gcc dot gnu.org
  2012-09-04 21:47 ` sje at gcc dot gnu.org
                   ` (7 subsequent siblings)
  19 siblings, 0 replies; 21+ messages in thread
From: sje at gcc dot gnu.org @ 2012-08-28 23:07 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54128

--- Comment #11 from Steve Ellcey <sje at gcc dot gnu.org> 2012-08-28 23:07:25 UTC ---
I think the problem is the use of INSN_P instead of NONDEBUG_INSN_P in
build_insn_chain (ira.c).  Changing this fixes the small test case and I will
do a full bootstrap build and test to verify it fixes the overall problem.


^ permalink raw reply	[flat|nested] 21+ messages in thread

* [Bug bootstrap/54128] [4.8 Regression] GCC does not bootstrap on little endian mips due to mis-compare on tree-data-ref.c
  2012-07-30 16:18 [Bug bootstrap/54128] New: GCC does not bootstrap on little endian mips due to mis-compare on tree-data-ref.c sje at gcc dot gnu.org
                   ` (11 preceding siblings ...)
  2012-08-28 23:07 ` sje at gcc dot gnu.org
@ 2012-09-04 21:47 ` sje at gcc dot gnu.org
  2012-09-19 14:09 ` rguenth at gcc dot gnu.org
                   ` (6 subsequent siblings)
  19 siblings, 0 replies; 21+ messages in thread
From: sje at gcc dot gnu.org @ 2012-09-04 21:47 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54128

--- Comment #12 from Steve Ellcey <sje at gcc dot gnu.org> 2012-09-04 21:46:55 UTC ---
Proposed patch has been posted to gcc-patches:

http://gcc.gnu.org/ml/gcc-patches/2012-08/msg02089.html

Use NONDEBUG_INSN_P instead of INSN_P in build_insn_chain.


^ permalink raw reply	[flat|nested] 21+ messages in thread

* [Bug bootstrap/54128] [4.8 Regression] GCC does not bootstrap on little endian mips due to mis-compare on tree-data-ref.c
  2012-07-30 16:18 [Bug bootstrap/54128] New: GCC does not bootstrap on little endian mips due to mis-compare on tree-data-ref.c sje at gcc dot gnu.org
                   ` (12 preceding siblings ...)
  2012-09-04 21:47 ` sje at gcc dot gnu.org
@ 2012-09-19 14:09 ` rguenth at gcc dot gnu.org
  2012-11-19 10:46 ` jakub at gcc dot gnu.org
                   ` (5 subsequent siblings)
  19 siblings, 0 replies; 21+ messages in thread
From: rguenth at gcc dot gnu.org @ 2012-09-19 14:09 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54128

Richard Guenther <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Priority|P3                          |P1


^ permalink raw reply	[flat|nested] 21+ messages in thread

* [Bug bootstrap/54128] [4.8 Regression] GCC does not bootstrap on little endian mips due to mis-compare on tree-data-ref.c
  2012-07-30 16:18 [Bug bootstrap/54128] New: GCC does not bootstrap on little endian mips due to mis-compare on tree-data-ref.c sje at gcc dot gnu.org
                   ` (13 preceding siblings ...)
  2012-09-19 14:09 ` rguenth at gcc dot gnu.org
@ 2012-11-19 10:46 ` jakub at gcc dot gnu.org
  2012-12-10 10:58 ` jakub at gcc dot gnu.org
                   ` (4 subsequent siblings)
  19 siblings, 0 replies; 21+ messages in thread
From: jakub at gcc dot gnu.org @ 2012-11-19 10:46 UTC (permalink / raw)
  To: gcc-bugs


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54128

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |aoliva at gcc dot gnu.org,
                   |                            |jakub at gcc dot gnu.org,
                   |                            |vmakarov at gcc dot gnu.org

--- Comment #13 from Jakub Jelinek <jakub at gcc dot gnu.org> 2012-11-19 10:46:02 UTC ---
The first ira.c hunk doesn't make much sense to me, DF_INSN_UID_DEFS should be
NULL on any DEBUG_INSN.  The second might be acceptable, though I'd say the
problem might be elsewhere, in particular calls that return values in multiple
registers, but only a subset of those registers is actually used in the code.
To some extent the issue can be seen also on i?86, -m32 -O2 -g:
long long bar (void);
int
foo (void)
{
  long long a = bar ();
  long long b = a;
  return b + 1;
}
The call has REG_UNUSED (reg:SI 1 dx) note, so in theory debug insns after the
call shouldn't be using it, but they do.  And valtrack is a little bit lost on
it,
it feels it is not ok to do it, but when trying to fix it up it does the same
thing (again and again).  So we end up with a series of debug insns like:
(debug_insn 33 5 24 2 (var_location:SI D#4 (reg:SI 1 dx [+4 ])) -1
     (nil))
(debug_insn 24 33 23 2 (var_location:SI D#3 (debug_expr:SI D#4)) -1
     (nil))
(debug_insn 23 24 22 2 (var_location:SI D#2 (debug_expr:SI D#3)) -1
     (nil))
(debug_insn 22 23 7 2 (var_location:SI D#1 (debug_expr:SI D#2)) -1
     (nil))
(debug_insn 7 22 8 2 (var_location:DI a (concatn/v:DI [
            (reg:SI 0 ax [orig:65 b ] [65])
            (debug_expr:SI D#1)
        ])) mmm.c:5 -1
     (nil))
Wonder if we shouldn't make it explicitly valid that REG_UNUSED registers from
a CALL can be referenced in the following debug_insn, provided there are no
intervening real insns in between, and teach valtrack.c not to add the extra
debug temporaries on each invocation for those.  Then the ira.c change would be
certainly a must (I think it is desirable anyway), I'd hope there aren't too
big -fcompare-debug risks otherwise, because it is only extending the lifetime
of the hard register to debug insns immediately following the call and thus not
extending it over any other real insns.


^ permalink raw reply	[flat|nested] 21+ messages in thread

* [Bug bootstrap/54128] [4.8 Regression] GCC does not bootstrap on little endian mips due to mis-compare on tree-data-ref.c
  2012-07-30 16:18 [Bug bootstrap/54128] New: GCC does not bootstrap on little endian mips due to mis-compare on tree-data-ref.c sje at gcc dot gnu.org
                   ` (14 preceding siblings ...)
  2012-11-19 10:46 ` jakub at gcc dot gnu.org
@ 2012-12-10 10:58 ` jakub at gcc dot gnu.org
  2012-12-21  1:53 ` aoliva at gcc dot gnu.org
                   ` (3 subsequent siblings)
  19 siblings, 0 replies; 21+ messages in thread
From: jakub at gcc dot gnu.org @ 2012-12-10 10:58 UTC (permalink / raw)
  To: gcc-bugs


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54128

--- Comment #14 from Jakub Jelinek <jakub at gcc dot gnu.org> 2012-12-10 10:57:53 UTC ---
Alex, any opinions here?


^ permalink raw reply	[flat|nested] 21+ messages in thread

* [Bug bootstrap/54128] [4.8 Regression] GCC does not bootstrap on little endian mips due to mis-compare on tree-data-ref.c
  2012-07-30 16:18 [Bug bootstrap/54128] New: GCC does not bootstrap on little endian mips due to mis-compare on tree-data-ref.c sje at gcc dot gnu.org
                   ` (15 preceding siblings ...)
  2012-12-10 10:58 ` jakub at gcc dot gnu.org
@ 2012-12-21  1:53 ` aoliva at gcc dot gnu.org
  2012-12-21 18:54 ` sje at gcc dot gnu.org
                   ` (2 subsequent siblings)
  19 siblings, 0 replies; 21+ messages in thread
From: aoliva at gcc dot gnu.org @ 2012-12-21  1:53 UTC (permalink / raw)
  To: gcc-bugs


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54128

--- Comment #15 from Alexandre Oliva <aoliva at gcc dot gnu.org> 2012-12-21 01:52:47 UTC ---
Steve, the patch referenced in comment 12 makes sense to me.  I agree with
Jakub's comment that the first hunk shouldn't make any difference, because
debug insns don't have DEFs, but it doesn't hurt and might marginally speed
things up, so I'd go with the patch as it is.

As for enabling debug temp binds to reference unused/dead REGs when there
aren't intervening insns between the death and the debug use, the idea makes
sense to me, but I'm concerned about complications, particularly in case of
adjustments necessary to the debug insn because of changes to the REG at its
death point.  It might require algorithmic changes because most algorithms
aren't expected to need to make adjustments outside the live ranges of the REG.
 I'd proceed with care.


^ permalink raw reply	[flat|nested] 21+ messages in thread

* [Bug bootstrap/54128] [4.8 Regression] GCC does not bootstrap on little endian mips due to mis-compare on tree-data-ref.c
  2012-07-30 16:18 [Bug bootstrap/54128] New: GCC does not bootstrap on little endian mips due to mis-compare on tree-data-ref.c sje at gcc dot gnu.org
                   ` (16 preceding siblings ...)
  2012-12-21  1:53 ` aoliva at gcc dot gnu.org
@ 2012-12-21 18:54 ` sje at gcc dot gnu.org
  2012-12-21 19:32 ` jakub at gcc dot gnu.org
  2013-01-14 19:36 ` steven at gcc dot gnu.org
  19 siblings, 0 replies; 21+ messages in thread
From: sje at gcc dot gnu.org @ 2012-12-21 18:54 UTC (permalink / raw)
  To: gcc-bugs


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54128

--- Comment #16 from Steve Ellcey <sje at gcc dot gnu.org> 2012-12-21 18:54:05 UTC ---
Author: sje
Date: Fri Dec 21 18:54:00 2012
New Revision: 194676

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=194676
Log:
2012-12-21  Steve Ellcey  <sellcey@mips.com>

    PR bootstrap/54128
    * ira.c (build_insn_chain): Check only NONDEBUG instructions for
    register usage.

Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/ira.c


^ permalink raw reply	[flat|nested] 21+ messages in thread

* [Bug bootstrap/54128] [4.8 Regression] GCC does not bootstrap on little endian mips due to mis-compare on tree-data-ref.c
  2012-07-30 16:18 [Bug bootstrap/54128] New: GCC does not bootstrap on little endian mips due to mis-compare on tree-data-ref.c sje at gcc dot gnu.org
                   ` (17 preceding siblings ...)
  2012-12-21 18:54 ` sje at gcc dot gnu.org
@ 2012-12-21 19:32 ` jakub at gcc dot gnu.org
  2013-01-14 19:36 ` steven at gcc dot gnu.org
  19 siblings, 0 replies; 21+ messages in thread
From: jakub at gcc dot gnu.org @ 2012-12-21 19:32 UTC (permalink / raw)
  To: gcc-bugs


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54128

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |FIXED

--- Comment #17 from Jakub Jelinek <jakub at gcc dot gnu.org> 2012-12-21 19:31:58 UTC ---
Fixed then.


^ permalink raw reply	[flat|nested] 21+ messages in thread

* [Bug bootstrap/54128] [4.8 Regression] GCC does not bootstrap on little endian mips due to mis-compare on tree-data-ref.c
  2012-07-30 16:18 [Bug bootstrap/54128] New: GCC does not bootstrap on little endian mips due to mis-compare on tree-data-ref.c sje at gcc dot gnu.org
                   ` (18 preceding siblings ...)
  2012-12-21 19:32 ` jakub at gcc dot gnu.org
@ 2013-01-14 19:36 ` steven at gcc dot gnu.org
  19 siblings, 0 replies; 21+ messages in thread
From: steven at gcc dot gnu.org @ 2013-01-14 19:36 UTC (permalink / raw)
  To: gcc-bugs


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54128

--- Comment #18 from Steven Bosscher <steven at gcc dot gnu.org> 2013-01-14 19:35:10 UTC ---
Author: steven
Date: Mon Jan 14 19:35:03 2013
New Revision: 195173

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=195173
Log:

    * ira-build.c (ira_flattening): Comment fix.

    Port the following LRA changes on trunk back to the LRA branch:

    2013-01-10  Vladimir Makarov  <vmakarov at redhat dot com>

    PR rtl-optimization/pr55672
    * lra-eliminations.c (mark_not_elimnable): Permit addition with
    const to be elimnable.

    2012-12-21  Vladimir Makarov  <vmakarov at redhat dot com>

    PR middle-end/55775
    * lra-assigns.c (improve_inheritance): Do nothing after
    LRA_MAX_INHERITANCE_PASSES pass.
    * lra-constraints.c (MAX_CONSTRAINT_ITERATION_NUMBER): Rename to
    LRA_MAX_CONSTRAINT_ITERATION_NUMBER.  Move to lra-int.h.
    (MAX_INHERITANCE_PASSES): Rename to LRA_MAX_INHERITANCE_PASSES.
    Move to lra-int.h.
    * lra-int.h (LRA_MAX_CONSTRAINT_ITERATION_NUMBER): Move from
    lra-constraints.c.
    (LRA_MAX_INHERITANCE_PASSES): Ditto.

    2012-12-21  Steve Ellcey  <sellcey at mips dot com>

    PR bootstrap/54128
    * ira.c (build_insn_chain): Check only NONDEBUG instructions for
    register usage.

    2012-12-11  Jakub Jelinek  <jakub at redhat dot com>

    PR rtl-optimization/55193
    * lra-constraints.c (loc_equivalence_callback): New function.
    (lra_constraints): Call simplify_replace_fn_rtx instead of
    loc_equivalence_change_p on DEBUG_INSNs.


Modified:
    branches/lra/gcc/ChangeLog
    branches/lra/gcc/ira-build.c
    branches/lra/gcc/ira.c
    branches/lra/gcc/lra-assigns.c
    branches/lra/gcc/lra-constraints.c
    branches/lra/gcc/lra-eliminations.c
    branches/lra/gcc/lra-int.h


^ permalink raw reply	[flat|nested] 21+ messages in thread

end of thread, other threads:[~2013-01-14 19:36 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-07-30 16:18 [Bug bootstrap/54128] New: GCC does not bootstrap on little endian mips due to mis-compare on tree-data-ref.c sje at gcc dot gnu.org
2012-07-31  9:34 ` [Bug bootstrap/54128] " rguenth at gcc dot gnu.org
2012-07-31  9:40 ` pinskia at gcc dot gnu.org
2012-07-31 15:17 ` sje at gcc dot gnu.org
2012-07-31 15:27 ` sje at gcc dot gnu.org
2012-08-02 17:20 ` sje at gcc dot gnu.org
2012-08-09 23:47 ` sje at gcc dot gnu.org
2012-08-10 20:11 ` sje at gcc dot gnu.org
2012-08-14 23:35 ` sje at gcc dot gnu.org
2012-08-15  8:52 ` [Bug bootstrap/54128] [4.8 Regression] " rguenth at gcc dot gnu.org
2012-08-15 18:02 ` sje at gcc dot gnu.org
2012-08-15 23:22 ` sje at gcc dot gnu.org
2012-08-28 23:07 ` sje at gcc dot gnu.org
2012-09-04 21:47 ` sje at gcc dot gnu.org
2012-09-19 14:09 ` rguenth at gcc dot gnu.org
2012-11-19 10:46 ` jakub at gcc dot gnu.org
2012-12-10 10:58 ` jakub at gcc dot gnu.org
2012-12-21  1:53 ` aoliva at gcc dot gnu.org
2012-12-21 18:54 ` sje at gcc dot gnu.org
2012-12-21 19:32 ` jakub at gcc dot gnu.org
2013-01-14 19:36 ` steven at gcc dot gnu.org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).