[Bug middle-end/29749] [4.2 regression] Missing byte swap optimizations

2008-09-06 Thread ubizjak at gmail dot com
--- Comment #21 from ubizjak at gmail dot com 2008-09-06 16:29 --- IMO, this enhancement request can be closed now that 4.3 is released. -- ubizjak at gmail dot com changed: What|Removed |Added

[Bug middle-end/28685] Multiple comparisons are not simplified

2008-09-06 Thread ubizjak at gmail dot com
--- Comment #3 from ubizjak at gmail dot com 2008-09-06 16:33 --- gcc (4.4.0 20080906) still generates: cmpl%esi, %edi sete%al cmpl%esi, %edi setl%dl orl %edx, %eax movzbl %al, %eax ret -- http

[Bug middle-end/37414] [4.4 regression] ICE with -ffast-math

2008-09-07 Thread ubizjak at gmail dot com
--- Comment #1 from ubizjak at gmail dot com 2008-09-08 06:50 --- Confirmed: Program received signal SIGSEGV, Segmentation fault. 0x082ac655 in optimize_function_for_speed_p (fun=0x0) at ../../gcc-svn/trunk/gcc/predict.c:205 /home/uros/gcc-svn/trunk/gcc/predict.c:205:6178:beg:0x82ac655

[Bug target/37401] ICE when compiling some LAPACK files with optimizations

2008-09-08 Thread ubizjak at gmail dot com
--- Comment #3 from ubizjak at gmail dot com 2008-09-08 09:02 --- All tests work OK with a cross from linux to x86_64-pc-mingw32 as of version GNU Fortran (GCC) version 4.4.0 20080908 (experimental) [trunk revision 140099] (x86_64-pc-mingw32) Please ask gfortran community to provide

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

2008-09-11 Thread ubizjak at gmail dot com
--- Comment #16 from ubizjak at gmail dot com 2008-09-11 17:33 --- (In reply to comment #15) > Uros, does your comment #11 apply also to SSE registers (Yi), which could > alleviate for PR 37437, or only to MMX (Ym)? Comment #11 is also true for Yi SSE register

[Bug target/37096] conditional evaluation incorrect with -O3

2008-09-11 Thread ubizjak at gmail dot com
--- Comment #7 from ubizjak at gmail dot com 2008-09-11 17:57 --- There is a runtime difference between -O1 and -O2: g++ -O1 pr37096.cpp main.o ./a.out nz: 3 g++ -O2 pr37096.cpp main.o ./a.out nz: 3 98 Target: x86_64-unknown-linux-gnu gcc version 4.4.0 20080911 (experimental) [trunk

[Bug target/37096] conditional evaluation incorrect with -O3

2008-09-11 Thread ubizjak at gmail dot com
--- Comment #8 from ubizjak at gmail dot com 2008-09-11 18:16 --- Hm, with -O2 -fno-strict-aliasing, it works fine. Is there an aliasing issue involved? short Transform4x4(short *pMatrix) { __m128i r4, r5; __m128i r0 = _mm_loadl_epi64((__m128i *)(pMatrix + 0 * 16

[Bug inline-asm/37492] optimization causes inline assembler to emit syntax errors

2008-09-12 Thread ubizjak at gmail dot com
--- Comment #1 from ubizjak at gmail dot com 2008-09-12 14:13 --- (In reply to comment #0) > asm( > " xorl %1, %1\n" > " movl $0x12345678, %0\n" > " bsrl %2, %0 ; setz %b1 " > : "=r" (res), "=r" (resz) >

[Bug target/37096] conditional evaluation incorrect with -O3

2008-09-12 Thread ubizjak at gmail dot com
--- Comment #10 from ubizjak at gmail dot com 2008-09-12 18:03 --- This is in fact undefined code. When Transform4x4() gets inlined in fun(), you are accessing pAR[0] (aliased to *pMatrix) as "short" and as __m128i. Since -fstrict-aliasing (the default) assumes that "sho

[Bug target/31945] missing type vector conversions patterns on spu

2008-09-14 Thread ubizjak at gmail dot com
--- Comment #1 from ubizjak at gmail dot com 2008-09-14 13:23 --- Confirmed. -- ubizjak at gmail dot com changed: What|Removed |Added Severity|normal

[Bug target/31945] missing type vector conversions patterns on spu

2008-09-14 Thread ubizjak at gmail dot com
--- Comment #2 from ubizjak at gmail dot com 2008-09-14 13:29 --- GCC now implements whole lot of vector conversions, including int<-->float and int<-->double. See 24659. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31945

[Bug target/37520] junk `(,%eax,4)' after expression / suffix or operands invalid for `lea' for libstdc++ deque/init-list.cc

2008-09-15 Thread ubizjak at gmail dot com
--- Comment #4 from ubizjak at gmail dot com 2008-09-15 09:01 --- IMO, you need to define NO_DOLLAR_IN_LABEL in your configuration files. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37520

[Bug rtl-optimization/37544] [4.2/4.3/4.4 Regression] Conversion double -> unsigned long long -> unsigned -> double gives wrong results

2008-09-17 Thread ubizjak at gmail dot com
--- Comment #6 from ubizjak at gmail dot com 2008-09-17 08:14 --- cprop_hardreg pass is propagating DImode ax register, wrongly bypassing DI-SI conversion. Before cprop_hardreg, we have: (call_insn/u:HI 27 88 28 4 pr37544.c:9 (set (reg:DI 0 ax) (call (mem:QI (symbol_ref:SI

[Bug rtl-optimization/37544] [4.2/4.3/4.4 Regression] Conversion double -> unsigned long long -> unsigned -> double gives wrong results

2008-09-17 Thread ubizjak at gmail dot com
--- Comment #7 from ubizjak at gmail dot com 2008-09-17 08:35 --- (In reply to comment #5) > Confirmed on i686-linux with -std=c99 -O -msse2 -mfpmath=387 -march=i386. Does not fail for x86_64-linux target with -m32 on x86_64-linux _and_ i686-linux hosts. -- http://gcc.gnu.

[Bug rtl-optimization/37544] [4.2/4.3/4.4 Regression] Conversion double -> unsigned long long -> unsigned -> double gives wrong results

2008-09-17 Thread ubizjak at gmail dot com
--- Comment #8 from ubizjak at gmail dot com 2008-09-17 10:39 --- The problem is in regrename.c, function maybe_mode_change. We enter the function with: orig_mode = DImode copy_mode = SImode new_mode = DImode At the beginning of maybe_mode_change() we have: if (orig_mode

[Bug rtl-optimization/37544] [4.4 Regression] Conversion double -> unsigned long long -> unsigned -> double gives wrong results

2008-09-17 Thread ubizjak at gmail dot com
--- Comment #9 from ubizjak at gmail dot com 2008-09-17 11:48 --- 4.2 and 4.3 work OK. -- ubizjak at gmail dot com changed: What|Removed |Added Known to work

[Bug rtl-optimization/37544] [4.4 Regression] Conversion double -> unsigned long long -> unsigned -> double gives wrong results

2008-09-17 Thread ubizjak at gmail dot com
--- Comment #10 from ubizjak at gmail dot com 2008-09-17 12:01 --- I'm testing following patch: Index: regrename.c === --- regrename.c (revision 140409) +++ regrename.c (working copy) @@ -1314,6 +1

[Bug rtl-optimization/37544] [4.4 Regression] Conversion double -> unsigned long long -> unsigned -> double gives wrong results

2008-09-17 Thread ubizjak at gmail dot com
--- Comment #11 from ubizjak at gmail dot com 2008-09-17 16:13 --- Patch at http://gcc.gnu.org/ml/gcc-patches/2008-09/msg01221.html -- ubizjak at gmail dot com changed: What|Removed |Added

[Bug rtl-optimization/37544] Conversion double -> unsigned long long -> unsigned -> double gives wrong results

2008-09-18 Thread ubizjak at gmail dot com
--- Comment #13 from ubizjak at gmail dot com 2008-09-18 14:31 --- Fixed for 4.4, latent on 4.3 and 4.2. BTW: This problem was uncovered by the patch that fixed PR target/13958 [1]. [1] http://gcc.gnu.org/ml/gcc-patches/2008-03/msg01295.html -- ubizjak at gmail dot com changed

[Bug rtl-optimization/37544] [4.4 Regression] Conversion double -> unsigned long long -> unsigned -> double gives wrong results

2008-09-19 Thread ubizjak at gmail dot com
--- Comment #16 from ubizjak at gmail dot com 2008-09-19 11:11 --- Fixed everywhere. -- ubizjak at gmail dot com changed: What|Removed |Added Status|ASSIGNED

[Bug middle-end/37669] [4.4 Regression] ice for legal code with -O2

2008-10-04 Thread ubizjak at gmail dot com
--- Comment #12 from ubizjak at gmail dot com 2008-10-04 21:47 --- (In reply to comment #10) > Must be darwin specific then, can't reproduce on x86_64-linux and from quick > skim of gcc-testresults nobody else that supplied test summary recently > managed > to reprod

[Bug target/37809] [4.2/4.3/4.4 Regression] Incorrect code with MMX right shift __builtin_ia32_psradi

2008-10-12 Thread ubizjak at gmail dot com
--- Comment #3 from ubizjak at gmail dot com 2008-10-12 19:00 --- Mine. -- ubizjak at gmail dot com changed: What|Removed |Added AssignedTo|unassigned at gcc dot

[Bug tree-optimization/37795] if-combine doesn't optimize != after >= test

2008-10-12 Thread ubizjak at gmail dot com
--- Comment #3 from ubizjak at gmail dot com 2008-10-12 20:19 --- Does this patch also solve PR 28685? -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37795

[Bug middle-end/37858] [4.3/4.4 Regression] ICE when "-fdump-ipa-all -dv" is used

2008-10-16 Thread ubizjak at gmail dot com
--- Comment #1 from ubizjak at gmail dot com 2008-10-17 06:32 --- Confirmed, gcc crashes in passes.c, around line 1288: if (initializing_dump && dump_file && graph_dump_format != no_graph ==> && (cfun->curr_properties & (PROP_cfg |

[Bug target/37809] [4.2/4.3/4.4 Regression] Incorrect code with MMX right shift __builtin_ia32_psradi

2008-10-16 Thread ubizjak at gmail dot com
--- Comment #5 from ubizjak at gmail dot com 2008-10-17 06:35 --- (In reply to comment #4) > Digging a bit, in combine.c, the ASHIFTRT case of force_to_mode() contains two > calls to simplify_shift_const(). Disabling those for vector modes fixes the > test case here (patch bel

[Bug target/37823] Missed optimization - ffs() from strings.h

2008-10-18 Thread ubizjak at gmail dot com
--- Comment #2 from ubizjak at gmail dot com 2008-10-18 16:43 --- (In reply to comment #1) > So the 64bit version is fine, the 32bit version is still funny. Default 32bit target doesn't have cmov insn. -O3 -m32 -msse produces expected asm: foo: bsfl8(%es

[Bug target/37823] Missed optimization - ffs() from strings.h

2008-10-18 Thread ubizjak at gmail dot com
--- Comment #3 from ubizjak at gmail dot com 2008-10-18 18:18 --- (In reply to comment #2) > > So the 64bit version is fine, the 32bit version is still funny. > Default 32bit target doesn't have cmov insn. > -O3 -m32 -msse produces expected asm: This is further optim

[Bug rtl-optimization/37286] [4.4 regression] gfortran, trunk: ICE subst_stack_regs_pat, at reg-stack.c:1537

2008-10-20 Thread ubizjak at gmail dot com
--- Comment #8 from ubizjak at gmail dot com 2008-10-20 19:37 --- Adding either -fno-reorder-blocks or -fno-ira works OK for orignal fortran testcase. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37286

[Bug middle-end/37908] [4.2/4.3/4.4 regression] atomic NAND op generate wrong code; __sync_nand_and_fetch, __sync_fetch_and_nand

2008-10-24 Thread ubizjak at gmail dot com
--- Comment #1 from ubizjak at gmail dot com 2008-10-24 07:44 --- Confirmed. -- ubizjak at gmail dot com changed: What|Removed |Added Component|c

[Bug middle-end/37908] [4.2/4.3/4.4 regression] atomic NAND op generate wrong code; __sync_nand_and_fetch, __sync_fetch_and_nand

2008-10-24 Thread ubizjak at gmail dot com
--- Comment #2 from ubizjak at gmail dot com 2008-10-24 07:44 --- Patch in testing. -- ubizjak at gmail dot com changed: What|Removed |Added AssignedTo

[Bug middle-end/37908] [4.2/4.3/4.4 regression] atomic NAND op generate wrong code; __sync_nand_and_fetch, __sync_fetch_and_nand

2008-10-24 Thread ubizjak at gmail dot com
--- Comment #5 from ubizjak at gmail dot com 2008-10-24 16:47 --- (In reply to comment #4) > Okay, now I noticed the 'nand' comment on the documentation for atomic > builtins, the code does implement the 'negate and AND' logic, which is named > 'nand&#

[Bug middle-end/37913] [4.4 Regression] internal compiler error: Segmentation fault

2008-10-25 Thread ubizjak at gmail dot com
--- Comment #2 from ubizjak at gmail dot com 2008-10-25 09:46 --- Confirmed on x86_64-pc-linux-gnu: Program received signal SIGSEGV, Segmentation fault. 0x004c6e04 in link_block (b=0x7fa2cf6fba20, after=0x7fa2cf6fb840) at ../../gcc-svn/trunk/gcc/cfg.c:153 /home/uros/gcc-svn

[Bug middle-end/37913] [4.4 Regression] internal compiler error: Segmentation fault

2008-10-25 Thread ubizjak at gmail dot com
--- Comment #3 from ubizjak at gmail dot com 2008-10-25 10:14 --- Minimized testcase: --cut here-- void Perl_croak (void) __attribute__ ((noreturn)); static int __attribute__ ((noreturn)) not_here (void) { Perl_croak (); } void XS_IO__Handle_setvbuf (void) { int i = not_here

[Bug middle-end/37908] [4.2/4.3/4.4 regression] atomic NAND op generate wrong code; __sync_nand_and_fetch, __sync_fetch_and_nand

2008-10-29 Thread ubizjak at gmail dot com
--- Comment #6 from ubizjak at gmail dot com 2008-10-29 07:10 --- According to Intel [1]: According to Dan, __sync_fetch_and_nand intrinsic should be implemented as ~(target & val). Uros's patch is correct. [1] http://gcc.gnu.org/ml/gcc-patches/2008-10/msg01214.html -- u

[Bug middle-end/37908] [4.2/4.3/4.4 regression] atomic NAND op generate wrong code; __sync_nand_and_fetch, __sync_fetch_and_nand

2008-10-29 Thread ubizjak at gmail dot com
--- Comment #8 from ubizjak at gmail dot com 2008-10-29 10:55 --- Patch at http://gcc.gnu.org/ml/gcc-patches/2008-10/msg01224.html -- ubizjak at gmail dot com changed: What|Removed |Added

[Bug target/37812] [4.4 Regression] Invalid mnemonic 'lvlx'

2008-11-01 Thread ubizjak at gmail dot com
--- Comment #2 from ubizjak at gmail dot com 2008-11-01 21:04 --- There was similar problem on x86 target with sun as and ffreep mnemonic. This was fixed by a configure check and conditional generation of either "ffreep" or ".word\t0x". Please grep for

[Bug middle-end/37286] [4.4 regression] gfortran, trunk: ICE subst_stack_regs_pat, at reg-stack.c:1537

2008-11-03 Thread ubizjak at gmail dot com
--- Comment #9 from ubizjak at gmail dot com 2008-11-03 14:25 --- Patch in testing. -- ubizjak at gmail dot com changed: What|Removed |Added AssignedTo

[Bug middle-end/37286] [4.4 regression] gfortran, trunk: ICE subst_stack_regs_pat, at reg-stack.c:1537

2008-11-03 Thread ubizjak at gmail dot com
--- Comment #10 from ubizjak at gmail dot com 2008-11-03 14:26 --- Not a RA issue. -- ubizjak at gmail dot com changed: What|Removed |Added CC|vmakarov

[Bug middle-end/37286] [4.4 regression] gfortran, trunk: ICE subst_stack_regs_pat, at reg-stack.c:1537

2008-11-03 Thread ubizjak at gmail dot com
--- Comment #11 from ubizjak at gmail dot com 2008-11-03 15:19 --- Patch at http://gcc.gnu.org/ml/gcc-patches/2008-11/msg00067.html -- ubizjak at gmail dot com changed: What|Removed |Added

[Bug target/37362] [4.4 Regression] Bootstrap broken on mipsisa64r2-linux-gcc

2008-11-05 Thread ubizjak at gmail dot com
--- Comment #3 from ubizjak at gmail dot com 2008-11-05 10:04 --- I guess this issue can be fixed by following (untested) trivial patch: --cut here-- Index: mips.md === --- mips.md (revision 141602) +++ mips.md

[Bug middle-end/37908] atomic NAND op generate wrong code; __sync_nand_and_fetch, __sync_fetch_and_nand

2008-11-05 Thread ubizjak at gmail dot com
--- Comment #10 from ubizjak at gmail dot com 2008-11-05 13:22 --- Next revision of the patch (v3) at [1] generates a message when nand builtin is encountered. [1] http://gcc.gnu.org/ml/gcc-patches/2008-11/msg00157.html -- ubizjak at gmail dot com changed: What

[Bug target/31175] isinf incorrectly expanded

2008-11-05 Thread ubizjak at gmail dot com
--- Comment #5 from ubizjak at gmail dot com 2008-11-05 16:20 --- *** Bug 38023 has been marked as a duplicate of this bug. *** -- ubizjak at gmail dot com changed: What|Removed |Added

[Bug c/38023] isinfl(-inf) returns 1

2008-11-05 Thread ubizjak at gmail dot com
--- Comment #1 from ubizjak at gmail dot com 2008-11-05 16:20 --- NOTE Note that these functions are obsolete. C99 defines macros isfinite(), isinf() and isnan() (for all types) replacing them. Further note that the C99 isinf() has weaker guarantees on the return

[Bug tree-optimization/37955] [4.4 Regression] internal compiler error: in vectorizable_store, at tree-vect-transform.c:5447

2008-11-06 Thread ubizjak at gmail dot com
--- Comment #6 from ubizjak at gmail dot com 2008-11-06 21:38 --- It fails on x86_64-pc-linux-gnu host with a cross to x86_64-pc-mingw32: ../gcc-svn/trunk/configure --target=x86_64-pc-mingw32 --enable-languages=c --disable-bootstrap Compiling sample2.c: ~/gcc-build-cyg/gcc/cc1 -O3

[Bug tree-optimization/37955] [4.4 Regression] internal compiler error: in vectorizable_store, at tree-vect-transform.c:5447

2008-11-06 Thread ubizjak at gmail dot com
--- Comment #7 from ubizjak at gmail dot com 2008-11-06 22:11 --- Reduced testcase, fails also on x86_64-pc-linux-gnu and i686-pc-linux-gnu/sse2, gcc version 4.4.0 20081106 (experimental) [trunk revision 141649] (GCC) --cut here-- typedef struct { enum { NotConnected = 0

[Bug middle-end/37809] [4.2/4.3 Regression] Incorrect code with MMX right shift __builtin_ia32_psradi

2008-11-10 Thread ubizjak at gmail dot com
--- Comment #11 from ubizjak at gmail dot com 2008-11-10 12:24 --- Fixed everywhere. -- ubizjak at gmail dot com changed: What|Removed |Added Status|NEW

[Bug middle-end/37807] Exponential compile time with MMX builtins.

2008-11-10 Thread ubizjak at gmail dot com
--- Comment #15 from ubizjak at gmail dot com 2008-11-10 12:24 --- Fixed. -- ubizjak at gmail dot com changed: What|Removed |Added Status|NEW

[Bug rtl-optimization/31396] Inline code performance much worse than out-of-line

2008-01-17 Thread ubizjak at gmail dot com
--- Comment #12 from ubizjak at gmail dot com 2008-01-18 07:12 --- Part of problems described here is caused by PR 23322. -- ubizjak at gmail dot com changed: What|Removed |Added

[Bug fortran/33375] [4.3 Regression] ICE (segfault) gfortran.dg/common_6.f90

2008-01-18 Thread ubizjak at gmail dot com
--- Comment #14 from ubizjak at gmail dot com 2008-01-18 08:05 --- Fixed. -- ubizjak at gmail dot com changed: What|Removed |Added Status|NEW

[Bug debug/34844] [4.3 Regression] /usr/ccs/bin/ld: Unsatisfied symbols: dwarf2out_switch_text_section

2008-01-18 Thread ubizjak at gmail dot com
--- Comment #3 from ubizjak at gmail dot com 2008-01-18 08:58 --- (In reply to comment #1) > I think dwarf2out_switch_text_section() is defined if DWARF2_DEBUGGING_INFO > is defined. So, it appears the attached change will fix the problem. No, dwarf2out_switch_text_section()

[Bug debug/34844] [4.3 Regression] /usr/ccs/bin/ld: Unsatisfied symbols: dwarf2out_switch_text_section

2008-01-18 Thread ubizjak at gmail dot com
--- Comment #4 from ubizjak at gmail dot com 2008-01-18 11:53 --- Author: uros Date: Fri Jan 18 09:55:15 2008 New Revision: 131626 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=131626 Log: PR debug/34484 * dwarf2out.c (dwarf2out_switch_text_section)

[Bug target/34484] pulls in allegedly unneeded floatingpoint exception access funcs

2008-01-18 Thread ubizjak at gmail dot com
--- Comment #7 from ubizjak at gmail dot com 2008-01-18 11:54 --- Sorry, wrong PR number in the ChangeLog. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34484

[Bug target/31897] [4.3 Regression] 30% speed regression with -m32 on Opteron with rnflow

2008-01-19 Thread ubizjak at gmail dot com
--- Comment #10 from ubizjak at gmail dot com 2008-01-19 16:31 --- (In reply to comment #9) > Does the regression on C2 duo show even without vectorizing? It looks like > generic SSE fpmath performance issue. There should be no reason why SSE math > in combination

[Bug tree-optimization/34472] [4.3 Regression] gcc.dg/struct/wo_prof_malloc_size_var.c doesn't work

2008-01-20 Thread ubizjak at gmail dot com
--- Comment #8 from ubizjak at gmail dot com 2008-01-20 15:21 --- (In reply to comment #6) > Confirmed on x86_64-unknown-linux-gnu. It fails only with --enable-checkgin=assert, as is the case in http://gcc.gnu.org/ml/gcc-testresults/2008-01/msg00695.html -- http://gcc.gnu.

[Bug testsuite/34878] fast-math-pr33299.f90 failure with illegal instruction due to -ffast-math.

2008-01-20 Thread ubizjak at gmail dot com
--- Comment #4 from ubizjak at gmail dot com 2008-01-20 15:34 --- (In reply to comment #3) > There is the issue, the testcase should be not run on your computer as it is > using SSE2. So this is a testsuite issue. Please look at gcc.dg/vect/ how this should be done. Ther

[Bug middle-end/34852] [4.3 Regression] Revision 131576 miscompiled 178.galgel

2008-01-20 Thread ubizjak at gmail dot com
--- Comment #4 from ubizjak at gmail dot com 2008-01-20 15:34 --- (In reply to comment #3) > Double checking patch, I don't see obvious mistakes. Since the patch should > only affect register allocation decisions, either we see a latent bug, or > another example of x86 e

[Bug regression/33928] [4.3 Regression] 22% performance slowdown from 4.2.2 to 4.3.0 in floating-point code

2008-01-21 Thread ubizjak at gmail dot com
--- Comment #23 from ubizjak at gmail dot com 2008-01-21 19:21 --- It is not possible to create an executable from direct.i. My compilation fails: (.text+0x20): undefined reference to `main' /tmp/cc0VOLHm.o: In function `___H_direct_2d_fft_2d_recursive_2d_4': _num.c:(

[Bug regression/33928] [4.3 Regression] 22% performance slowdown from 4.2.2 to 4.3.0 in floating-point code

2008-01-22 Thread ubizjak at gmail dot com
--- Comment #25 from ubizjak at gmail dot com 2008-01-22 12:03 --- Created an attachment (id=14996) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=14996&action=view) Much shorter testcase. This testcase was used to track down problems with fre pass. Stay tuned for an a

[Bug target/33928] [4.3 Regression] 22% performance slowdown from 4.2.2 to 4.3.0 in floating-point code

2008-01-22 Thread ubizjak at gmail dot com
--- Comment #27 from ubizjak at gmail dot com 2008-01-22 12:20 --- As already noted by Richi in Comment #9, the difference is in usage of %rax. gcc-4.2 generates: ... addq$7, %rax leaq(%rax,%rbp,2), %r10 leaq(%rax,%rdx,2), %rdx leaq

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

2008-01-22 Thread ubizjak at gmail dot com
--- Comment #30 from ubizjak at gmail dot com 2008-01-22 12:52 --- Please note that for the original testcase (direct.i), even '-O2 --param max-aliased-vops=10' doesn't generate expected code. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33928

[Bug target/34856] [4.2/4.3 Regression] ICE with some constant vectors

2008-01-24 Thread ubizjak at gmail dot com
--- Comment #20 from ubizjak at gmail dot com 2008-01-24 13:48 --- (In reply to comment #19) > Uros, can you handle x86? Sometimes CONSTANT_P is just too broad to construct correct RTX. This patch creates most sensible asm (i.e. using movd instead of movdqa): --cut here-- Index: i

[Bug target/34856] [4.2/4.3 Regression] ICE with some constant vectors

2008-01-24 Thread ubizjak at gmail dot com
--- Comment #24 from ubizjak at gmail dot com 2008-01-24 17:12 --- x86 part is fixed by http://gcc.gnu.org/ml/gcc-patches/2008-01/msg01146.html. This patch also added a testcase that will ATM fail for RS6000 and SPU. -- ubizjak at gmail dot com changed: What|Removed

[Bug other/31405] [4.3 Regression] fixincludes needed for wchar from glibc 2.3.6

2008-01-25 Thread ubizjak at gmail dot com
--- Comment #3 from ubizjak at gmail dot com 2008-01-25 10:46 --- Confirmed & CC maintainer of fixincludes. -- ubizjak at gmail dot com changed: What|Removed |A

[Bug middle-end/29215] [4.0/4.1/4.2/4.3 Regression] extra store for memcpy

2008-01-25 Thread ubizjak at gmail dot com
--- Comment #13 from ubizjak at gmail dot com 2008-01-25 18:36 --- A 4.3 Regression that is known to work on 4.3.0? Could someone please fix this inconsistency. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29215

[Bug target/26726] -fivopts producing out of bounds array refs

2008-01-27 Thread ubizjak at gmail dot com
--- Comment #19 from ubizjak at gmail dot com 2008-01-27 17:52 --- The problem in comment #13 is fixed for 4.3.0 by the fix for PR 34771. -- ubizjak at gmail dot com changed: What|Removed |Added

[Bug target/26726] -fivopts producing out of bounds array refs

2008-01-27 Thread ubizjak at gmail dot com
--- Comment #20 from ubizjak at gmail dot com 2008-01-27 17:53 --- (In reply to comment #19) > The problem in comment #13 is fixed for 4.3.0 by the fix for PR 34771. Oops, PR 34711. -- ubizjak at gmail dot com changed: What|Removed |Ad

[Bug target/34856] [4.2/4.3 Regression] ICE with some constant vectors

2008-01-28 Thread ubizjak at gmail dot com
--- Comment #26 from ubizjak at gmail dot com 2008-01-28 12:04 --- *** Bug 34995 has been marked as a duplicate of this bug. *** -- ubizjak at gmail dot com changed: What|Removed |Added

[Bug target/34995] [4.3 Regression] MIPS16 ICE in gcc.c-torture/compile/pr34856.c

2008-01-28 Thread ubizjak at gmail dot com
--- Comment #2 from ubizjak at gmail dot com 2008-01-28 12:04 --- *** This bug has been marked as a duplicate of 34856 *** -- ubizjak at gmail dot com changed: What|Removed |Added

[Bug target/34982] [4.3 regression] calling a function with undefined parameters causes segmentation fault at -O1 or higher

2008-01-31 Thread ubizjak at gmail dot com
--- Comment #24 from ubizjak at gmail dot com 2008-01-31 08:21 --- Author: hubicka Date: Wed Jan 30 23:25:35 2008 New Revision: 131969 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=131969 Log: * gcc.c-torture/execute/pr34982.c: Add forgotten return 0.

[Bug testsuite/35047] gcc 4.3.0 fails vectorisation tests from testsuite with --with-arch=core2

2008-02-01 Thread ubizjak at gmail dot com
--- Comment #2 from ubizjak at gmail dot com 2008-02-01 08:49 --- Have a patch for the testsuite. gen-vect-X.c vectorizer testcases should probably be moved into gcc.dg/vect, at least those that scan for vectorized loops. -- ubizjak at gmail dot com changed: What

[Bug target/35045] [4.3 Regression] gcc-4.3 generates wrong code on i386 with -O3

2008-02-03 Thread ubizjak at gmail dot com
--- Comment #28 from ubizjak at gmail dot com 2008-02-03 11:28 --- (In reply to comment #27) > On i686-apple-darwin9, rev. 132071, gcc.dg/pr35045.c gives an ICE in 32 bit > mode : Probably a -fpic issue. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35045

[Bug tree-optimization/33761] non-optimal inlining heuristics pessimizes gzip SPEC score at -O3

2008-02-03 Thread ubizjak at gmail dot com
--- Comment #14 from ubizjak at gmail dot com 2008-02-03 17:35 --- (In reply to comment #13) > Uros, would be possible to give it a try on Core? That would help to figure > out if it is code layout problem of K8. Hm, the patch doesn't seem to help: -m32 -O2: 32.434 -m32 -

[Bug testsuite/35047] some vectorisation tests fail with --with-arch=core2

2008-02-03 Thread ubizjak at gmail dot com
--- Comment #6 from ubizjak at gmail dot com 2008-02-04 06:50 --- The vectorizer failures are due to "target vect_cmdline_needed". We want to vectorize with generic vectorization (i.e. no SSE), but using --with-arch, SSE is implied in command line even without -msse2. gcc.dg

[Bug testsuite/35047] some vectorisation tests fail with --with-arch=core2 or on i338-apple-darwin8.11.1

2008-02-04 Thread ubizjak at gmail dot com
--- Comment #9 from ubizjak at gmail dot com 2008-02-04 18:31 --- (In reply to comment #8) > and with -m64: > FAIL: gcc.target/i386/pr32661-1.c scan-assembler-times mov 2 Does darwin need -fomit-frame-pointer for this test? -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35047

[Bug target/35083] [4.3 regression] ICE: in extract_insn, at recog.c:1990

2008-02-04 Thread ubizjak at gmail dot com
--- Comment #2 from ubizjak at gmail dot com 2008-02-05 07:33 --- Confirmed. The testcase: float test(unsigned int x) { return (float)x; } gcc -O2 -mno-80387 t.c: In function âtestâ: t.c:4: error: unrecognizable insn: (insn 20 19 21 5 t.c:2 (set (reg:SF 60) (plus:SF

[Bug target/35083] [4.3 regression] ICE: in extract_insn, at recog.c:1990

2008-02-05 Thread ubizjak at gmail dot com
--- Comment #3 from ubizjak at gmail dot com 2008-02-05 08:26 --- Mine. -- ubizjak at gmail dot com changed: What|Removed |Added AssignedTo|unassigned at gcc dot

[Bug target/35083] [4.3 regression] ICE: in extract_insn, at recog.c:1990

2008-02-05 Thread ubizjak at gmail dot com
--- Comment #5 from ubizjak at gmail dot com 2008-02-05 09:45 --- optabs.c, line 5150: --cut here-- /* Unsigned integer, and no way to convert directly. Convert as signed, then unconditionally adjust the result. For decimal float values we do this only if we have already

[Bug target/35083] [4.3 regression] ICE: in extract_insn, at recog.c:1990

2008-02-05 Thread ubizjak at gmail dot com
--- Comment #4 from ubizjak at gmail dot com 2008-02-05 09:36 --- Following patch fixes ICE (and avoids nasty runtime/code-size regression for x87 math where we don't use fildll): --cut here-- Index: config/i386/i3

[Bug target/35083] [4.3 regression] ICE: in extract_insn, at recog.c:1990

2008-02-05 Thread ubizjak at gmail dot com
--- Comment #7 from ubizjak at gmail dot com 2008-02-05 13:58 --- This is the diff of expand_float() between gcc-4.2 and gcc-4.3. The relevant part is logic at the top of the diff that has changed substantially: --- 222 2008-02-05 14:52:52.0 +0100 +++ 111 2008-02-05 14:52

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

2008-02-05 Thread ubizjak at gmail dot com
--- Comment #19 from ubizjak at gmail dot com 2008-02-05 18:25 --- There was a discussion on IRC some time ago, and it was suggested that there was a LR-splitting patch in cygnus local tree. maybe someone would like to post this patch on gcc-patches@ ML? -- http://gcc.gnu.org

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

2008-02-05 Thread ubizjak at gmail dot com
--- Comment #22 from ubizjak at gmail dot com 2008-02-06 06:52 --- (In reply to comment #21) > Obviously this heuristic is misbehaving in such a simple cases where no other > registers are carried over loop. One obvious problem is also that it is in > effect for SSE codegen t

[Bug target/35083] [4.3 regression] ICE: in extract_insn, at recog.c:1990

2008-02-06 Thread ubizjak at gmail dot com
--- Comment #9 from ubizjak at gmail dot com 2008-02-06 11:11 --- Fixed. -- ubizjak at gmail dot com changed: What|Removed |Added Status|NEW

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

2008-02-06 Thread ubizjak at gmail dot com
--- Comment #14 from ubizjak at gmail dot com 2008-02-06 11:05 --- We still generate: .L8: movl(%ebx), %eax addl$1, %edx addl$4, %ebx fldl(%edi,%eax,8) fmull (%ecx) addl$8, %ecx cmpl%edx, %esi

[Bug target/35102] i386-*gcc: bad register name `%sil'

2008-02-06 Thread ubizjak at gmail dot com
--- Comment #2 from ubizjak at gmail dot com 2008-02-06 12:09 --- Please find "movb" insn (or similar that operates on 8bit reg) in your source and change its constraint from "r" to "q". -- ubizjak at gmail dot com changed: What|Remo

[Bug middle-end/35085] [4.3 Regression] gcc.dg/vect/vect-iv-9.c fails

2008-02-06 Thread ubizjak at gmail dot com
--- Comment #10 from ubizjak at gmail dot com 2008-02-06 13:32 --- I have noticed, that following text is missing from your vect dump: Dependence tester statistics: Number of dependence tests: 0 Number of dependence tests classified dependent: 0 Number of dependence tests classified

[Bug middle-end/35085] [4.3 Regression] gcc.dg/vect/vect-iv-9.c fails

2008-02-06 Thread ubizjak at gmail dot com
--- Comment #12 from ubizjak at gmail dot com 2008-02-06 14:02 --- (In reply to comment #11) > (In reply to comment #10) > > I have noticed, that following text is missing from your vect dump: > > I don't why but I didn't modify the vector dump :/ Eh, my dump

[Bug middle-end/35085] [4.3 Regression] gcc.dg/vect/vect-iv-9.c fails

2008-02-06 Thread ubizjak at gmail dot com
--- Comment #13 from ubizjak at gmail dot com 2008-02-06 14:11 --- I think that following difference is the key: In case vectorizer is able to vecotrize, we enter vectorizer pass with: : # ivtmp.17_1 = PHI # i_18 = PHI # s_17 = PHI D.2002_7 = a[i_18]; D.2003_8 = i_18 + D

[Bug tree-optimization/33761] non-optimal inlining heuristics pessimizes gzip SPEC score at -O3

2008-02-06 Thread ubizjak at gmail dot com
--- Comment #20 from ubizjak at gmail dot com 2008-02-06 18:42 --- Whoa, adding -fomit-frame-pointer brings us from (gcc -O3 -m32) user0m41.031s to (gcc -O3 -m32 -fomit-frame-pointer) user0m30.006s Since -fo-f-p adds another free reg, it looks that since inlining increases

[Bug tree-optimization/33761] non-optimal inlining heuristics pessimizes gzip SPEC score at -O3

2008-02-06 Thread ubizjak at gmail dot com
--- Comment #21 from ubizjak at gmail dot com 2008-02-06 19:10 --- (In reply to comment #20) > Since -fo-f-p adds another free reg, it looks that since inlining increases > register pressure some unlucky heavy-used variable gets allocated to the stack > slot. It is "

[Bug tree-optimization/35085] [4.3 Regression] gcc.dg/vect/vect-iv-9.c fails

2008-02-07 Thread ubizjak at gmail dot com
--- Comment #20 from ubizjak at gmail dot com 2008-02-07 09:01 --- >From the logs: tree-reassoc in failed case transforms: D.2020_7 = a[i_17]; D.2021_8 = D.2020_7 + i_17; s_9 = D.2021_8 + s_18; to: D.2020_7 = a[i_17]; D.2021_8 = s_18 + i_17; s_9 = D.2021_8 + D.202

[Bug tree-optimization/35085] [4.3 Regression] gcc.dg/vect/vect-iv-9.c fails

2008-02-07 Thread ubizjak at gmail dot com
--- Comment #22 from ubizjak at gmail dot com 2008-02-07 09:37 --- (In reply to comment #21) > -fno-tree-reassoc fixes the problem here, So, what happens to reassociation that sometimes produce (working case): Rank for D.2002_7 is 327681 Transforming D.2002_7 + i_18 into i_18

[Bug tree-optimization/35085] [4.3 Regression] gcc.dg/vect/vect-iv-9.c fails

2008-02-07 Thread ubizjak at gmail dot com
--- Comment #24 from ubizjak at gmail dot com 2008-02-07 12:39 --- It happens that we already have specialization to detect reduction in rewrite_expr_tree: --cut here-- The alternative we try is to see if this is a destructive update style statement, which is like: b

[Bug tree-optimization/35085] [4.3 Regression] gcc.dg/vect/vect-iv-9.c fails

2008-02-07 Thread ubizjak at gmail dot com
--- Comment #26 from ubizjak at gmail dot com 2008-02-07 12:56 --- Testing the patch. -- ubizjak at gmail dot com changed: What|Removed |Added AssignedTo

[Bug tree-optimization/35085] [4.3 Regression] gcc.dg/vect/vect-iv-9.c fails

2008-02-07 Thread ubizjak at gmail dot com
--- Comment #28 from ubizjak at gmail dot com 2008-02-07 14:15 --- Fixed. -- ubizjak at gmail dot com changed: What|Removed |Added URL

[Bug c/34720] ICE in real_to_decimal, at real.c:1656

2008-02-07 Thread ubizjak at gmail dot com
--- Comment #9 from ubizjak at gmail dot com 2008-02-07 20:52 --- Related to PR33992 ? -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34720

[Bug bootstrap/33992] [4.3 Regression] profiledbootstrap is broken

2008-02-07 Thread ubizjak at gmail dot com
--- Comment #18 from ubizjak at gmail dot com 2008-02-07 20:47 --- (In reply to comment #17) > P2 - this should not block the release (it's not that profiledbootstrap was > never > broken in released compilers). It's also hard to analyze (no, I'm not on it, &g

[Bug testsuite/35126] dg-options in gcc.c-torture/execute ignored

2008-02-07 Thread ubizjak at gmail dot com
--- Comment #2 from ubizjak at gmail dot com 2008-02-07 15:44 --- (In reply to comment #0) > [EMAIL PROTECTED] testsuite]$ grep dg-options gcc.c-torture/execute/*.c > gcc.c-torture/execute/pr7284-1.c:/* { dg-options "-std=c89" } */ > gcc.c-torture/execute/wchar_t-

[Bug bootstrap/33992] [4.3 Regression] profiledbootstrap is broken

2008-02-08 Thread ubizjak at gmail dot com
--- Comment #19 from ubizjak at gmail dot com 2008-02-08 14:21 --- The core of the problem is, that for profiled bootstrap, the call to normalize() from do_multiply() is simply gone. Gone in the sense, that normalize() is neither inlined at the call site, neither is called in

[Bug bootstrap/33992] [4.3 Regression] profiledbootstrap is broken

2008-02-08 Thread ubizjak at gmail dot com
--- Comment #20 from ubizjak at gmail dot com 2008-02-08 20:15 --- (In reply to comment #19) > So, what upsets gcc's inliner/profiler/whatever to drop the call? Correction, normalize() gets inlined together with lshift_significand(), but there is something wrong with inlined

[Bug bootstrap/33992] [4.3 Regression] profiledbootstrap is broken

2008-02-08 Thread ubizjak at gmail dot com
--- Comment #21 from ubizjak at gmail dot com 2008-02-08 20:25 --- Following patch that forces inlining of normalize breaks normal bootstrap in exactly the same way, so it looks that there is something wrong with inliner. Index: real.c

<    1   2   3   4   5   6   7   8   9   10   >