[Bug rtl-optimization/33828] Issues with code hoisting implementation in gcse.c

2008-12-01 Thread steven at gcc dot gnu dot org


--- Comment #13 from steven at gcc dot gnu dot org  2008-12-01 12:24 ---
After fixing the issue mentioned in comment#2 and comment #8, gcse.c hoisting
hoists things too far up, e.g.:

{ pred ENTRY }
BB1
if (...) goto BB2 else goto BB3
{ succ BB2, BB3 }

{ pred BB1 }
BB2
...
goto BB4
{ succ BB4 }

{ pred BB2 }
BB3
...
goto BB4
{ succ BB4 }

{ pred BB2, BB3 }
BB4
if (...) goto BB5 else goto BB6
{ succ BB5, BB6 }

{ pred BB4 }
BB5
r1 - exp1
goto BB7
{ succ BB7 }

{ pred BB4 }
BB6
r2 - exp1
goto BB7
{ succ BB7 }

{ pred BB5, BB6 }
BB7
...
{ succ EXIT }



is transformed to:



{ pred ENTRY }
BB1
r3 - exp1
if (...) goto BB2 else goto BB3
{ succ BB2, BB3 }

{ pred BB1 }
BB2
...
goto BB4
{ succ BB4 }

{ pred BB2 }
BB3
...
goto BB4
{ succ BB4 }

{ pred BB2, BB3 }
BB4
if (...) goto BB5 else goto BB6
{ succ BB5, BB6 }

{ pred BB4 }
BB5
r1 - r3
goto BB7
{ succ BB7 }

{ pred BB4 }
BB6
r2 - r3
goto BB7
{ succ BB7 }

{ pred BB5, BB6 }
BB7
...
{ succ EXIT }



when it would be better to hoist up only to BB4:


{ pred ENTRY }
BB1
if (...) goto BB2 else goto BB3
{ succ BB2, BB3 }

{ pred BB1 }
BB2
...
goto BB4
{ succ BB4 }

{ pred BB2 }
BB3
...
goto BB4
{ succ BB4 }

{ pred BB2, BB3 }
BB4
r3 - exp1
if (...) goto BB5 else goto BB6
{ succ BB5, BB6 }

{ pred BB4 }
BB5
r1 - r3
goto BB7
{ succ BB7 }

{ pred BB4 }
BB6
r2 - r3
goto BB7
{ succ BB7 }

{ pred BB5, BB6 }
BB7
...
{ succ EXIT }


GCC should not hoist up further than up to the first common dominator.


-- 


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



[Bug tree-optimization/23286] missed fully redundant expression

2008-12-01 Thread steven at gcc dot gnu dot org


--- Comment #24 from steven at gcc dot gnu dot org  2008-12-01 22:00 ---
Created an attachment (id=16803)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=16803action=view)
patch to implement code hoisting in tree-ssa-pre.c

This passes bootstrap+testing on ia64-linux and amd64-linux.  It causes a few
vectorizer failures (4 on ia64) that I have not analyzed yet.


-- 

steven at gcc dot gnu dot org changed:

   What|Removed |Added

  Attachment #16784|0   |1
is obsolete||


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



[Bug middle-end/38204] PRE for post dominating expressions

2008-12-01 Thread steven at gcc dot gnu dot org


--- Comment #4 from steven at gcc dot gnu dot org  2008-12-01 22:12 ---
davidxl, my latest patch to bug 23286 (tree-hoist_v3.diff) makes PRE in
tree-ssa-pre.c code-size aware.  I have tested this with CSiBE on
mips-unknown-elf.

Without the patch, code size at -Os with PRE enabled is ~17% larger than -Os
without PRE.

With the patch, the code size increase with -Os and PRE enabled is 0.2%.  

With the patch and with tree hoisting enabled at -Os, code size is reduced by
just a little less than 1%.

With the patch and with tree hoisting enabled at -Os but RTL code hoisting
disabled (i.e. the pass in gcse.c), code size is reduced by just a little less
than 0.6%.  (The RTL pass will be necessary mostly to hoist copies from
out-of-ssa, and frame/stack pointer adjustments.)

davidxl, if you have some time or someone else with time to play with this
further, that'd be much appreciated.  I've done my part, but having done the
trick, the fun is gone and I have no intention to persue code-size aware PRE
further ;-)


-- 


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



[Bug c++/32305] ICE in initialize_flags_in_bb with -O -fipa-pta

2008-12-01 Thread steven at gcc dot gnu dot org


--- Comment #10 from steven at gcc dot gnu dot org  2008-12-01 23:04 ---
With so many dups, IMHO this ought to be fixed for the releases...


-- 

steven at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |steven at gcc dot gnu dot
   |dot org |org
 Status|NEW |ASSIGNED
   Last reconfirmed|2007-06-12 15:08:11 |2008-12-01 23:04:15
   date||


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



[Bug target/37364] [4.4 Regression] IRA generates inefficient code due to missing regmove pass

2008-11-30 Thread steven at gcc dot gnu dot org


--- Comment #26 from steven at gcc dot gnu dot org  2008-11-30 20:45 ---
Resurrecting regmove is not an option. Time is better spent on figuring out
what regmove does, that makes a difference, and see if IRA can be taught to do
the same.


-- 


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



[Bug target/37364] [4.4 Regression] IRA generates inefficient code due to missing regmove pass

2008-11-30 Thread steven at gcc dot gnu dot org


--- Comment #28 from steven at gcc dot gnu dot org  2008-11-30 21:18 ---
You're not explaining what regmove does. What transformation do these
alternatives with * enable regmove to do?

I'm not saying that a separate pass is not an option. Perhaps a regmove-like
pass is necessary.  In fact it probably is, I think even Vlad already
acknowledged so. But not regmove as-we-know-it, which is a friggin' mess that
ought to go away.

What we should figure out IMHO, is which transformation(s) it is (are) that
regmove does, which are helpful here.  Maybe we can add a simple pre-regalloc
pass that does these transformations, or make it part of an existing pass,
using clean infrastructure (cfg, df) instead of the ad-hoc mess of regmove.


-- 


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



[Bug target/37364] [4.4 Regression] IRA generates inefficient code due to missing regmove pass

2008-11-30 Thread steven at gcc dot gnu dot org


--- Comment #29 from steven at gcc dot gnu dot org  2008-11-30 21:32 ---
The insns 8 in comment #0 show the regmove transformation that matters here:

With regmove disabled::
(insn:HI 8 7 14 2 ../../include/mmintrin.h:300 (set (reg:V2SI 61)
(plus:V2SI (reg:V2SI 63 [ x ])
(mem/c/i:V2SI (symbol_ref:DI (y) var_decl 0x7f66abfb5c80 y) [2
y
+0 S8 A64]))) 992 {*mmx_addv2si3} (expr_list:REG_DEAD (reg:V2SI 63 [ x ])
(nil)))


vs. with regmove enabled:
(insn:HI 8 7 14 2 ../../include/mmintrin.h:300 (set (reg:V2SI 63 [ x ])
(plus:V2SI (reg:V2SI 63 [ x ])
(mem/c/i:V2SI (symbol_ref:DI (y) var_decl 0x7fd36e03cc80 y) [2 
y+0 S8 A64]))) 992 {*mmx_addv2si3} (nil))


This is a textbook example of a regmove transformation (where the use of the
word textbook is an insult to all textbooks ever written, since nothing in
regmove is textbook, but oh well...).  It's turned a 3-address instruction
into a 2-address instruction, and this is precisely the transformation that
regmove was originally written for.

In IRA, I would've expected reg 61 and reg 63 to be coalesced to give the same
result.

Vlad already commented on this in comment #6.  It's clear from his description
why IRA did not coalesce reg 61 and reg 63.  

Other compilers do this kind of transformation via reverse copy propagation. 
GCC could perhaps add something like that too, when it transforms a 3-address
insn to a 2-address insn.


-- 


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



[Bug fortran/38303] poor error message

2008-11-29 Thread steven at gcc dot gnu dot org


-- 

steven at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2008-11-29 12:22:14
   date||


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



[Bug tree-optimization/26307] load PRE creates type mismatches

2008-11-29 Thread steven at gcc dot gnu dot org


--- Comment #3 from steven at gcc dot gnu dot org  2008-11-29 16:25 ---
Is this still an issue?


-- 


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



[Bug rtl-optimization/11826] [ARM] Minor register allocation problem before function return

2008-11-29 Thread steven at gcc dot gnu dot org


--- Comment #5 from steven at gcc dot gnu dot org  2008-11-29 19:28 ---
Can an ARM maintainer please check this bug?  Comment #4 suggests this bug is
fixed, but it needs re-checking now that IRA has been merged.


-- 

steven at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||pbrook at gcc dot gnu dot
   ||org


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



[Bug middle-end/19020] libcalls are removed (-ftrapv does not work)

2008-11-29 Thread steven at gcc dot gnu dot org


--- Comment #15 from steven at gcc dot gnu dot org  2008-11-29 22:23 ---
I'm not sure if this bug is fixed, though.  -ftrapv is still broken afaik.


-- 


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



[Bug middle-end/35560] Missing CSE/PRE for memory operations involved in virtual call.

2008-11-29 Thread steven at gcc dot gnu dot org


--- Comment #1 from steven at gcc dot gnu dot org  2008-11-29 22:42 ---
Looks like something alias related - so CCing Richi.


-- 

steven at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||rguenth at gcc dot gnu dot
   ||org
 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2008-11-29 22:42:58
   date||


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



[Bug rtl-optimization/38245] [4.4 Regression] apparent improper segfault in compiler output

2008-11-28 Thread steven at gcc dot gnu dot org


--- Comment #2 from steven at gcc dot gnu dot org  2008-11-28 11:23 ---
There really is obvious way to remove the argument pushes without libcall
notes.  There is nothing in the RTL to make clear that the pushes are dead when
the call is removed, so they pushes stay.

There are several ways to fix this.

1. Make the call not pure (even if the function is technically pure).
IIRC the call pops the incoming arguments on return, which is clearly a
non-pure side-effect. I am assuming it is acceptable that the call is not a
candidate for DCE.  I think this is acceptable -- it's the consequence of
removing libcall notes -- but OTOH I would like to understand *why* we end up
with a DCE-able pure call in the first place, why it's not optimized away in
the tree optimizations.
Of course, a call would only have to be non-pure if it takes arguments via the
stack.  For targets with proper argument passing via registers ;) the call
should still be pure.


2. Make it explicit in the IL that the pushes are inputs for the call.
For example, add EXPR_LISTs from the CALL_INSNs to the pushes of the outgoing
args, and teach DCE to remove the insn in the EXPR_LIST when a CALL_INSN is
removed.  Or resurrect REG_LIBCALL_ID (renamed REG_PURECALL_ID), teach DCE to
keep a list of the REG_PURECALL_IDs for removed pure calls, and do a second
pass to remove all (non-CALL_INSN) insns that have the REG_PURECALL_ID of a
removed libcall.
This assumes that we can always remove the outgoing argument pushes if a pure
call is removed.  I'm not sure if this is true (is it conceivable that we CSE
things in such a way that other insns would depend on the argument pushes?).


Personally, I'm strongly in favor of option 1.


-- 


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



[Bug tree-optimization/23286] missed fully redundant expression

2008-11-27 Thread steven at gcc dot gnu dot org


--- Comment #23 from steven at gcc dot gnu dot org  2008-11-27 15:26 ---
Created an attachment (id=16784)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=16784action=view)
less unpolished version of tree code hoisting

This fixes some bugs in the proof-of-concept patch:

1. Don't hoist things out of loops.  We have to look at ANTIC_IN of the block
we hoist into, not the union of ANTIC_IN of all its successors.

2. Add a constraint that the hoisted expression must be computed in one of the
successors of the block we're hoisting too.

Also added comment so that the uninitiated don't have their eye balls dropping
out in confusion ;-)

I might actually post this for GCC 4.5 if it subsumes the RTL code hoisting
pass.


-- 

steven at gcc dot gnu dot org changed:

   What|Removed |Added

  Attachment #16751|0   |1
is obsolete||


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



[Bug fortran/38282] Add the remaining HPF bit intrinsics

2008-11-26 Thread steven at gcc dot gnu dot org


-- 

steven at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |steven at gcc dot gnu dot
   |dot org |org
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2008-11-27 07:13:23
   date||


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



[Bug tree-optimization/23286] missed fully redundant expression

2008-11-23 Thread steven at gcc dot gnu dot org


--- Comment #16 from steven at gcc dot gnu dot org  2008-11-23 13:07 ---
Created an attachment (id=16751)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=16751action=view)
Proof-of-concept patch

It is not terribly complicated to add hoisting to tree-ssa-pre.c.  I have
attached the result of roughly half a day of hacking.  It is a proof-of-concept
patch that demonstrates how hoisting could be added.  It's not finished,
tested, or even correct ;-) but it shows the general idea.  For a
production-quality version, one would have to make sure not to hoist
expressions up too far (e.g. not further up than above the first block that
generates the expression).


-- 


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



[Bug tree-optimization/23286] missed fully redundant expression

2008-11-23 Thread steven at gcc dot gnu dot org


--- Comment #17 from steven at gcc dot gnu dot org  2008-11-23 13:11 ---
For the test case of comment #0, the proof-of-concept patch does the following
in the .084t.pre dump (relevant excerpts only):

VBEOUT[2] := { {lshift_expr,a_2(D),1} (0004) }
  Inserting expression 5 into AVAIL_OUT[2]
Inserted pretmp.12_8 = a_2(D)  1;
 in predecessor 2
AVAIL_OUT[2] := { a_2(D) (0002), a.0_3 (0003), pretmp.12_8 (0004) }
Successor 1 not dominated by 5 - empty set
VBEOUT[5] := {  }
AVAIL_OUT[5] := { a_2(D) (0002), a.0_3 (0003), a_1 (0001), pretmp.12_8 (0004) }
Successor 5 not dominated by 4 - empty set
VBEOUT[4] := {  }
AVAIL_OUT[4] := { a_2(D) (0002), a.0_3 (0003), pretmp.12_8 (0004) }
Successor 5 not dominated by 3 - empty set
VBEOUT[3] := {  }
AVAIL_OUT[3] := { a_2(D) (0002), a.0_3 (0003), a_5 (0005), pretmp.12_8 (0004) }
Replaced a_2(D)  1 with pretmp.12_8 in a_4 = a_2(D)  1;
Replaced a_2(D)  1 with pretmp.12_8 in a_6 = a_2(D)  1;

...

f (short unsigned int a)
{
  short unsigned int pretmp.12;
  short int a.0;

bb 2:
  a.0_3 = (short int) a_2(D);
  pretmp.12_8 = a_2(D)  1;
  if (a.0_3  0)
goto bb 3;
  else
goto bb 4;

bb 3:
  a_4 = pretmp.12_8;
  a_5 = a_4 ^ 4129;
  goto bb 5;

bb 4:
  a_6 = pretmp.12_8;

bb 5:
  # a_1 = PHI a_5(3), a_6(4)
  return a_1;

}


which eventually leads to the following in the .126t.final_cleanup dump:


;; Function f (f)

f (short unsigned int a)
{
  short unsigned int a.22;

bb 2:
  a.22 = a  1;
  if ((short int) a  0)
goto bb 3;
  else
goto bb 4;

bb 3:
  a.22 = a.22 ^ 4129;

bb 4:
  return a.22;

}


-- 


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



[Bug tree-optimization/23286] missed fully redundant expression

2008-11-23 Thread steven at gcc dot gnu dot org


--- Comment #18 from steven at gcc dot gnu dot org  2008-11-23 13:22 ---
The test case of PR38204 shows one of the problems with proof-of-concept patch,
namely the don't move up too much problem.  The .pre dump looks like this:

test (int a, int b, int c, int g)
{
  int pretmp.11;
  int e;
  int d;
  int D.1257;
  int D.1256;

bb 2:
  pretmp.11_11 = b_3(D) * c_4(D);
  pretmp.11_12 = g_8(D) + pretmp.11_11;  // No need to move this up to here.
  if (a_2(D) != 0)
goto bb 3;
  else
goto bb 4;

bb 3:
  d_5 = pretmp.11_11;
  goto bb 5;

bb 4:
  d_6 = b_3(D) - c_4(D);

bb 5:
  # d_1 = PHI d_5(3), d_6(4)
  D.1256_7 = pretmp.11_11;
  e_9 = pretmp.11_12;
  D.1257_10 = e_9 + d_1;
  return D.1257_10;

}


Eventually this gives (in the .final_cleanup dump):

;; Function test (test)

test (int a, int b, int c, int g)
{
  int d.21;
  int d;

bb 2:
  d.21 = c * b;
  if (a != 0)
goto bb 3;
  else
goto bb 4;

bb 3:
  d = d.21;
  goto bb 5;

bb 4:
  d = b - c;

bb 5:
  return (d.21 + g) + d;

}


-- 


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



[Bug tree-optimization/23286] missed fully redundant expression

2008-11-23 Thread steven at gcc dot gnu dot org


--- Comment #21 from steven at gcc dot gnu dot org  2008-11-23 14:20 ---
I'll work on something that bootstraps and passes testing.  But cost-related
decisions (like the one from comment #20) are not on my TODO list right now. 
The pass that should do this is called sched1 ;-)


-- 


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



[Bug tree-optimization/21485] [4.2/4.3/4.4 Regression] missed load PRE, PRE makes i?86 suck

2008-11-22 Thread steven at gcc dot gnu dot org


--- Comment #37 from steven at gcc dot gnu dot org  2008-11-22 09:13 ---
Re: comment #35 and comment #36
That is code hoisting, again. See Bug 23286 and some the bugs closed as a
duplicate of Bug 23286. Looks like it's time to implement tree-level hoisting
:-)


-- 

steven at gcc dot gnu dot org changed:

   What|Removed |Added

  BugsThisDependsOn||23286


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



[Bug middle-end/30521] if (i == n) ++i; or i += i == n;?

2008-11-22 Thread steven at gcc dot gnu dot org


--- Comment #5 from steven at gcc dot gnu dot org  2008-11-22 09:51 ---
I created a t.c with both functions in it:

unsigned int f1(unsigned int i, unsigned int n) {++i; if (i == n) ++i; return
i;}
unsigned int f2(unsigned int i, unsigned int n) {++i; i += i == n; return i;}

With today's trunk on x86_64, I get:

.file   t.c
.text
.align 16
.globl f1
.type   f1, @function
f1:
.LFB0:
leal1(%rdi), %eax
addl$2, %edi
cmpl%esi, %eax
cmove   %edi, %eax
ret
.LFE0:
.size   f1, .-f1
.align 16
.globl f2
.type   f2, @function
f2:
.LFB1:
addl$1, %edi
xorl%eax, %eax
cmpl%esi, %edi
sete%al
addl%edi, %eax
ret
.LFE1:
.size   f2, .-f2
.section.eh_frame,aw,@progbits
.Lframe1:
.long   .LECIE1-.LSCIE1
.LSCIE1:
.long   0x0
.byte   0x1
.string zR
.byte   0x1
.byte   0x78
.byte   0x10
.byte   0x1
.byte   0x3
.byte   0xc
.byte   0x7
.byte   0x8
.byte   0x11
.byte   0x10
.byte   0x1
.align 8
.LECIE1:
.LSFDE1:
.long   .LEFDE1-.LASFDE1
.LASFDE1:
.long   .LASFDE1-.Lframe1
.long   .LFB0
.long   .LFE0-.LFB0
.byte   0x0
.align 8
.LEFDE1:
.LSFDE3:
.long   .LEFDE3-.LASFDE3
.LASFDE3:
.long   .LASFDE3-.Lframe1
.long   .LFB1
.long   .LFE1-.LFB1
.byte   0x0
.align 8
.LEFDE3:
.ident  GCC: (GNU) 4.4.0 20081122 (experimental) [trunk revision
142117]
.section.note.GNU-stack,,@progbits


So still not the same functions.

For x86 (32bit) with -march=core2, I get similar code (f1 with a cmove).
Without a -march option, I get code with a jump.


-- 

steven at gcc dot gnu dot org changed:

   What|Removed |Added

   Last reconfirmed|2007-01-22 00:29:40 |2008-11-22 09:51:57
   date||


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



[Bug middle-end/30521] if (i == n) ++i; or i += i == n;?

2008-11-22 Thread steven at gcc dot gnu dot org


--- Comment #6 from steven at gcc dot gnu dot org  2008-11-22 10:04 ---
Ah, now I see what Pinski meant at comment #2.

Before CSE, we still have the original code for f1:
unsigned int f(unsigned int i, unsigned int n)
{
  i.20 = i + 1;
  if (i.20 == n) i.20 = i.20 + 1;
  return i.20;
}

After CSE (but before the first if-conversion pass) it's been transformed to:
unsigned int f(unsigned int i, unsigned int n)
{
  i.20 = i + 1;
  if (i.20 == n) i.20 = i + 2;
  return i.20;
}

The form of the code before CSE is caught in noce_try_addcc. The second form
obviously not (because we don't know that the value of i.20 is i + 1).

So this comes down to a pass ordering problem. Or, one  could argue that CSE
should not perform this transformation if (say) i.20 = i + 1 is not made dead
code by the transformation to i.20 = i + 2.


-- 


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



[Bug tree-optimization/35639] [4.3/4.4 Regression] -fprofile-generate + PRE = big compile-time

2008-11-22 Thread steven at gcc dot gnu dot org


--- Comment #7 from steven at gcc dot gnu dot org  2008-11-22 10:53 ---
The last time this bug was reconfirmed, was in March 2008.  PRE has been
completely rewritten since then.  With today's trunk, I still see PRE take most
of the compile time, but it's only 20% (on x86 and on x86_64 with Richi's
testcase from t3.c.gz).

Paolo, do you still see this problem?


-- 


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



[Bug rtl-optimization/21676] [4.2/4.3/4.4 Regression] Optimizer regression: SciMark sparse matrix benchmark

2008-11-22 Thread steven at gcc dot gnu dot org


--- Comment #16 from steven at gcc dot gnu dot org  2008-11-22 10:31 ---
See comment #7 and comment #13.


-- 

steven at gcc dot gnu dot org changed:

   What|Removed |Added

  BugsThisDependsOn||23286


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



[Bug target/34571] [4.3/4.4 Regression] Segfault in alpha_expand_mov at -O3

2008-11-22 Thread steven at gcc dot gnu dot org


--- Comment #14 from steven at gcc dot gnu dot org  2008-11-22 11:17 ---
Ping?
Patch exists, tested and all, and just needs a re-test and then submit...


-- 


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



[Bug tree-optimization/26243] [4.2/4.3/4.4 Regression] reassoc is not documented in passes.texi

2008-11-22 Thread steven at gcc dot gnu dot org


--- Comment #5 from steven at gcc dot gnu dot org  2008-11-22 11:23 ---
passes.texi *does* have documentation for the reassoc pass.

Fixed by dnovillo in r114200:

PR 26242
* doc/passes.texi: Add documentation for pass_vrp, pass_ipa_pta,
pass_fre, pass_store_ccp, pass_copy_prop,
pass_store_copy_prop, pass_merge_phi, pass_nrv,
pass_return_slot, pass_object_size, pass_lim,
pass_linear_transform, pass_empty_loop, pass_complete_unroll,
pass_loop_prefetch and pass_stdarg.


-- 

steven at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED


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



[Bug tree-optimization/21559] [4.2/4.3/4.4 Regression] missed jump threading

2008-11-22 Thread steven at gcc dot gnu dot org


--- Comment #10 from steven at gcc dot gnu dot org  2008-11-22 11:36 ---
Trunk today generates the following code (this is the final_cleanup dump):

;; Function foo (foo)

foo ()
{
  static char eof_reached = 0;
  int bytes;
  int toread;

bb 2:
  toread = 4096;

bb 3:
  bytes = bar (toread);
  if (bytes = 0)
goto bb 4;
  else
goto bb 5;

bb 4:
  if (bytes != 0)
goto bb 6;
  else
goto bb 7;

bb 5:
  toread = toread - bytes;

bb 6:
  if (toread != 0)
goto bb 3;
  else
goto bb 8;

bb 7:
  eof_reached = 1;

bb 8:
  return;

}


Looks like we can't do any better than that -- can we??


-- 


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



[Bug tree-optimization/17116] Missed jump threading/bypassing optimization with loop and % (or ands)

2008-11-22 Thread steven at gcc dot gnu dot org


--- Comment #8 from steven at gcc dot gnu dot org  2008-11-22 11:45 ---
I don't think anyone is interested in fixing this - WONTFIX.


-- 

steven at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||WONTFIX


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



[Bug tree-optimization/37709] [4.4 Regression] inliner gone crazy

2008-11-22 Thread steven at gcc dot gnu dot org


-- 

steven at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2008-11-22 17:34:27
   date||


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



[Bug c++/35319] [4.3/4.4 regression] ICE throwing fixed-point types

2008-11-22 Thread steven at gcc dot gnu dot org


--- Comment #5 from steven at gcc dot gnu dot org  2008-11-22 17:44 ---
Is there a mangling convention now for fixed-point types, or not?
If not, we should make this a sorry() and resolve this bug as SUSPENDED for
now.
If there is, well, you know, we should add it ;-)


-- 


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



[Bug c++/35335] [4.2/4.3/4.4 regression] Broken diagnostic: 'expr_stmt' not supported by dump_expr

2008-11-22 Thread steven at gcc dot gnu dot org


--- Comment #3 from steven at gcc dot gnu dot org  2008-11-22 18:20 ---
With a trivial one-liner patch this could look a lot better:

$ ./cc1plus t.C
 void foo()
t.C:6: error: no match for 'operator=' in 'a = ({...})'
t.C:1: note: candidates are: A A::operator=(const A)

Execution times (seconds)
 name lookup   :   0.01 (25%) usr   0.00 ( 0%) sys   0.01 (25%) wall   
  82 kB ( 5%) ggc
 TOTAL :   0.03 0.00 0.03  
1508 kB
Extra diagnostic checks enabled; compiler may run slowly.
Configure with --enable-checking=release to disable checks.
$ 


Of course, a message reproducing the source line with a carret and all that
would be even better -- hi Aldy! -- but for now this is probably the best we
can do.

Untested, I have no commitment to this patch ;-)

Index: ../../trunk/gcc/cp/error.c
===
--- ../../trunk/gcc/cp/error.c  (revision 142123)
+++ ../../trunk/gcc/cp/error.c  (working copy)
@@ -1976,6 +1976,7 @@
   break;

 case BIND_EXPR:
+case EXPR_STMT:
 case STMT_EXPR:
 case STATEMENT_LIST:
   /* We don't yet have a way of dumping statements in a


-- 


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



[Bug tree-optimization/37416] [4.4 Regression] Failure to return number of loop iterations

2008-11-21 Thread steven at gcc dot gnu dot org


--- Comment #1 from steven at gcc dot gnu dot org  2008-11-21 20:57 ---
This bug is shamefully incomplete.  There is no way anyone willing to give this
a look can know what to look for.

For example, a few things one would have to know before he/she can even begin
to consider whether/how to analyze the problem:
1. What is the target where you see this?
2. What compiler flags are you using?
3. Where do you look for the number of iterations (which dump)?
4. What missed-optimization does this cause (something not vectorized)?

Please read http://gcc.gnu.org/bugs.html#report before filing more bugs.


-- 

steven at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |WAITING


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



[Bug target/37437] [4.4 regression] speed regression

2008-11-21 Thread steven at gcc dot gnu dot org


--- Comment #5 from steven at gcc dot gnu dot org  2008-11-21 21:13 ---
What does regmove change, i.e. which of the many things that regmove does, is
helpful for the test case for this PR?


-- 


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



[Bug tree-optimization/35518] [4.4 Regression] FAIL: gcc.c-torture/execute/20040709-1.c execution at -O2 and above

2008-11-21 Thread steven at gcc dot gnu dot org


--- Comment #35 from steven at gcc dot gnu dot org  2008-11-21 21:29 ---
So is there a test case with current top-of-trunk that fails?  This is marked
as a P1 regression, but IIUC we don't even have a test case, after Jakub's fix
for PR37316 ?


-- 


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



[Bug tree-optimization/37716] [4.4 Regression] ice for legal C++ code with -O2 on 20080926

2008-11-21 Thread steven at gcc dot gnu dot org


--- Comment #7 from steven at gcc dot gnu dot org  2008-11-21 21:54 ---
The reduced test case of comment #3 does not ICE on ia64 for gcc 4.4.0 20081121
(revision 142902).


-- 


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



[Bug middle-end/38204] PRE for post dominating expressions

2008-11-20 Thread steven at gcc dot gnu dot org


--- Comment #1 from steven at gcc dot gnu dot org  2008-11-21 06:41 ---


*** This bug has been marked as a duplicate of 23286 ***


-- 

steven at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||DUPLICATE


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



[Bug tree-optimization/23286] missed fully redundant expression

2008-11-20 Thread steven at gcc dot gnu dot org


--- Comment #15 from steven at gcc dot gnu dot org  2008-11-21 06:41 ---
*** Bug 38204 has been marked as a duplicate of this bug. ***


-- 

steven at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||dann at godzilla dot ics dot
   ||uci dot edu


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



[Bug rtl-optimization/36758] [4.3/4.4 Regression] addition moved out of the loop when used with an argument

2008-11-18 Thread steven at gcc dot gnu dot org


--- Comment #13 from steven at gcc dot gnu dot org  2008-11-18 21:31 ---
Are things moving forward on the fwprop issue?


-- 

steven at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2008-11-18 21:31:59
   date||


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



[Bug middle-end/37843] [4.4 Regression] unaligned stack in main due to tail call optimization

2008-11-18 Thread steven at gcc dot gnu dot org


--- Comment #7 from steven at gcc dot gnu dot org  2008-11-18 21:34 ---
P1 bug with a pending patch... maybe a reviewer could take a look at this
(seemingly trivial) patch at
http://gcc.gnu.org/ml/gcc-patches/2008-11/msg00180.html
?


-- 


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



[Bug rtl-optimization/36365] [4.3/4.4 Regression] Hang in df_analyze

2008-11-16 Thread steven at gcc dot gnu dot org


--- Comment #9 from steven at gcc dot gnu dot org  2008-11-16 12:17 ---
Advice to folks caring about compiler stability instead of supposedly faster:
Always use double-queue instead of overeager.  The overeager solver is just not
reliable enough, and I have never found any proof for the speed benefit that
Seongbae claimed it has.

The theoretical worst-case time for the overeager algorithm is exponential in
the number of basic blocks, for densely connected CFGs.  I have argued before
that such an algorithm should *never* have been selected as the default for
GCC, even if it is, say, 0.5% faster for a GCC bootstrap (but I did the
comparison last year and I have never actually measured any benefits of
overeager over double queue).

For the double queue, and also for the hybrid search, the number of passes has
a reasonable proven upper bound for any CFG, so these algorithms are much more
reliable.

See also the discussion in PR34400, esp. comments 25-28:
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34400#c25
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34400#c28


-- 


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



[Bug fortran/37635] Fortran 2008: Support LEADZ / TRAILZ

2008-10-02 Thread steven at gcc dot gnu dot org


--- Comment #5 from steven at gcc dot gnu dot org  2008-10-02 18:52 ---
.


-- 

steven at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug fortran/37635] Fortran 2008: Support LEADZ / TRAILZ

2008-10-02 Thread steven at gcc dot gnu dot org


--- Comment #6 from steven at gcc dot gnu dot org  2008-10-02 18:52 ---
Subject: Bug 37635

Author: steven
Date: Thu Oct  2 18:51:12 2008
New Revision: 140837

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=140837
Log:
testsuite
* gfortran.fortran-torture/execute/intrinsic_leadz.f90: New test.
* gfortran.fortran-torture/execute/intrinsic_trailz.f90: New test.

fortran/
PR fortran/37635
* intrinsic.c (add_functions): Add LEADZ and TRAILZ as generics.
* intrinsic.h (gfc_simplify_leadz, gfc_simplify_trailz): New protos.
* gfortran.h enum gfc_isym_id: (GFC_ISYM_LEADZ, GFC_ISYM_TRAILZ):
New.
* f95-lang (gfc_init_builtin_functions): Add BUILT_IN_CLZ,
BUILT_IN_CLZL, BUILT_IN_CLZLL, BUILT_IN_CTZ, BUILT_IN_CTZL, and
BUILT_IN_CTZLL.
* trans-intrinsic.c (gfc_conv_intrinsic_leadz,
gfc_conv_intrinsic_trails): New code-generation functions for LEADZ
and TRAILZ intrinsics.
(gfc_conv_intrinsic_function): Use them
* intrinsic.texi: Add documentation for LEADZ and TRAILZ.
* simplify.c (gfc_simplify_leadz, gfc_simplify_trailz): New functions.

Added:
trunk/gcc/testsuite/gfortran.fortran-torture/execute/intrinsic_leadz.f90
trunk/gcc/testsuite/gfortran.fortran-torture/execute/intrinsic_trailz.f90
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/f95-lang.c
trunk/gcc/fortran/gfortran.h
trunk/gcc/fortran/intrinsic.c
trunk/gcc/fortran/intrinsic.h
trunk/gcc/fortran/intrinsic.texi
trunk/gcc/fortran/simplify.c
trunk/gcc/fortran/trans-intrinsic.c
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug target/37668] Obvious bug in arm.c: arm_size_rtx_costs() case NEG:

2008-09-28 Thread steven at gcc dot gnu dot org


--- Comment #2 from steven at gcc dot gnu dot org  2008-09-28 11:57 ---
Don't know if the patch is OK, but the code is obviously doing something silly.
 CC-ing ARM maintainer.


-- 

steven at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||pbrook at gcc dot gnu dot
   ||org
 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2008-09-28 11:57:07
   date||


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



[Bug fortran/37635] Fortran 2008: Support LEADZ / TRAILZ

2008-09-27 Thread steven at gcc dot gnu dot org


--- Comment #3 from steven at gcc dot gnu dot org  2008-09-27 14:09 ---
Created an attachment (id=16414)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=16414action=view)
draft patch


-- 


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



[Bug libfortran/36755] Avoid fork/exec in chmod intrinsic

2008-09-27 Thread steven at gcc dot gnu dot org


-- 

steven at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2008-09-28 00:02:17
   date||


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



[Bug fortran/37635] Fortran 2008: Support LEADZ / TRAILZ

2008-09-24 Thread steven at gcc dot gnu dot org


--- Comment #2 from steven at gcc dot gnu dot org  2008-09-24 22:28 ---
I'll see this weekend if I can take care of this.


-- 

steven at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |steven at gcc dot gnu dot
   |dot org |org
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2008-09-24 22:28:12
   date||


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



[Bug middle-end/18071] [4.2/4.3/4.4 Regression] -Winline does not respect -fno-default-inline

2008-09-21 Thread steven at gcc dot gnu dot org


--- Comment #38 from steven at gcc dot gnu dot org  2008-09-21 13:07 ---
Fixed by Honza's patch.


-- 

steven at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug rtl-optimization/33828] Issues with code hoisting implementation in gcse.c

2008-09-21 Thread steven at gcc dot gnu dot org


--- Comment #12 from steven at gcc dot gnu dot org  2008-09-21 13:13 ---
.


-- 

steven at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|steven at gcc dot gnu dot   |unassigned at gcc dot gnu
   |org |dot org
 Status|ASSIGNED|NEW


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



[Bug rtl-optimization/33356] Incomplete documentation of REG_RETVAL and REG_LIBCALL notes

2008-09-21 Thread steven at gcc dot gnu dot org


--- Comment #2 from steven at gcc dot gnu dot org  2008-09-21 13:13 ---
libcall notes are no more...


-- 

steven at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED


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



[Bug rtl-optimization/16967] Iterating gcse.c CPROP and PRE does not reach a fixed point

2008-09-21 Thread steven at gcc dot gnu dot org


--- Comment #14 from steven at gcc dot gnu dot org  2008-09-21 13:14 ---
I can reproduce this on-and-off, but never with a reasonable test case.

It's unlikely that anyone is interested in fixing this, esp. given that RTL
PRE/CPROP are doing less and less these days as the tree optimizers improve.


-- 

steven at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|REOPENED|RESOLVED
 Resolution||WONTFIX


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



[Bug middle-end/35413] [meta-bug] Remaining issues blocking the removal of libcall notes from the compiler

2008-09-21 Thread steven at gcc dot gnu dot org


--- Comment #2 from steven at gcc dot gnu dot org  2008-09-21 13:19 ---
Libcall blocks are no more.


-- 

steven at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


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



[Bug target/19201] [m68k] Inefficient code for array accesses (from old PROBLEMS)

2008-09-21 Thread steven at gcc dot gnu dot org


--- Comment #9 from steven at gcc dot gnu dot org  2008-09-21 13:21 ---
Andreas, could you adopt the patch of comment #4 and see if it still fixes this
bug?


-- 

steven at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|kazu at gcc dot gnu dot org |unassigned at gcc dot gnu
   ||dot org


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



[Bug fortran/23169] INTENT information not used in the middle-end for optimizations

2008-09-21 Thread steven at gcc dot gnu dot org


--- Comment #5 from steven at gcc dot gnu dot org  2008-09-21 13:36 ---
A C equivalent test case works.  Once the infamous
multiple-decls-per-function issue in gfortran is fixed, this bug probably will
disappear.


-- 


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



[Bug target/12395] Suboptimal code with global variables

2008-09-21 Thread steven at gcc dot gnu dot org


--- Comment #13 from steven at gcc dot gnu dot org  2008-09-21 13:49 ---
Re. comment #12
I don't see how PRE for globals would make a difference here.  In any case,
AFAIU tree PRE for globals should now work, and we still don't produce any
better code. The output of today (4.4.0 20080921) is still the same as that of
comment #0.


-- 

steven at gcc dot gnu dot org changed:

   What|Removed |Added

   Last reconfirmed|2006-02-11 00:52:36 |2008-09-21 13:49:47
   date||


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



[Bug target/12395] Suboptimal code with global variables

2008-09-21 Thread steven at gcc dot gnu dot org


--- Comment #14 from steven at gcc dot gnu dot org  2008-09-21 13:52 ---
Here is the .final_cleanup dump, fwiw:


;; Function foo (foo)

foo ()
{
  int a.1;

bb 2:
  a.1 = a + 1;
  a = a.1;
  if (a.1 != 0)
goto bb 3;
  else
goto bb 4;

bb 3:
  a = [plus_expr] a.1 + 1;

bb 4:
  return;

}

which translates (on Cygwin) to:

.file   t.c
.text
.p2align 4,,15
.globl _foo
.def_foo;   .scl2;  .type   32; .endef
_foo:
movl_a, %edx
leal1(%edx), %eax
movl%eax, _a
testl   %eax, %eax
je  L3
addl$2, %edx
movl%edx, _a
L3:
rep
ret


-- 

steven at gcc dot gnu dot org changed:

   What|Removed |Added

   Last reconfirmed|2008-09-21 13:49:47 |2008-09-21 13:52:33
   date||


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



[Bug tree-optimization/18046] Missed jump threading optimization

2008-09-21 Thread steven at gcc dot gnu dot org


--- Comment #12 from steven at gcc dot gnu dot org  2008-09-21 13:58 ---
tree PRE now *does* handle the partially redundant global variable load. This
is the .final_cleanup dump:


;; Function bar (bar)

bar ()
{
  int prephitmp.13;

bb 2:
  prephitmp.13 = i;
  switch (prephitmp.13) default: L1, case 0: L0

L0:
  foo ();
  prephitmp.13 = i;

L1:
  switch (prephitmp.13) default: L5, case 0: L4

L4:
  foo (); [tail call]

L5:
  return;

}


But we still miss the jump threading opportunity.


-- 


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



[Bug target/36955] TLS LIBCALL change breaks libstdc++ built with older binutils

2008-07-28 Thread steven at gcc dot gnu dot org


--- Comment #2 from steven at gcc dot gnu dot org  2008-07-28 20:41 ---
Like Pinski said: the code before and after the patch should be identical
w.r.t. TLS addresses.  Without a more specific test case I'm not even going to
look at this.


-- 

steven at gcc dot gnu dot org changed:

   What|Removed |Added

 CC|stevenb dot gcc at gmail dot|
   |com |


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



[Bug tree-optimization/19790] equality not noticed when signedness differs.

2008-07-06 Thread steven at gcc dot gnu dot org


--- Comment #4 from steven at gcc dot gnu dot org  2008-07-06 09:37 ---
Still doesn't work.  You need to replace one line for the test case of comment
#0 though, because the tree optimizers are now smart enough to see that (i/32)
is always 0.  So replace 

   for (i = 0; i = 10; i++)

with

   for (i = 0; i = 320; i++)

and you still get the missed optimization.


-- 

steven at gcc dot gnu dot org changed:

   What|Removed |Added

   Last reconfirmed|2006-05-05 08:36:26 |2008-07-06 09:37:27
   date||


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



[Bug middle-end/36262] [4.3 Regression] Extreme memory usage of VRP compared to older versions

2008-07-06 Thread steven at gcc dot gnu dot org


--- Comment #11 from steven at gcc dot gnu dot org  2008-07-06 09:59 ---
It looks like we don't use a known number of loop iterations at all anymore
after this patch.


-- 


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



[Bug tree-optimization/23455] tree load PRE is not working for global variables

2008-07-06 Thread steven at gcc dot gnu dot org


--- Comment #15 from steven at gcc dot gnu dot org  2008-07-06 08:53 ---
Patch here:
http://gcc.gnu.org/ml/gcc-patches/2008-07/msg00430.html

We should re-evaluate the need for gcse.c load-PRE after Daniel's patch goes
in.  The last time I looked at what loads gcse.c load-PRE would move, it only
touched loads from globals, so it may be a redundant pass when tree-ssa-pre
moves them.


-- 


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



[Bug c++/36242] OpenMP multi-threading crashes

2008-06-11 Thread steven at gcc dot gnu dot org


--- Comment #3 from steven at gcc dot gnu dot org  2008-06-11 20:19 ---
Jakub is the OpenMP guru.


-- 

steven at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu dot org


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



[Bug tree-optimization/24028] CCP is broken

2008-06-01 Thread steven at gcc dot gnu dot org


--- Comment #8 from steven at gcc dot gnu dot org  2008-06-01 09:41 ---
This is now optimized by VRP, CCP, store-CCP, DOM, PRE, and TER.  It's hard to
break that test case!


-- 

steven at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED
   Target Milestone|--- |4.4.0


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



[Bug middle-end/30789] complex folding inexact

2008-06-01 Thread steven at gcc dot gnu dot org


-- 

steven at gcc dot gnu dot org changed:

   What|Removed |Added

OtherBugsDependingO||27676
  nThis||
 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2008-06-01 21:55:09
   date||


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



[Bug middle-end/36414] g++ causes segmentation violation on template test program

2008-06-01 Thread steven at gcc dot gnu dot org


-- 

steven at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |WAITING


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



[Bug rtl-optimization/34503] Issues with constant/copy propagation implementation in gcse.c

2008-05-24 Thread steven at gcc dot gnu dot org


--- Comment #7 from steven at gcc dot gnu dot org  2008-05-24 14:31 ---
I have found a test case for the issue mentioned in comment #4. And it comes
from gcc itself:

static int *free_phinodes[10 - 2]; /* was 'tree' */
static unsigned long free_phinode_count;
void
init_phinodes (void)
{
  int i;
  for (i = 0; i  10 - 2; i++)
free_phinodes[i] = ((void *)0);
  free_phinode_count = 0
}

When compiling this on powerpc-unknown-elf with r135815 and with the options
-O2 -fdump-rtl-gcse1-slim, I get the following RTL at the end of the GCSE
pass:

   37 NOTE_INSN_BASIC_BLOCK
   36 NOTE_INSN_FUNCTION_BEG
   39 r164:SI=high(`*.LANCHOR0')
   40 r166:SI=r164:SI+low(`*.LANCHOR0')
  REG_DEAD: r164:SI
  REG_EQUAL: `*.LANCHOR0'
   75 r153:SI=r166:SI
  REG_EQUAL: `*.LANCHOR0'
   73 r165:SI=r166:SI+0x20
  REG_DEAD: r167:SI
  REG_EQUAL: const(`*.LANCHOR0'+0x20)
L46:
   42 NOTE_INSN_BASIC_BLOCK
   43 r156:SI=0x0
   44 [r153:SI]=r156:SI
  REG_EQUAL: 0x0
   45 r153:SI=r153:SI+0x4
   71 r157:SI=r166:SI
  REG_EQUAL: `*.LANCHOR0'
   50 r160:CC=cmp(r153:SI,r165:SI)
  REG_EQUAL: cmp(r153:SI,const(`*.LANCHOR0'+0x20))
   51 pc={(r160:CC!=0x0)?L46:pc}
  REG_DEAD: r160:CC
  REG_BR_PROB: 0x222e
   52 NOTE_INSN_BASIC_BLOCK
   56 [r157:SI+0x20]=r156:SI
  REG_DEAD: r157:SI
  REG_DEAD: r156:SI
  REG_EQUAL: 0x0

This is the dump *after* CPROP2, so the post-PRE-GCSE const/copy pass has run. 
Note the REG_EQUAL note on insn 71: r157:SI=r166:SI {REG_EQUAL:
`*.LANCHOR0'}. This is a reg-reg copy insn, but CPROP2 does not record the
copy.  Instead it records that r157 is equal to the REG_EQUAL note value.  The
result is that CPROP2 fails to copy propagate r166 into insn 56 (where r157
reaches and dies, so the copy propagation would eliminate r157).


-- 


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



[Bug rtl-optimization/16967] Iterating gcse.c CPROP and PRE does not reach a fixed point

2008-05-24 Thread steven at gcc dot gnu dot org


--- Comment #13 from steven at gcc dot gnu dot org  2008-05-24 15:37 ---
This happens again on PPC.  No test case yet.


-- 

steven at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|RESOLVED|REOPENED
 Resolution|WORKSFORME  |


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



[Bug tree-optimization/26854] Inordinate compile times on large routines

2008-05-15 Thread steven at gcc dot gnu dot org


--- Comment #65 from steven at gcc dot gnu dot org  2008-05-15 05:59 ---
 integrated RA : 373.36 (66%) usr   0.33 ( 2%) sys 375.87 (64%) wall  
12064 kB ( 2%) ggc

'nuff said.

Oh, not entirely yet: IRA should have more than one timevar.


-- 

steven at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||vmakarov at gcc dot gnu dot
   ||org


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



[Bug middle-end/36177] [4.4 Regression] g++.dg/opt/pr23714.C ICEs with 135041 - 135057

2008-05-08 Thread steven at gcc dot gnu dot org


--- Comment #3 from steven at gcc dot gnu dot org  2008-05-08 22:16 ---
 I would have thought that since this can generate an exception and it is 
 a call insn that it would have been declared as a non deleteable insn by 
 dce.c:deleteable_insn_p.

deletable_insn_p() *will* declare this insn as non-deletable.  The insn is not
a NONJUMP_INSN_P so the very first check in deletable_insn_p() will already
make it return false.

So the problem is somewhere else.


-- 


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



[Bug middle-end/36177] [4.4 Regression] g++.dg/opt/pr23714.C ICEs with 135041 - 135057

2008-05-08 Thread steven at gcc dot gnu dot org


--- Comment #4 from steven at gcc dot gnu dot org  2008-05-08 22:27 ---
So I was looking at an older revision of dce.c.  There is this new check before
the !NONJUMP_INSN_P check now:

  /* We can delete dead const or pure calls as long as they do not
 infinite loop and are not sibling calls.  The problem with
 sibling calls is that it is hard to see the result.  */
  if (CALL_P (insn) 
   (!SIBLING_CALL_P (insn))
   (RTL_CONST_OR_PURE_CALL_P (insn)
   !RTL_LOOPING_CONST_OR_PURE_CALL_P (insn)))
return true;

CALL_P is obviously true for this insn, and so is !SIBLING_CALL_P (there is no
call_insn/j).  The /u flag means that RTL_CONST_OR_PURE_CALL_P is true for
the insn.  The /c flag is clear, so RTL_LOOPING_CONST_OR_PURE_CALL_P is
false.

I don't know where RTL_CONST_OR_PURE_CALL_P is set.  But that's where I would
look.

[ I see that RTL_LOOPING_CONST_OR_PURE_CALL_P is not documented.  Kenny, can
you please take care of that (and probably other necessary document updates
following your patch)? ]


-- 


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



[Bug tree-optimization/35972] [4.4 Regression] load-PRE missed opportunities without SFTs

2008-04-19 Thread steven at gcc dot gnu dot org


--- Comment #6 from steven at gcc dot gnu dot org  2008-04-19 13:09 ---
Re. comment #4: If you have no idea what SCC-VN is supposed to serve, such bold
statements as made in this comment are _severely_ misguided.


-- 


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



[Bug target/35860] [4.3 Regression] [avr] code bloat caused by -fsplit-wide-types

2008-04-16 Thread steven at gcc dot gnu dot org


--- Comment #7 from steven at gcc dot gnu dot org  2008-04-16 08:59 ---
I agree with Paolo in comment #6.  One purpose of the lower-subreg path was to
allow backends to *not* define insns that it doesn't have.  The expanders will
generate inline code for such patterns at expand time, with sets to subregs. 
Before GCC had lower-subreg, this would lead to awful code, but now that we
split the subregs out to pseudos it ought to work just fine.

Sadly, even i386 still hasn't been modified to benefit from this work...


-- 


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



[Bug middle-end/35897] DSE doesn't support targets with wide registers

2008-04-16 Thread steven at gcc dot gnu dot org


--- Comment #7 from steven at gcc dot gnu dot org  2008-04-16 09:07 ---
Fixed, or what?


-- 

steven at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |WAITING


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



[Bug fortran/35958] gfortran for Vista

2008-04-16 Thread steven at gcc dot gnu dot org


--- Comment #1 from steven at gcc dot gnu dot org  2008-04-16 13:46 ---
Looks related to http://gcc.gnu.org/ml/fortran/2008-03/msg00119.html and the
thread surrounding it.


-- 


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



[Bug driver/35916] problem running GCC under Vista with relocated directory

2008-04-16 Thread steven at gcc dot gnu dot org


--- Comment #5 from steven at gcc dot gnu dot org  2008-04-16 21:02 ---
This will probably only be fixed once a gfortran developer gets access to
Vista...


-- 


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



[Bug middle-end/35519] COMBINE repeating same matches and can SEG fault

2008-03-10 Thread steven at gcc dot gnu dot org


--- Comment #2 from steven at gcc dot gnu dot org  2008-03-10 20:04 ---
The patch makes adding log use an algorithm quadratic in the number of log
links per insn.  It is probably better to:
1. build the log links.
2. filter out the duplicates as a post pass (and maybe sort them while at it?)


-- 


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



[Bug rtl-optimization/35404] ra-conflict does not handle subregs optimally

2008-03-10 Thread steven at gcc dot gnu dot org


--- Comment #3 from steven at gcc dot gnu dot org  2008-03-10 21:48 ---
IRA does not handle this either with -fno-split-wide-types.  Left is IRA as-is
with -O2 -fomit-frame-pointer.  Right is same options + -fno-split-wide-types.

.file   t.c   .file   t.c
.text   .text
.p2align 4,,15  .p2align 4,,15
.globl _foo .globl _foo
.def_foo;   .scl2;  .def_foo;   .scl2;
_foo:   _foo:
subl$12, %esp   subl$12, %esp
movl%ebx, 4(%esp) | movl%ebx, (%esp)
movl%esi, 8(%esp) | movl%esi, 4(%esp)
   movl%edi, 8(%esp)
   call_bar
   movl%eax, %esi
   movl%edx, %edi
call_barcall_bar
movl%eax, %ebx  movl%eax, %ebx
   orl %esi, %ebx
movl%edx, %esi  movl%edx, %esi
call_bar  | orl %edi, %esi
orl %ebx, %eax| movl%ebx, %eax
orl %esi, %edx| movl8(%esp), %edi
movl4(%esp), %ebx | movl%esi, %edx
movl8(%esp), %esi | movl(%esp), %ebx
   movl4(%esp), %esi
addl$12, %esp   addl$12, %esp
ret ret
.def_bar;   .scl2;  .def_bar;   .scl2;


-- 

steven at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2008-03-10 21:48:33
   date||


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



[Bug target/35466] Different assembly codes on 32bit and 64bit hosts

2008-03-04 Thread steven at gcc dot gnu dot org


-- 

steven at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2008-03-05 07:39:17
   date||


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



[Bug middle-end/19020] libcalls are removed (-ftrapv does not work)

2008-03-03 Thread steven at gcc dot gnu dot org


--- Comment #11 from steven at gcc dot gnu dot org  2008-03-03 19:35 ---
Quoting your insn once more:

(insn 58 57 59 6 gnu/java/nio/natVMSelector.cc:82 (parallel [
(set (reg:DI 4 si [165])
(mult:DI (zero_extend:DI (reg:SI 0 ax))
(zero_extend:DI (reg:SI 2 cx [166]
(clobber (reg:CC 17 flags))
]) 304 {*umulsidi3_insn} (expr_list:REG_DEAD (reg:SI 2 cx [166])
(expr_list:REG_DEAD (reg:SI 0 ax)
(expr_list:REG_UNUSED (reg:CC 17 flags)
(expr_list:REG_EQUAL (mult:DI (zero_extend:DI (reg:SI 0 ax))
(const_int 1000 [0x3e8]))
(nil))

The register allocator failed to make your insn satisfy its constraints.
Operand 0 is (reg:DI 4 si) but the constraint for it is =A, i.e. the ax
register.

The funny thing is that reload wants to make operand 0 be (reg:DI 0 ax), but
somehow it can't, even though (reg:SI 0 ax) dies in this insn. So apparently
the high part of (reg:DI 0 ax), i.e. (reg:SI 1 dx), lives across the insn.

This looks to me like a case of PR35404.  What do you think, Ian?


-- 

steven at gcc dot gnu dot org changed:

   What|Removed |Added

  GCC build triplet||[EMAIL PROTECTED],
   ||[EMAIL PROTECTED]


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



[Bug middle-end/19020] libcalls are removed (-ftrapv does not work)

2008-03-01 Thread steven at gcc dot gnu dot org


--- Comment #7 from steven at gcc dot gnu dot org  2008-03-01 10:50 ---
With trunk as of today, the test case of comment #0 does trap if optimization
is disabled. At -O, the libcall is optimized away, but the call to iaddv() from
main() is also optimized away because iaddv is found to be pure.  You must use
the result of iaddv() to avoid this:

#include limits.h

int __attribute__((noinline))
iaddv (int a, int b)
{
  return a + b;
}

int main(void)
{
  return iaddv (INT_MAX, 1);
}


-- 


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



[Bug middle-end/35412] New: Correctness with -ftrapv depends on libcall notes

2008-02-29 Thread steven at gcc dot gnu dot org
See http://gcc.gnu.org/ml/gcc-patches/2007-10/msg01011.html

``When -ftrapv is in effect, libcalls are necessary so that the results of an
operation can be propagated without making the call to the libgcc functions
dead. The attached patch causes a failure in pr30286.c.''

This has to be investigated before libcall notes can be removed from the
compiler.


-- 
   Summary: Correctness with -ftrapv depends on libcall notes
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: enhancement
  Priority: P3
 Component: middle-end
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: steven at gcc dot gnu dot org


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



[Bug middle-end/35413] New: [meta-bug] Remaining issues blocking the removal of libcall notes from the compiler

2008-02-29 Thread steven at gcc dot gnu dot org
This is a placeholder bug to collect references to all issues that cause GCC to
still require libcall notes.


-- 
   Summary: [meta-bug] Remaining issues blocking the removal of
libcall notes from the compiler
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Keywords: meta-bug
  Severity: normal
  Priority: P3
 Component: middle-end
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: steven at gcc dot gnu dot org


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



[Bug middle-end/35413] [meta-bug] Remaining issues blocking the removal of libcall notes from the compiler

2008-02-29 Thread steven at gcc dot gnu dot org


-- 

steven at gcc dot gnu dot org changed:

   What|Removed |Added

  BugsThisDependsOn||35404, 35412
 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2008-02-29 23:26:27
   date||


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



[Bug middle-end/35412] Correctness with -ftrapv depends on libcall notes

2008-02-29 Thread steven at gcc dot gnu dot org


--- Comment #2 from steven at gcc dot gnu dot org  2008-02-29 23:36 ---
PR19020 shows that -ftrapv vs. libcalls is broken even without Paolo's patch.


-- 


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



[Bug tree-optimization/35231] [4.3 Regression] VRP miscompiles libX11

2008-02-17 Thread steven at gcc dot gnu dot org


--- Comment #4 from steven at gcc dot gnu dot org  2008-02-17 14:51 ---
Does this affect 4.2 too?


-- 


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



[Bug middle-end/35204] [4.3 Regression] crash by too deep recursion in DFS tree-ssa-sccvn.c:1898

2008-02-16 Thread steven at gcc dot gnu dot org


--- Comment #13 from steven at gcc dot gnu dot org  2008-02-16 09:33 ---
Re. comment #8
You can't terminate the DFS before a complete SCC is found, it will break the
correctness of the SCC-VN algorithm.  You'd start another DFS from a
not-yet-marked SSA name that is in the SCC's DFS subtree, but you won't find
the comoplete SCC.  I have no idea exactly what would happen, but I'm sure it
would be something bad ;-)


-- 


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



[Bug middle-end/35204] [4.3 Regression] crash by too deep recursion in DFS tree-ssa-sccvn.c:1898

2008-02-16 Thread steven at gcc dot gnu dot org


--- Comment #14 from steven at gcc dot gnu dot org  2008-02-16 09:40 ---
For those who have no idea what we're talking about, check out these links. 
The first link is Tarjan's algorithm, which is what the tree-ssa-sccvn.c
SCC-finder is based on.  The second link is Pearce's improved algorithm.  Ref.
6 from that paper is also of interest.

http://en.wikipedia.org/wiki/Tarjan's_strongly_connected_components_algorithm
http://www.mcs.vuw.ac.nz/~djp/files/P05.pdf


-- 


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



[Bug middle-end/35204] [4.3 Regression] crash by too deep recursion in DFS tree-ssa-sccvn.c:1898

2008-02-15 Thread steven at gcc dot gnu dot org


--- Comment #10 from steven at gcc dot gnu dot org  2008-02-15 16:20 ---
Re. comment #7, sure this can be P1 and block the release.  SCC-VN doesn't have
to be fixed for the release.  This bug can be worked around.

Not making a bug P1 because you want a release out the door is not a good
readon. And unless I'm mistaken, a ICE-on-valid-code bug in C or C++ is always
release-blocking anyway.


-- 


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



[Bug rtl-optimization/35190] Wrong branch instruction with -freorder-blocks-and-partition on SH

2008-02-14 Thread steven at gcc dot gnu dot org


--- Comment #1 from steven at gcc dot gnu dot org  2008-02-14 10:10 ---
At least add a comment please why REG_CROSSING would need special treatment.


-- 


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



[Bug c++/35182] [4.2/4.3 Regression] ICE in coalesce_abnormal_edges

2008-02-14 Thread steven at gcc dot gnu dot org


--- Comment #2 from steven at gcc dot gnu dot org  2008-02-14 10:12 ---
ICE on valid code should be P1.


-- 


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



[Bug c++/35182] [4.2/4.3 Regression] ICE in coalesce_abnormal_edges

2008-02-14 Thread steven at gcc dot gnu dot org


-- 

steven at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2008-02-14 10:13:20
   date||


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



[Bug middle-end/35204] [4.3 Regression] crash by too deep recursion in DFS tree-ssa-sccvn.c:1898

2008-02-14 Thread steven at gcc dot gnu dot org


--- Comment #6 from steven at gcc dot gnu dot org  2008-02-14 23:25 ---
Should be P1.

This bug is shows an intrinsic scalability problem with SCC-VN as it is
implemented right now (and presented in the literature).

The key issue is, SCC-VN should use a non-recursive SCC finding algorithm, but
one that still pops the SCCs in topological order.  I tried once to write
SCC-VN's DFS in a non-recursive way, but I never succeeded.  I also tried to
find a substitute for Tarjan's algorithm that possesses the properties required
for SCC-VN, but also failed there.

CCing Danny on this one for advice.


-- 


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



[Bug middle-end/35204] [4.3 Regression] crash by too deep recursion in DFS tree-ssa-sccvn.c:1898

2008-02-14 Thread steven at gcc dot gnu dot org


-- 

steven at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||dberlin at gcc dot gnu dot
   ||org
 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2008-02-14 23:25:17
   date||


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



[Bug target/35100] [4.1/4.2/4.3 regression] internal compiler error: in extract_insn, at recog.c:1990

2008-02-13 Thread steven at gcc dot gnu dot org


--- Comment #5 from steven at gcc dot gnu dot org  2008-02-13 22:04 ---
I also can't reproduce it (neither on native nor with a cross).

Any local patches?  Maybe you can reduce it to a set of simpler configuration
options?  


-- 

steven at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||WORKSFORME


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



[Bug bootstrap/6669] Irix6.5 ada bootstrap fail in ada/targparm.adb

2008-02-11 Thread steven at gcc dot gnu dot org


--- Comment #22 from steven at gcc dot gnu dot org  2008-02-12 07:10 ---
Zap.


-- 

steven at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|WAITING |RESOLVED
 Resolution||WONTFIX


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



[Bug c/35163] folding comparison loses cast

2008-02-11 Thread steven at gcc dot gnu dot org


--- Comment #1 from steven at gcc dot gnu dot org  2008-02-11 10:44 ---
CCing fold guru.


-- 

steven at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||rguenth at gcc dot gnu dot
   ||org
 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2008-02-11 10:44:42
   date||


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



[Bug middle-end/34627] Incorrect branching with -Ox on hppa

2008-02-09 Thread steven at gcc dot gnu dot org


--- Comment #23 from steven at gcc dot gnu dot org  2008-02-09 09:20 ---
Please fix the ChangeLog entries.  You forgot the asterisk * before combine.c
in every commit you made.


-- 


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



[Bug c/35141] ARM: Constant generation inside a loop: Missed optimization opportunity

2008-02-08 Thread steven at gcc dot gnu dot org


--- Comment #1 from steven at gcc dot gnu dot org  2008-02-08 17:27 ---
See PR31360.  May be fixed for GCC 4.3.


-- 


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



[Bug middle-end/35136] [4.3 Regression] ICE caused by address calculation with loop variable when optimization is on

2008-02-08 Thread steven at gcc dot gnu dot org


--- Comment #6 from steven at gcc dot gnu dot org  2008-02-08 23:05 ---
Is it possible to create an equivalent C test case (e.g. from the initial
GIMPLE dumps before the ICE)?


-- 


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



[Bug target/23322] [4.1/4.2/4.3 regression] performance regression

2008-02-06 Thread steven at gcc dot gnu dot org


--- Comment #23 from steven at gcc dot gnu dot org  2008-02-06 09:00 ---
The IS_STACK_MODE trick is mine, and if this affects SSE code generation, the
bug is that IS_STACK_MODE returns true for registers that will not go on the
stack.

I acknowledge the IS_STACK_MODE is a big hammer, but we tested extensively
before committing it.  We have no easy way to know if any registers are carried
over the loop.


-- 


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



[Bug c/35092] Global variable reference not resolved with -Os option

2008-02-06 Thread steven at gcc dot gnu dot org


--- Comment #5 from steven at gcc dot gnu dot org  2008-02-06 09:05 ---
There was -Wnull-dereference once.  I don't know if it still exists.


-- 


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



<    5   6   7   8   9   10   11   12   13   14   >