--- Comment #18 from aoliva at gcc dot gnu dot org 2009-10-08 19:22 ---
All fixed.
--
aoliva at gcc dot gnu dot org changed:
What|Removed |Added
Status|UNCONF
--- Comment #17 from aoliva at gcc dot gnu dot org 2009-10-08 19:20 ---
Subject: Bug 41353
Author: aoliva
Date: Thu Oct 8 19:20:22 2009
New Revision: 152573
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=152573
Log:
PR debug/41353
* regmove.c (regmove_backward_pass): Replace sr
--- Comment #16 from aoliva at gcc dot gnu dot org 2009-10-06 07:53 ---
http://gcc.gnu.org/ml/gcc-patches/2009-10/msg00359.html fixes #c9
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41353
--- Comment #15 from aoliva at gcc dot gnu dot org 2009-10-06 06:09 ---
Err, I messed up my testing. #c9 is not fixed, I was looking at cprop dumps
(as in #c10), not regmove. Sorry. Looking into it now.
--
aoliva at gcc dot gnu dot org changed:
What|Removed
--- Comment #14 from aoliva at gcc dot gnu dot org 2009-10-06 06:05 ---
The patch that introduces debug temps fixes the problem in #c9.
http://gcc.gnu.org/ml/gcc-patches/2009-10/msg00112.html
As for the testcase in #c10, the behavior is correct. If the pseudo holding a
value becomes de
--- Comment #13 from jakub at gcc dot gnu dot org 2009-10-02 15:01 ---
Subject: Bug 41353
Author: jakub
Date: Fri Oct 2 15:01:22 2009
New Revision: 152403
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=152403
Log:
PR debug/41404
PR debug/41353
* cfgexpan
--- Comment #12 from aoliva at gcc dot gnu dot org 2009-09-23 16:31 ---
Subject: Bug 41353
Author: aoliva
Date: Wed Sep 23 16:30:39 2009
New Revision: 152088
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=152088
Log:
PR debug/41353
* var-tracking.c (add_with_sets): Sort MO_VAL_L
--- Comment #11 from jakub at gcc dot gnu dot org 2009-09-21 18:32 ---
The #c10 problem is that df marks pseudo 60 used last in j += i; (and then just
in 2 DEBUG_INSNs following it) as REG_DEAD in that instruction and drops the
DEBUG_INSN uses below it on the floor.
--
http://gcc.gn
--- Comment #10 from jakub at gcc dot gnu dot org 2009-09-16 17:19 ---
And yet another testcase:
int
foo (int i, int j)
{
j += i;
int i1 = 2 * i;
int i2 = 3 * i;
asm volatile ("" : "+r" (j) : : "memory");
return j;
}
Here the debug_insn arguments are lost during cprop1 pass, n
--- Comment #9 from jakub at gcc dot gnu dot org 2009-09-16 17:17 ---
Another interesting testcase:
int
foo (int i)
{
asm volatile ("" : "+r" (i));
int i1 = 2 * i;
int i2 = 2 * i;
int i3 = 3 * i;
asm volatile ("" : "+r" (i) : : "memory");
return i;
}
Here things go wrong duri
--- Comment #8 from jakub at gcc dot gnu dot org 2009-09-16 16:43 ---
The http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41353#c4 patch has been
obsoleted by http://gcc.gnu.org/ml/gcc-patches/2009-09/msg01017.html
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41353
--- Comment #7 from jakub at gcc dot gnu dot org 2009-09-16 16:42 ---
Created an attachment (id=18598)
--> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18598&action=view)
expand-asm-stmt.patch
Alternatively to cure this expand_asm_operands could ensure the temporaries
have correct RE
--- Comment #6 from jakub at gcc dot gnu dot org 2009-09-16 11:53 ---
With:
--- var-tracking.c.xx 2009-09-16 09:17:52.0 +0200
+++ var-tracking.c 2009-09-16 13:48:08.0 +0200
@@ -4416,14 +4416,14 @@ use_type (rtx *loc, struct count_use_inf
expr = REG_EXPR (*loc);
--- Comment #5 from jakub at gcc dot gnu dot org 2009-09-16 11:48 ---
Looking at the
int
foo (int i)
{
asm volatile ("" : "+r" (i));
int i1 = 2 * i;
int i2 = 2 * i;
int i3 = 2 * i;
return i;
}
testcase now, here the problem is that cse1 pass sees:
(insn 7 6 8 2 d6.c:4 (set (reg
--- Comment #4 from jakub at gcc dot gnu dot org 2009-09-15 13:45 ---
Created an attachment (id=18585)
--> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18585&action=view)
gcc45-pr41353.patch
I've looked briefly at the problem with correct var location notes followed by
(nil) ones and
--- Comment #3 from jakub at gcc dot gnu dot org 2009-09-14 17:36 ---
Another testcase for the vartrack bug:
int
foo (int i)
{
asm volatile ("" : "+r" (i));
int i1 = 2 * i;
int i2 = 2 * i;
int i3 = 2 * i;
return i;
}
(debug_insn 8 6 9 2 d6.c:4 (var_location:SI i (reg:SI 0 ax [
--
rguenth at gcc dot gnu dot org changed:
What|Removed |Added
Severity|normal |enhancement
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41353
--- Comment #2 from jakub at gcc dot gnu dot org 2009-09-14 09:15 ---
Regarding the second testcase, the second i1 note (no real location) comes from
emit_notes_for_changes (insn, EMIT_NOTE_AFTER_INSN, set->vars); in MO_VAL_LOC
handling, the first one (with the correct location) is emitt
--- Comment #1 from jakub at gcc dot gnu dot org 2009-09-14 08:18 ---
Created an attachment (id=18580)
--> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18580&action=view)
gcc45-pr41353.patch
Here is a small patch that allows us to get at least a little bit toward fixing
the first tes
19 matches
Mail list logo