[Bug target/27117] [4.2 Regression] gcc fails to build on sh64-elf targets

2006-04-12 Thread bonzini at gnu dot org


-- 

bonzini at gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |bonzini at gnu dot org
   |dot org |
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2006-04-12 07:11:15
   date||


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



[Bug target/27117] [4.2 Regression] gcc fails to build on sh64-elf targets

2006-04-12 Thread bonzini at gnu dot org


--- Comment #2 from bonzini at gnu dot org  2006-04-12 07:30 ---
And the funny part is, it is again Dale's patch that causes the failure.

I'm more and more inclined to revert that part, but it may be a latent bug as
in the AIX case (note: David Edelsohn decided to "fix" the bug by making sure
the problematic RTL is not produced, but it still was an rs6000 latent bug in
some sense).  So, if Joern wants to take a look...


-- 

bonzini at gnu dot org changed:

   What|Removed |Added

 CC||amylaar at gcc dot gnu dot
   ||org


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



[Bug target/27117] [4.2 Regression] gcc fails to build on sh64-elf targets

2006-04-18 Thread bonzini at gnu dot org


--- Comment #9 from bonzini at gnu dot org  2006-04-18 08:13 ---
I'm reverting the PR19653 regclass.c patch for now.  Joern of course if you
want to post your patch for testing, it'll help reinstating the patch in 4.3.


-- 


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



[Bug tree-optimization/26821] [4.1 Regression] ice in varasm.c with certain flags

2006-04-18 Thread bonzini at gnu dot org


--- Comment #7 from bonzini at gnu dot org  2006-04-18 13:25 ---
patch committed.


-- 

bonzini at gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
  Known to work|4.0.3 4.2.0 |4.0.3 4.1.1 4.2.0
 Resolution||FIXED


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



[Bug target/27117] [4.2 Regression] gcc fails to build on sh64-elf targets

2006-04-18 Thread bonzini at gnu dot org


--- Comment #11 from bonzini at gnu dot org  2006-04-18 13:26 ---
bug is latent again :-)


-- 

bonzini at gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug target/27158] [4.1/4.2 regression] ICE in extract_insn with -maltivec

2006-04-18 Thread bonzini at gnu dot org


--- Comment #8 from bonzini at gnu dot org  2006-04-18 13:47 ---
Seems similar to PR24230, but cannot be fixed really in the same way.


-- 

bonzini at gnu dot org changed:

   What|Removed |Added

 CC||bonzini at gnu dot org


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



[Bug middle-end/26869] [4.1/4.2 Regression] Segfault in find_lattice_value() for complex operands.

2006-04-18 Thread bonzini at gnu dot org


--- Comment #4 from bonzini at gnu dot org  2006-04-18 13:55 ---
richi: if bD.1520 does not have a default def because it is unused, your fix
makes sense.  Can you confirm that it is "b" and not "c" that does not have a
default def, i.e. that "c" does have a default def?


-- 


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



[Bug target/26600] [4.1/4.2 Regression] internal compiler error: in push_reload, at reload.c:1303

2006-04-18 Thread bonzini at gnu dot org


--- Comment #6 from bonzini at gnu dot org  2006-04-18 14:07 ---
pinskia: You're right in some sense but, shudder, this will make things
slw.


-- 


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



[Bug middle-end/26643] [4.1 Regression] Linux matroxfb_probe miscompiled

2006-04-18 Thread bonzini at gnu dot org


--- Comment #15 from bonzini at gnu dot org  2006-04-18 14:12 ---
running a 4.1 bootstrap.


-- 


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



[Bug tree-optimization/20643] [4.0/4.1/4.2 Regression] Tree loop optimizer does worse job than RTL loop optimizer

2006-04-18 Thread bonzini at gnu dot org


--- Comment #8 from bonzini at gnu dot org  2006-04-18 14:15 ---
Mark, I don't believe there is any chance that it be fixed in 4.0/4.1?


-- 


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



[Bug middle-end/20983] [4.0/4.1/4.2 Regression] varargs functions force va_list variable to stack unnecessarily

2006-04-18 Thread bonzini at gnu dot org


--- Comment #7 from bonzini at gnu dot org  2006-04-18 14:16 ---
Caused by removing ADDRESSOF. :-(


-- 


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



[Bug middle-end/26643] [4.1 Regression] Linux matroxfb_probe miscompiled

2006-04-18 Thread bonzini at gnu dot org


--- Comment #18 from bonzini at gnu dot org  2006-04-18 14:23 ---
patch committed to 4.1 too.


-- 

bonzini at gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug target/27158] [4.1/4.2 regression] ICE in extract_insn with -maltivec

2006-04-18 Thread bonzini at gnu dot org


--- Comment #9 from bonzini at gnu dot org  2006-04-18 14:29 ---
The mem is for a

(const_vector:V4SF [
(const_double:SF -NaN [-NaN])
(const_double:SF -NaN [-NaN])
(const_double:SF -NaN [-NaN])
(const_double:SF -NaN [-NaN])
])


-- 


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



[Bug target/27158] [4.1/4.2 regression] ICE in extract_insn with -maltivec

2006-04-18 Thread bonzini at gnu dot org


--- Comment #10 from bonzini at gnu dot org  2006-04-18 14:39 ---
It's probably two different bugs, since the 4.1 bug is in loop.c.  We need to
add a can_assign_to_reg_p call before creating a movable.


-- 


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



[Bug target/27158] [4.1/4.2 regression] ICE in extract_insn with -maltivec

2006-04-18 Thread bonzini at gnu dot org


--- Comment #11 from bonzini at gnu dot org  2006-04-18 15:20 ---
... but then anyway the bug pops up in reload.  So it is definitely the same
bug as PR24230, and here is a modified version of the PR24230 testcase:

/* Compile with -O2 -maltivec */
#define REGLIST  \
 "77",  "78",  "79",  "80",  "81",  "82",  "83",  "84",  "85",  "86",\
 "87",  "88",  "89",  "90",  "91",  "92",  "93",  "94",  "95",  "96",\
 "97",  "98",  "99", "100", "101", "102", "103", "104", "105", "106",\
"107", "108"

typedef __attribute__ ((vector_size (16))) float v4sf;

void
foo (int H)
{
  volatile v4sf tmp;
  while (H-- > 0)
{
  asm ("" : : : REGLIST);
  tmp = (v4sf) __builtin_altivec_vspltisw (1);
}
}

fails on 4.1, didn't test on 4.2.


-- 


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



[Bug c++/26534] [4.1/4.2 Regression] bitfield wrong optimize

2006-04-18 Thread bonzini at gnu dot org


--- Comment #4 from bonzini at gnu dot org  2006-04-18 15:27 ---
And is the precision only encoded in FIELD_DECLs, for the C front-end as well?


-- 

bonzini at gnu dot org changed:

   What|Removed |Added

 CC||bonzini at gnu dot org


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



[Bug c++/27129] [4.1/4.2 Regression] ICE in get_expr_operands

2006-04-18 Thread bonzini at gnu dot org


--- Comment #3 from bonzini at gnu dot org  2006-04-18 16:12 ---
Without getting in the merit of the bug, let me point out that GCC is *not*
free to make hard errors at its own will.  What is an error and what isn't is
regulated by the standard, and GCC aims at adhering to the standard.


-- 


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



[Bug c++/26195] [4.0/4.1/4.2 regression] pragma interface no longer handles explicit names

2006-04-18 Thread bonzini at gnu dot org


--- Comment #10 from bonzini at gnu dot org  2006-04-18 16:18 ---
No, except in the unlikely case that the fix is hard to backport to 4.0.x. 
Backports to older release branches (in this case 4.0.x) are evaluated on a
case-by-case basis.


-- 


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



[Bug rtl-optimization/26069] [4.0/4.1/4.2 Regression] Runtime endian-ness check is no longer optimized out.

2006-04-18 Thread bonzini at gnu dot org


--- Comment #8 from bonzini at gnu dot org  2006-04-18 16:22 ---
Richard, Roger's patch for VIEW_CONVERT_EXPR folding hit mainline now.


-- 


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



[Bug middle-end/26869] [4.1 Regression] Segfault in find_lattice_value() for complex operands.

2006-04-24 Thread bonzini at gnu dot org


--- Comment #11 from bonzini at gnu dot org  2006-04-24 11:44 ---
patch applied to 4.2, 4.1 still not working


-- 

bonzini at gnu dot org changed:

   What|Removed |Added

  Known to fail|4.1.0 4.2.0 |4.1.0
  Known to work|4.0.3   |4.0.3 4.2.0
Summary|[4.1/4.2 Regression]|[4.1 Regression] Segfault in
   |Segfault in |find_lattice_value() for
   |find_lattice_value() for|complex operands.
   |complex operands.   |


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



[Bug target/27282] [4.2 regression] ICE in final_scan_insn, at final.c:2448 - could not split insn

2006-04-24 Thread bonzini at gnu dot org


--- Comment #5 from bonzini at gnu dot org  2006-04-25 06:37 ---
Sure.  The code meant to do so using trunc_int_for_mode, but it does not work
because constop is unsigned.  The trunc_int_for_mode was introduced in
http://gcc.gnu.org/ml/gcc-patches/2002-01/msg01397.html to cure a similar ICE;
and the bug is latent on all branches since it dates back (through various
changes, notably r49112 by amodra) to the dawn of the original old-gcc
repository.

Bootstrapping this patch on i686-pc-linux-gnu, ok if it passes?  What about
4.1?

Index: gcc-fwprop/gcc/combine.c
===
--- gcc-fwprop/gcc/combine.c(revision 113024)
+++ gcc-fwprop/gcc/combine.c(working copy)
@@ -8190,6 +8190,5 @@ simplify_and_const_int_1 (enum machine_m
 return NULL_RTX;

   /* Otherwise, return an AND.  */
-  constop = trunc_int_for_mode (constop, mode);
-  return simplify_gen_binary (AND, mode, varop, GEN_INT (constop));
+  return simplify_gen_binary (AND, mode, varop, gen_int_mode (constop, mode));
 }

Paolo


-- 

bonzini at gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |bonzini at gnu dot org
   |dot org |
 Status|NEW |ASSIGNED
   Last reconfirmed|2006-04-25 00:53:57 |2006-04-25 06:37:18
   date||


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



[Bug target/27282] [4.2 regression] ICE in final_scan_insn, at final.c:2448 - could not split insn

2006-04-26 Thread bonzini at gnu dot org


--- Comment #11 from bonzini at gnu dot org  2006-04-26 07:13 ---
unassigning since David and Andrew's patch works, but mine does not.

My patch BTW could be a minor cleanup, but it is not even necessary because
GEN_INT (trunc_int_for_mode (...)) does not drop sign bits (it just introduces
unnecessary but harmless casts between unsigned and signed HOST_WIDE_INTs).


-- 

bonzini at gnu dot org changed:

   What|Removed |Added

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


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



[Bug target/27390] [4.2 Regression] gcc.target/x86_64/abi/test_complex_returning.c execution fails at -O0

2006-05-22 Thread bonzini at gnu dot org


--- Comment #3 from bonzini at gnu dot org  2006-05-22 07:24 ---
Hi richi, may I ask why I was added to the CC?  Did I cause this bug? :-P


-- 


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



[Bug bootstrap/27674] [4.2 Regression] make -j3 all-gcc fails when building natively

2006-05-25 Thread bonzini at gnu dot org


--- Comment #1 from bonzini at gnu dot org  2006-05-25 08:21 ---
Testing a patch.


-- 

bonzini at gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |bonzini at gnu dot org
   |dot org |
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2006-05-25 08:21:54
   date||


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



[Bug bootstrap/27674] [4.2 Regression] make -j3 all-gcc fails when building natively

2006-05-25 Thread bonzini at gnu dot org


--- Comment #2 from bonzini at gnu dot org  2006-05-25 08:29 ---
Created an attachment (id=11510)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=11510&action=view)
prototype patch


-- 


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



[Bug bootstrap/25453] [4.2 Regression] --disable-bootstrap is not documented

2006-05-25 Thread bonzini at gnu dot org


--- Comment #4 from bonzini at gnu dot org  2006-05-25 08:45 ---
Created an attachment (id=11511)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=11511&action=view)
patch to document the option


-- 


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



[Bug target/27390] [4.2 Regression] gcc.target/x86_64/abi/test_complex_returning.c execution fails at -O0

2006-05-26 Thread bonzini at gnu dot org


--- Comment #6 from bonzini at gnu dot org  2006-05-26 07:46 ---
There are indeed differences in the generated code.

aj_f_times2 is equal without and with the patch.

aj_d_times2 has this (left = old, right = patched):

movsd   %xmm0, -40(%rbp) | movsd   %xmm0, -32(%rbp)
movq-40(%rbp), %rax  | movsd   %xmm1, -24(%rbp)
movsd   %xmm1, -40(%rbp) <
movq-40(%rbp), %rdx  <
movq%rax, -32(%rbp)  <
movq%rdx, -24(%rbp)  <

This is just better code.

The miscompiled function is aj_ld_times2, which is like this (some code moved
for clarity):

fldt16(%rbp)   fldt16(%rbp)
fadd%st(0), %stfadd%st(0), %st
fstpt   -48(%rbp)  fstpt   -48(%rbp)

So far so good.

movq-32(%rbp), %raxmovq-32(%rbp), %rax
movl-24(%rbp), %edxmovl-24(%rbp), %edx
movq%rax, -32(%rbp)movq%rax, -32(%rbp)
movl%edx, -24(%rbp)movl%edx, -24(%rbp)

Useless, and also accessing uninitialized memory, but this is -O0.

fldt32(%rbp)   fldt32(%rbp)
fadd%st(0), %stfadd%st(0), %st
fstpt   -32(%rbp)  fstpt   -32(%rbp)

Also good.

movq-48(%rbp), %raxmovq-48(%rbp), %rax
movl-40(%rbp), %edxmovl-40(%rbp), %edx
movq%rax, -48(%rbp)movq%rax, -48(%rbp)
movl%edx, -40(%rbp)movl%edx, -40(%rbp)

Useless.

movq-48(%rbp), %raxmovq-48(%rbp), %rax
movl-40(%rbp), %edxmovl-40(%rbp), %edx
movq-32(%rbp), %rcxmovq-32(%rbp), %rcx
movl-24(%rbp), %ebxmovl-24(%rbp), %ebx

These are -O0 stupidities.

flds.LC0(%rip)   <
fstp%st(0)   <
fstp%st(1)   <

I don't have a clue what this is for.  What is .LC0?  The only thing I'm sure
about, is that this causes a stack underflow...

movq%rax, -64(%rbp)movq%rax, -64(%rbp)
movl%edx, -56(%rbp)movl%edx, -56(%rbp)
fldt-64(%rbp)  fldt-64(%rbp)
movq%rcx, -64(%rbp)movq%rcx, -64(%rbp)
movl%ebx, -56(%rbp)movl%ebx, -56(%rbp)
fldt-64(%rbp)  fldt-64(%rbp)
 > flds.LC0(%rip)
 > fstp%st(0)
 > fstp%st(1)

... the bug is that it is moved afterwards, after the result was loaded on the
stack, and the underflowing fstp clobbers the return value.

The wrong instruction is produced by a (clobber (reg/i:XC 8 st)).  The patched
GCC moves the clobber later.  The RTL produced by the patched GCC is sane until
flow2, and the messed up by the stack register conversion pass:

(insn 41 57 58 3 (set (reg:XF 10 st(2) [orig:66  ] [66])
(mem/c:XF (plus:DI (reg/f:DI 6 bp)
(const_int -64 [0xffc0])) [0 S16 A8])) 99
{*movxf_integer} (nil)
(nil))

...

(insn 43 59 25 3 (set (reg:XF 11 st(3) [orig:67 +16 ] [67])
(mem/c:XF (plus:DI (reg/f:DI 6 bp)
(const_int -64 [0xffc0])) [0 S16 A8])) 99
{*movxf_integer} (nil)
(nil))

(note 25 43 28 3 NOTE_INSN_FUNCTION_END)

(insn 28 25 29 3 (clobber (reg/i:XC 8 st)) -1 (nil)
(nil))

(insn 29 28 30 3 (set (reg:XF 8 st [  ])
(reg:XF 10 st(2) [orig:66  ] [66])) 99 {*movxf_integer} (nil)
(nil))

(insn 30 29 35 3 (set (reg:XF 9 st(1) [+16 ])
(reg:XF 11 st(3) [orig:67 +16 ] [67])) 99 {*movxf_integer}
(nil)
(nil))

(insn 35 30 64 3 (use (reg/i:XC 8 st)) -1 (nil)
(nil))

Latent bug in stack, CCing sayle.


-- 

bonzini at gnu dot org changed:

   What|Removed |Added

 CC||sayle at gcc dot gnu dot org


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



[Bug target/27390] [4.2 Regression] gcc.target/x86_64/abi/test_complex_returning.c execution fails at -O0

2006-05-29 Thread bonzini at gnu dot org


--- Comment #7 from bonzini at gnu dot org  2006-05-29 07:24 ---
The problem is that regstack is wrong when it comes to handling
COMPLEX_FLOAT_MODEs.

To handle clobbers, it calls move_nan_to_stack_reg twice on the same insn.  But
the second call does *not* add a new insn, so we get only one flds instead of
two.

There is also something wrong in emit_pop_insn of a complex float, because if
we fix the above we get a

   flds .LC0
   flds .LC0
   fstp %st
   fstp %st(1)

which is still wrong: we should have two fstps to %st.

The solution is probably to emit two distinct clobbers with XFmode instead of
one with a complex mode.

Paolo


-- 


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



[Bug target/27390] [4.2 Regression] gcc.target/x86_64/abi/test_complex_returning.c execution fails at -O0

2006-05-29 Thread bonzini at gnu dot org


--- Comment #8 from bonzini at gnu dot org  2006-05-29 09:38 ---
Created an attachment (id=11527)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=11527&action=view)
patch to fix the bug

I would appreciate testing this patch on x86_64, also because it touches some
squeaky code that implements the x86-64 ABI.  I am quite sure it does not
change the ABI, but given that we are in stage3 I think more accurate testing
is necessary.


-- 

bonzini at gnu dot org changed:

   What|Removed |Added

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


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



[Bug tree-optimization/26830] [4.2 Regression] Repeated SSA update during loop header copying

2006-05-29 Thread bonzini at gnu dot org


--- Comment #40 from bonzini at gnu dot org  2006-05-30 06:20 ---
We're on par with 4.0, we can close this now.  The memory hog bug (27004) is
still open.


-- 

bonzini at gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


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



[Bug bootstrap/25453] [4.2 Regression] --disable-bootstrap is not documented

2006-06-01 Thread bonzini at gnu dot org


--- Comment #6 from bonzini at gnu dot org  2006-06-01 12:33 ---
documentation committed.


-- 

bonzini at gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug bootstrap/26582] [4.2 Regression] warning with cross build

2006-06-05 Thread bonzini at gnu dot org


--- Comment #6 from bonzini at gnu dot org  2006-06-05 07:10 ---
This was fixed recently.


-- 

bonzini at gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


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



[Bug target/27390] [4.2 Regression] gcc.target/x86_64/abi/test_complex_returning.c execution fails at -O0

2006-06-05 Thread bonzini at gnu dot org


--- Comment #10 from bonzini at gnu dot org  2006-06-05 07:23 ---
Created an attachment (id=11594)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=11594&action=view)
a different attempt


I don't like this patch, as I think it is based on too many assumptions.  The
idea is to assume that a clobber:XC is only present in the epilogue (at the
beginning of the epilogue) and fix a couple of bugs in its handling.

I will write more information as soon as I submit the patch to the mailing
list; in the meanwhile, testing is appreciated.  Thanks very much in advance.


-- 

bonzini at gnu dot org changed:

   What|Removed |Added

  Attachment #11527|0   |1
is obsolete||


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



[Bug bootstrap/26188] [4.2 Regression] 4.2.0 fails to compile on FreeBSD 4.11

2006-06-05 Thread bonzini at gnu dot org


--- Comment #5 from bonzini at gnu dot org  2006-06-05 10:20 ---
Created an attachment (id=11596)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=11596&action=view)
patch to test

can anybody test this?


-- 


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



[Bug bootstrap/27674] [4.2 Regression] make -j3 all-gcc fails when building natively

2006-06-05 Thread bonzini at gnu dot org


--- Comment #5 from bonzini at gnu dot org  2006-06-05 17:17 ---
thanks, committed.


-- 

bonzini at gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug target/27390] [4.2 Regression] gcc.target/x86_64/abi/test_complex_returning.c execution fails at -O0

2006-06-05 Thread bonzini at gnu dot org


--- Comment #13 from bonzini at gnu dot org  2006-06-05 17:33 ---
Created an attachment (id=11597)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=11597&action=view)
and a third one

If this one works, I'd very much prefer it to the one I posted this morning. 
It fixes the testcase.


-- 


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



[Bug target/27390] [4.2 Regression] gcc.target/x86_64/abi/test_complex_returning.c execution fails at -O0

2006-06-06 Thread bonzini at gnu dot org


--- Comment #14 from bonzini at gnu dot org  2006-06-06 12:10 ---
Patch pr27390-more.patch was bootstrapped/regtested and the approach was
confirmed to be ok by Roger.


-- 


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



[Bug bootstrap/26188] [4.2 Regression] 4.2.0 fails to compile on FreeBSD 4.11

2006-06-07 Thread bonzini at gnu dot org


--- Comment #7 from bonzini at gnu dot org  2006-06-07 12:01 ---
Created an attachment (id=11623)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=11623&action=view)
updated libdecnumber configure script

try this.  don't forget to not include fortran because it includes stdint.m4
too.


-- 


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



[Bug target/27390] [4.2 Regression] gcc.target/x86_64/abi/test_complex_returning.c execution fails at -O0

2006-06-07 Thread bonzini at gnu dot org


--- Comment #16 from bonzini at gnu dot org  2006-06-07 12:08 ---
fixed.


-- 

bonzini at gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug bootstrap/26188] [4.2 Regression] 4.2.0 fails to compile on FreeBSD 4.11

2006-06-07 Thread bonzini at gnu dot org


--- Comment #9 from bonzini at gnu dot org  2006-06-08 06:10 ---
Created an attachment (id=11630)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=11630&action=view)
a supposedly correct patch

No, the patch was wrong.  Also the original proposed patch was right that some
messages mistake intptr_t with intmax_t.

This patch adds the detection of intptr_t where it really belongs, i.e. where
an incomplete stdint.h like FreeBSD's is detected.


-- 

bonzini at gnu dot org changed:

   What|Removed |Added

  Attachment #11596|0   |1
is obsolete||
  Attachment #11623|0   |1
is obsolete||


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



[Bug bootstrap/26188] [4.2 Regression] 4.2.0 fails to compile on FreeBSD 4.11

2006-06-07 Thread bonzini at gnu dot org


--- Comment #10 from bonzini at gnu dot org  2006-06-08 06:20 ---
Created an attachment (id=11631)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=11631&action=view)
really a different patch

Sorry, I attached the wrong patch again.


-- 


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



[Bug target/15184] [4.0/4.1/4.2 Regression] Direct access to byte inside word not working with -march=pentiumpro

2006-06-08 Thread bonzini at gnu dot org


--- Comment #11 from bonzini at gnu dot org  2006-06-08 08:36 ---
I would note, however, that Pentium Pro also means Pentium 2/3/M, Core, etc. 
In practice every Intel chip after the Pentium Pro, except the P4 and Nocona,
is based on that pipeline.


-- 


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



[Bug middle-end/27733] [4.1/4.2 Regression] Large compile time regression

2006-06-08 Thread bonzini at gnu dot org


--- Comment #10 from bonzini at gnu dot org  2006-06-08 12:08 ---
Reduced testcase:

long foo(long zz)  
{
 return zz * 15238614669586151335;
}

takes "ridiculously long" with -O2 -mdisable-fpregs.


-- 


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



[Bug middle-end/27733] [4.1/4.2 Regression] Large compile time regression

2006-06-08 Thread bonzini at gnu dot org


--- Comment #11 from bonzini at gnu dot org  2006-06-08 12:24 ---
OUCH! The number is stored as a unsigned int in the cache, which means that
numbers > 2^32 never hit the cache!

Besides that, it's wise to enlarge the cache for 64-bit hosts, because there
every EXACT_DIV_EXPR will call synth_mult with a very large multiplier.  Time
for a -O0 compiler on the reduced testcase is down to 0.3s for 2069 cache
entries, and 0.8s for 1031 cache entries.


-- 


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



[Bug middle-end/27733] [4.1/4.2 Regression] Large compile time regression

2006-06-08 Thread bonzini at gnu dot org


--- Comment #12 from bonzini at gnu dot org  2006-06-08 12:26 ---
Created an attachment (id=11634)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=11634&action=view)
proposed patch


-- 

bonzini at gnu dot org changed:

   What|Removed |Added

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


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



[Bug middle-end/27733] [4.1/4.2 Regression] Large compile time regression

2006-06-08 Thread bonzini at gnu dot org


--- Comment #14 from bonzini at gnu dot org  2006-06-08 15:37 ---
Well, it shouldn't.  My guess could be that we are hitting the case where the
logic is flawed.  The we fill the cache with the algorithm for say 0x10085
(but then we only write 0x84 in the cache), and then use it for 0x85.  The
synth_mult logic then could be resilient enough to not generate wrong code but
just code with wrong cost measures.


-- 


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



[Bug target/27212] vec_cmplt followed by a vec_all_ge, gives two vcmpgtuh instructions

2006-06-09 Thread bonzini at gnu dot org


--- Comment #5 from bonzini at gnu dot org  2006-06-09 08:15 ---
I'll give it a shot.  If combine could, well, combine the two instructions, it
would be quite easy to make a patch, and it would remove some most hackish
aspects of the Altivec implemention.


-- 


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



[Bug middle-end/27733] [4.1 Regression] Large compile time regression

2006-06-13 Thread bonzini at gnu dot org


--- Comment #19 from bonzini at gnu dot org  2006-06-13 13:06 ---
Fixed, but we may want the patch on 4.0 too.


-- 

bonzini at gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
  Known to fail|4.1.0   |4.1.1
  Known to work|4.0.4 4.2.0 |4.0.4 4.1.2 4.2.0
 Resolution||FIXED


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



[Bug other/27063] Fail to build gcc-core-4.2 snapshots

2006-06-14 Thread bonzini at gnu dot org


--- Comment #3 from bonzini at gnu dot org  2006-06-15 06:33 ---
I agree it is a packaging issue, but we can work around it and it can be useful
for other front ends as well.  Taking the bug.


-- 

bonzini at gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |bonzini at gnu dot org
   |dot org |
 Status|NEW |ASSIGNED
   Last reconfirmed|2006-04-13 01:44:51 |2006-06-15 06:33:13
   date||


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



[Bug other/27063] Fail to build gcc-core-4.2 snapshots

2006-06-14 Thread bonzini at gnu dot org


--- Comment #4 from bonzini at gnu dot org  2006-06-15 06:35 ---
Also, fixing this PR would allow us to ship Objective-C++ in the objc tarball.


-- 


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



[Bug bootstrap/26188] [4.2 Regression] 4.2.0 fails to compile on FreeBSD 4.11

2006-06-15 Thread bonzini at gnu dot org


--- Comment #12 from bonzini at gnu dot org  2006-06-15 07:21 ---
Created an attachment (id=11670)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=11670&action=view)
updated configure script for libdecnumber

Gerald, here it is.  Again, don't forget to disable fortran.


-- 


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



[Bug other/27063] Fail to build gcc-core-4.2 snapshots

2006-07-03 Thread bonzini at gnu dot org


--- Comment #6 from bonzini at gnu dot org  2006-07-03 07:58 ---
patch committed, should be ok.


-- 

bonzini at gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug tree-optimization/28218] [4.1 Regression] ICE when building Inkscape with gcc-4.1 with -O2 -ffast-math

2006-07-04 Thread bonzini at gnu dot org


--- Comment #4 from bonzini at gnu dot org  2006-07-04 17:03 ---
I don't know where I got the idea that you can do 

   calculate_dominance_info (CDI_DOMINATORS | CDI_POST_DOMINATORS);

instead of

   calculate_dominance_info (CDI_DOMINATORS);
   calculate_dominance_info (CDI_POST_DOMINATORS);


-- 

bonzini at gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |bonzini at gnu dot org
   |dot org |
 Status|NEW |ASSIGNED
   Last reconfirmed|2006-07-04 14:26:45 |2006-07-04 17:03:56
   date||


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



[Bug tree-optimization/28218] [4.1 Regression] ICE when building Inkscape with gcc-4.1 with -O2 -ffast-math

2006-07-04 Thread bonzini at gnu dot org


--- Comment #7 from bonzini at gnu dot org  2006-07-05 06:49 ---
patch committed to 4.1 branch and mainline (where it was latent)


-- 

bonzini at gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug tree-optimization/32306] [4.2/4.3/4.4 Regression] redundant && || not eliminated

2008-11-20 Thread bonzini at gnu dot org


--- Comment #13 from bonzini at gnu dot org  2008-11-20 08:48 ---
I agree with Steven that the bug title does not make sense.  It is the same as
complaining that IRA has a regression because it disables regmove.

OTOH, this *is* a regression and the bug should stay open.  For example, it
could be fixed by doing some of the tree optimizations with && not lowered to
jumps (just shooting).


-- 

bonzini at gnu dot org changed:

   What|Removed |Added

 CC|    |bonzini at gnu dot org
Summary|[4.2/4.3/4.4 Regression] DOM|[4.2/4.3/4.4 Regression]
   |jump threading no longer|redundant && || not
   |iterates|eliminated


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



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

2008-11-22 Thread bonzini at gnu dot org


--- Comment #7 from bonzini at gnu dot org  2008-11-22 10:15 ---
Subject: Re:  "if (i == n) ++i;" or "i += i == n;"?


> 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.

I'll just point out that the df merge allowed much better freedom in
pass ordering.  Ifconv1 could be anticipated before CSE and fwprop.

Paolo


-- 


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 bonzini at gnu dot org


--- Comment #8 from bonzini at gnu dot org  2008-11-22 16:00 ---
The problem was that without -fprofile-generate the time spent there was
basically zero.  Since the profiling code is building a MST of the control-flow
graph, it should produce absolutely no PRE opportunity and it's a pity that it
causes such a slowdown.

I wonder if there is some low-hanging fruit to eliminate value numbers that
cannot be redundant.


-- 


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



[Bug c/38308] New: -Wformat does not work for wide strings

2008-11-28 Thread bonzini at gnu dot org
GCC does not warn for this:

int main()
{
  wprintf (L"%s", 5);
}

GCC should try converting the string to single-byte (e.g. to UTF-8, which would
work for any wchar_t encoding in which 0-127 maps to char's encoding) and test
the format string.


-- 
   Summary: -Wformat does not work for wide strings
   Product: gcc
   Version: 4.4.0
Status: UNCONFIRMED
  Severity: enhancement
  Priority: P3
 Component: c
AssignedTo: unassigned at gcc dot gnu dot org
    ReportedBy: bonzini at gnu dot org


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



[Bug c++/38334] pmf accesses violate strict-aliasing rules

2008-11-30 Thread bonzini at gnu dot org


--- Comment #1 from bonzini at gnu dot org  2008-12-01 07:31 ---
Why a ref-all pointer?  Why not put the cast after the dereference instead?


-- 


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



[Bug tree-optimization/38405] [4.4 Regression] (silent failure) handling bitfield in ternary

2008-12-05 Thread bonzini at gnu dot org


--- Comment #4 from bonzini at gnu dot org  2008-12-05 09:02 ---
I'll look at it in a couple of days.  In the meanwhile, could you please attach
the dumps of vrp and the pass just before it?


-- 

bonzini at gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |bonzini at gnu dot org
   |dot org |
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2008-12-05 09:02:53
   date||


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



[Bug tree-optimization/38405] [4.4 Regression] (silent failure) handling bitfield in ternary

2008-12-05 Thread bonzini at gnu dot org


--- Comment #6 from bonzini at gnu dot org  2008-12-05 15:42 ---
Subject: Re:  [4.4 Regression] (silent failure)
 handling bitfield in ternary


> Folding statement: D.1241_5 = D.1242_4 != 0;
> Folded into: D.1241_5 = (int) D.1242_4;
> 
> which is wrong for
> 
>D.1242;
> 
> because it sign-extends.

So it's probably in fold-const.c and latent in 4.3 too...

Paolo


-- 


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



[Bug tree-optimization/33928] [4.3/4.4 Regression] 22% performance slowdown from 4.2.2 to 4.3/4.4.0 in floating-point code

2008-12-06 Thread bonzini at gnu dot org


--- Comment #40 from bonzini at gnu dot org  2008-12-07 02:55 ---
IIUC this is a typical case in which CSE was fixing something that earlier
passes messed up.  Unfortunately fwprop does (better) what CSE was meant to do,
but does not do what I assumed was already done before CSE.

If the problem is aliasing/FRE, then I think Richi is the one who could fix it
for good in the tree passes.  If there is more to it, however, I can take a
look at why fwprop is generating the ugly code.


-- 


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



[Bug middle-end/38572] [4.4 Regression] ICE in set_value_range, at tree-vrp.c:398

2008-12-18 Thread bonzini at gnu dot org


--- Comment #18 from bonzini at gnu dot org  2008-12-19 06:05 ---
mine.


-- 

bonzini at gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |bonzini at gnu dot org
   |dot org |
 Status|NEW |ASSIGNED
   Last reconfirmed|2008-12-18 23:20:57 |2008-12-19 06:05:15
   date||


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



[Bug middle-end/38572] [4.4 Regression] ICE in set_value_range, at tree-vrp.c:398

2008-12-22 Thread bonzini at gnu dot org


--- Comment #19 from bonzini at gnu dot org  2008-12-22 08:52 ---
Smaller testcase, without uninitialized variables too:

enum JSOp
{
  JSOP_GETELEM = 5,
  JSOP_LIMIT
};
extern void g ();
void
f (char *pc, char *endpc, int format, char ***fp, enum JSOp op)
{
  while (pc <= endpc)
{
  if ((fp && *fp && pc == **fp) || pc == endpc)
{
  if (format == 1)
op = (JSOp) 256;
  else if (format == 2)
op = (JSOp) 257;
  else
op = JSOP_GETELEM;
}
  if (op >= JSOP_LIMIT)
{
  if (format)
g ();
}
}
}


-- 


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



[Bug middle-end/38572] [4.4 Regression] ICE in set_value_range, at tree-vrp.c:398

2008-12-22 Thread bonzini at gnu dot org


--- Comment #20 from bonzini at gnu dot org  2008-12-22 09:05 ---
This is a latent bug in the handling of out-of-bounds values.  It happens
because a value changes from [256, 256] to [256, 257]. VRP then forces the
upper bound to the max-value of the type, generating the invalid range [256,
7].  We should punt and give VARYING.

Probably caused by the tree-ssa-propagate.c hunk of my patch, but also probably
latent.


-- 


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



[Bug middle-end/38572] [4.4 Regression] ICE in set_value_range, at tree-vrp.c:398

2008-12-22 Thread bonzini at gnu dot org


--- Comment #21 from bonzini at gnu dot org  2008-12-22 09:30 ---
Created an attachment (id=16961)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=16961&action=view)
patch being tested

Testing a patch.


-- 


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



[Bug debug/26908] -g3 (-ggdb3) emits broken calls to asm-defined functions

2008-12-29 Thread bonzini at gnu dot org


--- Comment #7 from bonzini at gnu dot org  2008-12-29 12:25 ---
reopening...


-- 

bonzini at gnu dot org changed:

   What|Removed |Added

 Status|RESOLVED|UNCONFIRMED
 Resolution|INVALID |


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



[Bug inline-asm/33932] miscalculation of asm labels with -g3

2008-12-29 Thread bonzini at gnu dot org


--- Comment #20 from bonzini at gnu dot org  2008-12-29 12:26 ---
*** Bug 26908 has been marked as a duplicate of this bug. ***


-- 

bonzini at gnu dot org changed:

   What|Removed |Added

 CC||ed at catmur dot co dot uk


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



[Bug debug/26908] -g3 (-ggdb3) emits broken calls to asm-defined functions

2008-12-29 Thread bonzini at gnu dot org


--- Comment #8 from bonzini at gnu dot org  2008-12-29 12:26 ---
... to close as duplicate (since there's some discussion on the other bug)

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


-- 

bonzini at gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||DUPLICATE


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



[Bug target/33604] [4.3/4.4 Regression] Revision 119502 causes significantly slower results with 4.3/4.4 compared to 4.2

2008-12-30 Thread bonzini at gnu dot org


--- Comment #46 from bonzini at gnu dot org  2008-12-30 08:02 ---
What benchmark.cpp was that? And did you test -O2 or -O3?

Thanks!


-- 


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



[Bug middle-end/38572] [4.4 Regression] ICE in set_value_range, at tree-vrp.c:398

2008-12-30 Thread bonzini at gnu dot org


--- Comment #23 from bonzini at gnu dot org  2008-12-30 10:38 ---
Fixed.  However, you should check if the code is valid C++ at all, because
out-of-range enum values are handled differently in C and C++ (the bug stemmed
from the fact that op was set to a value that is beyond what the C++ front-end
had set as the maximum value of the enum).


-- 


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



[Bug middle-end/38572] [4.4 Regression] ICE in set_value_range, at tree-vrp.c:398

2008-12-30 Thread bonzini at gnu dot org


--- Comment #24 from bonzini at gnu dot org  2008-12-30 10:39 ---
patch committed -- bug may be latent on 4.3, but there is no known testcase.


-- 

bonzini at gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug tree-optimization/35805] [ira] error in start_allocno_priorities, at ira-color.c:1806

2009-01-02 Thread bonzini at gnu dot org


--- Comment #5 from bonzini at gnu dot org  2009-01-02 08:17 ---
Subject: Re:  [ira] error in start_allocno_priorities,
 at ira-color.c:1806

Kenneth Zadeck wrote:
> 2009-01-01  Kenneth Zadeck 
> 
> PR rtl-optimization/35805
> * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
> problem if fast dce is able to remove any instructions.
> * dce.c (dce_process_block): Fix dump message.
>
> This patch fixes the problem.  The comment in the patch describes the
> issue.Since this was not really a failure, it would be hard to make
> this issue into a testcase.

IIUC the bugzilla comment trail, this caused
gcc.c-torture/compile/930523-1.c to fail with --enable-checking=df;
that's already a testcase.

> Ok to commit?

Hmmm... I am not sure I like this patch, for two reasons.

1) it might incur a compile-time penalty for the sake of verification,
even with df checking disabled.  OTOH having possibly different code for
checking and non-checking compilation is even worse.

2) there are already provisions in dce.c to redo the analysis.  But they
do not get to the least fixed point because they just rebuild the local
bitmaps and iterate from the existing solution.  Instead of iterating
"while (global_changed)", we could try doing only one iteration (it's a
fast DCE after all, and the pessimistic dataflow makes me guess that
subsequent DCE iterations won't find much?) and zap the solution there.
 This has the advantage that we can skip the recomputation if
global_changed is false.

Did I miss anything?

Paolo


-- 


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



[Bug tree-optimization/35805] [ira] error in start_allocno_priorities, at ira-color.c:1806

2009-01-02 Thread bonzini at gnu dot org


--- Comment #7 from bonzini at gnu dot org  2009-01-02 14:26 ---
Subject: Re:  [ira] error in start_allocno_priorities, at ira-color.c:1806

> I think so.   The global changed flag allows it to delete the case:
>
> loop:
>  ... <- x  // This is dead.
>  x- <- ...
> go to loop
>
> it just is not going to get rid of it if there is is no kill of x inside
> the loop.

I just don't think it's acceptable to load each and every "fast DCE"
with the burden of a full df solution.  We need to find a way to limit
this to the cases when it is needed, or at least not to be too
conservative in ascertaining *when* it is needed.

Hence my first and foremost question is: does it happen that the
solution is wrong and global_changed never became true?

If the answer is "definitely no", then an alternative preferrable
patch would be to move the code you added to df-problems.c into dce.c,
so that the full analysis (including rebuilding the bitmaps and
iterating possibly many times) is not run if it was to yield the same
answer that was before in the bitmaps.

Paolo


-- 


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



[Bug tree-optimization/35805] [ira] error in start_allocno_priorities, at ira-color.c:1806

2009-01-02 Thread bonzini at gnu dot org


--- Comment #10 from bonzini at gnu dot org  2009-01-02 16:33 ---
Subject: Re:  [ira] error in start_allocno_priorities,
  at ira-color.c:1806

> I will test this patch, but we still need to resolve your issues with my
> approach.

The problem is that you're really doubling the cost of computing the
live registers.  I know that previously it was wrong, but at this point
there's no difference with the full-blown pass...  Despite the idea of
DF_LR_RUN_DCE being that it was "free", now it would do the same work as
a pass_fast_rtl_dce modulo some O(#bbs) work.

At this point, if your patch costs say 0.3%, and removing all traces of
DF_LR_RUN_DCE (instead scheduling a dozen more pass_fast_rtl_dce in
passes.c) costs 0.5%, I'd rather see the latter, at least it's easier to
look for opportunities to remove some useless DCE.

If it wasn't for verification, we could just decide that DF_LR_RUN_DCE
is only for passes that can tolerate a little inaccurate info...

Paolo


-- 


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



[Bug tree-optimization/35805] [ira] error in start_allocno_priorities, at ira-color.c:1806

2009-01-02 Thread bonzini at gnu dot org


--- Comment #12 from bonzini at gnu dot org  2009-01-02 18:38 ---
Subject: Re:  [ira] error in start_allocno_priorities,
 at ira-color.c:1806


> StevenB talked me out of this because he considered it wrong to have
> the client pass get conservative info.  I agreed with him but I am
> willing to change my mind if you really want to push your case.

If there was preexisting discussion outside bugzilla, it's of course
okay for me, and I'll not push my opinion beyond, but I'd still like to
see some numbers.  You can commit the second patch either before or
after, I don't care.

>> At this point, if your patch costs say 0.3%, and removing all traces 
>> DF_LR_RUN_DCE (instead scheduling a dozen more pass_fast_rtl_dce in
>> passes.c) costs 0.5%, I'd rather see the latter, at least it's easier to
>> look for opportunities to remove some useless DCE.

I'll try to do this for 4.5.

Paolo


-- 


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



[Bug bootstrap/35804] Bootstrap of combined gcc + binutils, with --enable-shared, with sysroot fails

2009-01-18 Thread bonzini at gnu dot org


--- Comment #9 from bonzini at gnu dot org  2009-01-19 06:05 ---
I agree with Alan.


-- 

bonzini at gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID


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



[Bug middle-end/38868] [4.4 Regression] r143152 breaks output routines in xplor-nih

2009-01-19 Thread bonzini at gnu dot org


--- Comment #36 from bonzini at gnu dot org  2009-01-19 10:33 ---
Would you please attach the assembler diff:
1) between -m32 -O1 and -m32 -O1 -fforward-propagate
2) between the latter and -m32 -O1 -fforward-propagate -fschedule-insns2?

Thanks.


-- 


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



[Bug middle-end/38868] [4.4 Regression] r143152 breaks output routines in xplor-nih

2009-01-19 Thread bonzini at gnu dot org


--- Comment #37 from bonzini at gnu dot org  2009-01-19 10:36 ---
This is the fishy part: notice that the %esi in the failing test case is
completely bogus.

-   leal-680(%ebp), %esi
-   movb$32, (%esi)
-   movb$32, -679(%ebp)
-   movw$8224, -678(%ebp)
+   leal-176(%ebp), %ebx
+   leal-257(%ebp), %esi
+   movb$32, -176(%ebp)
+   movb$32, -175(%ebp)
+   movw$8224, -174(%ebp)


-- 


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



[Bug middle-end/38868] [4.4 Regression] r143152 breaks output routines in xplor-nih

2009-01-19 Thread bonzini at gnu dot org


--- Comment #39 from bonzini at gnu dot org  2009-01-19 11:04 ---
Looks like a scheduling bug:

-O1 -fforward-propagate has
leal-676(%ebp), %edi
movl$19, %ecx
movl$538976288, %eax
rep stosl
movw$31096, -603(%ebp)
movb$122, -601(%ebp)

-O1 -fforward-propagate -fschedule-insns has
leal-676(%ebp), %edi
movl$19, %ecx
movw$31096, -603(%ebp)
movl$538976288, %eax
rep stosl
movb$122, -601(%ebp)

and 676+19*4 = 600 so -603(%ebp) is 0x2020 in the bad code, 0x7978 in the good
code.


-- 


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



[Bug target/38868] [4.4 Regression] r143152 breaks output routines in xplor-nih

2009-01-19 Thread bonzini at gnu dot org


--- Comment #43 from bonzini at gnu dot org  2009-01-19 14:06 ---
The bug is actually in target independent code.  The code to change_address_1
in adjust_address_1 does nothing if the addr is simple, and this causes the
creation of shared or wrong RTL.


-- 


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



[Bug target/38868] [4.4 Regression] r143152 breaks output routines in xplor-nih

2009-01-19 Thread bonzini at gnu dot org


--- Comment #44 from bonzini at gnu dot org  2009-01-19 15:03 ---
Created an attachment (id=17146)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=17146&action=view)
patch under test

testing this patch.


-- 


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



[Bug target/38868] [4.4 Regression] r143152 breaks output routines in xplor-nih

2009-01-20 Thread bonzini at gnu dot org


--- Comment #48 from bonzini at gnu dot org  2009-01-20 13:25 ---
Fixed; the bug is latent in 4.3.


-- 

bonzini at gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


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



[Bug middle-end/38932] New: ICE in set_value_range, at tree-vrp.c:398

2009-01-22 Thread bonzini at gnu dot org
>From PR38572, but unrelated to it:

void f (long long int p)
{
  int x;
  static unsigned char g;
  long long int min = -9223372036854775807LL - 1;
  g = 1;
  x = (signed char) (g | 249) / 4;
  if (p >= min - (long long int) x)
p = 1;

  if (p)
abort ();
}

gives

small.c: In function 'f':
small.c:3: internal compiler error: in set_value_range, at tree-vrp.c:398

Note that after FRE the code becomes the simpler

void f (long long int p)
{
  long long int min = 9223372036854775807LL + 2; /*0x7fff */
  if (min <= p)
p = 1;

  if (p)
abort ();
}

but this does not ICE because in this testcase the "min <= p" is changed to "p
!= min - 1" by the first CCP pass, so this is also a missed folding in FRE.

I'm looking at the VRP failure though.


-- 
   Summary: ICE in set_value_range, at tree-vrp.c:398
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Keywords: ice-on-valid-code
  Severity: normal
  Priority: P3
 Component: middle-end
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: bonzini at gnu dot org
GCC target triplet: i686-pc-linux-gnu


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



[Bug middle-end/38572] [4.4 Regression] ICE in set_value_range, at tree-vrp.c:398

2009-01-22 Thread bonzini at gnu dot org


--- Comment #26 from bonzini at gnu dot org  2009-01-22 08:08 ---
This is a separate bug. The reduced testcase does not have a single && or || so
it probably existed also before my patch.

It is now bug 38932.


-- 


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



[Bug middle-end/38932] ICE in set_value_range, at tree-vrp.c:398

2009-01-22 Thread bonzini at gnu dot org


-- 

bonzini at gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2009-01-22 08:08:36
   date||


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



[Bug middle-end/38932] ICE in set_value_range, at tree-vrp.c:398

2009-01-22 Thread bonzini at gnu dot org


--- Comment #1 from bonzini at gnu dot org  2009-01-22 08:09 ---
Can anyone check if this is a regression, and if so from which version?


-- 

bonzini at gnu dot org changed:

   What|Removed |Added

 CC||hjl dot tools at gmail dot
   ||com


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



[Bug middle-end/38932] ICE in set_value_range, at tree-vrp.c:398

2009-01-22 Thread bonzini at gnu dot org


--- Comment #2 from bonzini at gnu dot org  2009-01-22 08:17 ---
Actually, there is no overflow in -9223372036854775807LL - 1 so this is a third
bug. :-)


-- 


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



[Bug middle-end/38932] ICE in set_value_range, at tree-vrp.c:398

2009-01-22 Thread bonzini at gnu dot org


--- Comment #3 from bonzini at gnu dot org  2009-01-22 08:23 ---
ah no there's no overflow bit on min


-- 


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



[Bug middle-end/38932] ICE in set_value_range, at tree-vrp.c:398

2009-01-22 Thread bonzini at gnu dot org


--- Comment #4 from bonzini at gnu dot org  2009-01-22 09:00 ---
In PRE there is a fold_convert_const_int_from_int call simplifying "(signed
char) 249"  to -7, but setting the TREE_OVERFLOW flag in the meanwhile.  I
don't think it makes sense to set the overflow flag on a NOP:

   * `The result of, or the signal raised by, converting an integer to a
 signed integer type when the value cannot be represented in an
 object of that type (C90 6.2.1.2, C99 6.3.1.3).'

 For conversion to a type of width N, the value is reduced modulo
 2^N to be within range of the type; no signal is raised.

(Integers implementation, from the gcc manual).


-- 

bonzini at gnu dot org changed:

   What|Removed |Added

 CC||rguenth at gcc dot gnu dot
   ||org


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



[Bug middle-end/38932] [4.4 Regression] ICE in set_value_range, at tree-vrp.c:398

2009-01-22 Thread bonzini at gnu dot org


--- Comment #7 from bonzini at gnu dot org  2009-01-22 11:04 ---
mine.


-- 

bonzini at gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |bonzini at gnu dot org
   |dot org |
   Severity|normal  |critical
 Status|NEW |ASSIGNED
  Known to fail||4.4.0
  Known to work||4.2.3
   Priority|P3  |P1
   Last reconfirmed|2009-01-22 08:08:36 |2009-01-22 11:04:08
   date||
Summary|ICE in set_value_range, at  |[4.4 Regression] ICE in
   |tree-vrp.c:398  |set_value_range, at tree-
   ||vrp.c:398
Version|unknown |4.4.0


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



[Bug middle-end/38932] [4.4 Regression] ICE in set_value_range, at tree-vrp.c:398

2009-01-22 Thread bonzini at gnu dot org


--- Comment #8 from bonzini at gnu dot org  2009-01-22 12:10 ---
Fixing FRE still causes an ICE for this:

/* { dg-do compile } */
/* { dg-options "-O2 --std=gnu99" } */

/* This variable needed only to exercise FRE instead of CCP.  */
unsigned char g;

extern void abort();

void f (long long int p)
{
  g = 255;
  /* { dg-warning "constant is" "" { target *-*-* } 14 } */
  /* { dg-warning "overflow" "" { target *-*-* } 14 } */
  if (p >= -9223372036854775808LL - (signed char) g)
p = 1;

  if (p)
abort ();
}

Should I create a separate bug and submit what I have?


-- 


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



[Bug middle-end/38934] New: [4.4 Regression] ICE in set_value_range, at tree-vrp.c:398

2009-01-22 Thread bonzini at gnu dot org
This failure is not "worked around" by FRE unlike 38932.

/* { dg-do compile } */
/* { dg-options "-O2 --std=gnu99" } */

/* This variable needed only to work around earlier optimizations than VRP.  */
unsigned char g;

extern void abort();

void f (long long int p)
{
  g = 255;
  /* { dg-warning "constant is" "" { target *-*-* } 14 } */
  /* { dg-warning "overflow" "" { target *-*-* } 14 } */
  if (p >= -9223372036854775808LL - (signed char) g)
p = 1;

  if (p)
abort ();
}


-- 
   Summary: [4.4 Regression] ICE in set_value_range, at tree-
vrp.c:398
   Product: gcc
   Version: 4.4.0
Status: UNCONFIRMED
  Keywords: ice-on-valid-code, patch
  Severity: critical
  Priority: P3
 Component: middle-end
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: bonzini at gnu dot org
GCC target triplet: i686-pc-linux-gnu
 BugsThisDependsOn: 38932


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



[Bug middle-end/38934] [4.4 Regression] ICE in set_value_range, at tree-vrp.c:398

2009-01-22 Thread bonzini at gnu dot org


-- 

bonzini at gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2009-01-22 13:17:43
   date||


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



[Bug middle-end/38932] [4.3 Regression] ICE in set_value_range, at tree-vrp.c:398

2009-01-24 Thread bonzini at gnu dot org


--- Comment #14 from bonzini at gnu dot org  2009-01-24 08:59 ---
Regarding the target milestone, you mean I should apply a 4.3 patch before the
release goes out, too? (I'm currently regtesting it).


-- 


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



[Bug middle-end/38932] [4.3 Regression] ICE in set_value_range, at tree-vrp.c:398

2009-01-24 Thread bonzini at gnu dot org


--- Comment #16 from bonzini at gnu dot org  2009-01-24 09:54 ---
changing milestone appropriately then, it did sound strange.


-- 

bonzini at gnu dot org changed:

   What|Removed |Added

   Target Milestone|4.3.3   |4.3.4


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



[Bug rtl-optimization/37219] [4.3 Regression] fwprop1 is broken for addresses

2009-01-24 Thread bonzini at gnu dot org


--- Comment #7 from bonzini at gnu dot org  2009-01-24 10:28 ---
Andrew, I'll do SPEC2000 soon so you can backport it to 4.3.4.


-- 


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



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

2009-01-24 Thread bonzini at gnu dot org


--- Comment #19 from bonzini at gnu dot org  2009-01-25 07:39 ---
no, it's waiting for a backport.


-- 


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



[Bug middle-end/38932] [4.3 Regression] ICE in set_value_range, at tree-vrp.c:398

2009-01-26 Thread bonzini at gnu dot org


--- Comment #19 from bonzini at gnu dot org  2009-01-26 15:54 ---
fixed on 4.3 branch too.


-- 

bonzini at gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
  Known to work|4.2.3 4.4.0 |4.2.3 4.4.0 4.3.4
 Resolution||FIXED


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



[Bug middle-end/38934] [4.3/4.4 Regression] ICE in set_value_range, at tree-vrp.c:398

2009-01-26 Thread bonzini at gnu dot org


--- Comment #4 from bonzini at gnu dot org  2009-01-26 15:56 ---
> This only happens with 32bit HWI.

Does this mean it is a front-end bug that TREE_OVERFLOW is set?


-- 


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



  1   2   3   4   5   6   7   8   9   10   >