[Bug middle-end/39254] [4.4 Regression] gcc.c-torture/execute/va-arg-trap-1.c ICEs on powerpc-apple-darwin9
--- Comment #12 from janis at gcc dot gnu dot org 2009-03-19 17:00 --- I tested this patch, which I assume is what was described in comment #11: Index: gcc/config/rs6000/rs6000.c === --- gcc/config/rs6000/rs6000.c (revision 144923) +++ gcc/config/rs6000/rs6000.c (working copy) @@ -5206,15 +5206,6 @@ rs6000_emit_move (rtx dest, rtx source, ! legitimate_constant_pool_address_p (operands[1]) ! toc_relative_expr_p (operands[1])) { - /* Emit a USE operation so that the constant isn't deleted if -expensive optimizations are turned on because nobody -references it. This should only be done for operands that -contain SYMBOL_REFs with CONSTANT_POOL_ADDRESS_P set. -This should not be done for operands that contain LABEL_REFs. -For now, we just handle the obvious case. */ - if (GET_CODE (operands[1]) != LABEL_REF) - emit_use (operands[1]); - #if TARGET_MACHO /* Darwin uses a special PIC legitimizer. */ if (DEFAULT_ABI == ABI_DARWIN MACHOPIC_INDIRECT) I bootstrapped all languages except Ada on powerpc64-unknown-linux-gnu and ran the testsuite with -m32/-m64, and the only change was that test va-arg-trap-1 now passes. -- janis at gcc dot gnu dot org changed: What|Removed |Added CC||dje at gcc dot gnu dot org, ||janis at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39254
[Bug middle-end/39254] [4.4 Regression] gcc.c-torture/execute/va-arg-trap-1.c ICEs on powerpc-apple-darwin9
-- rguenth at gcc dot gnu dot org changed: What|Removed |Added Priority|P3 |P2 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39254
[Bug middle-end/39254] [4.4 Regression] gcc.c-torture/execute/va-arg-trap-1.c ICEs on powerpc-apple-darwin9
--- Comment #11 from amylaar at gcc dot gnu dot org 2009-03-03 09:40 --- (In reply to comment #10) Mike, as far as I can tell, you originally (in 1997) added the code to rs6000.md which is now in rs6000.c:rs6000_emit_move and emits a USE for SYMBOL_REFS that are the source of a move. (Search for Emit a USE operation). I have tried to #ifdef 0 this code in rs6000_emit_move, and a regression test on gcc40 (powerpc64-unknown-linux-gnu) shows only two differences, i.e. FAIL: gcc.c-torture/execute/va-arg-trap-1.c compilation, -O2 (internal compile r error) FAIL: gcc.c-torture/execute/va-arg-trap-1.c compilation, -Os (internal compile r error) from the baseline went away. I've used revision 144485 for my baseline, and after determining that a standard bootstrap did not work (probably a 32/64 bit ABI problem, I didn't think it was worth the trouble to hand-bootstrap to 64 bit considering this is probably not the OS we really need testing) I built / tested with: ( make all-gcc all-target-libgcc all-target-libobjc all-target-libstdc++-v3 all-target-libgfortran;make check) make.out 21 baseline summaries: === gcc Summary === # of expected passes52951 # of unexpected failures23 # of expected failures 204 # of unresolved testcases 2 # of unsupported tests 615 === g++ Summary === # of expected passes19046 # of expected failures 140 # of unsupported tests 133 === gfortran Summary === # of expected passes29054 # of expected failures 11 # of unsupported tests 183 === libstdc++ Summary === # of expected passes5828 # of unexpected failures1 # of unexpected successes 4 # of expected failures 80 # of unsupported tests 333 Patched summary: === gcc Summary === # of expected passes52955 # of unexpected failures21 # of expected failures 204 # of unsupported tests 615 ; identical as baseline above for the other testsuites. I think this should be tested on a power or powerpc AIX target. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39254
[Bug middle-end/39254] [4.4 Regression] gcc.c-torture/execute/va-arg-trap-1.c ICEs on powerpc-apple-darwin9
--- Comment #10 from amylaar at gcc dot gnu dot org 2009-02-28 16:30 --- I appears the haifa scheduler doesn't know what to do with the lone use of (symbol_ref ap) so it ends up clogging the end of a basic block. Mike, as far as I can tell, you originally (in 1997) added the code to rs6000.md which is now in rs6000.c:rs6000_emit_move and emits a USE for SYMBOL_REFS that are the source of a move. (Search for Emit a USE operation). What is wrong with deleting constants that are not used? -- amylaar 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=39254
[Bug middle-end/39254] [4.4 Regression] gcc.c-torture/execute/va-arg-trap-1.c ICEs on powerpc-apple-darwin9
--- Comment #9 from bonzini at gnu dot org 2009-02-26 09:09 --- comment #6 suggests that it is at least a regression *from 4.2 to 4.3*? -- bonzini at gnu dot org changed: What|Removed |Added CC||bonzini at gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39254
[Bug middle-end/39254] [4.4 Regression] gcc.c-torture/execute/va-arg-trap-1.c ICEs on powerpc-apple-darwin9
--- Comment #8 from rguenth at gcc dot gnu dot org 2009-02-24 13:16 --- This also ICEs on powerpc64-linux. The testsuite fail from this is a regression. -- rguenth at gcc dot gnu dot org changed: What|Removed |Added Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 GCC target triplet|powerpc-apple-darwin9 |powerpc-apple-darwin9, ||powerpc64-linux Keywords||ice-on-valid-code Last reconfirmed|-00-00 00:00:00 |2009-02-24 13:16:34 date|| Summary|gcc.c-torture/execute/va- |[4.4 Regression] gcc.c- |arg-trap-1.c ICEs on|torture/execute/va-arg-trap- |powerpc-apple-darwin9 |1.c ICEs on powerpc-apple- ||darwin9 Target Milestone|--- |4.4.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39254