[Bug c/38416] c-parser.c puts pragma_kind as a 7 bit field, when 8 will generate better code
--- Comment #2 from meissner at gcc dot gnu dot org 2008-12-05 21:06 --- Subject: Bug 38416 Author: meissner Date: Fri Dec 5 21:05:14 2008 New Revision: 142493 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=142493 Log: PR c/38416, make pragma_kind 8 bits Modified: trunk/gcc/ChangeLog trunk/gcc/c-parser.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38416
[Bug tree-optimization/40049] Incorrect tree made for vector shifted by constant on powerpc, spu
--- Comment #8 from meissner at gcc dot gnu dot org 2009-05-07 21:19 --- Subject: Bug 40049 Author: meissner Date: Thu May 7 21:18:54 2009 New Revision: 147252 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=147252 Log: Support vector rotates; Fix bug 40049 which caused runtime corruption; Allow xxpermdi for all vector types; Fix xscvdpsp/xscvspdp; Optimize initialization of float vectors Modified: branches/ibm/power7-meissner/gcc/ChangeLog.power7 branches/ibm/power7-meissner/gcc/config/rs6000/altivec.md branches/ibm/power7-meissner/gcc/config/rs6000/rs6000-c.c branches/ibm/power7-meissner/gcc/config/rs6000/rs6000.c branches/ibm/power7-meissner/gcc/config/rs6000/rs6000.h branches/ibm/power7-meissner/gcc/config/rs6000/vector.md branches/ibm/power7-meissner/gcc/config/rs6000/vsx.md branches/ibm/power7-meissner/gcc/tree-vect-stmts.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40049
[Bug tree-optimization/40049] Incorrect tree made for vector shifted by constant on powerpc, spu
--- Comment #10 from meissner at gcc dot gnu dot org 2009-05-08 22:39 --- Subject: Bug 40049 Author: meissner Date: Fri May 8 22:38:49 2009 New Revision: 147298 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=147298 Log: Fix PR 40049 Added: trunk/gcc/testsuite/gcc.dg/vect/vect-shift-2.c Modified: trunk/gcc/ChangeLog trunk/gcc/testsuite/ChangeLog trunk/gcc/tree-vect-stmts.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40049
[Bug bootstrap/40118] cond-optab breaks powerpc bootstrap
--- Comment #1 from meissner at gcc dot gnu dot org 2009-05-12 12:52 --- Subject: Bug 40118 Author: meissner Date: Tue May 12 12:52:45 2009 New Revision: 147434 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=147434 Log: Fix PR bootstrap/40118 Modified: trunk/gcc/ChangeLog trunk/gcc/config/rs6000/rs6000.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40118
[Bug tree-optimization/40219] iterative_hash_expr in tree.c has an out of bound reference for machine specific builtins
--- Comment #2 from meissner at gcc dot gnu dot org 2009-05-22 21:51 --- Subject: Bug 40219 Author: meissner Date: Fri May 22 21:51:12 2009 New Revision: 147807 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=147807 Log: Fix PR tree-optimization/40219 Modified: trunk/gcc/ChangeLog trunk/gcc/tree.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40219
[Bug tree-optimization/40219] iterative_hash_expr in tree.c has an out of bound reference for machine specific builtins
--- Comment #3 from meissner at gcc dot gnu dot org 2009-05-22 22:09 --- Created an attachment (id=17905) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=17905&action=view) This was the patch that was checked in. Note, the original patch had the wrong ChangeLog. -- meissner at gcc dot gnu dot org changed: What|Removed |Added Attachment #17898|0 |1 is obsolete|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40219
[Bug tree-optimization/40219] iterative_hash_expr in tree.c has an out of bound reference for machine specific builtins
--- Comment #4 from meissner at gcc dot gnu dot org 2009-05-22 22:46 --- Patch checked in svn revision 147806. -- meissner at gcc dot gnu dot org changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40219
[Bug tree-optimization/40348] New: Powerpc spe segfaults in vectorizing powf (a[i], 0.5f)
P3 Component: tree-optimization AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: meissner at gcc dot gnu dot org GCC build triplet: powerpc64-unknown-linux-gnu GCC host triplet: powerpc64-unknown-linux-gnu GCC target triplet: powerpc-spe-eabi http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40348
[Bug tree-optimization/40348] Powerpc spe segfaults in vectorizing powf (a[i], 0.5f)
--- Comment #1 from meissner at gcc dot gnu dot org 2009-06-04 21:19 --- Created an attachment (id=17952) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=17952&action=view) Reduced test case Compile with -O3 -ffast-math -mspe on a compiler configured for powerpc-spe-eabi. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40348
[Bug bootstrap/40597] New: Powerpc bootstrap is broken due to changes in expmed.c
On June 28th, the powerpc bootstrap was broken due to changes to expmed.c. The bootstrap dies when compiling libgcc.a as mentioned in: http://gcc.gnu.org/ml/gcc-patches/2009-06/msg02180.html emit_store_flag gets a GT test that it tries to convert to LE. Inside the recursive call, it then tries to convert the LE back to a GT test. Eventually the compiler runs out of stack space and dies. -- Summary: Powerpc bootstrap is broken due to changes in expmed.c Product: gcc Version: 4.5.0 Status: UNCONFIRMED Severity: blocker Priority: P3 Component: bootstrap AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: meissner at gcc dot gnu dot org GCC build triplet: powerpc64-unknown-linux-gnu GCC host triplet: powerpc64-unknown-linux-gnu GCC target triplet: powerpc64-unknown-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40597
[Bug bootstrap/40597] Powerpc bootstrap is broken due to changes in expmed.c
--- Comment #3 from meissner at gcc dot gnu dot org 2009-06-29 21:36 --- Created an attachment (id=18097) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18097&action=view) Proposed patch to fix the problem This patch allows the powerpc64-gnu-linux system to boostrap once again. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40597
[Bug bootstrap/40558] [4.5 Rgression] At revision 148962 bootstrap fails on powerpc-apple-darwin9
--- Comment #6 from meissner at gcc dot gnu dot org 2009-07-01 22:23 --- Created an attachment (id=18114) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18114&action=view) Patch to undo change that breaks darwin9 I'm adding the missing ChangeLog comments also. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40558
[Bug bootstrap/40558] [4.5 Rgression] At revision 148962 bootstrap fails on powerpc-apple-darwin9
--- Comment #7 from meissner at gcc dot gnu dot org 2009-07-01 22:34 --- Subject: Bug 40558 Author: meissner Date: Wed Jul 1 22:34:26 2009 New Revision: 149155 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=149155 Log: Fix PR 40558, undo part of June 25th patch Modified: trunk/gcc/ChangeLog trunk/gcc/config/rs6000/rs6000.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40558
[Bug boehm-gc/40785] New: Powerpc bootstrap is broken due to problems in boehm-gc
The test and set locks in boehm-gc/include/private/gc_locks.h have invalid asm for creating the test and set locks and the current Powerpc GCC compiler generates errors when enabling java in a bootstrap. In addition, GCC 4.4 has added the __sync_lock_test_and_set and __sync_lock_release builtins which abstract these functions, so the asm is not needed for 4.4 and beyond. -- Summary: Powerpc bootstrap is broken due to problems in boehm-gc Product: gcc Version: 4.5.0 Status: UNCONFIRMED Severity: critical Priority: P3 Component: boehm-gc AssignedTo: meissner at linux dot vnet dot ibm dot com ReportedBy: meissner at gcc dot gnu dot org GCC build triplet: powerpc64-unknown-linux-gnu GCC host triplet: powerpc64-unknown-linux-gnu GCC target triplet: powerpc64-unknown-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40785
[Bug boehm-gc/40785] Powerpc bootstrap is broken due to problems in boehm-gc
--- Comment #1 from meissner at gcc dot gnu dot org 2009-07-17 14:53 --- Created an attachment (id=18213) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18213&action=view) Patch to use sync builtins if we can, and fix asm constraints if we have an older compiler -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40785
[Bug ada/40637] Ada bootstrap on powerpc64 ICE on stage3 s-bitops.o
--- Comment #6 from meissner at gcc dot gnu dot org 2009-07-31 22:01 --- It is probably related to my powerpc power7 checkin starting with 148869. It may or may not be related to an issue I am looking at in that if you build the compiler with altivec, it miscompiles the code, and 403.gcc in spec does not run correctly. Unfortunately, SUSE doesn't provide Gnu Ada for powerpc, which means I can't build it on my normal systems. -- meissner at gcc dot gnu dot org changed: What|Removed |Added CC| |meissner at gcc dot gnu dot | |org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40637
[Bug testsuite/40671] [4.5 Regression] internal compiler error: in extract_insn, at recog.c:2089 on powerpc
--- Comment #1 from meissner at gcc dot gnu dot org 2009-07-31 22:03 --- I suspect this may be related to a problem with building for altivec that I noticed after checking in the first of the powerpc changes. If possible, could you rebuild the compiler with BOOT_CFLAGS='-g -O2 -mno-altivec' to see if that is the problem. -- meissner at gcc dot gnu dot org changed: What|Removed |Added CC| |meissner at gcc dot gnu dot | |org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40671
[Bug target/37841] SPU compiler is not complaint with the ABI
--- Comment #1 from meissner at gcc dot gnu dot org 2008-10-24 23:46 --- Subject: Bug 37841 Author: meissner Date: Fri Oct 24 23:45:02 2008 New Revision: 141356 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=141356 Log: PR target/37841: Fix SPU abi Added: trunk/gcc/testsuite/gcc.target/spu/abi.c Modified: trunk/gcc/ChangeLog trunk/gcc/config/spu/spu.h trunk/gcc/doc/tm.texi trunk/gcc/function.c trunk/gcc/testsuite/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37841
[Bug testsuite/38025] [4.4 Regression] gcc.target/spu/intrinsics-1.c test fails
--- Comment #3 from meissner at gcc dot gnu dot org 2008-11-05 23:47 --- Subject: Bug 38025 Author: meissner Date: Wed Nov 5 23:45:36 2008 New Revision: 141628 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=141628 Log: Fix PR 38025 Modified: trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/gcc.target/spu/intrinsics-1.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38025
[Bug target/39457] [power7-meissner] unable to find a register to spill in class 'LINK_OR_CTR_REGS'
--- Comment #4 from meissner at gcc dot gnu dot org 2009-03-13 20:11 --- Subject: Bug 39457 Author: meissner Date: Fri Mar 13 20:11:19 2009 New Revision: 144846 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=144846 Log: Fix pr 39457 Added: branches/ibm/power7-meissner/gcc/testsuite/gcc.target/powerpc/pr39457.c Modified: branches/ibm/power7-meissner/gcc/ChangeLog.power7 branches/ibm/power7-meissner/gcc/config/rs6000/rs6000.c branches/ibm/power7-meissner/gcc/config/rs6000/rs6000.opt branches/ibm/power7-meissner/gcc/testsuite/ChangeLog.power7 -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39457
[Bug driver/39293] -save-temps does not follow the -o option and instead puts the temp file in the current directory
--- Comment #4 from meissner at gcc dot gnu dot org 2009-04-02 20:45 --- Subject: Bug 39293 Author: meissner Date: Thu Apr 2 20:45:26 2009 New Revision: 145470 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=145470 Log: [PATCH, committed] Add -save-temps=obj, PR 39293 Modified: trunk/gcc/ChangeLog trunk/gcc/doc/invoke.texi trunk/gcc/gcc.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39293
[Bug testsuite/39769] vmx tests fail due to reliance on floating point equality
--- Comment #2 from meissner at gcc dot gnu dot org 2009-04-14 22:56 --- Subject: Bug 39769 Author: meissner Date: Tue Apr 14 22:55:52 2009 New Revision: 146068 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=146068 Log: PR testsuite/39769 Modified: trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/gcc.dg/vmx/3a-04.c trunk/gcc/testsuite/gcc.dg/vmx/3a-04m.c trunk/gcc/testsuite/gcc.dg/vmx/3a-05.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39769
[Bug testsuite/39769] vmx tests fail due to reliance on floating point equality
--- Comment #3 from meissner at gcc dot gnu dot org 2009-04-14 22:57 --- Subject: Bug 39769 Author: meissner Date: Tue Apr 14 22:56:52 2009 New Revision: 146070 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=146070 Log: PR testsuite/39769 Modified: branches/ibm/power7-meissner/gcc/testsuite/ChangeLog.power7 branches/ibm/power7-meissner/gcc/testsuite/gcc.dg/vmx/3a-04.c branches/ibm/power7-meissner/gcc/testsuite/gcc.dg/vmx/3a-04m.c branches/ibm/power7-meissner/gcc/testsuite/gcc.dg/vmx/3a-05.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39769
[Bug testsuite/39769] vmx tests fail due to reliance on floating point equality
--- Comment #4 from meissner at gcc dot gnu dot org 2009-04-14 22:58 --- Subject: Bug 39769 Author: meissner Date: Tue Apr 14 22:57:51 2009 New Revision: 146071 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=146071 Log: PR testsuite/39769 Modified: branches/ibm/gcc-4_3-branch/gcc/testsuite/ChangeLog branches/ibm/gcc-4_3-branch/gcc/testsuite/gcc.dg/vmx/3a-04.c branches/ibm/gcc-4_3-branch/gcc/testsuite/gcc.dg/vmx/3a-04m.c branches/ibm/gcc-4_3-branch/gcc/testsuite/gcc.dg/vmx/3a-05.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39769
[Bug tree-optimization/39955] [4.5 Regression] struct-layout-1 test failures passing struct containing _Decimal32
--- Comment #13 from meissner at gcc dot gnu dot org 2009-04-30 22:00 --- Subject: Bug 39955 Author: meissner Date: Thu Apr 30 21:59:49 2009 New Revision: 147021 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=147021 Log: fix for PR 39955 Modified: trunk/gcc/ChangeLog trunk/gcc/config/rs6000/rs6000.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39955
[Bug testsuite/39776] FAIL: g++.dg/ext/altivec-15.C
-- meissner at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |meissner at gcc dot gnu dot |dot org |org Status|NEW |ASSIGNED Last reconfirmed|2009-04-21 17:15:06 |2009-08-21 22:15:05 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39776
[Bug target/41145] New: My VSX changes broke gcc.dg/dfp/altivec-types.c
My VSX changes broke reporting of some error messages, such as __vector _Decimal128 unless -mvsx was used. -- Summary: My VSX changes broke gcc.dg/dfp/altivec-types.c Product: gcc Version: 4.5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target AssignedTo: meissner at gcc dot gnu dot org ReportedBy: meissner at gcc dot gnu dot org GCC build triplet: powerpc64-unknown-linux-gnu GCC host triplet: powerpc64-unknown-linux-gnu GCC target triplet: powerpc64-unknown-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41145
[Bug target/41145] My VSX changes broke gcc.dg/dfp/altivec-types.c
--- Comment #1 from meissner at gcc dot gnu dot org 2009-08-21 22:47 --- Created an attachment (id=18410) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18410&action=view) Restore error messages broken by VSX changes -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41145
[Bug testsuite/40671] [4.5 Regression] internal compiler error: in extract_insn, at recog.c:2089 on powerpc
--- Comment #5 from meissner at gcc dot gnu dot org 2009-08-21 22:48 --- Created an attachment (id=18411) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18411&action=view) Use correct target test to size pointers. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40671
[Bug target/41210] ICE with vsx_movv2df
--- Comment #1 from meissner at gcc dot gnu dot org 2009-09-09 22:57 --- Created an attachment (id=18557) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18557&action=view) Patch to require vector addresses for GPRs to be a single register -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41210
[Bug target/41331] New: __builtin_bswap64 generates incorrect code for -m32 -mpowerpc64
The bswapdi code introduced on July 31st causes a segmentation fault in the compiler if -m32 and -mpowerpc64 are used: --> gdb cc1 GNU gdb (GDB; SUSE Linux Enterprise 11) 6.8.50.20081120-cvs Copyright (C) 2008 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "ppc64-suse-linux". For bug reporting instructions, please see: <http://bugs.opensuse.org/>... Breakpoint 1 at 0x101bd55c: file /home/meissner/fsf-src/trunk/gcc/diagnostic.c, line 728. Breakpoint 2 at 0x101be118: file /home/meissner/fsf-src/trunk/gcc/diagnostic.c, line 673. Breakpoint 3 at 0x108cb460 Breakpoint 4 at 0x108cb4b0 (gdb) r -O2 -quiet -m32 -mpowerpc64 bswap64-4.c Starting program: /data2/meissner/fsf-build-ppc64/trunk-2009-09-09/gcc/cc1 -O2 -quiet -m32 -mpowerpc64 bswap64-4.c Program received signal SIGSEGV, Segmentation fault. gen_bswapsi2 (operand0=0x0, operand1=0x442dfa0) at /home/meissner/fsf-src/trunk/gcc/config/rs6000/rs6000.md:2350 2350 if (!REG_P (operands[0]) && !REG_P (operands[1])) (gdb) -- Summary: __builtin_bswap64 generates incorrect code for -m32 - mpowerpc64 Product: gcc Version: 4.5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target AssignedTo: meissner at gcc dot gnu dot org ReportedBy: meissner at gcc dot gnu dot org GCC build triplet: powerpc64-unknown-linux-gnu GCC host triplet: powerpc64-unknown-linux-gnu GCC target triplet: powerpc64-unknown-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41331
[Bug target/41331] __builtin_bswap64 generates incorrect code for -m32 -mpowerpc64
--- Comment #1 from meissner at gcc dot gnu dot org 2009-09-10 16:37 --- Created an attachment (id=18563) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18563&action=view) Fix thinkos with -m32 -mpowerpc64, add new testcase -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41331
[Bug target/41210] ICE with vsx_movv2df
--- Comment #2 from meissner at gcc dot gnu dot org 2009-09-14 16:59 --- Subject: Bug 41210 Author: meissner Date: Mon Sep 14 16:59:12 2009 New Revision: 151691 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=151691 Log: Fix PR 41210 & 41331 on powerpc Added: trunk/gcc/testsuite/gcc.target/powerpc/bswap64-4.c Modified: trunk/gcc/ChangeLog trunk/gcc/config/rs6000/rs6000.c trunk/gcc/config/rs6000/rs6000.md trunk/gcc/testsuite/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41210
[Bug bootstrap/41626] New: GCC does not bootstrap on powerpc64
GCC does not bootstrap on powerpc64. It fails in the 2nd stage, when it links build/gensupport.o. On the powerpc, the statements: static struct obstack obstack; struct obstack *rtl_obstack = &obstack; On the powerpc generate a reference to an unknown external 'obstack', while on the x86_64, it generates 'obstack' as a bss item. The option -fkeep-static-consts does not help the issue. -- Summary: GCC does not bootstrap on powerpc64 Product: gcc Version: 4.5.0 Status: UNCONFIRMED Severity: blocker Priority: P3 Component: bootstrap AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: meissner at gcc dot gnu dot org GCC build triplet: powerpc64-unknown-linux-gnu GCC host triplet: powerpc64-unknown-linux-gnu GCC target triplet: powerpc64-unknown-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41626
[Bug bootstrap/41626] GCC does not bootstrap on powerpc64
--- Comment #1 from meissner at gcc dot gnu dot org 2009-10-07 21:14 --- Created an attachment (id=18746) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18746&action=view) Simplified test case that fails on the powerpc. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41626
[Bug bootstrap/41626] [4.5 Regression] GCC does not bootstrap on powerpc64
--- Comment #2 from meissner at gcc dot gnu dot org 2009-10-07 22:00 --- Subversion revision 152520 is the revision that breaks this. The change in question is: 009-10-07 Jan Hubicka * lto-symtab.c (lto_cgraph_replace_node): Assert that inline clones has no address taken. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41626
[Bug middle-end/41626] [4.5 Regression] GCC does not bootstrap on powerpc64
--- Comment #8 from meissner at gcc dot gnu dot org 2009-10-08 18:59 --- Created an attachment (id=18754) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18754&action=view) Patch that fixes the powerpc bootstrap problem. This is the patch that I checked in that came from Jan Hubicka. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41626
[Bug middle-end/41626] [4.5 Regression] GCC does not bootstrap on powerpc64
--- Comment #9 from meissner at gcc dot gnu dot org 2009-10-08 19:00 --- Patch checked into mainline, subversion id 152569. -- meissner at gcc dot gnu dot org changed: What|Removed |Added Status|NEW |RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41626
[Bug testsuite/41701] New: scan-assembler-not has false positives
The scan-assembler-not should skip strings inside of .ident directives. I have a branch that I use for power7 development, power7-meissner. In that branch, I set the REVISION file to indicate that this is a branch. Currently it is set to: [ibm/power7-meissner, mainline revision 152572] This revision string gets put in the .ident section, which causes the test gcc.dg/builtins-58.c to fail, because it has the directive: /* scan-assembler-not pow */ It is a minor thing, but I'm sure somebody else will trigger it eventually. -- Summary: scan-assembler-not has false positives Product: gcc Version: 4.5.0 Status: UNCONFIRMED Severity: minor Priority: P3 Component: testsuite AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: meissner at gcc dot gnu dot org GCC build triplet: powerpc64-linux-gnu GCC host triplet: powerpc64-linux-gnu GCC target triplet: powerpc64-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41701
[Bug target/41787] New: Power7 code violates ABI
The power7 code that was added in July, violates the powerpc ABI in two ways due to the floating point registers overlap with the VSX registers. 1) HARD_REGNO_CALL_PART_CLOBBERED was not adjusted to disallow VSX registers 0..31 which overlap with the floating point registers to be live across function calls. Thus the compiler might think that a VSX register might be preserved across a call, when only the first double word will be. The Spec 2006 tests dealII, calculix, and GemsFDTD fail when compiled for vsx with some compiler options. 2) The VRSAVE register is not set if a function uses VSX registers that overlap with the floating point registers, because the register is only 32-bit and does not have room to indicate additional vector registers that overlap with floating point registers. The new ABI says that the VRSAVE only has to be non-zero if vector registers are used. I have patches for both of these problems that I am currently looking at. -- Summary: Power7 code violates ABI Product: gcc Version: 4.5.0 Status: UNCONFIRMED Severity: major Priority: P3 Component: target AssignedTo: meissner at gcc dot gnu dot org ReportedBy: meissner at gcc dot gnu dot org GCC build triplet: powerpc64-unknown-linux-gnu GCC host triplet: powerpc64-unknown-linux-gnu GCC target triplet: powerpc64-unknown-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41787
[Bug target/41787] Power7 code violates ABI
--- Comment #1 from meissner at gcc dot gnu dot org 2009-10-22 21:53 --- Created an attachment (id=18872) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18872&action=view) Patch to fix both problems in 41787 -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41787
[Bug target/43154] New: vec_mergel and vec_mergeh should support V2DF/V2DI
The documentation says that vec_mergel and vec_mergeh are supported for the vector double and vector long long types when the VSX instruction set is used, unfortunately it was never implemented in the compiler. -- Summary: vec_mergel and vec_mergeh should support V2DF/V2DI Product: gcc Version: 4.5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target AssignedTo: meissner at gcc dot gnu dot org ReportedBy: meissner at gcc dot gnu dot org GCC build triplet: powerpc64-unknown-linux-gnu GCC host triplet: powerpc64-unknown-linux-gnu GCC target triplet: powerpc64-unknown-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43154
[Bug target/43154] vec_mergel and vec_mergeh should support V2DF/V2DI
--- Comment #1 from meissner at gcc dot gnu dot org 2010-02-23 22:42 --- Created an attachment (id=19941) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=19941&action=view) Patch to add vector merge low/high for V2DF/V2DI -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43154
[Bug middle-end/28752] bootstrap comparision fails with "-ftree-vectorize -maltivec" on ppc
--- Comment #36 from meissner at gcc dot gnu dot org 2010-02-25 04:59 --- I've tested the current GCC 4.5 development branch and it builds fine now with BOOT_CFLAGS='-g -O3 -ftree-vectorize -mcpu=power5 -maltivec'. It also builds with BOOT_CFLAGS='-g -O3 -ftree-vectorize -mcpu=power7'. I also built the current 4.4 branch with altivec, and it bootstrapped fine without problem. Given this was reported in 2006, I suspect the fixes discussed in the thread have long since been applied to the compiler. So, I'm closing the bug. -- meissner at gcc dot gnu dot org changed: What|Removed |Added CC| |meissner at gcc dot gnu dot | |org Status|UNCONFIRMED |RESOLVED Resolution||WORKSFORME http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28752
[Bug target/23983] the altivec builtins should be marked as pure/const
--- Comment #8 from meissner at gcc dot gnu dot org 2010-02-25 20:03 --- Patches checked in on October 15th, 2009 to properly set pure/const. -- meissner at gcc dot gnu dot org changed: What|Removed |Added CC||meissner at gcc dot gnu dot ||org Status|ASSIGNED|RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23983
[Bug target/43154] vec_mergel and vec_mergeh should support V2DF/V2DI
--- Comment #2 from meissner at gcc dot gnu dot org 2010-02-25 18:25 --- Subject: Bug 43154 Author: meissner Date: Thu Feb 25 18:25:26 2010 New Revision: 157069 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=157069 Log: Fix PR target/43154 Added: branches/ibm/power7-meissner/gcc/testsuite/gcc.target/powerpc/pr43154.c Modified: branches/ibm/power7-meissner/gcc/ChangeLog.power7 branches/ibm/power7-meissner/gcc/config/rs6000/rs6000-builtin.def branches/ibm/power7-meissner/gcc/config/rs6000/rs6000-c.c branches/ibm/power7-meissner/gcc/config/rs6000/rs6000.c branches/ibm/power7-meissner/gcc/config/rs6000/vector.md branches/ibm/power7-meissner/gcc/testsuite/ChangeLog.power7 -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43154
[Bug target/41145] My VSX changes broke gcc.dg/dfp/altivec-types.c
--- Comment #2 from meissner at gcc dot gnu dot org 2010-02-25 21:29 --- Patch checked in on August 21, 2009. -- meissner at gcc dot gnu dot org changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41145
[Bug target/43154] vec_mergel and vec_mergeh should support V2DF/V2DI
--- Comment #3 from meissner at gcc dot gnu dot org 2010-02-25 22:27 --- Subject: Bug 43154 Author: meissner Date: Thu Feb 25 22:26:55 2010 New Revision: 157074 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=157074 Log: Fix PR target/43154 Added: trunk/gcc/testsuite/gcc.target/powerpc/pr43154.c Modified: trunk/gcc/ChangeLog trunk/gcc/config/rs6000/rs6000-builtin.def trunk/gcc/config/rs6000/rs6000-c.c trunk/gcc/config/rs6000/rs6000.c trunk/gcc/config/rs6000/vector.md trunk/gcc/testsuite/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43154
[Bug tree-optimization/42286] October 23rd change to tree-ssa-pre.c breaks calculix on powerpc with -ffast-math
--- Comment #12 from meissner at gcc dot gnu dot org 2010-03-03 23:01 --- As I said in the last bug entry, I have convinced myself that the compiler is correct, and that the bug is caused by using -ffast-math when compiling, but the atan2 library function supporting full IEEE semantics, including -0.0. -- meissner at gcc dot gnu dot org changed: What|Removed |Added Status|NEW |RESOLVED Resolution||INVALID http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42286
[Bug bootstrap/43299] New: Subversion id 157264 breaks powerpc 64-bit bootstraps
Unless you use BOOT_CFLAGS='-g -O2 -fno-var-tracking', the change Jakub made on March 7th, 2010 breaks the powerpc 64-bit bootstrap. Here is the error message: /tmp/cckGWIfy.s: Assembler messages: /tmp/cckGWIfy.s:117666: Error: junk at end of line, first unrecognized character is `@' /tmp/cckGWIfy.s:117685: Error: junk at end of line, first unrecognized character is `@' /tmp/cckGWIfy.s:117813: Error: junk at end of line, first unrecognized character is `@' /tmp/cckGWIfy.s:117832: Error: junk at end of line, first unrecognized character is `@' make[3]: *** [rs6000.o] Error 1 The problem is inside of the dwarf debugging output, is: .LLST430: .8byte .LVL1149-.Ltext0 .8byte .LVL1154-.Ltext0 .2byte 0x2 .byte 0x30 .byte 0x9f .8byte .LVL1154-.Ltext0 .8byte .LVL1155-.Ltext0 .2byte 0x9 .byte 0x3 .8byte .LC355 .8byte .LVL1155-.Ltext0 .8byte .LVL1156-1-.Ltext0 .2byte 0xd .byte 0x71 .sleb128 40 .byte 0x6 .byte 0x3 .8byte .lc...@toc The .8byte directive is not expecting a TOC reference. Here is the definition of .LC355: .section".toc","aw" .LC354: .tc gen_load_locked_si[TC],gen_load_locked_si .LC355: .tc gen_load_locked_di[TC],gen_load_locked_di -- Summary: Subversion id 157264 breaks powerpc 64-bit bootstraps Product: gcc Version: 4.5.0 Status: UNCONFIRMED Severity: blocker Priority: P3 Component: bootstrap AssignedTo: jakub at redhat dot com ReportedBy: meissner at gcc dot gnu dot org GCC build triplet: powerpc64-unknown-linux-gnu GCC host triplet: powerpc64-unknown-linux-gnu GCC target triplet: powerpc64-unknown-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43299
[Bug bootstrap/43299] [4.5 Regression] Subversion id 157264 breaks powerpc 64-bit bootstraps
--- Comment #8 from meissner at gcc dot gnu dot org 2010-03-09 23:14 --- Yes, it appears fixed here as well. Thanks. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43299
[Bug middle-end/42431] [4.5 Regression] wrong code for 200.sixtrack with vectorization and -fdata-sections
--- Comment #14 from meissner at gcc dot gnu dot org 2010-03-11 20:11 --- Created an attachment (id=20090) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20090&action=view) Patch to remove band-aid now that the underlying problem was fixed In doing the initial VSX development, I ran into a situation in building spec 2006, that ultimately was caused by the bug in 42431. I added some band-aid code to make sure the problem was not seen. After Jeff's patches were checked in, I deleted the code, and built spec 2006 with several different options, and the code built/ran correctly. So this is no longer needed. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42431
[Bug rtl-optimization/43413] New: Powerpc generates worse code for -mvsx on gromacs even though there are no VSX instructions used
The powerpc64-unknown-linux-gnu compiler generates much worse code on the inl1130 function in the gromacs benchmark from spec 2006 when compiling for the VSX instruction set with -mcpu=power7 (or -mvsx). The code in question in not vectorizable, and in fact only uses integer and single precision floating point. Just to be clear, the powerpc architecture originally had two sets of registers (FLOAT_REGS for scalar floating point registers and ALTIVEC_REGS for vector single precision/int registers). The VSX addition to the architecture adds a new set of scalar/vector instructions that can use registers from either register set. So, in the VSX work, I added a new register class (VSX_REGS) that is the union of the two register classes, and changed TARGET_IRA_COVER_CLASSES to return a cover class that returns VSX_REGS in the VSX case, and FLOAT_REGS/ALTIVEC_REGS in the traditional case. In the enclosed test case, it generates the following spills for the options: -O3 -ffast-math -mcpu=power7 -mvsx -maltivec: 117 stfs, 139 lfs -O3 -ffast-math -mcpu=power5 -maltivec: 80 stfs, 100 lfs -O3 -ffast-math -mcpu=power5: 80 stfs, 100 lfs Now, if I enable -fno-ira-share-spill-slots, it gets somewhat better, though obviously it uses more stack space because it can't resuse the spill stack slots: -O3 -ffast-math -mcpu=power7 -mvsx -maltivec -fno-ira-share-spill-slots: 102 stfs, 111 lfs If I don't change the IRA cover class, gromacs generates the same code, but other benchmarks that do use 64 registers won't compile correctly. -- Summary: Powerpc generates worse code for -mvsx on gromacs even though there are no VSX instructions used Product: gcc Version: 4.5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: rtl-optimization AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: meissner at gcc dot gnu dot org GCC build triplet: powerpc64-unknown-linux-gnu GCC host triplet: powerpc64-unknown-linux-gnu GCC target triplet: powerpc64-unknown-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43413
[Bug rtl-optimization/43413] Powerpc generates worse code for -mvsx on gromacs even though there are no VSX instructions used
--- Comment #1 from meissner at gcc dot gnu dot org 2010-03-17 22:35 --- Created an attachment (id=20134) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20134&action=view) Test case from the gromacs benchmark -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43413
[Bug rtl-optimization/43413] Powerpc generates worse code for -mvsx on gromacs even though there are no VSX instructions used
--- Comment #2 from meissner at gcc dot gnu dot org 2010-03-17 22:37 --- Created an attachment (id=20135) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20135&action=view) Bzip2 tar file of the assembly output for altivec, vsx, scalar, and no-spill -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43413
[Bug rtl-optimization/43413] Powerpc generates worse code for -mvsx on gromacs even though there are no VSX instructions used
--- Comment #3 from meissner at gcc dot gnu dot org 2010-03-17 22:38 --- Created an attachment (id=20136) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20136&action=view) Bzip2 tar file of the ira dump output for altivec, vsx, scalar, and no-spill -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43413
[Bug rtl-optimization/43484] New: GCC 4.5 does not build gamess, zeusmp on powerpc -m32 with loop unrolling
If I build gamess and zeusmp with my normal spec optimization options, I get an internal compiler error in the change_address_1 function in emit-rtl.c, due to an address needing fixup has been generated after register allocation has been done. I have narrowed the options down to -m32 -mcpu=power4 -O2 -funroll-loops that causes the problem. I was able to build all of spec with the normal options on March 3rd. foo.f: In function gcidav: foo.f:670:0: internal compiler error: in change_address_1, at emit-rtl.c:1912 Please submit a full bug report, with preprocessed source if appropriate. See <http://gcc.gnu.org/bugs.html> for instructions. -- Summary: GCC 4.5 does not build gamess, zeusmp on powerpc -m32 with loop unrolling Product: gcc Version: 4.5.0 Status: UNCONFIRMED Severity: major Priority: P3 Component: rtl-optimization AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: meissner at gcc dot gnu dot org GCC build triplet: powerpc64-unknown-linux-gnu GCC host triplet: powerpc64-unknown-linux-gnu GCC target triplet: powerpc64-unknown-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43484
[Bug rtl-optimization/43484] GCC 4.5 does not build gamess, zeusmp on powerpc -m32 with loop unrolling
--- Comment #1 from meissner at gcc dot gnu dot org 2010-03-22 20:11 --- Created an attachment (id=20164) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20164&action=view) Reduced function that causes the problem To replicate this, use -m32 -O2 -mcpu=power4 -funroll-loops -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43484
[Bug rtl-optimization/43484] [4.5 Regression] GCC 4.5 does not build gamess, zeusmp on powerpc -m32 with loop unrolling
--- Comment #3 from meissner at gcc dot gnu dot org 2010-03-22 21:02 --- I just replicated on my x86_64 cross compiler: bug-43484.f: In function gcidav: bug-43484.f:670:0: internal compiler error: in change_address_1, at emit-rtl.c:1912 Please submit a full bug report, with preprocessed source if appropriate. See <http://gcc.gnu.org/bugs.html> for instructions. I used the following configure options: --enable-languages=c,c++,fortran --enable-stage1-languages=c,c++,fortran --disable-bootstrap --enable-checking=release --enable-stage1-checking --enable-decimal-float --with-long-double-128 --enable-secureplt --target=powerpc64-linux --disable-shared --disable-libssp --enable-lto -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43484
[Bug rtl-optimization/43484] [4.5 Regression] GCC 4.5 does not build gamess, zeusmp on powerpc -m32 with loop unrolling
--- Comment #5 from meissner at gcc dot gnu dot org 2010-03-22 23:58 --- Subversion id 157525 does not abort, while subversion id 157540 does abort. The GCC changelog includes these changes: 2010-03-18 Steven Bosscher Eric Botcazou PR rtl-optimization/43360 * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL note if we don't know its invariant status. 2010-03-18 Michael Matz PR tree-optimization/43402 * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow PHI chains of ssa names registered for update. 2010-03-17 Peter Bergner PR target/42427 * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for non-offsettable and pre_modify update addressing. * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1" and "2" alternatives "#". (*movdd_softfloat32): Make all alternatives "#"; * config/rs6000/rs6000.md (DIFD): New define_mode_iterator. (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#". (*movdf_softfloat32): Make all alternatives "#"; (movdi): Use the new DIFD mode iterator to create a common splitter for movdi, movdf and movdd patterns. 2010-03-18 Shujing Zhao * common.opt (dumpdir): Remove redundant tab. And the fortran Changelog includes: 2010-03-18 Shujing Zhao * lang.opt (-ffixed-line-length-, ffree-line-length-): Remove redundant tab. more tomorrow. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43484
[Bug target/43484] [4.5 Regression] GCC 4.5 does not build gamess, zeusmp on powerpc -m32 with loop unrolling
--- Comment #6 from meissner at gcc dot gnu dot org 2010-03-23 15:10 --- The rs6000 change on 2010-03-17 is the culprit. If I do a svn update for the sandbox, and then do: $ svn update -r157529 gcc/config/rs6000 There is no error. -- meissner at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |bergner at vnet dot ibm dot |dot org |com Status|UNCONFIRMED |ASSIGNED Ever Confirmed|0 |1 Last reconfirmed|-00-00 00:00:00 |2010-03-23 15:10:01 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43484
[Bug target/43484] [4.5 Regression] GCC 4.5 does not build gamess, zeusmp on powerpc -m32 with loop unrolling
--- Comment #7 from meissner at gcc dot gnu dot org 2010-03-23 16:10 --- I forgot Peter was on vacation. I'll take it. -- meissner at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|bergner at vnet dot ibm dot |meissner at gcc dot gnu dot |com |org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43484
[Bug rtl-optimization/43413] Powerpc generates worse code for -mvsx on gromacs even though there are no VSX instructions used
--- Comment #12 from meissner at gcc dot gnu dot org 2010-03-23 23:40 --- This reduces the spills, and brings the performance backs up. I'm closing the bug. Thanks. -- meissner at gcc dot gnu dot org changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43413
[Bug target/43484] [4.5 Regression] GCC 4.5 does not build gamess, zeusmp on powerpc -m32 with loop unrolling
--- Comment #8 from meissner at gcc dot gnu dot org 2010-03-23 23:43 --- I have tracked down the issue, and will submit a patch tomorrow after further testing. The issue is when a multi-word items is loaded to GPRS, and the address is of the form (r0+reg), the compiler was using r0 as the base register, which is not allowed in the powerpc architecture. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43484
[Bug target/43484] [4.5 Regression] GCC 4.5 does not build gamess, zeusmp on powerpc -m32 with loop unrolling
--- Comment #9 from meissner at gcc dot gnu dot org 2010-03-24 18:00 --- Created an attachment (id=20187) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20187&action=view) Patch to swap registers if first register is r0 in multi-word moves. This patch fixes the problem in building the spec 2006 benchmarks zeusmp and gamess on the powerpc that was introduced in the 2010-03-17 change to rs6000.c. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43484
[Bug target/43484] [4.5 Regression] GCC 4.5 does not build gamess, zeusmp on powerpc -m32 with loop unrolling
--- Comment #10 from meissner at gcc dot gnu dot org 2010-03-24 21:12 --- Patch checked in, subversion id 157709. -- meissner at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43484
[Bug tree-optimization/43544] New: TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION can misoptimize when MD builtins overlap with standard builtins
I was looking at the rs6000_builtin_vectorized_function and noticed that it takes an integer that gives the builtin function index. Unfortunately on the powerpc and cell architectures, the builtin function id overlaps with the system builtins, and you need to look at the builtin class before using the builtin index. This can be fixed in two ways, vectorizable_function in tree-vect-stmts.c can add a check for DECL_BUILT_IN_CLASS (fndecl) == BUILT_IN_NORMAL or the two ports that use the hook (i386, rs6000) can be modified to take a tree instead of the integer. I tend to think the later is preferable, because it would allow a MD scalar builtin to be vectorized. -- Summary: TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION can misoptimize when MD builtins overlap with standard builtins Product: gcc Version: 4.5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization AssignedTo: meissner at gcc dot gnu dot org ReportedBy: meissner at gcc dot gnu dot org GCC build triplet: powerpc64-unknown-linux-gnu GCC host triplet: powerpc64-unknown-linux-gnu GCC target triplet: powerpc64-unknown-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43544
[Bug tree-optimization/43544] TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION can misoptimize when MD builtins overlap with standard builtins
--- Comment #1 from meissner at gcc dot gnu dot org 2010-03-26 18:37 --- Created an attachment (id=20216) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20216&action=view) Patch to change hook to take tree as argument, not integer. This patch fixes the hook to take a tree, and fixes the two ports (i386, rs6000) to adjust their hook. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43544
[Bug tree-optimization/43544] TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION can misoptimize when MD builtins overlap with standard builtins
--- Comment #3 from meissner at gcc dot gnu dot org 2010-03-27 10:27 --- Subject: Bug 43544 Author: meissner Date: Sat Mar 27 10:27:39 2010 New Revision: 157770 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=157770 Log: PR 43544, change TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION to take a tree argument Modified: trunk/gcc/ChangeLog trunk/gcc/config/i386/i386.c trunk/gcc/config/rs6000/rs6000.c trunk/gcc/doc/tm.texi trunk/gcc/target.h trunk/gcc/targhooks.c trunk/gcc/targhooks.h trunk/gcc/tree-vect-stmts.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43544
[Bug middle-end/42694] Compiler could optimize pow (x, 0.75) into sqrt (x) * sqrt (sqrt (x))
--- Comment #6 from meissner at gcc dot gnu dot org 2010-04-14 15:02 --- Subject: Bug 42694 Author: meissner Date: Wed Apr 14 15:01:40 2010 New Revision: 158346 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=158346 Log: PR 42694: Optimize pow (x, 0.25), pow (x, 0.75), pow (x, 1./6.) Modified: trunk/gcc/ChangeLog trunk/gcc/builtins.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42694
[Bug middle-end/42694] Compiler could optimize pow (x, 0.75) into sqrt (x) * sqrt (sqrt (x))
--- Comment #7 from meissner at gcc dot gnu dot org 2010-04-14 15:03 --- Fixed with subversion id 158346. -- meissner at gcc dot gnu dot org changed: What|Removed |Added Status|NEW |RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42694
[Bug tree-optimization/42286] New: October 23rd change to tree-ssa-pre.c breaks calculix on powerpc with -ffast-math
The October 23rd, 2009 change to tree-ssa-pre.c breaks calculix on powerpc with -ffast-math. When you start up the benchmark with reference input, it fails almost immediately because the calculations don't converge. At this point, I don't have a narrowed down test case, but the following change: 2009-10-23 Richard Guenther PR tree-optimization/41778 * tree-ssa-pre.c (do_regular_insertion): Only insert if a redundancy along a path in the CFG we want to optimize for speed is going to be removed. (execute_pre): Do partial-PRE only if the function is to be optimized for speed. (gate_pre): Do not turn off all of PRE when not optimizing a function for speed. Now prevents the spec 2006 calculix benchmark from running if calculix was built with -ffast-math. The change is due to the special code in rs6000.md (and mips.md) for optimizing negative multiply and add and negative multiply and subtract optimizations with -fno-signed-zeros is used (which is set with -ffast-math). If I undo this one change in a local compiler, it builds and runs fine at full speed. If I disable the negative multiply and subtract operation from the the machine description, it runs fine, but at about 1/2 speed. Similarly if I disable -ffast-math, it runs fine, but at 1/2 speed. If I use the -fno-tree-pre option to disable the PRE pass, it fails. -- Summary: October 23rd change to tree-ssa-pre.c breaks calculix on powerpc with -ffast-math Product: gcc Version: 4.5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: meissner at gcc dot gnu dot org GCC build triplet: powerpc64-unknown-linux-gnu GCC host triplet: powerpc64-unknown-linux-gnu GCC target triplet: powerpc64-unknown-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42286
[Bug rtl-optimization/42694] New: Compiler could optimize pow (x, 0.75) into sqrt (x) * sqrt (sqrt (x))
Right now, the compiler has no special code to optimize pow (x, 0.75) into something like sqrt (x) * sqrt (sqrt (x)) under -ffast-math, nor pow (x, 0.25) into sqrt (sqrt (x)). On machines with a builtin sqrt instruction, it is often times faster to do the calculations using sqrt than calling the pow function. In particular, x**0.75 shows up in the bwaves spec 2006 benchmark. For sqrt (sqrt (x)) vs pow (x, 0.25), I see: IBM power6: 9.2 times faster Intel core2 laptop: 5 times faster AMD K8 system: 3.2 times faster For sqrt (x) * sqrt (sqrt (x)) vs. pow (x, 0.75), I see: IBM power6: 6.1 times faster Intel core2 laptop: 3.4 times faster AMD K8 system: 2.3 times faster In addition, the compiler optimizes sqrt (sqrt (x)) into pow (x, 0.25), and similar optimizations. This should be fixed by adding a hook to say what the relative speed of sqrt and cbrt vs. pow, so that the backend can control whether or not this optimization should be done. By default, the optimization is probably only useful if -Os is used on machines that have a hardware sqrt instruction. -- Summary: Compiler could optimize pow (x, 0.75) into sqrt (x) * sqrt (sqrt (x)) Product: gcc Version: 4.5.0 Status: UNCONFIRMED Keywords: missed-optimization Severity: normal Priority: P3 Component: rtl-optimization AssignedTo: meissner at gcc dot gnu dot org ReportedBy: meissner at gcc dot gnu dot org GCC build triplet: powerpc64-unknown-linux-gnu GCC host triplet: powerpc64-unknown-linux-gnu GCC target triplet: powerpc64-unknown-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42694
[Bug rtl-optimization/42694] Compiler could optimize pow (x, 0.75) into sqrt (x) * sqrt (sqrt (x))
--- Comment #1 from meissner at gcc dot gnu dot org 2010-01-11 21:42 --- Created an attachment (id=19542) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=19542&action=view) Program to demonstrate the slowdown This program calculates the speed of various pow arguments. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42694
[Bug target/42747] New: -mcpu=power7 (or -mvsx) does not generate the xssqrtdp instruction
In doing the power7 work, I inadvertently disabled sqrtdf2 for power7, because I didn't notice it was a define_insn instead of the define_expand and separate define_insn as used by the other DF operations. -- Summary: -mcpu=power7 (or -mvsx) does not generate the xssqrtdp instruction Product: gcc Version: 4.5.0 Status: UNCONFIRMED Keywords: missed-optimization Severity: normal Priority: P3 Component: target AssignedTo: meissner at gcc dot gnu dot org ReportedBy: meissner at gcc dot gnu dot org GCC build triplet: powerpc64-unknown-linux-gnu GCC host triplet: powerpc64-unknown-linux-gnu GCC target triplet: powerpc64-unknown-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42747
[Bug target/42747] -mcpu=power7 (or -mvsx) does not generate the xssqrtdp instruction
--- Comment #1 from meissner at gcc dot gnu dot org 2010-01-14 18:21 --- Created an attachment (id=19599) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=19599&action=view) Patch to enable sqrtdf if -mvsx Patch to split sqrtdf2 into expander/insn. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42747
[Bug middle-end/42694] Compiler could optimize pow (x, 0.75) into sqrt (x) * sqrt (sqrt (x))
--- Comment #3 from meissner at gcc dot gnu dot org 2010-01-26 00:40 --- Created an attachment (id=19706) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=19706&action=view) Proposed patch to fix the problem Patch to add 3 new switches to tune whether to use a combination of sqrt/cbrt to replace pow. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42694
[Bug testsuite/41701] scan-assembler-not has false positives
--- Comment #1 from meissner at gcc dot gnu dot org 2010-01-26 23:46 --- Created an attachment (id=19720) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=19720&action=view) Patch to fix my particular problem with builtins-58.c This patch fixes the particular problem I ran into that causes gcc.dg/builtins-58.c to fail when the pathname to the compiler contains the string 'pow' as in .../power7-meissner/ which is the sandbox that I use for power7 work. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41701
[Bug testsuite/41701] scan-assembler-not has false positives
--- Comment #2 from meissner at gcc dot gnu dot org 2010-01-29 17:53 --- Subject: Bug 41701 Author: meissner Date: Fri Jan 29 17:53:46 2010 New Revision: 156359 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=156359 Log: PR 41701, prevent pow in compiler pathname from a false error Modified: trunk/gcc/testsuite/gcc.dg/builtins-58.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41701
[Bug testsuite/41701] scan-assembler-not has false positives
--- Comment #3 from meissner at gcc dot gnu dot org 2010-01-29 17:54 --- Subject: Bug 41701 Author: meissner Date: Fri Jan 29 17:54:14 2010 New Revision: 156360 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=156360 Log: PR 41701, prevent pow in compiler pathname from a false error Modified: trunk/gcc/testsuite/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41701
[Bug middle-end/45712] New: Segmentation violation when compiling spec source on either x86 or ppc with debugging
The attached file that is derived from the spec 2006 benchmark suite fails if you compile it with minimal optimization and -g. If I remove the -g option, it compiles fine. I initially noticed this on powerpc64-linux-gnu, but it looked like a machine independent bug, so I tried it on a x86_64-unknown-linux-gnu system. The debugger trace is: Current directory is /home/meissner/fsf-build-x86_64/trunk/gcc/ GNU gdb (GDB) Fedora (7.1-34.fc13) Copyright (C) 2010 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-redhat-linux-gnu". For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>... Reading symbols from /data/meissner/fsf-build-x86_64/trunk/gcc/cc1...done. Breakpoint 1 at 0x5bc070: file /home/meissner/fsf-src/trunk/gcc/diagnostic.c, line 878. Breakpoint 2 at 0x5bce30: file /home/meissner/fsf-src/trunk/gcc/diagnostic.c, line 819. Breakpoint 3 at 0x483bd8 Breakpoint 4 at 0x483568 (gdb) r -O -g -quiet foo2.c Starting program: /data/meissner/fsf-build-x86_64/trunk/gcc/cc1 -O -g -quiet foo2.c Program received signal SIGSEGV, Segmentation fault. 0x00bcbb98 in get_symbol_constant_value (sym=0x706aa640) at /home/meissner/fsf-src/trunk/gcc/gimple-fold.c:67 Missing separate debuginfos, use: debuginfo-install glibc-2.12-3.x86_64 libgcc-4.4.4-10.fc13.x86_64 libstdc++-4.4.4-10.fc13.x86_64 (gdb) where #0 0x00bcbb98 in get_symbol_constant_value (sym=0x706aa640) at /home/meissner/fsf-src/trunk/gcc/gimple-fold.c:67 #1 0x00bcbf5f in maybe_fold_reference (expr=0x705e7a80, is_lhs=0 '\000') at /home/meissner/fsf-src/trunk/gcc/gimple-fold.c:554 #2 0x00bcf428 in fold_stmt_1 (gsi=0x7fffc3f0, inplace=) at /home/meissner/fsf-src/trunk/gcc/gimple-fold.c:1559 #3 0x00a00e34 in fold_marked_statements (first=34, statements=0x132ce20) at /home/meissner/fsf-src/trunk/gcc/tree-inline.c:4115 #4 0x00a086c5 in optimize_inline_calls (fn=0x70557500) at /home/meissner/fsf-src/trunk/gcc/tree-inline.c:4214 #5 0x009dd62f in inline_transform (node=) at /home/meissner/fsf-src/trunk/gcc/ipa-inline.c:2165 #6 inline_transform (node=) at /home/meissner/fsf-src/trunk/gcc/ipa-inline.c:2139 #7 0x0073b619 in execute_one_ipa_transform_pass () at /home/meissner/fsf-src/trunk/gcc/passes.c:1473 #8 execute_all_ipa_transforms () at /home/meissner/fsf-src/trunk/gcc/passes.c:1504 #9 0x0083454d in tree_rest_of_compilation (fndecl=0x70557500) at /home/meissner/fsf-src/trunk/gcc/tree-optimize.c:445 #10 0x009d2326 in cgraph_expand_function (node=0x70757d70) at /home/meissner/fsf-src/trunk/gcc/cgraphunit.c:1469 #11 0x009d4d2a in cgraph_expand_all_functions () at /home/meissner/fsf-src/trunk/gcc/cgraphunit.c:1548 #12 cgraph_optimize () at /home/meissner/fsf-src/trunk/gcc/cgraphunit.c:1804 #13 0x009d528a in cgraph_finalize_compilation_unit () at /home/meissner/fsf-src/trunk/gcc/cgraphunit.c:1012 #14 0x004adfa4 in c_write_global_declarations () at /home/meissner/fsf-src/trunk/gcc/c-decl.c:9732 #15 0x007dbd5c in compile_file (argc=5, argv=0x7fffc978) at /home/meissner/fsf-src/trunk/gcc/toplev.c:967 #16 do_compile (argc=5, argv=0x7fffc978) at /home/meissner/fsf-src/trunk/gcc/toplev.c:2394 #17 toplev_main (argc=5, argv=0x7fffc978) at /home/meissner/fsf-src/trunk/gcc/toplev.c:2435 #18 0x003db681ec5d in __libc_start_main () from /lib64/libc.so.6 #19 0x00494f19 in _start () (gdb) print sym $1 = (union tree_node *) 0x706aa640 (gdb) pt unit size align 64 symtab -260754336 alias set -1 canonical type 0x70750e70 fields unsigned DI file foo2.c line 98 col 9 size unit size align 64 offset_align 128 offset bit offset context chain > context chain > used public external common BLK file foo2.c line 109 col 3 size unit size align 64 chain > (gdb) print varpool_get_node (sym) $2 = (struct varpool_node *) 0x0 (gdb) quit A debugging session is active. Inferior 1 [process 20829] will be killed. Quit anyway? (y or n) y Debugger finished It fails because get_symbol_constant_value calls varpool_get_node, which in turns returns a NULL pointer. -- Summary: Segmentation violation when compiling spec source on either x86 or ppc with debugging Product: gcc Version: 4.6.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: middle-end AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: meissner at gcc dot gnu do
[Bug middle-end/45712] Segmentation violation when compiling spec source on either x86 or ppc with debugging
--- Comment #1 from meissner at gcc dot gnu dot org 2010-09-17 23:19 --- Created an attachment (id=21824) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=21824&action=view) Source file that shows the problem. This is a somewhat cutdown source file that shows the problem. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45712
[Bug middle-end/45712] Segmentation violation when compiling spec source on either x86 or ppc with debugging
--- Comment #2 from meissner at gcc dot gnu dot org 2010-09-17 23:21 --- Created an attachment (id=21825) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=21825&action=view) Potential patch to fix the problem This bandaid patch will allow the compiler to not segfault, but I'm unsure whether the real fix is make sure that varpool_get_node does not return a NULL pointer. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45712
[Bug tree-optimization/45714] New: Vectorization of double pow function causes a segmentation fault
This fortran program fails for both x86_64 and powerpc when an appropriate veclibabi is specified that includes support for optimizing a pow invocation to V2DF variables. On the x86_64 you need to use: -O3 -march=core2 -mavx -ffast-math -mveclibabi=svml On the powerpc you need to use: -O3 -mcpu=power7 -ffast-math -mveclibabi=mass Here is the debugger trace: Current directory is /home/meissner/fsf-build-x86_64/trunk/gcc/ GNU gdb (GDB) Fedora (7.1-34.fc13) Copyright (C) 2010 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-redhat-linux-gnu". For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>... Reading symbols from /data/meissner/fsf-build-x86_64/trunk/gcc/f951...done. Breakpoint 1 at 0x61b210: file /home/meissner/fsf-src/trunk/gcc/diagnostic.c, line 878. Breakpoint 2 at 0x61bfd0: file /home/meissner/fsf-src/trunk/gcc/diagnostic.c, line 819. Breakpoint 3 at 0x492d50 Breakpoint 4 at 0x492500 (gdb) r -O3 -quiet -march=core2 -mavx -ffast-math -mveclibabi=svml foo3.f Starting program: /data/meissner/fsf-build-x86_64/trunk/gcc/f951 -O3 -quiet -march=core2 -mavx -ffast-math -mveclibabi=svml foo3.f Program received signal SIGSEGV, Segmentation fault. 0x00975884 in nested_in_vect_loop_p (stmt=0x705d6f68, gsi=0x7fffc5b0, strided_store=, slp_node=, slp_node_instance=) at /home/meissner/fsf-src/trunk/gcc/tree-vectorizer.h:316 Missing separate debuginfos, use: debuginfo-install glibc-2.12-3.x86_64 libgcc-4.4.4-10.fc13.x86_64 libstdc++-4.4.4-10.fc13.x86_64 (gdb) where #0 0x00975884 in nested_in_vect_loop_p (stmt=0x705d6f68, gsi=0x7fffc5b0, strided_store=, slp_node=, slp_node_instance=) at /home/meissner/fsf-src/trunk/gcc/tree-vectorizer.h:316 #1 vect_transform_stmt (stmt=0x705d6f68, gsi=0x7fffc5b0, strided_store=, slp_node=, slp_node_instance=) at /home/meissner/fsf-src/trunk/gcc/tree-vect-stmts.c:4607 #2 0x00982a44 in vect_transform_loop (loop_vinfo=0x185e7f0) at /home/meissner/fsf-src/trunk/gcc/tree-vect-loop.c:4798 #3 0x0098e5a3 in vectorize_loops () at /home/meissner/fsf-src/trunk/gcc/tree-vectorizer.c:225 #4 0x007969ef in execute_one_pass (pass=0x12270c0) at /home/meissner/fsf-src/trunk/gcc/passes.c:1573 #5 0x00796c95 in execute_pass_list (pass=0x12270c0) at /home/meissner/fsf-src/trunk/gcc/passes.c:1628 #6 0x00796ca7 in execute_pass_list (pass=0x12272a0) at /home/meissner/fsf-src/trunk/gcc/passes.c:1629 #7 0x00796ca7 in execute_pass_list (pass=0x1226460) at /home/meissner/fsf-src/trunk/gcc/passes.c:1629 #8 0x0088f716 in tree_rest_of_compilation (fndecl=0x70865900) at /home/meissner/fsf-src/trunk/gcc/tree-optimize.c:452 #9 0x00a2d4d6 in cgraph_expand_function (node=0x7065f408) at /home/meissner/fsf-src/trunk/gcc/cgraphunit.c:1469 #10 0x00a2feda in cgraph_expand_all_functions () at /home/meissner/fsf-src/trunk/gcc/cgraphunit.c:1548 #11 cgraph_optimize () at /home/meissner/fsf-src/trunk/gcc/cgraphunit.c:1804 #12 0x00a3043a in cgraph_finalize_compilation_unit () at /home/meissner/fsf-src/trunk/gcc/cgraphunit.c:1012 #13 0x0075691d in write_global_declarations () at /home/meissner/fsf-src/trunk/gcc/langhooks.c:310 #14 0x00836f0c in compile_file (argc=8, argv=0x7fffc938) at /home/meissner/fsf-src/trunk/gcc/toplev.c:967 #15 do_compile (argc=8, argv=0x7fffc938) at /home/meissner/fsf-src/trunk/gcc/toplev.c:2394 #16 toplev_main (argc=8, argv=0x7fffc938) at /home/meissner/fsf-src/trunk/gcc/toplev.c:2435 #17 0x003db681ec5d in __libc_start_main () from /lib64/libc.so.6 #18 0x004a4309 in _start () (gdb) quit A debugging session is active. Inferior 1 [process 21141] will be killed. Quit anyway? (y or n) y Debugger finished If I compile it without the -mveclibabi= switch it works fine (or on the x86 use -mveclibabi=svml since svml does not provide a pow that supports V2DF arguments). -- Summary: Vectorization of double pow function causes a segmentation fault Product: gcc Version: 4.6.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: meissner at gcc dot gnu dot org GCC build triplet: x86_64-unknown-linux-gnu GCC host triplet: x86_64-unknown-linux-gnu GCC target triplet: x86_64-unknown-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45714
[Bug tree-optimization/45714] Vectorization of double pow function causes a segmentation fault
--- Comment #1 from meissner at gcc dot gnu dot org 2010-09-17 23:29 --- Created an attachment (id=21826) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=21826&action=view) Fortran program from spec 2006 that shows the bug Fortran program derived from spec 2006 that shows the bug. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45714
[Bug middle-end/45712] [4.6 Regression] Segmentation violation when compiling spec source on either x86 or ppc with debugging
--- Comment #4 from meissner at gcc dot gnu dot org 2010-09-20 21:26 --- FWIW, updating the source to subversion id 164441 seems to mask the failure on the powerpc, but the x86 still segfaults. I suspect that the bug is not actually fixed, but just doesn't show up at the current time on the powerpc. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45712
[Bug testsuite/43758] [4.6 Regression] 19 new GCC h...@158360 regressions
--- Comment #5 from meissner at gcc dot gnu dot org 2010-05-05 18:58 --- The second patch fixes the problem on the powerpc. Patch approved if documentation is added for the new hook. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43758
[Bug debug/43478] Missing DW_AT_location for a variable
--- Comment #10 from meissner at gcc dot gnu dot org 2010-05-05 21:36 --- Created an attachment (id=20572) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20572&action=view) -save-temps=obj output of failing module -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43478
[Bug debug/43478] Missing DW_AT_location for a variable
--- Comment #11 from meissner at gcc dot gnu dot org 2010-05-05 21:37 --- The patch checked in as subversion id 159063 causes the powerpc64-linux bootstrap to fail when building libgcc with release checking enabled: /home/meissner/fsf-build-ppc64/trunk/./gcc/xgcc -B/home/meissner/fsf-build-ppc64/trunk/./gcc/ -B/home/meissner/fsf-install-ppc64/trunk/powerpc64-linux/bin/ -B/home/meissner/fsf-install-ppc64/trunk/powerpc64-linux/lib/ -isystem /home/meissner/fsf-install-ppc64/trunk/powerpc64-linux/include -isystem /home/meissner/fsf-install-ppc64/trunk/powerpc64-linux/sys-include-g -O2 -m32 -fPIC -mstrict-align -O2 -g -O2 -DIN_GCC -W -Wall -Wwrite-strings -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -isystem ./include -fPIC -mno-minimal-toc -g -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -mlong-double-128 -I. -I. -I../../.././gcc -I/home/meissner/fsf-src/trunk/libgcc -I/home/meissner/fsf-src/trunk/libgcc/. -I/home/meissner/fsf-src/trunk/libgcc/../gcc -I/home/meissner/fsf-src/trunk/libgcc/../include -I/home/meissner/fsf-src/trunk/libgcc/../libdecnumber/dpd -I/home/meissner/fsf-src/trunk/libgcc/../libdecnumber -DHAVE_CC_TLS -o _floatdisf.o -MT _floatdisf.o -MD -MP -MF _floatdisf.dep -DL_floatdisf -c /home/meissner/fsf-src/trunk/libgcc/../gcc/libgcc2.c \ -fvisibility=hidden -DHIDE_EXPORTS /home/meissner/fsf-src/trunk/libgcc/../gcc/libgcc2.c: In function __floatdisf: /home/meissner/fsf-src/trunk/libgcc/../gcc/libgcc2.c:1526:1: internal compiler error: in simplify_subreg, at simplify-rtx.c:5135 Please submit a full bug report, with preprocessed source if appropriate. See <http://gcc.gnu.org/bugs.html> for instructions. make[5]: *** [_floatdisf.o] Error 1 make[5]: Leaving directory `/data2/meissner/fsf-build-ppc64/trunk/powerpc64-linux/32/libgcc' -- meissner at gcc dot gnu dot org changed: What|Removed |Added CC| |meissner at gcc dot gnu dot | |org Severity|normal |critical Priority|P3 |P1 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43478
[Bug tree-optimization/43544] TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION can misoptimize when MD builtins overlap with standard builtins
--- Comment #4 from meissner at gcc dot gnu dot org 2010-05-20 17:39 --- Fix checked in on March 26, 2010. -- meissner at gcc dot gnu dot org changed: What|Removed |Added Status|NEW |RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43544
[Bug rtl-optimization/44214] New: Compiler does not optimize vector divide with -freciprocal-math (or -ffast-math)
If you have code that does division by a constant that can be auto vectorized by the compiler, the compiler does not convert the division to multiplication by the reciprocal if -freciprocal-math (or -ffast-math), but instead does the division. The bug is in fold-const.c near line 11254, where the code for handling REAL_CST should be cloned to handle VECTOR_CST (and presumably COMPLEX_CST also). -- Summary: Compiler does not optimize vector divide with - freciprocal-math (or -ffast-math) Product: gcc Version: 4.5.0 Status: UNCONFIRMED Severity: enhancement Priority: P3 Component: rtl-optimization AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: meissner at gcc dot gnu dot org GCC build triplet: powerpc64-unknown-linux-gnu GCC host triplet: powerpc64-unknown-linux-gnu GCC target triplet: powerpc64-unknown-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44214
[Bug rtl-optimization/44214] Compiler does not optimize vector divide with -freciprocal-math (or -ffast-math)
--- Comment #1 from meissner at gcc dot gnu dot org 2010-05-20 18:00 --- Actually in looking at it further, I was wrong in the initial claim. Auto vectorization now handles division by a constant. Explicit vectors like PowerPC (and probably SPU) do show the problem. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44214
[Bug rtl-optimization/44214] Compiler does not optimize vector divide with -freciprocal-math (or -ffast-math)
--- Comment #2 from meissner at gcc dot gnu dot org 2010-05-20 18:02 --- Created an attachment (id=20712) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20712&action=view) Example program that shows the issue on powerpc. Compile with -mcpu=power7 on powerpc. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44214
[Bug target/44218] New: Improve powerpc -mrecip support
The current powerpc -mrecip can be improved in several areas. 1) The compiler generates a conditional test to deal with NaN, etc. even though it is only used with -ffast-math, where the programmer declares that he/she is not interested in Nan/infinity/etc. This causes the code to single thread the approximation, and does not allow the power7 to issue two streams of FRSQRTES and fixup in parallel. 2) Right now, -mrecip only enables single precision reciprocal square estimate. The compiler should be modified so that it also supports double precision reciprocal estimate on newer machines (power6/power7) that have a high enough precision FRSQRTE instruction. 3) In addition to optimizing 1/sqrt(x), the compiler should be able to optimize normal divisions using the FRE/FRES instructions. Machines with higher precision FRE instructions should do fewer passes in the fixup than the older machines. 4) On altivec and VSX systems, the compiler should enable auto vectorization of the estimate instructions and fixup. 5) The compiler should provide more builtins to allow the user to access to double reciprocal square root, as well as vector versions. -- Summary: Improve powerpc -mrecip support Product: gcc Version: 4.6.0 Status: UNCONFIRMED Severity: enhancement Priority: P3 Component: target AssignedTo: meissner at gcc dot gnu dot org ReportedBy: meissner at gcc dot gnu dot org GCC build triplet: powerpc64-unknown-linux-gnu GCC host triplet: powerpc64-unknown-linux-gnu GCC target triplet: powerpc64-unknown-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44218
[Bug bootstrap/44314] New: Powerpc64-unknown-linux-gnu bootstrap broken
ack.h /usr/include/bits/stat.h /usr/include/bits/stdio.h /usr/include/bits/string2.h /usr/include/bits/sys_errlist.h /usr/include/bits/typesizes.h /usr/include/bits/uio.h /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h /usr/include/errno.h /usr/include/gnu/stubs-64.h /usr/include/gnu/stubs.h /usr/include/limits.h /usr/lib64/gcc/powerpc64-suse-linux/4.3/include-fixed/syslimits.h In file included from /home/meissner/fsf-src/trunk/gcc/c-common.c:4690: /home/meissner/fsf-src/trunk/gcc/builtins.def: In function c_define_builtins: /home/meissner/fsf-src/trunk/gcc/builtins.def:178: error: OPTION_GLIBC undeclared (first use in this function) /home/meissner/fsf-src/trunk/gcc/builtins.def:178: error: (Each undeclared identifier is reported only once /home/meissner/fsf-src/trunk/gcc/builtins.def:178: error: for each function it appears in.) make: *** [c-common.o] Error 1 Note, that linux-android.h is included in this case, which is definately wrong for powerpc. -- Summary: Powerpc64-unknown-linux-gnu bootstrap broken Product: gcc Version: 4.6.0 Status: UNCONFIRMED Severity: critical Priority: P3 Component: bootstrap AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: meissner at gcc dot gnu dot org GCC build triplet: powerpc64-unknown-linux-gnu GCC host triplet: powerpc64-unknown-linux-gnu GCC target triplet: powerpc64-unknown-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44314
[Bug target/44218] Improve powerpc -mrecip support
--- Comment #1 from meissner at gcc dot gnu dot org 2010-06-01 23:30 --- Created an attachment (id=20802) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20802&action=view) Patch to improve powerpc -mrecip support This patch updates and expands the -mrecip support on the powerpc. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44218
[Bug target/44218] Improve powerpc -mrecip support
--- Comment #2 from meissner at gcc dot gnu dot org 2010-06-03 00:06 --- Subject: Bug 44218 Author: meissner Date: Thu Jun 3 00:06:12 2010 New Revision: 160199 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=160199 Log: PR target/44218, improve -mrecip on powerpc Added: trunk/gcc/testsuite/gcc.target/powerpc/recip-1.c trunk/gcc/testsuite/gcc.target/powerpc/recip-2.c trunk/gcc/testsuite/gcc.target/powerpc/recip-3.c trunk/gcc/testsuite/gcc.target/powerpc/recip-4.c trunk/gcc/testsuite/gcc.target/powerpc/recip-5.c trunk/gcc/testsuite/gcc.target/powerpc/recip-6.c trunk/gcc/testsuite/gcc.target/powerpc/recip-7.c trunk/gcc/testsuite/gcc.target/powerpc/recip-test.h trunk/gcc/testsuite/gcc.target/powerpc/recip-test2.h Modified: trunk/gcc/ChangeLog trunk/gcc/config/rs6000/altivec.h trunk/gcc/config/rs6000/altivec.md trunk/gcc/config/rs6000/rs6000-builtin.def trunk/gcc/config/rs6000/rs6000-c.c trunk/gcc/config/rs6000/rs6000-protos.h trunk/gcc/config/rs6000/rs6000.c trunk/gcc/config/rs6000/rs6000.h trunk/gcc/config/rs6000/rs6000.md trunk/gcc/config/rs6000/rs6000.opt trunk/gcc/config/rs6000/vector.md trunk/gcc/config/rs6000/vsx.md trunk/gcc/doc/extend.texi trunk/gcc/doc/invoke.texi trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/lib/target-supports.exp -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44218
[Bug target/44877] New: C++ compiler can no longer compile dealII for VSX/Altivec vectorization
Recent changes to the compiler (probably around July 4th) gets an assertion failure when the Spec 2006 dealII benchmark is compiled for the powerpc targeting either Altivec or VSX vector instruction sets. This is due to the builtin mask for load/store builtins being passed a reference type instead of a pointer type. The July 4th change made changes in how the compiler peels loops, and it exposed the bug. The fix is to change to assertion to check for both POINTER_TYPE and REFERENCE_TYPE. -- Summary: C++ compiler can no longer compile dealII for VSX/Altivec vectorization Product: gcc Version: 4.6.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target AssignedTo: meissner at gcc dot gnu dot org ReportedBy: meissner at gcc dot gnu dot org GCC build triplet: powerpc64-unknown-linux-gnu GCC host triplet: powerpc64-unknown-linux-gnu GCC target triplet: powerpc64-unknown-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44877
[Bug target/44877] C++ compiler can no longer compile dealII for VSX/Altivec vectorization
--- Comment #1 from meissner at gcc dot gnu dot org 2010-07-08 19:23 --- Created an attachment (id=21148) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=21148&action=view) Cut down example to show the problem Compile with -m32 -O3 -mcpu=power5 -maltivec and it should trap with an assertion failure in rs6000_expand_builtin. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44877
[Bug target/44877] C++ compiler can no longer compile dealII for VSX/Altivec vectorization
--- Comment #2 from meissner at gcc dot gnu dot org 2010-07-08 19:25 --- Created an attachment (id=21149) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=21149&action=view) Patch to change the assertion to allow REFERENCE_TYPE This patch changes the assertion to allow REFERENCE_TYPE as well as POINTER_TYPE, which allows dealII to compile. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44877