Re: Bug in expand_builtin_setjmp_receiver ?

2010-10-25 Thread Frederic Riss
On 22 October 2010 20:17, Ian Lance Taylor i...@google.com wrote:
 Frederic Riss frederic.r...@gmail.com writes:
 OK... what's the best way forward on this? Do we just leave it as it
 is and wait until an official port needs complains about it? Should it
 be filled in bugzilla?

 Did you just happen to come across this, or is this relevant for a port
 you are working on?

I came accross that while working on a port, however I don't know
if/when it will be opened. I suppose that if the port wants to be
integrated one day, then a fix for that issue might be part of the
patch series for that port?

 If you are not working on a port, then I think the best think to do
 right now is to add a FIXME comment in the source code.

I'll llet you decide if you want to do that.

Thanks,
Fred


combiner

2010-10-25 Thread roy rosen
In my port I get to such a situation:

(insn 60 59 61 4 a.c:65 (set (subreg:SI (reg:HI 129 [ __prephitmp_4 ]) 0)
(zero_extract:SI (subreg:SI (reg/v:DI 138 [ v4hi1 ]) 4)
(const_int 16 [0x10])
(const_int 16 [0x10]))) 53 {extzv} (nil))

(insn 61 60 62 4 a.c:65 (set (reg:BI 159)
(gtu:BI (reg:HI 129 [ __prephitmp_4 ])
(reg/v:HI 143 [ usiThresh ]))) 94 {cmprr_hi_gtu} (nil))

The patterns for these are:

(define_insn extzv
  [(set (match_operand:SI 0 register_operand =d)
(zero_extract:SI (match_operand:SI 1 register_operand d)
 (match_operand:SI 2 immediate_operand U06)
 (match_operand:SI 3 immediate_operand U06)))]
  
  extractua\t %2, %3, %1, %0 %!
)

and

(define_insn cmprr_hi_code
  [(set (match_operand:BI 0 register_operand =c)
(any_cond_rr:BI (match_operand:HI 1 register_operand d)
 (match_operand:HI 2 register_operand d)))]
  
  cmpcode %2.L, %1.L, %0:%I0 %!
)

I want the combiner to combine both insns since I have an intruction
which can compare from an HI partial register.
I am trying to write an insn pattern for that but the combiner does not use i.
I thought about something like:

(define_insn cmprr_hi_code_1
  [(set (match_operand:BI 0 register_operand =c)
(any_cond_rr:BI (zero_extract:SI (match_operand:DI 1
register_operand d)
 (const_int 16) (const_int 16))
 (match_operand:HI 2 register_operand d)))]
  
  cmpcode %2.L, %1.L, %0:%I0 %!
)

but it does not work.
Can someone please help?

Thanks, Roy.


Constant propagation and CSE

2010-10-25 Thread Frederic Riss
Hi,

The constant propagation pass propagates constants into the
instructions that accept immediates. I'm trying to find if there's
some CSE pass in GCC that would be able to undo this effect when the
constant is used more than once in the function. I looked at the CSE
code (4.5 branch) and I don't think this is currently possible. If the
code uses a bunch of big constants, the effect on code size might be
quite sensible.

I hacked around that in a quite horrible manner: I arranged for the
immediate alternative of some insn patterns to be invalid during the
'cprop' passes. That way cprop doesn't put the immediate into the
instructions, but if the constant is used only once it will be
propagated into the instruction by the 'combine' pass. This seems
excessively hackish to me, I wanted to know if there's some
better/standard way to handle that issue.

Thanks,
Fred


Re: peephole2: dead regs not marked as dead

2010-10-25 Thread Georg Lay
Paolo Bonzini schrieb:
 On 10/22/2010 01:16 PM, Georg Lay wrote:
 Then the first insn gets split after reload and before peephole2:

 (insn 22 8 23 2 peep2.c:5 (set (reg:SI 15 d15)
  (and:SI (reg:SI 4 d4 [ x ])
  (const_int -98305 [0xfffe7fff]))) 143
 {*and3_zeroes.insert.{SI}.ic}
 (nil))

 (insn 23 22 21 2 peep2.c:5 (set (reg:SI 15 d15)
  (xor:SI (reg:SI 15 d15)
  (reg:SI 4 d4 [ x ]))) 39 {*xorsi3} (nil))

 (insn 21 23 10 2 peep2.c:5 (set (reg:SI 4 d4)
  (reg:SI 15 d15)) 2 {*movsi_insn} (nil))

 (call_insn/j 10 21 11 2 peep2.c:5 (parallel [
  (set (reg:SI 2 d2)
  (call (mem:HI (symbol_ref:SI (f) [flags
 0x41]function_decl
 0xb76b3280 f) [0 S2 A16])
  (const_int 0 [0x0])))
  (use (const_int 1 [0x1]))
  ]) 92 {call_value_insn} (nil)
  (expr_list:REG_DEP_TRUE (use (reg:SI 4 d4))
  (nil)))
 ;; End of basic block 2 -  ( 1)
 ;; lr  out  2 [d2] 26 [SP] 27 [a11]
 ;; live  out  2 [d2] 26 [SP] 27 [a11]
 ;; Succ edge  EXIT [100.0%]  (ab,sibcall)

 (barrier 11 10 20)

 D15, is not marked as dead
 
 True.  It should have had a REG_DEAD note.  Are you using 4.6 (which
 scans forwards in peephole2 and requires REG_DEAD notes) or 4.5 (which
 scans backwards)?  If the latter, the absence of the note could be a red
 herring, because 4.5 didn't need REG_DEAD notes so it didn't compute them.

It is a target port of 4.5.1. I just skimmed peep2_reg_dead_p and it looks
backward. So this function will never see that D15 dies and report D15 as alive.

 What's your definition of CALL_USED_REGISTERS,
 CALL_REALLY_USED_REGISTERS, EPILOGUE_USES?  Is d15 in any of them?

D15 is not an element of any of them. D15 is call-saved and will get restored in
the RET-instruction of the callee which is tail-called in this particular case.

But even if f is not being tail-called D15 is not reported as dead. In that case
the insns after the call are (D2 is the return register, returning 1+f(...))

(insn 17 12 20 2 peep2.c:11 (set (reg/i:SI 2 d2)
(plus:SI (reg:SI 2 d2)
(const_int 1 [0x1]))) 6 {*addsi3} (nil))

(insn 20 17 28 2 peep2.c:11 (use (reg/i:SI 2 d2)) -1 (nil))

(jump_insn 29 28 30 2 peep2.c:11 (return) -1 (nil))

(barrier 30 29 23)

As far as 4.6 is concerned, I have not tried it yet. I do not know how stable
the releases are and how much work it is to switch from 4.5 to 4.6.

Georg Lay




Is it possbile to hack I386 backend to make all function calls to be indirect function calling?

2010-10-25 Thread redriver jiang
Hi,

I meet a requirement to make all function calls to be indirect
function calling ( for I386 GCC compiler). I am not familiar with
frontend, so my first idea is

to hack it from backend, change the asm output for call and
call_value insn patterns, generate a related varible in data
section,

and when output call insn, output indirect call. For example,

for function A,  I create a g_stub_function_ptr_A varible in data
section, with initialized value A, and when output call insn A,

output (I am not familiar with X86 instruction set, so I assume that
there is CALL EAX instruction):
 MOV  EAX,  g_stub_function_ptr_A
 CALL  EAX

Will this idea works?

Any comments are welcome!

Ps: the orignal requirement is to make function stubs for unit test.

Assume the top level function is A, and it calls B,C,D functions,  B
calls E, E calls F

So when testing function A, one needs to care the all call chains of
A, which makes the unit test hard to implement.

Now I have a scratch idea: make all function calls to be indirect
call, in other words, make all function calls to be function pointer
call.

So when testing function A, one can make stubs for B,C,D, and change
the called B,C,D to be  one's own defined B,C,D stubs, via asigning
the function pointer

to be one's own.


Re: peephole2: dead regs not marked as dead

2010-10-25 Thread Paolo Bonzini

On 10/25/2010 11:35 AM, Georg Lay wrote:

 (insn 22 8 23 2 peep2.c:5 (set (reg:SI 15 d15)
   (and:SI (reg:SI 4 d4 [ x ])
   (const_int -98305 [0xfffe7fff]))) 143
 {*and3_zeroes.insert.{SI}.ic}
 (nil))

 (insn 23 22 21 2 peep2.c:5 (set (reg:SI 15 d15)
   (xor:SI (reg:SI 15 d15)
   (reg:SI 4 d4 [ x ]))) 39 {*xorsi3} (nil))

 (insn 21 23 10 2 peep2.c:5 (set (reg:SI 4 d4)
   (reg:SI 15 d15)) 2 {*movsi_insn} (nil))

 (call_insn/j 10 21 11 2 peep2.c:5 (parallel [
   (set (reg:SI 2 d2)
   (call (mem:HI (symbol_ref:SI (f) [flags
 0x41]function_decl
 0xb76b3280 f) [0 S2 A16])
   (const_int 0 [0x0])))
   (use (const_int 1 [0x1]))
   ]) 92 {call_value_insn} (nil)
   (expr_list:REG_DEP_TRUE (use (reg:SI 4 d4))
   (nil)))
 ;; End of basic block 2 -   ( 1)
 ;; lr  out  2 [d2] 26 [SP] 27 [a11]
 ;; live  out  2 [d2] 26 [SP] 27 [a11]
 ;; Succ edge  EXIT [100.0%]  (ab,sibcall)

 (barrier 11 10 20)

 D15, is not marked as dead


 True.  It should have had a REG_DEAD note.  Are you using 4.6 (which
 scans forwards in peephole2 and requires REG_DEAD notes) or 4.5 (which
 scans backwards)?  If the latter, the absence of the note could be a red
 herring, because 4.5 didn't need REG_DEAD notes so it didn't compute them.


It is a target port of 4.5.1. I just skimmed peep2_reg_dead_p and it looks
backward.


In this case, as I mentioned the function _doesn't need_ a note to see 
that D15 dies.  There's no such thing as a register that is naturally 
dead because the function ends and needs special treatment.  Liveness 
is computed like everything else from data flow and, when scanning 
backwards, can be computed simply from the defs and uses of each 
instruction.  The notes are not necessary, so their absence is (as I 
also have mentioned above already) a red herring.


The definition of liveness is lr_before = lr_after - def + use, which gives:

at the end of basic block  lr from dump file = {2,26,27}
insn 10 def = {2}, use = {4}   lr before insn 10 = {4,26,27}
insn 21 def = {4}, use = {15}  lr before insn 21 = {15,26,27}
insn 23 def = {15}, use = {4,15}   lr before insn 23 = {4,15,26,27}
insn 22 def = {15}, use = {4}  lr before insn 22 = {4,26,27}

When GCC matches the peephole against 21+23, peep2_reg_dead_p(2, reg) 
should test reg against lr before insn 10.  This is {4,26,27}.  You 
have to set a breakpoint in df_simulate_one_insn_backwards and see which 
part of my theory above is incorrect.


Paolo


Re: Constant propagation and CSE

2010-10-25 Thread Paolo Bonzini

On 10/25/2010 10:46 AM, Frederic Riss wrote:

Hi,

The constant propagation pass propagates constants into the
instructions that accept immediates. I'm trying to find if there's
some CSE pass in GCC that would be able to undo this effect when the
constant is used more than once in the function. I looked at the CSE
code (4.5 branch) and I don't think this is currently possible. If the
code uses a bunch of big constants, the effect on code size might be
quite sensible.

I hacked around that in a quite horrible manner: I arranged for the
immediate alternative of some insn patterns to be invalid during the
'cprop' passes. That way cprop doesn't put the immediate into the
instructions, but if the constant is used only once it will be
propagated into the instruction by the 'combine' pass. This seems
excessively hackish to me, I wanted to know if there's some
better/standard way to handle that issue.


You need to teach constant propagation to look at insn costs, like 
fwprop does.


Alternatively, try rearranging passes (e.g. swapping GCSE and fwprop) so 
that you can delete the local copy propagation completely. :)


Paolo


Re: Is it possbile to hack I386 backend to make all function calls to be indirect function calling?

2010-10-25 Thread Andi Kleen
redriver jiang jiang.redri...@gmail.com writes:

 Hi,

 I meet a requirement to make all function calls to be indirect
 function calling ( for I386 GCC compiler). I am not familiar with
 frontend, so my first idea is

For x86-64 using the large code model (-mcmodel=large) will result in
all function calls being indirect.  If you want to do it for 32bit you
could probably extend the implementation of this feature.

-Andi


Re: Discussion about merging Go frontend

2010-10-25 Thread Mark Mitchell
On 10/24/2010 10:52 PM, Ian Lance Taylor wrote:

 It's hard for me to believe that BFD is the correct answer.  It's poorly
 designed for the kinds of things the compiler needs to do.  Any program
 which links against BFD effectively links in the GNU linker.

It sounded from your mail like all the compiler needs to do is to read
the binary contents of a named section.  Isn't that something that BFD
does well?

-- 
Mark Mitchell
CodeSourcery
m...@codesourcery.com
(650) 331-3385 x713


movmemm pattern

2010-10-25 Thread Paul Koning
Question on movmemm:

Given

extern int *i, *j;
void foo (void) { memcpy (i, j, 10); }

I would expect to see argument 4 (the shared alignment) to be sizeof(int) since 
both argument are pointers to int.  What I get instead is 1.  Why is that?

If I have 

extern int i[10], j[10];

then I do get larger alignment as expected.

paul



Re: Bug in expand_builtin_setjmp_receiver ?

2010-10-25 Thread Ian Lance Taylor
Frederic Riss frederic.r...@gmail.com writes:

 On 22 October 2010 20:17, Ian Lance Taylor i...@google.com wrote:
 Frederic Riss frederic.r...@gmail.com writes:
 OK... what's the best way forward on this? Do we just leave it as it
 is and wait until an official port needs complains about it? Should it
 be filled in bugzilla?

 Did you just happen to come across this, or is this relevant for a port
 you are working on?

 I came accross that while working on a port, however I don't know
 if/when it will be opened. I suppose that if the port wants to be
 integrated one day, then a fix for that issue might be part of the
 patch series for that port?

If you have a patch that works for your port, and a good argument to
support it, and an explanation for why it doesn't affect current ports,
that is sufficient to send a patch.  Thanks.

Ian


Re: Discussion about merging Go frontend

2010-10-25 Thread Ian Lance Taylor
Mark Mitchell m...@codesourcery.com writes:

 On 10/24/2010 10:52 PM, Ian Lance Taylor wrote:

 It's hard for me to believe that BFD is the correct answer.  It's poorly
 designed for the kinds of things the compiler needs to do.  Any program
 which links against BFD effectively links in the GNU linker.

 It sounded from your mail like all the compiler needs to do is to read
 the binary contents of a named section.  Isn't that something that BFD
 does well?

BFD will get the job done.  But I don't think it's a good choice for
releasing a program like gcc.

BFD is in effect an internal library for the linker and the GNU
binutils, and it's also used by the assembler.  It doesn't really
maintain source compatibility across releases, and it definitely doesn't
maintain binary compatibility.  As I mentioned above, when you link
against BFD you effectively pull in the linker.

Reading a section from an object file is not hard.  Linking against BFD
to do it is massive overkill.  If we were already linking against BFD,
then sure.  But introducing BFD for this will give us and the binutils
developers some long-term maintenance pain for limited reward.

At least, that is how I see it.

Ian


Re: Discussion about merging Go frontend

2010-10-25 Thread Andrew Pinski
On Mon, Oct 25, 2010 at 11:15 AM, Ian Lance Taylor i...@google.com wrote:
 At least, that is how I see it.

Why not require libelf just like for LTO?  That seems like a time to
reduce what we depend on.  For an example if we compile with lto and
go, GCC will use two different elf libraries.  This seems dumb really.

Thanks,
Andrew Pinski


Re: Discussion about merging Go frontend

2010-10-25 Thread Andi Kleen
Andrew Pinski pins...@gmail.com writes:

 On Mon, Oct 25, 2010 at 11:15 AM, Ian Lance Taylor i...@google.com wrote:
 At least, that is how I see it.

 Why not require libelf just like for LTO?  That seems like a time to
 reduce what we depend on.  For an example if we compile with lto and
 go, GCC will use two different elf libraries.  This seems dumb really.

libelf is rather awkward and has different implementations with
different bugs and also usually needs to be installed explicitely on
Linux.

It would be better to make LTO use Ian's library (but then it's C++ I
believe, not C)

-Andi
-- 
a...@linux.intel.com -- Speaking for myself only.


Re: [wwwdocs] PATCH for Re: new mirror

2010-10-25 Thread Gerald Pfeifer
On Thu, 7 Oct 2010, James Miller wrote:
 Our mirror address has been changed from
 
 http://gcc.parentinginformed.com/
 
 to
 
 http://gcc.parentingamerica.com/
 
 Please update your list to use the new URL.
 
 Also please use new e-mail to contact me when necessary:
 jmil...@parentingamerica.com.

Thanks for the heads up, James.  I have updated our web site per
the patch below a week ago, just failed to send this earlier.

(I also noticed you put an http redirect in place which is nice;
too many webmasters don't.)

Gerald

Index: mirrors.html
===
RCS file: /cvs/gcc/wwwdocs/htdocs/mirrors.html,v
retrieving revision 1.202
diff -u -3 -p -r1.202 mirrors.html
--- mirrors.html22 Sep 2010 22:11:00 -  1.202
+++ mirrors.html17 Oct 2010 16:35:00 -
@@ -34,7 +34,7 @@ Key fingerprint = 33C2 35A3 4C46 AA3F FB
 ul
 liAustria: a href=ftp://gd.tuwien.ac.at/gnu/gcc/;gd.tuwien.ac.at/a, 
thanks to Antonin dot Sprinzl at tuwien dot ac dot at/li
 liBulgaria: a 
href=http://gcc.igor.onlinedirect.bg/;gcc.igor.onlinedirect.bg/a, thanks to 
igor at onlinedirect dot bg/li
-liCanada: a 
href=http://gcc.parentinginformed.com;http://gcc.parentinginformed.com/a, 
thanks to James Miller (jmiller at parentinginformed dot com)./li
+liCanada: a 
href=http://gcc.parentingamerica.com;http://gcc.parentingamerica.com/a, 
thanks to James Miller (jmiller at parentingamerica dot com)./li
 liCanada: a 
href=http://gcc.skazkaforyou.com;http://gcc.skazkaforyou.com/a, thanks to 
Sergey Ivanov (mirrors at skazkaforyou dot com)/li
 liChina: a 
href=ftp://linuxforum.net/ftp.gcc.gnu.org/;ftp://linuxforum.net/ftp.gcc.gnu.org//a,
 thanks to David Deng (david99deng at yahoo dot com)/li
 liFrance (no snapshots): a 
href=ftp://ftp.lip6.fr/pub/gcc/;ftp.lip6.fr/a, thanks to ftpmaint at lip6 
dot fr/li


Re: combiner

2010-10-25 Thread Ian Lance Taylor
roy rosen roy.1ro...@gmail.com writes:

 In my port I get to such a situation:

 (insn 60 59 61 4 a.c:65 (set (subreg:SI (reg:HI 129 [ __prephitmp_4 ]) 0)
 (zero_extract:SI (subreg:SI (reg/v:DI 138 [ v4hi1 ]) 4)
 (const_int 16 [0x10])
 (const_int 16 [0x10]))) 53 {extzv} (nil))

 (insn 61 60 62 4 a.c:65 (set (reg:BI 159)
 (gtu:BI (reg:HI 129 [ __prephitmp_4 ])
 (reg/v:HI 143 [ usiThresh ]))) 94 {cmprr_hi_gtu} (nil))

 The patterns for these are:

 (define_insn extzv
   [(set (match_operand:SI 0 register_operand =d)
 (zero_extract:SI (match_operand:SI 1 register_operand d)
  (match_operand:SI 2 immediate_operand U06)
  (match_operand:SI 3 immediate_operand U06)))]
   
   extractua\t %2, %3, %1, %0 %!
 )

 and

 (define_insn cmprr_hi_code
   [(set (match_operand:BI 0 register_operand =c)
 (any_cond_rr:BI (match_operand:HI 1 register_operand d)
  (match_operand:HI 2 register_operand d)))]
   
   cmpcode %2.L, %1.L, %0:%I0 %!
 )

 I want the combiner to combine both insns since I have an intruction
 which can compare from an HI partial register.
 I am trying to write an insn pattern for that but the combiner does not use i.
 I thought about something like:

 (define_insn cmprr_hi_code_1
   [(set (match_operand:BI 0 register_operand =c)
 (any_cond_rr:BI (zero_extract:SI (match_operand:DI 1
 register_operand d)
  (const_int 16) (const_int 16))
  (match_operand:HI 2 register_operand d)))]
   
   cmpcode %2.L, %1.L, %0:%I0 %!
 )

 but it does not work.


That insn won't work because you don't have a DImode operand to your
zero_extract.  You have an SImode operand.  It's a subeg of a DImode
operand, but that doesn't matter.

I'm not sure how well combine will work with the paradoxical subreg
(subreg:SI (reg:HI 129 [ __prephitmp_4 ]) 0) though.

Ian


Re: Is it possbile to hack I386 backend to make all function calls to be indirect function calling?

2010-10-25 Thread Ian Lance Taylor
redriver jiang jiang.redri...@gmail.com writes:

 I meet a requirement to make all function calls to be indirect
 function calling ( for I386 GCC compiler). I am not familiar with
 frontend, so my first idea is

 to hack it from backend, change the asm output for call and
 call_value insn patterns, generate a related varible in data
 section,

 and when output call insn, output indirect call.

You could probably just change the call_insn_operand predicate to not
accept constant_call_address_operand.  Or something along those lines.

Ian


Re: movmemm pattern

2010-10-25 Thread Richard Guenther
On Mon, Oct 25, 2010 at 11:26 AM, Paul Koning paul_kon...@dell.com wrote:
 Question on movmemm:

 Given

 extern int *i, *j;
 void foo (void) { memcpy (i, j, 10); }

 I would expect to see argument 4 (the shared alignment) to be sizeof(int) 
 since both argument are pointers to int.  What I get instead is 1.  Why is 
 that?

Because the int * could point to unaligned data and there is no access
that would prove otherwise (memcpy accepts any alignment).

Richard.

 If I have

 extern int i[10], j[10];

 then I do get larger alignment as expected.

        paul




Re: REGNO_OK_FOR_BASE_P

2010-10-25 Thread Ian Lance Taylor
Paul Koning paul_kon...@dell.com writes:

 Working on the pdp11 target, I ran into something odd.

 It defines REGNO_OK_FOR_BASE_P in a way that seems to match what gccint says 
 one should do in the strict case -- but does so all the time.  
 Specifically, it says:

 #define REGNO_OK_FOR_BASE_P(REGNO) \
   ((REGNO)  8 || (unsigned) reg_renumber[REGNO]  8)

 (8 because there are 8 general registers on the PDP11, all suitable as base.)

 It then defines another similarly named macro REG_OK_FOR_BASE_P which takes 
 an rtx instead of a regno, for use in GO_IF_LEGITIMATE_ADDRESS.  That second 
 macro *does* come with a non-strict form which accepts all registers.

 Looking at gccint, that seemed wrong.  As far as I can tell, 
 REG_OK_FOR_BASE_P is not (or no longer) a standard macro so it's just a 
 convenience macro inside the target.  No problem there.  But the strict 
 REGNO_OK_FOR_BASE_P in non-strict settings seemed like an issue, so I changed 
 it.

 The surprise it that it makes no difference.  No change in code, no change in 
 testsuite results.  Why didn't it matter?  Is the documentation wrong?  Or is 
 the existing definition somehow ok even for the non-strict case, in a way 
 that isn't obvious?

I think the documentation is wrong.  REGNO_OK_FOR_BASE_P is only
meaningful for hard registers.  It doesn't make much sense to ask
whether a pseudo-register is OK to use as a base.  The pseudo-register
can in principle be assigned to any hard register, so the answer is
always true.

In older releases GO_IF_LEGITIMATE_ADDRESS was often a macro written in
terms of REGNO_OK_FOR_BASE_P.  Since GO_IF_LEGITIMATE_ADDRESS had to
change based on REG_OK_STRICT, it made sense to have REGNO_OK_FOR_BASE_P
change based on REG_OK_STRICT.  But the generic part of gcc will not
check REGNO_OK_FOR_BASE_P for a pseudo register.  And since current
targets should be using TARGET_LEGITIMATE_ADDRESS_P instead of
GO_IF_LEGITIMATE_ADDRESS, the issue of REGNO_OK_FOR_BASE_P is less
important.  Probably the docs should be changed.

Ian


Re: Is it possbile to hack I386 backend to make all function calls to be indirect function calling?

2010-10-25 Thread Jan Hubicka
 redriver jiang jiang.redri...@gmail.com writes:
 
  I meet a requirement to make all function calls to be indirect
  function calling ( for I386 GCC compiler). I am not familiar with
  frontend, so my first idea is
 
  to hack it from backend, change the asm output for call and
  call_value insn patterns, generate a related varible in data
  section,
 
  and when output call insn, output indirect call.
 
 You could probably just change the call_insn_operand predicate to not
 accept constant_call_address_operand.  Or something along those lines.
-mcmodel=large already promote all calls to be indirect as far as I can remember
(on x86-64) but you can just grab that code for x86 too.

Honza
 
 Ian


Re: Discussion about merging Go frontend

2010-10-25 Thread Dave Korn
On 25/10/2010 19:43, Andi Kleen wrote:
 Andrew Pinski pins...@gmail.com writes:
 
 On Mon, Oct 25, 2010 at 11:15 AM, Ian Lance Taylor i...@google.com wrote:
 At least, that is how I see it.
 Why not require libelf just like for LTO?  That seems like a time to
 reduce what we depend on.  For an example if we compile with lto and
 go, GCC will use two different elf libraries.  This seems dumb really.
 
 libelf is rather awkward and has different implementations with
 different bugs and also usually needs to be installed explicitely on
 Linux.
 
 It would be better to make LTO use Ian's library (but then it's C++ I
 believe, not C)
 
 -Andi

  What would be even nicer would be if we could share the same code-reader
interface between lto and go (and the lto-plugin), thereby getting object
format independence equally everywhere for no extra cost.

  That could be orthogonal to plugging elfcpp into the role currently occupied
by libelf in that reader.

  (As to needing c++, that's just a matter of enabling c++ as a stage1
language and living with the minor limitation that go can't be a stage1
language unless you already have an installed c++ compiler, no?)

cheers,
  DaveK



Re: Discussion about merging Go frontend

2010-10-25 Thread Mark Mitchell
On 10/25/2010 7:01 PM, Dave Korn wrote:

   What would be even nicer would be if we could share the same code-reader
 interface between lto and go (and the lto-plugin), thereby getting object
 format independence equally everywhere for no extra cost.
 
   That could be orthogonal to plugging elfcpp into the role currently occupied
 by libelf in that reader.

I think it's reasonable to argue that GCC should, going forward, be an
ELF-only toolchain -- with postprocessing tools for generating PE/COFF,
Symbian DLLs, Mach-O or what have you.  But, we haven't made that
decision.  So, I don't think we should get there by half-measures.

Either we should decide that's what we want to do, or we should try to
keep the compiler independent of the object file format -- as we have up
until now.  I understand Ian's distaste for BFD, but it is the
format-independent object file reader we have, so it seems a natural
choice.  And libelf, which we already rely on seems more natural than
elfcpp, if we're willing to go ELF-only -- unless we're going to replace
the use of libelf in LTO with elfcpp as well.

In any case, I think we should avoid a single compiler build requiring
multiple object-file reading libraries.

-- 
Mark Mitchell
CodeSourcery
m...@codesourcery.com
(650) 331-3385 x713


Re: movmemm pattern

2010-10-25 Thread Paul Koning

On Oct 25, 2010, at 3:44 PM, Richard Guenther wrote:

 On Mon, Oct 25, 2010 at 11:26 AM, Paul Koning paul_kon...@dell.com wrote:
 Question on movmemm:
 
 Given
 
 extern int *i, *j;
 void foo (void) { memcpy (i, j, 10); }
 
 I would expect to see argument 4 (the shared alignment) to be sizeof(int) 
 since both argument are pointers to int.  What I get instead is 1.  Why is 
 that?
 
 Because the int * could point to unaligned data and there is no access
 that would prove otherwise (memcpy accepts any alignment).

Ok, but if I do a load on an int*, I get an aligned load, not an unaligned 
load, so in all those other cases there *is* an assumption that an int* 
contains a properly aligned address.  

paul



Re: movmemm pattern

2010-10-25 Thread Dave Korn
On 26/10/2010 01:53, Paul Koning wrote:
 On Oct 25, 2010, at 3:44 PM, Richard Guenther wrote:
 
 On Mon, Oct 25, 2010 at 11:26 AM, Paul Koning paul_kon...@dell.com
 wrote:
 Question on movmemm:
 
 Given
 
 extern int *i, *j; void foo (void) { memcpy (i, j, 10); }
 
 I would expect to see argument 4 (the shared alignment) to be
 sizeof(int) since both argument are pointers to int.  What I get
 instead is 1.  Why is that?
 Because the int * could point to unaligned data and there is no access 
 that would prove otherwise (memcpy accepts any alignment).
 
 Ok, but if I do a load on an int*,

  I think that is what Richard meant by an access that would prove otherwise.

 I get an aligned load, not an unaligned
 load, so in all those other cases there *is* an assumption that an int*
 contains a properly aligned address.

  This is a bit like GCC optimising away a null-pointer check if it knows
you've already dereferenced the pointer.  Either you've already crashed by
then, or it doesn't matter.

  What happens if you dereference i and j before the memcpy in foo?  Do you
then get int-sized shared alignment in movmemM?

extern int *i, *j; void foo (void) { *i; *j; memcpy (i, j, 10); }

cheers,
  DaveK


Re: Discussion about merging Go frontend

2010-10-25 Thread Dave Korn
On 25/10/2010 23:49, Mark Mitchell wrote:
 On 10/25/2010 7:01 PM, Dave Korn wrote:
 
   What would be even nicer would be if we could share the same code-reader
 interface between lto and go (and the lto-plugin), thereby getting object
 format independence equally everywhere for no extra cost.

   That could be orthogonal to plugging elfcpp into the role currently 
 occupied
 by libelf in that reader.
 
 I think it's reasonable to argue that GCC should, going forward, be an
 ELF-only toolchain -- with postprocessing tools for generating PE/COFF,
 Symbian DLLs, Mach-O or what have you.  But, we haven't made that
 decision.  So, I don't think we should get there by half-measures.

  I'll probably be on the other side of that argument, when it comes, for a
combination of political and engineering reasons.  But, like you say, let's
not get side-tracked.

 Either we should decide that's what we want to do, or we should try to
 keep the compiler independent of the object file format -- as we have up
 until now.

  Ian could fairly point out that LTO was accepted into the compiler before it
was format-agnostic.  I would counter that, until such a decision as you
contemplate is actually made, it would have been preferable if it was
format-agnostic from the start.  However, we are where we are, and don't want
to let the perfect be the enemy of the good.

 I understand Ian's distaste for BFD, but it is the
 format-independent object file reader we have, so it seems a natural
 choice.  And libelf, which we already rely on seems more natural than
 elfcpp, if we're willing to go ELF-only -- unless we're going to replace
 the use of libelf in LTO with elfcpp as well.

  Well, TBH, I suggested BFD as a devil's-advocate position.  It does indeed
work, but it is kind of clunky, and top-heavy for what the compiler's
requirements actually amount to.

  From Ian's description, gccgo has the exact same requirements as LTO: be
able to parse an object file, get a list of sections, and get raw binary
access to the data contained within a named section.  This is a problem which
we already have solved.  (And indeed LTO's solution also has object writing
capabilities that gccgo doesn't need.)

 In any case, I think we should avoid a single compiler build requiring
 multiple object-file reading libraries.

  Code re-use FTW!  As far as I can see, we're not going to need anything
significantly more complex than what the LTO-FE already needs, until and
unless we get to a point of integrating the (assembler and) linker into the
compiler itself, which is a long way off for now.

  That being the case, I think a reasonable plan would be:

- integrate gccgo, with elfcpp
- then common out the file-reading stuff from gcc/lto/ up to gcc/ so that all
the FEs can share it
- then convert it to use elfcpp (with a bit of file I/O added) and stop using
libelf altogether
- then switch gccgo over to using it

... of which I think all but the first step would even be stage3-friendly.

cheers,
  DaveK



Re: Discussion about merging Go frontend

2010-10-25 Thread Mark Mitchell
On 10/25/2010 10:07 PM, Dave Korn wrote:

 - integrate gccgo, with elfcpp
 - then common out the file-reading stuff from gcc/lto/ up to gcc/ so that all
 the FEs can share it
 - then convert it to use elfcpp (with a bit of file I/O added) and stop using
 libelf altogether
 - then switch gccgo over to using it

I think that's a reasonable plan.  It makes things no less object-file
netural than they are now, which is OK.  (And, before someone else
points it out, I believe it was I who started using libelf in the LTO
prototype, so I know full well how we got here!)  I certainly have no
problem with using elfcpp over libelf.

-- 
Mark Mitchell
CodeSourcery
m...@codesourcery.com
(650) 331-3385 x713


Re: Discussion about merging Go frontend

2010-10-25 Thread Frank Ch. Eigler
Dave Korn dave.korn.cyg...@gmail.com writes:

 [...]  From Ian's description, gccgo has the exact same requirements
 as LTO: be able to parse an object file, get a list of sections, and
 get raw binary access to the data contained within a named section.
 This is a problem which we already have solved.  (And indeed LTO's
 solution also has object writing capabilities that gccgo doesn't
 need.)  [...]

By the way, is there some necessity in accomplishing this by means of
a linked library, as opposed to via a spawned objcopy process?

- FChE


Re: Discussion about merging Go frontend

2010-10-25 Thread Mark Mitchell
On 10/25/2010 10:34 PM, Frank Ch. Eigler wrote:

 By the way, is there some necessity in accomplishing this by means of
 a linked library, as opposed to via a spawned objcopy process?

Probably none in theory, but it certainly seems messy and likely to be
slow in practice.  Is there a reason that this would be desirable?

-- 
Mark Mitchell
CodeSourcery
m...@codesourcery.com
(650) 331-3385 x713


Re: Discussion about merging Go frontend

2010-10-25 Thread Frank Ch. Eigler
Hi -

  By the way, is there some necessity in accomplishing this by means of
  a linked library, as opposed to via a spawned objcopy process?

 Probably none in theory, but it certainly seems messy and likely to
 be slow in practice.

Yes, maybe.

 Is there a reason that this would be desirable?

It would seem to moot the present discussion about competing elf
consumer libraries.  none of the above is a possible answer.

- FChE


Re: Discussion about merging Go frontend

2010-10-25 Thread Mark Mitchell
On 10/25/2010 10:39 PM, Frank Ch. Eigler wrote:

 It would seem to moot the present discussion about competing elf
 consumer libraries.  none of the above is a possible answer.

True.  It seems that LTO and Go need a very simple interface; presumably
we can abstract that in the compiler and then we can implement that
interface as we please.  I agree that a fallback to an external objcopy
is plausible, as is linking with BFD.

-- 
Mark Mitchell
CodeSourcery
m...@codesourcery.com
(650) 331-3385 x713


inline assembly vs. intrinsic functions

2010-10-25 Thread roy rosen
Hi,

I am trying to demonstrate my port capabilities.
I am writing an application which needs to use instructions like max
a,b,c,d,e,f where a,b,c are inputs and d,e,f are outputs.
Is that possible to write an intrinsic function for that?
I think not because that means that I need to pass d,e,f by reference
which means that they would be in memory and not in a register as
meant by the instruction.
Is there any port with such an example?
So, I thought of implementing that with inline assembly but here I
encounter a different problem: The compiler does not understand the
instruction given in inline assembly and therefore it does not
parallelize it with other insns.

Is there any other solution for that which I don't see?

Thanks, Roy.


[Bug c/46115] Feature request: anonymous functions (complementing anon aggregates)

2010-10-25 Thread robert.staudinger at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46115

--- Comment #3 from Rob Staudinger robert.staudinger at gmail dot com 
2010-10-25 07:31:59 UTC ---
For the record, this is already possible using bracketed expressions, but the
syntactical sugar of not having to pick a function name would be great.

#include stdio.h
#include stdlib.h

int
main (int argc, char **argv)
{
  void (*func_ptr)(int) = ({ void func(int i) { printf (%i\n, i); };
 func;
   });

  func_ptr (3);

  return EXIT_SUCCESS;
}


[Bug target/46163] GCC Produces Invalid Assembly Code from Anonymous Function Syntax

2010-10-25 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46163

Andrew Pinski pinskia at gcc dot gnu.org changed:

   What|Removed |Added

 Target|Linux x86_64|x86_64-linux-gnu
   Host|Linux x86_64|

--- Comment #1 from Andrew Pinski pinskia at gcc dot gnu.org 2010-10-25 
08:09:15 UTC ---
This is a target issue of how $ is handled in names.


[Bug target/46163] GCC Produces Invalid Assembly Code from Anonymous Function Syntax

2010-10-25 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46163

H.J. Lu hjl.tools at gmail dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2010.10.25 09:43:27
 CC||hjl.tools at gmail dot com,
   ||ubizjak at gmail dot com
   Target Milestone|--- |4.4.6
 Ever Confirmed|0   |1

--- Comment #2 from H.J. Lu hjl.tools at gmail dot com 2010-10-25 09:43:27 
UTC ---
I think it is a bad idea to use $.1590 as function label.
.$1590 is a better one. But I don't see x86 backend can
do it by itself.


[Bug middle-end/46164] New: Local variables in specified registers don't work correctly with inline asm operands

2010-10-25 Thread siarhei.siamashka at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46164

   Summary: Local variables in specified registers don't work
correctly with inline asm operands
   Product: gcc
   Version: 4.5.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: middle-end
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: siarhei.siamas...@gmail.com


When testing with gcc 4.5.1

 ARM 

$ cat test.c

int f(int a)
{
  register int result asm(r0);
  asm (
addr0, %[a], #123\n
: [result] =r (result)
: [a]  r   (a)
  );
  return result;
}

$ gcc -O2 -c test.c
$ objdump -d test.o

 f:
   0:   e280007badd r0, r0, #123; 0x7b
   4:   e1a3mov r0, r3
   8:   e12fff1ebx  lr

Here the local variable 'result' gets assigned to register r3 instead of r0
causing all kind of problems.

 x86-64 

$ cat test.c

int f(int a)
{
  register int result asm(edi);
  asm (
lea0x7b(%[a]), %%edi\n
: [result] =r (result)
: [a]  r   (a)
  );
  return result;
}

$ gcc -O2 -c test.c
$ objdump -d test.o

 f:
   0:   67 8d 7f 7b addr32 lea 0x7b(%edi),%edi
   4:   c3  retq

=

And some final bits.

http://gcc.gnu.org/onlinedocs/gcc/Local-Reg-Vars.html#Local-Reg-Vars
http://gcc.gnu.org/onlinedocs/gcc/Extended-Asm.html

The documantation is a bit confusing, but it gives at least one example of
assigining variables to specified registers:

Sometimes you need to make an asm operand be a specific register, but there's
no matching constraint letter for that register by itself. To force the operand
into that register, use a local variable for the operand and specify the
register in the variable declaration. See Explicit Reg Vars. Then for the asm
operand, use any register constraint letter that matches the register:

 register int *p1 asm (r0) = ...;
 register int *p2 asm (r1) = ...;
 register int *result asm (r0);
 asm (sysint : =r (result) : 0 (p1), r (p2));

Let's try to use something like that with x86-64:

//
void abort();

int __attribute__((noinline)) f(int a)
{
  register int p1 asm (edi);
  register int result asm (edi);
  asm (
mov %2, %0\n
add %2, %0\n
add %2, %0\n
: =r (result) : 0  (p1), r (a));
  return result;
}

int main()
{
if (f(1) != 3)
abort();
}

//

This testcase fails.

So is it a bug in gcc? Or the documentation is wrong? Or I'm missing something?


[Bug middle-end/32820] optimizer malfunction when mixed with asm statements

2010-10-25 Thread siarhei.siamashka at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32820

--- Comment #8 from Siarhei Siamashka siarhei.siamashka at gmail dot com 
2010-10-25 10:17:47 UTC ---
On the second thought, this bug was about global variables. But my problem is
related to the use of local variables. So I have submitted a separate PR46164
about it.


[Bug middle-end/46164] Local variables in specified registers don't work correctly with inline asm operands

2010-10-25 Thread siarhei.siamashka at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46164

--- Comment #1 from Siarhei Siamashka siarhei.siamashka at gmail dot com 
2010-10-25 10:37:13 UTC ---
Created attachment 22144
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=22144
proposed testcase for x86_64


[Bug middle-end/46164] Local variables in specified registers don't work correctly with inline asm operands

2010-10-25 Thread siarhei.siamashka at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46164

Siarhei Siamashka siarhei.siamashka at gmail dot com changed:

   What|Removed |Added

  Attachment #22144|0   |1
is obsolete||

--- Comment #2 from Siarhei Siamashka siarhei.siamashka at gmail dot com 
2010-10-25 12:32:01 UTC ---
Created attachment 22145
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=22145
updated testcase (x86_64)

Actually the previous testcase was not very good. It tried to simulate
earlyclobber operand by specifying it both as input and output, but because
p1 was actually not initialized, gcc may be allowed to optimize it and screw
up everything (without any kind of warnings, but that's another story).

So the problem is actually related to using specified registers for
earlyclobber output operands in such a way that they try to use the same
registers as function arguments.


[Bug fortran/46010] I/O: Namelist-reading bug

2010-10-25 Thread jvdelisle at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46010

--- Comment #8 from Jerry DeLisle jvdelisle at gcc dot gnu.org 2010-10-25 
13:12:33 UTC ---
The patch in comment #7 works for the original test case but fails for the one
in comment #4.  I have a revised patch that also works for comment #4 and
passes regression testing.  I will submit it later tonight.


[Bug rtl-optimization/45967] [4.5 Regression] gcc-4.5.x optimizes code with side-effects away

2010-10-25 Thread krebbel at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45967

Andreas Krebbel krebbel at gcc dot gnu.org changed:

   What|Removed |Added

 CC||krebbel at gcc dot gnu.org

--- Comment #5 from Andreas Krebbel krebbel at gcc dot gnu.org 2010-10-25 
14:16:38 UTC ---
(In reply to comment #4)
 Fixed for trunk sofar.  Let's see if there is any fallout.

This seems to have broken bootstrap on s390x. From a first glance it looks like
collect2 has been miscompiled. I'll try to gather more infos.


[Bug target/46128] There is no mechanism for detecting VFP revisions in ARM GCC.

2010-10-25 Thread siarhei.siamashka at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46128

--- Comment #2 from Siarhei Siamashka siarhei.siamashka at gmail dot com 
2010-10-25 14:43:52 UTC ---
(In reply to comment #1)
 Note that there may be problems clobbering D registers.  See bug 43440.  I 
 don't think Richard Earnshaw's patch 
 http://gcc.gnu.org/ml/gcc-patches/2010-03/msg00978.html ever got 
 reviewed or pinged - it probably needs pinging.  (In general, unreviewed 
 patches are best pinged about weekly.)

Yes, that's a very well known bug. But there should be no problems with D
registers, only Q registers are affected.

They say codesourcery already has it fixed (so I assume the patch has been at
least reviewed): http://www.beagleboard.org/irclogs/index.php?date=2010-06-27

# [11:19:58] ssvb raster: check gcc bugzilla -
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43440;
# [11:19:59] mru the gcc design makes it very hard to do this conversion
# [11:20:01] raster unliek a cpu - gcc can be fixed and updated easily :)
# [11:20:14] raster mru: seems codesourcery managed it

  More generally, it would be beneficial to be able to optimize routines using
  specific VFPv3 instructions (such as VMOV's immediate-operand form), or to 
  make
  use of VFPv4's fused-mulitply-accumulate instructions.
 
 For fused multiply-add, the best approach is to describe them in the ARM 
 .md files using the new fma: RTL facility, so that calls to fma / fmaf / 
 __builtin_fma / __builtin_fmaf use the instructions automatically as on 
 other targets whose .md files have been updated like this.

But still there are cases when performance is actually important and
builtins/intrinsics are ruled out because of this. Inline assembly is
convenient because it can be added directly to C sources, without any need to
tweak makefiles or build scripts. This makes inline assembly a good choice for
small non-intrusive performance patches.

Another inconvenience is that in order to check whether for example ARMv6
instructions are supported, one has to use constructs like this (identifiers
fished out from gcc sources):

#if defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_6J__) || \
defined(__ARM_ARCH_6K__) || defined(__ARM_ARCH_6Z__) || \
defined(__ARM_ARCH_6ZK__) || defined(__ARM_ARCH_6T2__) || \
defined(__ARM_ARCH_6M__) || defined(__ARM_ARCH_7__) || \
defined(__ARM_ARCH_7A__) || defined(__ARM_ARCH_7R__) || \
defined(__ARM_ARCH_7M__)
[...]
#endif

And this is not very maintainable because future gcc versions may introduce
more predefined symbols for newer arm architecture variants. It would be much
nicer if it was possible to just do something like:

#if defined(__arm__)  (__ARM_ARCH__ = 6)
[...]
#endif

It's basically the same problem as VFP variant identification.


[Bug fortran/46140] [4.4/4.5/4.6 Regression] Include not found - but exit status code is zero

2010-10-25 Thread kargl at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46140

--- Comment #7 from kargl at gcc dot gnu.org 2010-10-25 16:07:37 UTC ---
Author: kargl
Date: Mon Oct 25 16:07:34 2010
New Revision: 165922

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=165922
Log:
2010-10-25  Steven G. Kargl  ka...@gcc.gnu.org

PR fortran/46140
* fortran/scanner.c (include_line): Check return value of load_file.

Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/scanner.c


[Bug fortran/46140] [4.4/4.5/4.6 Regression] Include not found - but exit status code is zero

2010-10-25 Thread kargl at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46140

--- Comment #8 from kargl at gcc dot gnu.org 2010-10-25 16:09:51 UTC ---
Author: kargl
Date: Mon Oct 25 16:09:47 2010
New Revision: 165923

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=165923
Log:
2010-10-25  Steven G. Kargl  ka...@gcc.gnu.org

PR fortran/46140
* fortran/scanner.c (include_line): Check return value of load_file.

Modified:
branches/gcc-4_5-branch/gcc/fortran/ChangeLog
branches/gcc-4_5-branch/gcc/fortran/scanner.c


[Bug fortran/46140] [4.4/4.5/4.6 Regression] Include not found - but exit status code is zero

2010-10-25 Thread kargl at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46140

--- Comment #9 from kargl at gcc dot gnu.org 2010-10-25 16:12:05 UTC ---
Author: kargl
Date: Mon Oct 25 16:11:54 2010
New Revision: 165924

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=165924
Log:
2010-10-25  Steven G. Kargl  ka...@gcc.gnu.org

PR fortran/46140
* fortran/scanner.c (include_line): Check return value of load_file.

Modified:
branches/gcc-4_4-branch/gcc/fortran/ChangeLog
branches/gcc-4_4-branch/gcc/fortran/scanner.c


[Bug fortran/46140] [4.4/4.5/4.6 Regression] Include not found - but exit status code is zero

2010-10-25 Thread kargl at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46140

kargl at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #10 from kargl at gcc dot gnu.org 2010-10-25 16:15:52 UTC ---
Fixed on 4.4, 4.5, and trunk.
Closing.


[Bug fortran/42647] [F03] Missed initialization/dealloc of allocatable scalar DT with allocatable component

2010-10-25 Thread janus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42647

janus at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
 AssignedTo|unassigned at gcc dot   |janus at gcc dot gnu.org
   |gnu.org |
Summary|Missed  |[F03] Missed
   |initialization/dealloc of   |initialization/dealloc of
   |allocatable scalar DT with  |allocatable scalar DT with
   |allocatable component   |allocatable component


[Bug tree-optimization/46165] New: ICE: verify_flow_info failed when casting-out attribute noreturn with -fno-tree-ccp -fno-tree-copy-prop -fno-tree-dce

2010-10-25 Thread zsojka at seznam dot cz
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46165

   Summary: ICE: verify_flow_info failed when casting-out
attribute noreturn with -fno-tree-ccp
-fno-tree-copy-prop -fno-tree-dce
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: zso...@seznam.cz


Created attachment 22146
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=22146
reduced testcase (from gcc.c-torture/compile/20050202-1.c)

Compiler output:
$ gcc -O -fno-tree-ccp -fno-tree-copy-prop -fno-tree-dce pr46165.c 
pr46165.c: In function 'g':
pr46165.c:2:6: error: control flow in the middle of basic block 2
pr46165.c:2:6: internal compiler error: verify_flow_info failed
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.

Tested revisions:
r165915 - crash
4.5 r165781 - crash
4.4 r165754 - crash
4.4 r149995 - crash


[Bug fortran/46166] New: optimization and/or removing an if(.false.) statement leads to bad results

2010-10-25 Thread sjbespa at comcast dot net
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46166

   Summary: optimization and/or removing an if(.false.) statement
leads to bad results
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: sjbe...@comcast.net


Created attachment 22147
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=22147
example program described in bug report

On Mac OS X 10.6.4, with gfortran from recent sources on the 4.6 trunk:

et:new.single.v2 sjbespa$ /volumes/dev/gfortran-4.6-trunk/bin/gfortran -v
Using built-in specs.
COLLECT_GCC=/volumes/dev/gfortran-4.6-trunk/bin/gfortran
COLLECT_LTO_WRAPPER=/Volumes/dev/gfortran-4.6-trunk/bin/../libexec/gcc/x86_64-apple-darwin10/4.6.0/lto-wrapper
Target: x86_64-apple-darwin10
Configured with: ../gfortran-4.6-src/configure
--prefix=/volumes/dev/gfortran-4.6-trunk --enable-languages=fortran
--host=x86_64-apple-darwin10 --build=x86_64-apple-darwin10
--target=x86_64-apple-darwin10
Thread model: posix
gcc version 4.6.0 20101013 (experimental) (GCC) 

the following bug(s) have been observed:

(1) if the attached file is compiled as follows

sjbespa$ /volumes/dev/gfortran-4.6-trunk/bin/gfortran  -O0 driver.f90
sjbespa$ ./a.out

and run, the program executes correctly. The output is shown in example 1.

(2) if the optimization level is changed to -O1 or higher:

sjbespa$ /volumes/dev/gfortran-4.6-trunk/bin/gfortran  -O1 driver.f90
sjbespa$ ./a.out

the program doesn't run correctly as shown in example 2. It appears that the
variables fcurr and flast have invalid values.

(3) finally, if the if statement beginning at statement 251 is commented out,
the example program fails in the same manner as in (2) independent of the
optimization level.


 example 1 

sjbespa$ /volumes/dev/gfortran-4.6-trunk/bin/gfortran  -O0 driver.f90
 sjbespa$ ./a.out
  input data for constitutive model solver  
 rhosat =40743665431535.492 
 !!
 rho100.00 
 plStrainInv0. 
 plStrainInvLast0. 
 plStrainInvRate0. 
 dlamba 0. 
 fcurr -999.02 
 flast -999.02 
   215.998498240953100.   6.95322298958717986E-310
 !!
 rho100.00 
 plStrainInv0. 
 plStrainInvLast0. 
 plStrainInvRate0. 
 dlamba 0. 
 fcurr -999.02 
 flast -999.02 
   863.993992963812390.   6.95322298958717986E-310


 example 2 *

 sjbespa$ /volumes/dev/gfortran-4.6-trunk/bin/gfortran  -O1 driver.f90
sjbespa$ ./a.out
  input data for constitutive model solver  
 rhosat =40743665431535.492 
 !!
 rho100.00 
 plStrainInv0. 
 plStrainInvLast0. 
 plStrainInvRate0. 
 dlamba 0. 
 fcurr -999.02 
 flast -999.02 
 !!
 rho1005087.50 
 plStrainInv   9.99955E-007
 plStrainInvLast0. 
 plStrainInvRate   9.99955E-007
 dlamba9.99955E-007
 fcurr  NaN
 flast  NaN
 !!
 rhoNaN
 plStrainInvNaN
 plStrainInvLast0. 
 plStrainInvRateNaN
 dlamba NaN
 fcurr  NaN
 flast  NaN
 !!


[Bug tree-optimization/46165] [4.3/4.4/4.5/4.6 Regression] ICE: verify_flow_info failed when casting-out attribute noreturn with -fno-tree-ccp -fno-tree-copy-prop -fno-tree-dce

2010-10-25 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46165

H.J. Lu hjl.tools at gmail dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2010.10.25 17:48:34
 CC||hjl.tools at gmail dot com
Summary|ICE: verify_flow_info   |[4.3/4.4/4.5/4.6
   |failed when casting-out |Regression] ICE:
   |attribute noreturn with |verify_flow_info failed
   |-fno-tree-ccp   |when casting-out attribute
   |-fno-tree-copy-prop |noreturn with -fno-tree-ccp
   |-fno-tree-dce   |-fno-tree-copy-prop
   ||-fno-tree-dce
 Ever Confirmed|0   |1


[Bug tree-optimization/46167] New: [4.5/4.6 Regression] ICE: SEIGSEGV in flow_bb_inside_loop_p (cfgloop.c:776) with -O -ftree-vectorize

2010-10-25 Thread zsojka at seznam dot cz
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46167

   Summary: [4.5/4.6 Regression] ICE: SEIGSEGV in
flow_bb_inside_loop_p (cfgloop.c:776) with -O
-ftree-vectorize
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: zso...@seznam.cz


Created attachment 22148
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=22148
reduced testcase

valgrind output :
$ gcc -O -ftree-vectorize pr46167.c
==21601== Invalid read of size 8
==21601==at 0x5933E8: flow_bb_inside_loop_p (cfgloop.c:776)
==21601==by 0x100FA9F: vect_recog_dot_prod_pattern
(tree-vect-patterns.c:260)
==21601==by 0x10104A5: vect_pattern_recog (tree-vect-patterns.c:683)
==21601==by 0x9DE777: vect_analyze_loop (tree-vect-loop.c:1406)
==21601==by 0x9EC288: vectorize_loops (tree-vectorizer.c:219)
==21601==by 0x797A5E: execute_one_pass (passes.c:1560)
==21601==by 0x797CF4: execute_pass_list (passes.c:1615)
==21601==by 0x797D06: execute_pass_list (passes.c:1616)
==21601==by 0x797D06: execute_pass_list (passes.c:1616)
==21601==by 0x8E4B65: tree_rest_of_compilation (tree-optimize.c:422)
==21601==by 0xAAF281: cgraph_expand_function (cgraphunit.c:1494)
==21601==by 0xAB1849: cgraph_optimize (cgraphunit.c:1553)
==21601==  Address 0x18 is not stack'd, malloc'd or (recently) free'd
==21601== 
pr46167.c: In function 'foo':
pr46167.c:1:5: internal compiler error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.

Tested revisions:
r165915 - crash
r163636 - crash
r161659 - OK
r159696 - OK
4.5 r165781 - crash
4.5.1 - OK
4.4 r165754 - OK


[Bug fortran/46166] optimization and/or removing an if(.false.) statement leads to bad results

2010-10-25 Thread dominiq at lps dot ens.fr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46166

--- Comment #1 from Dominique d'Humieres dominiq at lps dot ens.fr 2010-10-25 
18:45:18 UTC ---
1) Remove the Tabs from your source.
(2) Compile with  -O2 -Wall -Wuninitialized -fcheck=all.


[Bug fortran/46166] optimization and/or removing an if(.false.) statement leads to bad results

2010-10-25 Thread kargl at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46166

kargl at gcc dot gnu.org changed:

   What|Removed |Added

 CC||kargl at gcc dot gnu.org

--- Comment #2 from kargl at gcc dot gnu.org 2010-10-25 18:50:56 UTC ---
Have you thought about using -Wall and fixing
the issue with tauc?


[Bug tree-optimization/46168] New: ICE: verify_ssa failed: definition in block 6 does not dominate use in block 5 with -ftree-loop-linear

2010-10-25 Thread zsojka at seznam dot cz
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46168

   Summary: ICE: verify_ssa failed: definition in block 6 does not
dominate use in block 5 with -ftree-loop-linear
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: zso...@seznam.cz


Created attachment 22149
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=22149
reduced testcase

Compiler output:
$ gcc -O -ftree-loop-linear pr46168.c 
pr46168.c: In function 'foo':
pr46168.c:2:1: error: definition in block 6 does not dominate use in block 5
for SSA_NAME: i16_8 in statement:
i16_28 = PHI i16_16(7), i16_8(5)
PHI argument
i16_8
for PHI node
i16_28 = PHI i16_16(7), i16_8(5)
pr46168.c:2:1: internal compiler error: verify_ssa failed
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.

Tested revisions:
r165915 - crash
4.5 r165781 - crash
4.4 r165754 - crash
4.4 r149995 - crash


[Bug target/46163] GCC Produces Invalid Assembly Code from Anonymous Function Syntax

2010-10-25 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46163

Andrew Pinski pinskia at gcc dot gnu.org changed:

   What|Removed |Added

   Target Milestone|4.4.6   |---


[Bug c/46169] New: ICE: internal compiler error: in convert_move, at expr.c:371

2010-10-25 Thread eric at anholt dot net
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46169

   Summary: ICE: internal compiler error: in convert_move, at
expr.c:371
   Product: gcc
   Version: 4.4.5
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: e...@anholt.net


I ran into an ICE doing some code I was hacking on for Mesa to make a temporary
shim for some upcoming interface changes.  I managed to cut it down to this
testcase, which is not minimal but hopefully small enough to reveal problems
well.

anh...@pollan:anholt/src/temp% gcc -o gcc-fail gcc-fail.c -Os
-fno-strict-aliasing
gcc-fail.c: In function ‘main’:
gcc-fail.c:57: internal compiler error: in convert_move, at expr.c:371
Please submit a full bug report,
with preprocessed source if appropriate.
See file:///usr/share/doc/gcc-4.4/README.Bugs for instructions.

anh...@pollan:anholt/src/temp% dpkg -l gcc
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version  Description
+++---
ii  gcc  4:4.4.5-1The GNU C compiler


[Bug tree-optimization/46165] [4.3/4.4/4.5/4.6 Regression] ICE: verify_flow_info failed when casting-out attribute noreturn with -fno-tree-ccp -fno-tree-copy-prop -fno-tree-dce

2010-10-25 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46165

H.J. Lu hjl.tools at gmail dot com changed:

   What|Removed |Added

 CC|hjl.tools at gmail dot com  |amacleod at redhat dot com

--- Comment #1 from H.J. Lu hjl.tools at gmail dot com 2010-10-25 20:19:53 
UTC ---
It was introduced by revision 119657:

http://gcc.gnu.org/ml/gcc-cvs/2006-12/msg00276.html


[Bug c/46169] ICE: internal compiler error: in convert_move, at expr.c:371

2010-10-25 Thread eric at anholt dot net
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46169

--- Comment #1 from Eric Anholt eric at anholt dot net 2010-10-25 20:20:19 
UTC ---
Created attachment 22150
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=22150
gcc-fail.c


[Bug c++/46170] New: g++ wrongly rejects pointer-to-member in template arguments

2010-10-25 Thread fang at csl dot cornell.edu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46170

   Summary: g++ wrongly rejects pointer-to-member in template
arguments
   Product: gcc
   Version: 4.4.4
Status: UNCONFIRMED
  Severity: major
  Priority: P3
 Component: c++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: f...@csl.cornell.edu


The following reduced test case is wrongly rejected by g++-4.4 and g++-4.5:

 test case: reduce.ii =
namespace util {
struct option_value {
};
template class T struct options_map_impl {
typedef T options_struct_type;
typedef bool (*opt_func)(const option_value, options_struct_type);
template class V, V K  static  bool  set_member_constant(const option_value,
  options_struct_type, V options_struct_type::*);
template class V, V options_struct_type::*mem, V K  static  bool 
set_member_constant(const option_value opt, options_struct_type t) {
return set_member_constantV,K(opt, t, mem);
}
};
}
struct cflat_options {
bool show_precharges;
};
typedef util::options_map_implcflat_options options_map_impl_type;
class register_options_modifier {
typedef options_map_impl_type::opt_func modifier_type;
public:  register_options_modifier();
register_options_modifier(const char* Mode,const modifier_type COM,   
const char* h);
};
static const register_options_modifier
cflat_opt_mod_show_precharges(precharges,
options_map_impl_type::set_member_constantbool,
cflat_options::show_precharges, true, show precharge expressions),
cflat_opt_mod_no_show_precharges(no- precharges,
options_map_impl_type::set_member_constantbool,
cflat_options::show_precharges, false, hide precharge expressions);
=== end test case ===

delta-reduced using:
#!/bin/sh -e
# reduce.sh
CXXFLAGS=-ansi -Woverloaded-virtual -W -Wextra -Wall -Wundef -Wshadow
-Wno-unused-parameter -Wpointer-arith -Wcast-qual -Wcast-align -Wconversion
-Werror -Wno-conversion -Wno-long-long
# must pass g++-4.2 first
g++ $CXXFLAGS -c -o reduce.o reduce.ii
g++-4 -pipe -g -O2 $CXXFLAGS -x c++ reduce.ii -o reduce.o 2 reduce.err || :
grep -q not a valid template argument reduce.err
# exactly 4 lines of errors
el=`wc -l reduce.err | awk '{print $1;}'`
test $el -eq 4


diagnostic:
reduce.ii: In static member function 'static bool
util::options_map_implT::set_member_constant(const util::option_value, T)
[with V = bool, V T::* mem = cflat_options::show_precharges, V K = true, T =
cflat_options]':
reduce.ii:22:   instantiated from here
reduce.ii:9: error: 'true' is not a valid template argument for type 'bool
cflat_options::*'
reduce.ii:9: error: it must be a pointer-to-member of the form `X::Y'


it pass g++-4.2 and fails g++-4.4, g++-4.5:

f...@fangbook 163 g++ -v
Using built-in specs.
Target: i686-apple-darwin10
Configured with: /var/tmp/gcc/gcc-5664~105/src/configure --disable-checking
--enable-werror --prefix=/usr --mandir=/share/man
--enable-languages=c,objc,c++,obj-c++
--program-transform-name=/^[cg][^.-]*$/s/$/-4.2/ --with-slibdir=/usr/lib
--build=i686-apple-darwin10 --program-prefix=i686-apple-darwin10-
--host=x86_64-apple-darwin10 --target=i686-apple-darwin10
--with-gxx-include-dir=/include/c++/4.2.1
Thread model: posix
gcc version 4.2.1 (Apple Inc. build 5664)

f...@fangbook 164 g++-4 -v
Using built-in specs.
Target: i386-apple-darwin10.4.0
Configured with: ../gcc-4.4.4/configure --prefix=/sw --prefix=/sw/lib/gcc4.4
--mandir=/sw/share/man --infodir=/sw/lib/gcc4.4/info
--enable-languages=c,c++,fortran,objc,obj-c++,java --with-gmp=/sw
--with-libiconv-prefix=/sw --with-ppl=/sw --with-cloog=/sw --with-mpc=/sw
--with-system-zlib --x-includes=/usr/X11R6/include --x-libraries=/usr/X11R6/lib
--program-suffix=-fsf-4.4
Thread model: posix
gcc version 4.4.4 (GCC) 

(for 4.5)
g++-4 -v
Using built-in specs.
COLLECT_GCC=g++-4
COLLECT_LTO_WRAPPER=/Volumes/MacSpare/sw/lib/gcc4.5/bin/../libexec/gcc/i386-apple-darwin10.4.0/4.5.0/lto-wrapper
Target: i386-apple-darwin10.4.0
Configured with: ../gcc-4.5.0/configure --prefix=/sw --prefix=/sw/lib/gcc4.5
--mandir=/sw/share/man --infodir=/sw/lib/gcc4.5/info
--enable-languages=c,c++,fortran,objc,obj-c++,java --with-gmp=/sw
--with-libiconv-prefix=/sw --with-ppl=/sw --with-cloog=/sw --with-mpc=/sw
--with-system-zlib --x-includes=/usr/X11R6/include --x-libraries=/usr/X11R6/lib
--program-suffix=-fsf-4.5
Thread model: posix
gcc version 4.5.0 (GCC) 

===
keywords: rejects-valid, diagnostic
known-to-work: 4.2.1
known-to-fail: 4.4.4 4.5.0

This also used to work on 4.4.2, so it might be a branch regression.


[Bug tree-optimization/46168] ICE: verify_ssa failed: definition in block 6 does not dominate use in block 5 with -ftree-loop-linear

2010-10-25 Thread dominiq at lps dot ens.fr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46168

--- Comment #1 from Dominique d'Humieres dominiq at lps dot ens.fr 2010-10-25 
20:50:24 UTC ---
0n x86_64-apple-darwin10, 4.5 revision 154654 crashes, but gcc version 4.5.0 is
OK (release checking).
On powerpc-apple-darwin9, gcc version 4.3.0 20071218 (experimental) (GCC)
crashes (at that time I did not recorded the revision).


[Bug rtl-optimization/46171] New: [4.6 Regression] ICE: in gen_rtx_SUBREG, at emit-rtl.c:774 with -fno-tree-dce -g

2010-10-25 Thread zsojka at seznam dot cz
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46171

   Summary: [4.6 Regression] ICE: in gen_rtx_SUBREG, at
emit-rtl.c:774 with -fno-tree-dce -g
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: rtl-optimization
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: zso...@seznam.cz


Created attachment 22151
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=22151
reduced testcase

Compiler output:
$ gcc -O -fno-tree-dce -g pr46171.c 
pr46171.c: In function 'foo':
pr46171.c:8:1: internal compiler error: in gen_rtx_SUBREG, at emit-rtl.c:774
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.

Tested revisions:
r165915 - crash
r165699 - crash
r163636 - OK
4.5 r165781 - OK


[Bug target/46171] [4.6 Regression] ICE: in gen_rtx_SUBREG, at emit-rtl.c:774 with -fno-tree-dce -g

2010-10-25 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46171

Andrew Pinski pinskia at gcc dot gnu.org changed:

   What|Removed |Added

  Component|rtl-optimization|target
   Target Milestone|--- |4.6.0


[Bug c/46158] Spurious never executed warning

2010-10-25 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46158

Andrew Pinski pinskia at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||WONTFIX

--- Comment #2 from Andrew Pinski pinskia at gcc dot gnu.org 2010-10-25 
21:01:51 UTC ---
-Wunreachable-code is broken and has been removed from GCC 4.5.  Do not use it.


[Bug middle-end/46158] Spurious never executed warning

2010-10-25 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46158

Andrew Pinski pinskia at gcc dot gnu.org changed:

   What|Removed |Added

  Component|c   |middle-end
   Target Milestone|--- |4.5.0


[Bug c++/46170] g++ wrongly rejects pointer-to-member in template arguments

2010-10-25 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46170

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 CC||jason at gcc dot gnu.org

--- Comment #1 from Paolo Carlini paolo.carlini at oracle dot com 2010-10-25 
21:09:02 UTC ---
Looks related to PR46162. Jason, could you please have a look to both? Thanks
in advance.


[Bug tree-optimization/46172] New: ICE: in expand_widen_pattern_expr, at optabs.c:522 with -ftree-vectorize -fno-tree-dce

2010-10-25 Thread zsojka at seznam dot cz
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46172

   Summary: ICE: in expand_widen_pattern_expr, at optabs.c:522
with -ftree-vectorize -fno-tree-dce
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: zso...@seznam.cz


Created attachment 22152
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=22152
reduced testcase

Output - 4.6 (trunk):
$ gcc -ftree-vectorize -O -fno-tree-dce pr46172.c  
pr46172.c: In function 'foo':
pr46172.c:3:5: internal compiler error: in expand_widen_pattern_expr, at
optabs.c:522
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.

Output - 4.5:
$ gcc -ftree-vectorize -O -fno-tree-dce pr46172.c 
pr46172.c: In function 'foo':
pr46172.c:3:5: internal compiler error: in expand_expr_real_2, at expr.c:8275
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.

Output - 4.4:
$ gcc -ftree-vectorize -O -fno-tree-dce pr46172.c 
pr46172.c: In function 'foo':
pr46172.c:3: internal compiler error: in c_expand_expr, at c-common.c:5015
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.

Tested revisions:
r165915 - crash
4.5 r165781 - crash
4.4 r165781 - crash
4.4 r149995 - crash


[Bug middle-end/46169] ICE: internal compiler error: in convert_move, at expr.c:371

2010-10-25 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46169

H.J. Lu hjl.tools at gmail dot com changed:

   What|Removed |Added

 CC||rguenth at gcc dot gnu.org

--- Comment #2 from H.J. Lu hjl.tools at gmail dot com 2010-10-25 21:21:37 
UTC ---
It was fixed in gcc 4.5 by revision 147731:

http://gcc.gnu.org/ml/gcc-cvs/2009-05/msg00708.html


[Bug lto/45736] [4.6 Regression] ICE: in cgraph_remove_unreachable_nodes, at ipa.c:245 with -flto and attribute((constructor))

2010-10-25 Thread hubicka at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45736

--- Comment #3 from Jan Hubicka hubicka at gcc dot gnu.org 2010-10-25 
21:31:15 UTC ---
Created attachment 22153
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=22153
Patch I am testing.


[Bug bootstrap/46173] New: gcc/gencheck.c:30:24: error: all-tree.def: No such file or directory

2010-10-25 Thread dirtyepic at gentoo dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46173

   Summary: gcc/gencheck.c:30:24: error: all-tree.def: No such
file or directory
   Product: gcc
   Version: 4.4.6
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: bootstrap
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: dirtye...@gentoo.org


Rev 137006 included this change:

* gencheck.c (tree_codes): Include all-tree.def, rather than
tree.def, c-common.def, and gencheck.h.  Undefined DEFTREECODE
after it is used.

However the change to the build/gencheck.o target in gcc/Makefile.in was:

@@ -3239,7 +3245,7 @@ build/genattrtab.o : genattrtab.c $(RTL_BASE_H)
$(OBSTACK_H)  \
 build/genautomata.o : genautomata.c $(RTL_BASE_H) $(OBSTACK_H) \
   $(BCONFIG_H) $(SYSTEM_H) coretypes.h $(GTM_H) errors.h vec.h \
   $(HASHTAB_H) gensupport.h
-build/gencheck.o : gencheck.c gencheck.h tree.def $(BCONFIG_H) $(GTM_H)   
\
+build/gencheck.o : gencheck.c tree.def $(BCONFIG_H) $(GTM_H)   \
$(SYSTEM_H) coretypes.h $(lang_tree_files)
 build/genchecksum.o : genchecksum.c $(BCONFIG_H) $(SYSTEM_H) $(MD5_H)
 build/gencodes.o : gencodes.c $(RTL_BASE_H) $(BCONFIG_H) $(SYSTEM_H)   \

rather than depending on tree.def, it should be all-tree.def.  This leads to a
sporadic parallel build error we're seeing on our weekly builds.

This was fixed with rev 147491 but never made it onto the 4.4 branch.


[Bug fortran/46174] New: [OOP] ALLOCATE with SOURCE: Deep copy missing

2010-10-25 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46174

   Summary: [OOP] ALLOCATE with SOURCE: Deep copy missing
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Keywords: wrong-code
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: bur...@gcc.gnu.org
CC: ja...@gcc.gnu.org


The following is in a sense a follow up to PR 45451.

Assuming that X and Y are both polymorphic (CLASS) and the following operation:
  ALLOCATE (x, SOURCE=y)
or
  x = y ! Fortran 2008: (Re)alloc on assignment with polymorphic LHS

In those cases, one might need to do a deep copy as the polymorphic item might
have allocatable components. This currently does not work.

Example:

  1  2  3  4  5  6  7  8  9 10
 11 12 13 14 15 16 17 18 19 20
 11 12 13 14 15 16 17 18 19 20
Aborted (core dumped)

The third line should be the same as the first one - but in reality it still
points to the allocatable components of the SOURCE=.


implicit none
type t
end type t

type, extends(t) :: t2
  integer, allocatable :: a(:)
end type t2

class(t), allocatable :: x, y
integer :: i

allocate(t2 :: x)
select type(x)
 type is (t2)
   allocate(x%a(10))
   x%a = [ (i, i = 1,10) ]
   print '(*(i3))', x%a
 class default
   call abort()
end select

allocate(y, source=x)

select type(x)
 type is (t2)
   x%a = [ (i, i = 11,20) ]
   print '(*(i3))', x%a
 class default
   call abort()
end select

select type(y)
 type is (t2)
   print '(*(i3))', y%a
   if (any (y%a /= [ (i, i = 1,10) ])) call abort()
 class default
   call abort()
end select
end


[Bug middle-end/38942] possible integer codegen error

2010-10-25 Thread ian at airs dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38942

Ian Lance Taylor ian at airs dot com changed:

   What|Removed |Added

 CC||ian at airs dot com

--- Comment #3 from Ian Lance Taylor ian at airs dot com 2010-10-25 22:12:55 
UTC ---
I can't recreate this with mainline or gcc 4.4 branch.  I tested with and
without -m32.  I also built mainline for 32-bit only, and could not recreate
this.  I think this is likely fixed.


[Bug middle-end/38942] possible integer codegen error

2010-10-25 Thread regehr at cs dot utah.edu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38942

John Regehr regehr at cs dot utah.edu changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||WORKSFORME

--- Comment #4 from John Regehr regehr at cs dot utah.edu 2010-10-25 22:16:10 
UTC ---
Works for me too.


[Bug fortran/35810] [TR 15581 / F2003] Automatic reallocation on assignment to allocatable variables

2010-10-25 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35810

--- Comment #10 from Tobias Burnus burnus at gcc dot gnu.org 2010-10-25 
22:22:49 UTC ---
(In reply to comment #6)
 Note in Fortran 2008 (cf. PR 41719),
   polymorphic-variable = expr
 is allowed iff the variable is allocatable.

And note further that this is nontrivial as it requires a deep copy, cf. PR
46174.

  * * *

Newer draft patch for realloc on assignment (w/o the polymorphic assignment):
http://gcc.gnu.org/ml/fortran/2010-10/msg00213.html


[Bug rtl-optimization/46175] New: ICE: in rtl_verify_flow_info_1, at cfgrtl.c:2037: flow control insn inside a basic block with -O -fgcse -fno-guess-branch-probability -freorder-blocks and asm goto

2010-10-25 Thread zsojka at seznam dot cz
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46175

   Summary: ICE: in rtl_verify_flow_info_1, at cfgrtl.c:2037: flow
control insn inside a basic block with -O -fgcse
-fno-guess-branch-probability -freorder-blocks and asm
goto
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: rtl-optimization
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: zso...@seznam.cz


Created attachment 22154
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=22154
reduced testcase

Compiler output:
$ gcc -O -fgcse -fno-guess-branch-probability -freorder-blocks pr46175.c 
pr46175.c: In function 'foo':
pr46175.c:27:1: error: in basic block 7:
pr46175.c:27:1: error: flow control insn inside a basic block
(jump_insn 14 46 61 7 (parallel [
(asm_operands/v () () 0 []
 []
 [
(label_ref:DI 16)
] pr46175.c:27)
(clobber (reg:QI 18 fpsr))
(clobber (reg:QI 17 flags))
]) pr46175.c:19 -1
 (expr_list:REG_UNUSED (reg:QI 18 fpsr)
(expr_list:REG_UNUSED (reg:QI 17 flags)
(nil)))
 - 16)
pr46175.c:27:1: internal compiler error: in rtl_verify_flow_info_1, at
cfgrtl.c:2037
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.

Tested revisions:
r165915 - crash
r153685 - crash
4.5 r165781 - crash
4.4 r165754 - doesn't know asm goto


[Bug middle-end/46176] New: profile feedback causes 20% linux kernel binary growth

2010-10-25 Thread andi-gcc at firstfloor dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46176

   Summary: profile feedback causes 20% linux kernel binary growth
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: middle-end
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: andi-...@firstfloor.org


Recent gcc 4.6 snapshot on x86_64-linux.

I did an experimental patch to use profile feedback with the Linux kernel
With a very simple training run (covering only ~50% of the files partially)
Unfortunately recompiling with the feedback data leads to a 20% larger
binary. This is compiled using -O2.

Trained:
   textdata bss dec hex filename
136150401202668 1357680 16175388 f6d11c vmlinux

Untrained:
111364521200876 1357552 13694880 d0f7a0 vmlinux

Comparing the symbols with the largest growth I get:

add/remove: 674/2006 grow/shrink: 12172/4139 up/down: 3000900/-510189 (2490711)
function old new   delta
r600_kms_blit_copy  2640   16394  +13754
static.do_con_write-   10681  +10681
r600_blit_copy 10605   21205  +10600
zlib_inflate5459   15261   +9802
static.rv770_startup   -9541   +9541
e1000_setup_copper_link-9510   +9510
e1000_diag_test14064   22948   +8884
kmem_cache_create   1385   10227   +8842

I have not analyzed it in detail, but current suspicion is much
more aggressive inlining?

Note also that a lot of functions were using fallback profiling data
because the training load wasn't very good.


[Bug middle-end/46176] profile feedback causes 20% linux kernel binary growth

2010-10-25 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46176

--- Comment #1 from Andrew Pinski pinskia at gcc dot gnu.org 2010-10-25 
22:57:50 UTC ---
I think this is unrolling.  -fprofile-generate/-fprofile-use turns on
unrolling.


[Bug tree-optimization/46177] New: [4.5/4.6 Regression] ICE: in prop_phis, at tree-loop-distribution.c:327 with -fno-tree-copy-prop -ftree-loop-distribution

2010-10-25 Thread zsojka at seznam dot cz
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46177

   Summary: [4.5/4.6 Regression] ICE: in prop_phis, at
tree-loop-distribution.c:327 with -fno-tree-copy-prop
-ftree-loop-distribution
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: zso...@seznam.cz


Created attachment 22155
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=22155
reduced testcase

Compiler output:
$ gcc -O -fno-tree-copy-prop -ftree-loop-distribution pr46177.c 
pr46177.c: In function 'foo':
pr46177.c:5:1: internal compiler error: in prop_phis, at
tree-loop-distribution.c:327
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.

Fails with -O3 -fno-tree-copy-prop as well as it implies
-ftree-loop-distribute-patterns

Tested revisions:
r165915 - crash
r153685 - crash
4.5 r165781 - crash
4.4 r165754 - OK


[Bug rtl-optimization/46178] New: gcc.target/i386/(u)divmod-[58].c FAIL: ICE: in dec_register_pressure, at ira-lives.c:215 with -fira-algorithm=priority

2010-10-25 Thread zsojka at seznam dot cz
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46178

   Summary: gcc.target/i386/(u)divmod-[58].c FAIL: ICE: in
dec_register_pressure, at ira-lives.c:215 with
-fira-algorithm=priority
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: rtl-optimization
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: zso...@seznam.cz


Compiler output:
$ gcc gcc.target/i386/divmod-5.c -O -m8bit-idiv -fira-algorithm=priority
gcc.target/i386/divmod-5.c: In function 'bar':
gcc.target/i386/divmod-5.c:10:1: internal compiler error: in
dec_register_pressure, at ira-lives.c:215
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.

$ gcc gcc.target/i386/divmod-8.c -O -m8bit-idiv -fira-algorithm=priority
gcc.target/i386/divmod-8.c: In function 'bar':
gcc.target/i386/divmod-8.c:12:1: internal compiler error: in
dec_register_pressure, at ira-lives.c:215
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.

I think I have seen this ICE often with -fira-algorithm=priority
-fschedule-insns, but I didn't report it. This is the only case I found where
-fira-algorithm=priority fails without -fschedule-insns.

Tested revisions:
r165915 - crash
r165699 - crash


[Bug tree-optimization/46154] [4.6 Regression] ICE: failed to reclaim unneeded function with -fipa-cp -fipa-cp-clone

2010-10-25 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46154

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

   Priority|P3  |P1


[Bug debug/46150] [4.6 Regression] -fcompare-debug failure (length) with -fPIC -O2

2010-10-25 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46150

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

   Priority|P3  |P1
 CC||jakub at gcc dot gnu.org


[Bug tree-optimization/46130] [4.6 Regression] ICE: SIGSEGV in walk_stmt_load_store_addr_ops (gimple.c:4894) with -O2 -fno-tree-dce

2010-10-25 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46130

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

   Priority|P3  |P1


[Bug debug/46123] [4.5/4.6 Regression] ICE: in output_aranges, at dwarf2out.c:11531 with -feliminate-dwarf2-dups -g

2010-10-25 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46123

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

   Priority|P3  |P2


[Bug middle-end/46120] [4.6 regression] g++.dg/ipa/ivinline-?.C

2010-10-25 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46120

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

   Priority|P3  |P2


[Bug debug/46101] [4.6 Regression] ICE: in build_abbrev_table, at dwarf2out.c:10333 with -feliminate-dwarf2-dups -g

2010-10-25 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46101

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

   Priority|P3  |P2


[Bug tree-optimization/46099] [4.5/4.6 Regression] ICE: in replace_ssa_name, at tree-cfg.c:5643 with -ftree-parallelize-loops -g

2010-10-25 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46099

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

   Priority|P3  |P2


[Bug target/46171] [4.6 Regression] ICE: in gen_rtx_SUBREG, at emit-rtl.c:774 with -fno-tree-dce -g

2010-10-25 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46171

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

   Priority|P3  |P1
 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2010.10.26 00:50:48
 CC||aoliva at gcc dot gnu.org
 Ever Confirmed|0   |1

--- Comment #1 from Jakub Jelinek jakub at gcc dot gnu.org 2010-10-26 
00:50:48 UTC ---
This crash is from dead_debug_insert_before, will look at it.


[Bug c++/46156] [4.6 Regression] ICE: in tsubst_copy, at cp/pt.c:11370 with -frounding-math

2010-10-25 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46156

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

   Priority|P3  |P1
 CC||jakub at gcc dot gnu.org


[Bug debug/46095] [4.6 Regression] ICE: in dwarf2out_frame_debug_expr, at dwarf2out.c:2341 with -fstack-protector

2010-10-25 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46095

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

   Priority|P3  |P1
 CC||jakub at gcc dot gnu.org


[Bug tree-optimization/46036] [4.6 Regression] verify_ssa failed: definition in block 3 follows the use

2010-10-25 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46036

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

   Priority|P3  |P1
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2010.10.26 01:03:32
 CC||jakub at gcc dot gnu.org
 Ever Confirmed|0   |1


[Bug target/45913] [4.6 Regression] ICE: in insn_default_length, at config/i386/i386.md:584 with -fselective-scheduling2 -fsel-sched-pipelining -fsel-sched-pipelining-outer-loops

2010-10-25 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45913

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 CC||jakub at gcc dot gnu.org
 Resolution||FIXED

--- Comment #6 from Jakub Jelinek jakub at gcc dot gnu.org 2010-10-26 
01:05:25 UTC ---
Fixed.


[Bug middle-end/45876] [4.6 Regression] ICE: verify_gimple failed

2010-10-25 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45876

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED

--- Comment #5 from Jakub Jelinek jakub at gcc dot gnu.org 2010-10-26 
01:07:45 UTC ---
Fixed.


[Bug lto/45702] [4.6 Regression] New LTO test failures

2010-10-25 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45702

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

   Priority|P3  |P2
 CC||jakub at gcc dot gnu.org


[Bug fortran/46010] I/O: Namelist-reading bug

2010-10-25 Thread jvdelisle at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46010

--- Comment #9 from Jerry DeLisle jvdelisle at gcc dot gnu.org 2010-10-26 
01:37:04 UTC ---
Created attachment 22156
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=22156
Patch to fix this.

I think my email service is out. I attach the patch here for review.  It may
show up on the list.  I tried sending it three times.


[Bug target/46179] New: Codegen/TLS: invalid assembler syntax

2010-10-25 Thread fthain at telegraphics dot com.au
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46179

   Summary: Codegen/TLS: invalid assembler syntax
   Product: gcc
   Version: 4.5.2
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: fth...@telegraphics.com.au
Target: m68k-linux-gnu


Created attachment 22157
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=22157
pre-processed source from gen_uuid.c from util-linux

gcc version 4.5.2 20101021 (prerelease) (GCC)

$ m68k-linux-gnu-gcc -c gen_uuid.i -O2   
/tmp/cceVtxzz.s: Assembler messages:
/tmp/cceVtxzz.s:709: Error: syntax error -- statement `move.l
%d1,last.5...@tlsle+4(%a0)' ignored
/tmp/cceVtxzz.s:886: Error: syntax error -- statement `move.l
%d1,last.5...@tlsle+4(%a0)' ignored

Some background may be found here (relating to debian's gcc-4.4 package which
has TLS backported):
http://lists.debian.org/debian-68k/2010/10/msg00037.html
(In that compiler, the code generated is an offset against TLSLDO, but shows
the same bug.)

The bug was initially filed for binutils (since closed as invalid):
http://sourceware.org/bugzilla/show_bug.cgi?id=12157

Bug may be worked around with -O0.


[Bug tree-optimization/45875] [4.6 Regression] ice in gimple_fold_obj_type_ref_known_binfo with -O2

2010-10-25 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45875

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED

--- Comment #15 from Jakub Jelinek jakub at gcc dot gnu.org 2010-10-26 
03:51:52 UTC ---
Fixed.


[Bug target/45870] [4.5/4.6 Regression] note: non-delegitimized UNSPEC 5 found (-O1 -g)

2010-10-25 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45870

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

   Priority|P3  |P2


[Bug rtl-optimization/45865] [4.6 Regression] ifcvt/crossjump failed to mark return jump

2010-10-25 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45865

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

   Priority|P3  |P1
 CC||jakub at gcc dot gnu.org


[Bug tree-optimization/46053] [4.6 Regression] g++.dg/torture/pr45699.C FAILs with -fno-early-inlining

2010-10-25 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46053

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

   Priority|P3  |P1


[Bug tree-optimization/45991] [4.6 Regression] ICE: verify_stmts failed: Invalid address operand in in TARGET_MEM_REF. with -fstrict-overflow

2010-10-25 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45991

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

   Priority|P3  |P1


[Bug tree-optimization/45971] [4.6 Regression] ice in vect_update_ivs_after_vectorizer

2010-10-25 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45971

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

   Priority|P3  |P1


[Bug tree-optimization/45934] [4.6 Regression] g++.old-deja/g++.other/dtor5.C FAILs with -finline-small-functions

2010-10-25 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45934

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

   Priority|P3  |P1
 CC||jakub at gcc dot gnu.org


  1   2   >