[Bug rtl-optimization/27073] invalid gcse manipulation of REG_EQUIV notes
--- Comment #1 from rsandifo at gcc dot gnu dot org 2006-04-09 10:06 --- Subject: Bug 27073 Author: rsandifo Date: Sun Apr 9 10:06:20 2006 New Revision: 112803 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=112803 Log: PR rtl-optimization/27073 * gcse.c (try_replace_reg): Just propagate into REG_EQUAL notes, not REG_EQUIVs. gcc/testsuite/ * gcc.c-torture/execute/pr27073.c: New test. Added: trunk/gcc/testsuite/gcc.c-torture/execute/pr27073.c Modified: trunk/gcc/ChangeLog trunk/gcc/gcse.c trunk/gcc/testsuite/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27073
[Bug rtl-optimization/27073] invalid gcse manipulation of REG_EQUIV notes
--- Comment #2 from rsandifo at gcc dot gnu dot org 2006-04-09 10:09 --- Fixed on mainline and not known to be a regression for a specific testcase. -- rsandifo at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27073
[Bug target/25595] GCC ICE in xorg-x11 compiled in thumb
--- Comment #2 from rsandifo at gcc dot gnu dot org 2006-04-09 13:53 --- *** This bug has been marked as a duplicate of 27073 *** -- rsandifo at gcc dot gnu dot org changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution||DUPLICATE http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25595
[Bug rtl-optimization/27073] invalid gcse manipulation of REG_EQUIV notes
--- Comment #3 from rsandifo at gcc dot gnu dot org 2006-04-09 13:53 --- *** Bug 25595 has been marked as a duplicate of this bug. *** -- rsandifo at gcc dot gnu dot org changed: What|Removed |Added CC||raj dot khem at gmail dot ||com http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27073
[Bug rtl-optimization/27073] invalid gcse manipulation of REG_EQUIV notes
--- Comment #4 from rsandifo at gcc dot gnu dot org 2006-04-11 17:43 --- Subject: Bug 27073 Author: rsandifo Date: Tue Apr 11 17:43:07 2006 New Revision: 112861 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=112861 Log: PR rtl-optimization/27073 * gcse.c (try_replace_reg): Revert last change. Continue to search for both REG_EQUAL and REG_EQUIV notes, but only perform replacements on the former. Modified: trunk/gcc/ChangeLog trunk/gcc/gcse.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27073
[Bug target/25514] [m68k] internal consistency failure
--- Comment #4 from rsandifo at gcc dot gnu dot org 2006-04-25 14:23 --- This issue is related to PR22002. I have a patch. A slightly-more reduced testcase is: struct node { struct node *next; int value; }; struct node *current_node, global_list; void bar (void) { struct node *node, *next; node = current_node; next = node->next; if (node != &global_list) current_node = next; else { node = global_list.next; global_list.value = node->value; global_list.next = node->next; } foo (node); } -- rsandifo at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |rsandifo at gcc dot gnu dot |dot org |org Status|NEW |ASSIGNED Last reconfirmed|2006-02-02 19:32:25 |2006-04-25 14:23:53 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25514
[Bug rtl-optimization/26725] [4.2 Regression] ICE in check_reg_live, at haifa-sched.c:4645 with -O2 on ia64
--- Comment #5 from rsandifo at gcc dot gnu dot org 2006-04-25 21:34 --- Subject: Bug 26725 Author: rsandifo Date: Tue Apr 25 21:34:48 2006 New Revision: 113257 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=113257 Log: gcc/ PR rtl-optimization/26725 * cfgrtl.c (rtl_redirect_edge_and_branch_force): Set the source block's BB_DIRTY flag. gcc/testsuite/ * gcc.c-torture/compile/pr26725.c: New test. Added: trunk/gcc/testsuite/gcc.c-torture/compile/pr26725.c Modified: trunk/gcc/ChangeLog trunk/gcc/cfgrtl.c trunk/gcc/testsuite/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26725
[Bug rtl-optimization/26725] [4.2 Regression] ICE in check_reg_live, at haifa-sched.c:4645 with -O2 on ia64
--- Comment #6 from rsandifo at gcc dot gnu dot org 2006-04-25 21:36 --- Patch applied to trunk. -- rsandifo at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26725
[Bug target/25514] [m68k] internal consistency failure
--- Comment #5 from rsandifo at gcc dot gnu dot org 2006-04-27 16:41 --- Subject: Bug 25514 Author: rsandifo Date: Thu Apr 27 16:41:51 2006 New Revision: 113312 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=113312 Log: PR rtl-optimization/25514 * combine.c (replaced_rhs_insn): New variable. (combine_instructions): Set replaced_rhs_insn when trying to replace a SET_SRC with a REG_EQUAL note. (distribute_notes): Use replaced_rhs_insn when determining the live range of a REG_DEAD register. gcc/testsute * gcc.c-torture/compile/pr25514.c: New test. Modified: branches/csl/coldfire-4_1/ChangeLog.csl branches/csl/coldfire-4_1/gcc/combine.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25514
[Bug target/25514] [m68k] internal consistency failure
--- Comment #6 from rsandifo at gcc dot gnu dot org 2006-04-27 16:43 --- Subject: Bug 25514 Author: rsandifo Date: Thu Apr 27 16:43:10 2006 New Revision: 113313 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=113313 Log: PR rtl-optimization/25514 * combine.c (replaced_rhs_insn): New variable. (combine_instructions): Set replaced_rhs_insn when trying to replace a SET_SRC with a REG_EQUAL note. (distribute_notes): Use replaced_rhs_insn when determining the live range of a REG_DEAD register. gcc/testsute * gcc.c-torture/compile/pr25514.c: New test. Added: branches/csl/coldfire-4_1/gcc/testsuite/gcc.c-torture/compile/pr25514.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25514
[Bug target/25871] TRAMPOLINE_TEMPLATE uses 32bit moves on 64bit code
--- Comment #6 from rsandifo at gcc dot gnu dot org 2006-04-28 22:36 --- The patch looks good to me, thanks, and should be small enough to avoid the need for a copyright assignment. I'll apply it next week. -- rsandifo at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |rsandifo at gcc dot gnu dot |dot org |org Status|NEW |ASSIGNED Last reconfirmed|2006-01-20 14:10:16 |2006-04-28 22:36:05 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25871
[Bug target/25871] TRAMPOLINE_TEMPLATE uses 32bit moves on 64bit code
--- Comment #7 from rsandifo at gcc dot gnu dot org 2006-05-02 12:57 --- Subject: Bug 25871 Author: rsandifo Date: Tue May 2 12:57:52 2006 New Revision: 113460 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=113460 Log: 2006-05-02 Joshua Kinard <[EMAIL PROTECTED]> PR target/25871 * gcc/config/mips/mips.h (TRAMPOLINE_TEMPLATE): Avoid 32-bit moves with 64-bit pointers. Modified: trunk/gcc/ChangeLog trunk/gcc/config/mips/mips.h -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25871
[Bug target/25871] TRAMPOLINE_TEMPLATE uses 32bit moves on 64bit code
--- Comment #8 from rsandifo at gcc dot gnu dot org 2006-05-02 13:02 --- Fixed on mainline. -- rsandifo at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25871
[Bug target/22209] [4.1 regression] libgfortran unresolvable symbols on irix6.5
--- Comment #14 from rsandifo at gcc dot gnu dot org 2006-05-19 08:05 --- Subject: Bug 22209 Author: rsandifo Date: Fri May 19 08:05:39 2006 New Revision: 113903 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=113903 Log: * libgcc2.c (MIN_UNITS_PER_WORD): Move default definition from libgcc2.h. (LIBGCC2_UNITS_PER_WORD): Provide default definition, using old MIN_UNITS_PER_WORD logic from libgcc2.h. Do nothing if LIBGCC2_UNITS_PER_WORD > MIN_UNITS_PER_WORD. * libgcc2.h (MIN_UNITS_PER_WORD): Remove definition from here. Use LIBGCC2_UNITS_PER_WORD rather than MIN_UNITS_PER_WORD to determine the size of Wtype, etc. * mklibgcc.in (LIB2_SIDITI_CONV_FUNCS): New argument. (swfloatfuncs): New variable. (dwfloatfuncs): Likewise. (lib2funcs): Remove floating-point conversion functions from initial assignment. Use LIB2_SIDITI_CONV_FUNCS to determine the set of conversion routines needed. Allow entries to specify an object name, filename and word size. Update users accordingly. * Makefile.in (libgcc.mk): Pass LIB2_SIDITI_CONV_FUNCS. * config/mips/t-mips (LIB2_SIDITI_CONV_FUNCS): Define. Revert: 2006-02-08 Roger Sayle <[EMAIL PROTECTED]> PR target/22209 * config/fixtfdi.c: New libgcc source file. * config/fixunstfdi.c: New source file. * config/floatditf.c: New source file. * config/floatunditf.c: New souce file. * config/mips/t-iris6 (LIB2FUNCS_EXTRA): Include the new source files above instead of config/mips/_tilib.c. * config/mips/t-linux64 (LIB2FUNCS_EXTRA): Likewise. Removed: trunk/gcc/config/fixtfdi.c trunk/gcc/config/fixunstfdi.c trunk/gcc/config/floatditf.c trunk/gcc/config/floatunditf.c Modified: trunk/gcc/ChangeLog trunk/gcc/Makefile.in trunk/gcc/config/mips/t-iris6 trunk/gcc/config/mips/t-linux64 trunk/gcc/config/mips/t-mips trunk/gcc/libgcc2.c trunk/gcc/libgcc2.h trunk/gcc/mklibgcc.in -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22209
[Bug target/27338] Violation of mips o64 ABI
--- Comment #1 from rsandifo at gcc dot gnu dot org 2006-05-19 15:10 --- The use of $f14 was an unintentional historical accident, not a deliberate decision. It has since been "fixed". I realise this isn't going to be very helpful to you, but you should just treat 3.4 and 4.x as being ABI-incompatible as far as o64 is concerned. The web page should be updated; I'll assign myself to this bug for that reason. Richard -- rsandifo at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |rsandifo at gcc dot gnu dot |dot org |org Status|UNCONFIRMED |ASSIGNED Ever Confirmed|0 |1 Last reconfirmed|-00-00 00:00:00 |2006-05-19 15:10:28 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27338
[Bug bootstrap/24631] SIGBUS during bootstrap
--- Comment #3 from rsandifo at gcc dot gnu dot org 2006-05-19 15:13 --- Any update on this? -- rsandifo at gcc dot gnu dot org changed: What|Removed |Added CC||rsandifo at gcc dot gnu dot ||org Status|UNCONFIRMED |WAITING http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24631
[Bug target/27681] New: [4.1 regression] Missing DImode float conversion functions
libgcc no longer provides __fixuns*si(), __fix*di() and __floatdi*() functions. This causes many testsuite failures on soft-float mipsisa64-elf. -- Summary: [4.1 regression] Missing DImode float conversion functions Product: gcc Version: 4.1.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: rsandifo at gcc dot gnu dot org GCC target triplet: mipsisa64-elf http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27681
[Bug target/27681] [4.1 regression] Missing DImode float conversion functions
--- Comment #1 from rsandifo at gcc dot gnu dot org 2006-05-19 15:24 --- This was fixed for 4.2 by: http://gcc.gnu.org/ml/gcc-patches/2006-05/msg00806.html -- rsandifo at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |rsandifo at gcc dot gnu dot |dot org |org Status|UNCONFIRMED |ASSIGNED Ever Confirmed|0 |1 Known to fail||4.1.1 Known to work||4.0.0 4.1.0 4.2.0 Last reconfirmed|-00-00 00:00:00 |2006-05-19 15:24:54 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27681
[Bug testsuite/25891] gomp tests run on non-libgomp (non-thread) ports, failing all
--- Comment #7 from rsandifo at gcc dot gnu dot org 2006-05-20 14:16 --- Subject: Bug 25891 Author: rsandifo Date: Sat May 20 14:15:51 2006 New Revision: 113929 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=113929 Log: gcc/testsuite PR testsuite/25891 * g++.dg/gomp/gomp.exp: Skip if ![check_effective_target_fopenmp]. Modified: trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/g++.dg/gomp/gomp.exp -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25891
[Bug testsuite/25891] gomp tests run on non-libgomp (non-thread) ports, failing all
--- Comment #8 from rsandifo at gcc dot gnu dot org 2006-05-20 14:19 --- Fixed by: http://gcc.gnu.org/ml/gcc-patches/2006-05/msg01023.html -- rsandifo at gcc dot gnu dot org changed: What|Removed |Added Status|NEW |RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25891
[Bug target/25514] [m68k] internal consistency failure
--- Comment #8 from rsandifo at gcc dot gnu dot org 2006-05-22 15:58 --- Subject: Bug 25514 Author: rsandifo Date: Mon May 22 15:58:03 2006 New Revision: 113983 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=113983 Log: PR rtl-optimization/25514 * combine.c (replaced_rhs_insn): New variable. (combine_instructions): Set replaced_rhs_insn when trying to replace a SET_SRC with a REG_EQUAL note. (distribute_notes): Use replaced_rhs_insn when determining the live range of a REG_DEAD register. gcc/testsute * gcc.c-torture/compile/pr25514.c: New test. Added: trunk/gcc/testsuite/gcc.c-torture/compile/pr25514.c Modified: trunk/gcc/ChangeLog trunk/gcc/combine.c trunk/gcc/testsuite/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25514
[Bug middle-end/27736] [4.2 Regression] unwind-dw2-fde.c:833: fatal error: internal consistency failure
-- rsandifo at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |rsandifo at gcc dot gnu dot |dot org |org Status|UNCONFIRMED |ASSIGNED Ever Confirmed|0 |1 Last reconfirmed|-00-00 00:00:00 |2006-05-23 05:48:26 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27736
[Bug middle-end/27736] [4.2 Regression] unwind-dw2-fde.c:833: fatal error: internal consistency failure
--- Comment #3 from rsandifo at gcc dot gnu dot org 2006-05-23 06:17 --- Created an attachment (id=11498) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=11498&action=view) Possible patch I'm very sorry for the breakage. Here's a patch that appears to fix the bug. I'll continue testing. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27736
[Bug middle-end/27736] [4.2 Regression] unwind-dw2-fde.c:833: fatal error: internal consistency failure
--- Comment #4 from rsandifo at gcc dot gnu dot org 2006-05-23 13:06 --- Patch posted: http://gcc.gnu.org/ml/gcc-patches/2006-05/msg01169.html -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27736
[Bug middle-end/27736] [4.2 Regression] unwind-dw2-fde.c:833: fatal error: internal consistency failure
--- Comment #6 from rsandifo at gcc dot gnu dot org 2006-05-23 15:07 --- Subject: Bug 27736 Author: rsandifo Date: Tue May 23 15:07:00 2006 New Revision: 114019 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=114019 Log: PR rtl-optimization/27736 * combine.c (replaced_rhs_value): New variable. (combine_instructions): Set it. (distribute_notes): When distributing a note in replaced_rhs_insn, check whether the value was used in replaced_rhs_value. Modified: trunk/gcc/ChangeLog trunk/gcc/combine.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27736
[Bug middle-end/27736] [4.2 Regression] unwind-dw2-fde.c:833: fatal error: internal consistency failure
--- Comment #7 from rsandifo at gcc dot gnu dot org 2006-05-23 15:08 --- Patch applied. (Thanks to Roger for the quick review.) -- rsandifo at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27736
[Bug middle-end/24998] [4.2 Regression] Build failure: undefined symbol __floatunsitf
--- Comment #31 from rsandifo at gcc dot gnu dot org 2006-06-04 20:46 --- FYI, see: http://gcc.gnu.org/ml/gcc-patches/2006-02/msg01010.html about the MIPS16 situation. To summarise, mips16.S should be considered legacy code, and I've never seen a report of it being used (never mind recently). I don't think there's any point changing it; either we should just leave it as it is (in the hope that it does someone some good somewhere) or remove the MIPS16 hard-float support entirely. I'd rather not do the latter just yet though. I suspect MIPS will be submitting more MIPS16e patches when we get to stage 1, so I think removal of this code should wait until 4.3 at the earliest. Richard -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24998
[Bug target/27770] [4.2 Regression] wrong code in spec tests for -ftree-vectorize -maltivec
--- Comment #7 from rsandifo at gcc dot gnu dot org 2006-06-06 08:54 --- Based on David's descripion, a reduced testcase appears to be: static short f[100]; int bar (void) { return f[0]; } void foo (void) { int i; for (i = 0; i < 100; i++) f[i]++; } Looking at the assembly output of "-O2 -ftree-vectorize -maltivec -mabi=altivec", it seems that "f" will only be guaranteed 2-byte alignment with -fsection-anchors. Without -fno-section-anchors, "f" gets the expected 16-byte alignment. This is an ordering problem. gcc is compiling bar() first, and generating code on the assumption that "f" has natural alignment. The vectoriser then increases the alignment of "f", which throws off any layout based on the original natural alignment. If bar() is compiled first, then gcc really does need to be able to place "f" at a fixed offset in its section, so that it can use section anchors to access "f". So I think the possible fixes are: (1) Don't use section anchors for "f" in bar() (2) Don't increase the alignment of "f" in foo() (3) Increase the alignment of "f" before compiling either foo() or bar() (1) implies either (1a) not using section anchors for vectorisable variables or (1b) disabling -fsection-anchors when -ftree-vectorize is in effect. (2) implies either (2a) not increasing the alignment of variables that have already been assigned a block offset or (2b) preventing -ftree-vectorize from increasing alignment when -fsection-anchors is in effect. (3) implies increasing the alignment of all vectorisable variables if both -fsection-anchors and -ftree-vectorize are in effect. Neither (2a) nor (2b) is acceptable IMO. (I don't think (2a) is acceptable because the order of compilation is not guaranteed.) (1) is a worst-case fall-back position, with (1a) obviously being better than (1b). (3) seems more appealing, but only if we accept that -fsection-anchors -ftree-vectorize may increase the alignment of variables that do not in fact get vectorised. This is going to be a data size hit. (Hopefully it will only be a small hit, and I suppose -ftree-vectorize is already a "speed over size" optimisation.) If we choose (1) or (3), I suppose we should also add a gcc_assert() that the vectoriser is not increasing the alignment of a variable that has already been placed in a block (i.e. assert that (2a) would then be a no-op). Richard -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27770
[Bug middle-end/28034] [4.2 Regression] section anchors break -fprofile-generate
--- Comment #2 from rsandifo at gcc dot gnu dot org 2006-06-19 12:57 --- In response to comment #1, "tmp" isn't really the problem. The problem is coverage_counter_alloc(), which initially create an array of 1000 counters, and only supplies the real type at the end of compilation: /* Generate and save a copy of this so it can be shared. */ /* We don't know the size yet; make it big enough that nobody will make any clever transformation on it. */ char buf[20]; tree gcov_type_node = get_gcov_type (); tree domain_tree = build_index_type (build_int_cst (NULL_TREE, 1000)); /* replaced later */ tree gcov_type_array_type = build_array_type (gcov_type_node, domain_tree); If the final array has fewer than 1000 counters (as in the reduced testcase), we get some silly padding, but correct code. If the array has more than 1000 counters (as in the original testcase), the offset calculation wraps. Like the -ftree-vectorize thing, this is a chicken-and-egg ordering problem. The fix is to avoid using section anchors for tree_ctr_tables[]. Richard -- rsandifo at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |rsandifo at gcc dot gnu dot |dot org |org Status|UNCONFIRMED |ASSIGNED Ever Confirmed|0 |1 Last reconfirmed|-00-00 00:00:00 |2006-06-19 12:57:46 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28034
[Bug middle-end/28034] [4.2 Regression] section anchors break -fprofile-generate
--- Comment #3 from rsandifo at gcc dot gnu dot org 2006-06-19 14:31 --- Created an attachment (id=11704) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=11704&action=view) Candidate patch Janis, can you try this patch? It avoids the use of section anchors for coverage counters. I'm bootstrapping it on i686-pc-linux-gnu, but that's not really much of a test. Richard -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28034
[Bug middle-end/28034] [4.2 Regression] section anchors break -fprofile-generate
--- Comment #5 from rsandifo at gcc dot gnu dot org 2006-06-21 21:27 --- Subject: Bug 28034 Author: rsandifo Date: Wed Jun 21 21:27:19 2006 New Revision: 114870 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=114870 Log: gcc/ PR middle-end/28034 * coverage.c (coverage_counter_alloc): Leave the index type unspecified. (coverage_counter_alloc): Use null arguments for operands 2 and 3 of the ARRAY_REF. Modified: trunk/gcc/ChangeLog trunk/gcc/coverage.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28034
[Bug middle-end/28034] [4.2 Regression] section anchors break -fprofile-generate
--- Comment #6 from rsandifo at gcc dot gnu dot org 2006-06-21 21:28 --- Patch applied. -- rsandifo at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28034
[Bug middle-end/28402] New: [4.0/4.1/4.2 Regression] Doubleword shifts implemented using word_mode libcalls
On sh (and other targets with no variable shift): typedef unsigned long long ull; ull foo (ull x, int y) { return x << y; } is implemented using several calls to the SImode shift routines, rather than one call to the DImode routine. A similar problem affects constant shifts if the target does not have a direct implementation. 3.4 did not have this problem; it's a 4.x regression introduced by my 2004-09-04 patch. -- Summary: [4.0/4.1/4.2 Regression] Doubleword shifts implemented using word_mode libcalls Product: gcc Version: 4.0.0 Status: UNCONFIRMED Keywords: missed-optimization Severity: normal Priority: P3 Component: middle-end AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: rsandifo at gcc dot gnu dot org GCC target triplet: sh-elf http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28402
[Bug middle-end/28402] [4.0/4.1/4.2 Regression] Doubleword shifts implemented using word_mode libcalls
--- Comment #1 from rsandifo at gcc dot gnu dot org 2006-07-17 08:16 --- I'm testing a patch. -- rsandifo at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |rsandifo at gcc dot gnu dot |dot org |org Status|UNCONFIRMED |ASSIGNED Ever Confirmed|0 |1 Known to fail||4.0.4 4.1.2 4.2.0 Known to work||3.4.4 Last reconfirmed|-00-00 00:00:00 |2006-07-17 08:16:05 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28402
[Bug middle-end/28403] New: [4.0/4.1/4.2 Regression] Missed argument pop after doubleword shift
On sh, the following code: - typedef unsigned long long ull; int __attribute__((noinline)) foo (int x1, int x2, int x3, int x4, int x5, int x6, int x7, int x8) { return x1 + x2 + x3 + x4 + x5 + x6 + x7 + x8; } ull __attribute__((noinline)) bar (ull x) { return x << foo (1, 2, 1, 3, 1, 4, 1, 5); } int main (void) { if (bar (0x123456789ULL) != (0x123456789ULL << 18)) abort (); exit (0); } - is miscompiled; we do not pop the arguments from the call to foo(). The problem is that the pop was done by an aborted attempt to do the shift using OPTAB_DIRECT. 3.4 did not have this problem; it's a 4.x regression introduced by my 2004-09-04 patch. -- Summary: [4.0/4.1/4.2 Regression] Missed argument pop after doubleword shift Product: gcc Version: 4.0.0 Status: UNCONFIRMED Keywords: wrong-code Severity: critical Priority: P3 Component: middle-end AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: rsandifo at gcc dot gnu dot org GCC target triplet: sh-elf http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28403
[Bug middle-end/28403] [4.0/4.1/4.2 Regression] Missed argument pop after doubleword shift
--- Comment #1 from rsandifo at gcc dot gnu dot org 2006-07-17 08:21 --- I'm testing a patch. -- rsandifo at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |rsandifo at gcc dot gnu dot |dot org |org Status|UNCONFIRMED |ASSIGNED Ever Confirmed|0 |1 Known to fail||4.0.4 4.1.2 4.2.0 Known to work||3.4.4 Last reconfirmed|-00-00 00:00:00 |2006-07-17 08:21:04 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28403
[Bug middle-end/28402] [4.0/4.1/4.2 Regression] Doubleword shifts implemented using word_mode libcalls
--- Comment #2 from rsandifo at gcc dot gnu dot org 2006-07-17 15:29 --- Subject: Bug 28402 Author: rsandifo Date: Mon Jul 17 15:29:19 2006 New Revision: 115524 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=115524 Log: gcc/ PR middle-end/28402 * optabs.c (expand_binop): Pass next_methods rather than methods to expand_doubleword_shift. gcc/testsuite/ PR middle-end/28402 * gcc.dg/pr28402.c: New test. Added: trunk/gcc/testsuite/gcc.dg/pr28402.c Modified: trunk/gcc/ChangeLog trunk/gcc/optabs.c trunk/gcc/testsuite/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28402
[Bug middle-end/28403] [4.0/4.1/4.2 Regression] Missed argument pop after doubleword shift
--- Comment #2 from rsandifo at gcc dot gnu dot org 2006-07-17 15:31 --- Subject: Bug 28403 Author: rsandifo Date: Mon Jul 17 15:31:12 2006 New Revision: 115525 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=115525 Log: gcc/ PR middle-end/28403 * optabs.c (expand_doubleword_shift): Wrap the call to do_compare_rtx_and_jump with NO_DEFER_POP and OK_DEFER_POP. gcc/testsuite/ PR middle-end/28403 * gcc.c-torture/execute/pr28403.c: New test. Added: trunk/gcc/testsuite/gcc.c-torture/execute/pr28403.c Modified: trunk/gcc/ChangeLog trunk/gcc/optabs.c trunk/gcc/testsuite/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28403
[Bug middle-end/28402] [4.0/4.1/4.2 Regression] Doubleword shifts implemented using word_mode libcalls
--- Comment #3 from rsandifo at gcc dot gnu dot org 2006-07-17 15:34 --- Patch committed to mainline. Will commit to branches in a few days if nothing goes awry. -- rsandifo at gcc dot gnu dot org changed: What|Removed |Added Known to fail|4.0.4 4.1.2 4.2.0 |4.0.4 4.1.2 Known to work|3.4.4 |3.4.4 4.2.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28402
[Bug middle-end/28403] [4.0/4.1/4.2 Regression] Missed argument pop after doubleword shift
--- Comment #3 from rsandifo at gcc dot gnu dot org 2006-07-17 15:34 --- Patch committed to mainline. Will commit to branches in a few days if nothing goes awry. -- rsandifo at gcc dot gnu dot org changed: What|Removed |Added Known to fail|4.0.4 4.1.2 4.2.0 |4.0.4 4.1.2 Known to work|3.4.4 |3.4.4 4.2.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28403
[Bug rtl-optimization/37363] [4.4 Regression] Fix for PR 36090 causes libstdc++ regressions
--- Comment #7 from rsandifo at gcc dot gnu dot org 2008-11-11 23:27 --- Fixed on trunk. -- rsandifo at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37363
[Bug rtl-optimization/37363] [4.4 Regression] Fix for PR 36090 causes libstdc++ regressions
--- Comment #6 from rsandifo at gcc dot gnu dot org 2008-11-11 23:24 --- Subject: Bug 37363 Author: rsandifo Date: Tue Nov 11 23:23:23 2008 New Revision: 141774 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=141774 Log: gcc/ PR rtl-optimization/37363 * simplify-rtx.c (simplify_plus_minus): Don't create (const (minus ...)) expresisons. Modified: trunk/gcc/ChangeLog trunk/gcc/simplify-rtx.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37363
[Bug target/38052] [4.4 Regression] genautomata segfaults when -O2 is enabled
--- Comment #7 from rsandifo at gcc dot gnu dot org 2008-11-15 20:42 --- I'll try to look at this tomorrow. The code in comment #1 is certainly wrong: the store at is supposed come after the GP addiu at . With that fixed, the function should work as expected. I'm guessing this is a scheduling bug, but time will tell. -- rsandifo at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |rsandifo at gcc dot gnu dot |dot org |org Status|UNCONFIRMED |ASSIGNED Ever Confirmed|0 |1 Last reconfirmed|-00-00 00:00:00 |2008-11-15 20:42:11 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38052
[Bug target/38052] [4.4 Regression] genautomata segfaults when -O2 is enabled
--- Comment #8 from rsandifo at gcc dot gnu dot org 2008-11-16 20:27 --- Subject: Bug 38052 Author: rsandifo Date: Sun Nov 16 20:25:40 2008 New Revision: 141925 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=141925 Log: gcc/ PR target/38052 * config/mips/mips.c (machine_function): Update the comment above global_pointer. (mips_global_pointer): Use INVALID_REGNUM rather than 0 to indicate that a function doesn't need a global pointer. (mips_current_loadgp_style): Update accordingly. (mips_restore_gp): Likewise. (mips_output_cplocal): Likewise. (mips_expand_prologue): Likewise. Modified: trunk/gcc/ChangeLog trunk/gcc/config/mips/mips.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38052
[Bug target/38052] [4.4 Regression] genautomata segfaults when -O2 is enabled
--- Comment #9 from rsandifo at gcc dot gnu dot org 2008-11-16 20:32 --- Subject: Bug 38052 Author: rsandifo Date: Sun Nov 16 20:31:13 2008 New Revision: 141926 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=141926 Log: gcc/ PR target/38052 * config/mips/mips.c (mips_cfun_call_saved_reg_p) (mips_cfun_might_clobber_call_saved_reg_p): New functions, split out from... (mips_save_reg_p): ...here. Always consult TARGET_CALL_SAVED_GP rather than call_really_used_regs when handling $gp. Modified: trunk/gcc/ChangeLog trunk/gcc/config/mips/mips.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38052
[Bug target/38052] [4.4 Regression] genautomata segfaults when -O2 is enabled
--- Comment #10 from rsandifo at gcc dot gnu dot org 2008-11-16 21:08 --- Fixed on mainline. -- rsandifo at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38052
[Bug c/38469] Wrong code for a function with long long argument returning int.
--- Comment #1 from rsandifo at gcc dot gnu dot org 2008-12-15 21:40 --- I think this was fixed by: http://gcc.gnu.org/ml/gcc-patches/2006-01/msg01996.html Could you check whether it works for you? -- rsandifo at gcc dot gnu dot org changed: What|Removed |Added CC||rsandifo at gcc dot gnu dot ||org Status|UNCONFIRMED |WAITING http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38469
[Bug target/38469] Wrong code for a function with long long argument returning int.
--- Comment #3 from rsandifo at gcc dot gnu dot org 2008-12-20 21:35 --- OK well, thanks for trying. I'm glad you have a workaround, even if it's not the one I thought. (Perhaps it was another TRULY_NOOP_TRUNCATION combine.c fix. ISTR there were a few.) Anyway, the problem is fixed on all open release branches, so I'm going to close the PR. Thanks for the report. -- rsandifo at gcc dot gnu dot org changed: What|Removed |Added Status|WAITING |RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38469
[Bug rtl-optimization/38595] New: gcc.target/mips/mips16e-extends.c fails for -mlong64
mipsisa64-elf-gcc -O2 -S gcc.target/mips/mips16e-extends.c -DMIPS16='__attribute__((mips16))' -msoftf-float The output code does not contain the expected ZEB and ZEH instructions. (The options here select EABI64, but the same problem occurs with other -mlong64 ABIs.) The problem is that we don't have MIPS16e equivalents of the non-MIPS16 extend-truncate combiner patterns. I'm filing this for 4.5 or later; it isn't something we'd fix in 4,4 or earlier. -- Summary: gcc.target/mips/mips16e-extends.c fails for -mlong64 Product: gcc Version: 4.4.0 Status: UNCONFIRMED Keywords: missed-optimization Severity: normal Priority: P3 Component: rtl-optimization AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: rsandifo at gcc dot gnu dot org GCC target triplet: mipsisa64-elf http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38595
[Bug rtl-optimization/38595] gcc.target/mips/mips16e-extends.c fails for -mlong64
--- Comment #1 from rsandifo at gcc dot gnu dot org 2008-12-21 13:48 --- I have a patch, but it isn't appropriate at this stage in the 4.4 cycle. -- rsandifo at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |rsandifo at gcc dot gnu dot |dot org |org Status|UNCONFIRMED |ASSIGNED Ever Confirmed|0 |1 Last reconfirmed|-00-00 00:00:00 |2008-12-21 13:48:58 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38595
[Bug target/38598] New: MIPS extendsidi2 does not have a LO alternative
mipsisa64-elf-gcc -S -O2 gcc.target/mips/madd-7.c -DNOMIPS16= does not produce the expected MADD. On long64 ABIs like EABI64, the loop starts out with an extra extendsidi2 instruction, and although this instruction gets removed after reload by a "split to nothing", it is still around at register allocation time. extendsidi2 does not allow LO operands, so its presence discourages the register allocator from using LO for the accumulator. The fix is to add a LO alternative to extendsidi2. I'm filing this for 4.5 or later; it isn't something we'd fix in 4,4 or earlier. -- Summary: MIPS extendsidi2 does not have a LO alternative Product: gcc Version: 4.4.0 Status: UNCONFIRMED Keywords: missed-optimization Severity: normal Priority: P3 Component: target AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: rsandifo at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38598
[Bug target/38598] MIPS extendsidi2 does not have a LO alternative
--- Comment #1 from rsandifo at gcc dot gnu dot org 2008-12-21 14:00 --- I have a patch, but it isn't appropriate at this stage in the 4.4 cycle. -- rsandifo at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |rsandifo at gcc dot gnu dot |dot org |org Status|UNCONFIRMED |ASSIGNED Ever Confirmed|0 |1 Last reconfirmed|-00-00 00:00:00 |2008-12-21 14:00:24 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38598
[Bug target/38599] New: There should be a Pmode == DImode version of the MIPS lwxs pattern
mipsisa64-elf-gcc -S -O2 -msmartmips gcc.target/mips/smartmips-lwxs.c -DNOMIPS16= does not produce an LWXS instruction. This doesn't really matter much, since SmartMIPS is only for 32-bit processors, but: (a) it works for 64-bit ILP32 ABIs like n32 and o64. (b) within gcc, there is an abstraction layer between "Do we have SmartMIPS?" and "Can we use LWXS?". So I think it's worth having a Pmode==DImode version anyway. I'm filing this for 4.5 or later; it isn't something we'd fix in 4,4 or earlier. -- Summary: There should be a Pmode == DImode version of the MIPS lwxs pattern Product: gcc Version: 4.4.0 Status: UNCONFIRMED Keywords: missed-optimization Severity: normal Priority: P3 Component: target AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: rsandifo at gcc dot gnu dot org GCC target triplet: mipsisa64-elf http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38599
[Bug target/38599] There should be a Pmode == DImode version of the MIPS lwxs pattern
--- Comment #1 from rsandifo at gcc dot gnu dot org 2008-12-21 14:06 --- I have a patch, but it isn't appropriate at this stage in the 4.4 cycle. -- rsandifo at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |rsandifo at gcc dot gnu dot |dot org |org Status|UNCONFIRMED |ASSIGNED Ever Confirmed|0 |1 Last reconfirmed|-00-00 00:00:00 |2008-12-21 14:06:48 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38599
[Bug tree-optimization/35899] [4.3/4.4 Regression] ICE on filesystem code
--- Comment #8 from rsandifo at gcc dot gnu dot org 2008-12-21 21:46 --- Subject: Bug 35899 Author: rsandifo Date: Sun Dec 21 21:45:11 2008 New Revision: 142874 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=142874 Log: gcc/testsuite/ PR target/35899 * gcc.target/mips/smartmips-lwxs.c: Add -mlong32. Modified: trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/gcc.target/mips/smartmips-lwxs.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35899
[Bug target/38598] MIPS extendsidi2 does not have a LO alternative
--- Comment #2 from rsandifo at gcc dot gnu dot org 2008-12-21 21:46 --- Subject: Bug 38598 Author: rsandifo Date: Sun Dec 21 21:44:39 2008 New Revision: 142873 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=142873 Log: gcc/testsuite/ PR target/38598 * gcc.target/mips/madd-7.c: Add -mlong32. * gcc.target/mips/msub-7.c: Likewise. Modified: trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/gcc.target/mips/madd-7.c trunk/gcc/testsuite/gcc.target/mips/msub-7.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38598
[Bug c/38716] New: Undocumented __attribute__((optimize)) behaviour when the attribute specifies no optimisation level
If __attribute__((optimize(...))) does not specify an optimisation level (-Ox), we act as though the prevailing -Ox level had been restated. So: __attribute__((optimize("no-gcse"))) behaves like: __attribute__((optimize("Ox", "no-gcse"))) where Ox is the current optimisation level. This means that if you compile: void bar (int); void __attribute__((optimize("no-gcse"))) f1 (void) { bar (1); bar (2); } void f2 (void) { bar (1); bar (2); } with -O2 -fno-omit-frame-pointer, f1 will be implicitly use: __attribute__((optimize("O2", "no-gcse"))) and this implicit -O2 will override the explicit -fno-omit-frame-pointer. So f1 will be compiled without a frame pointer but f2 will be compiled with one. This behaviour isn't mentioned in the current documentation, so this is either an implementation or a documentation bug. In RichardG's opinion (and my opinion) it's an implementation bug, so I'm marking it as "c". -- Summary: Undocumented __attribute__((optimize)) behaviour when the attribute specifies no optimisation level Product: gcc Version: 4.4.0 Status: UNCONFIRMED Keywords: wrong-code Severity: normal Priority: P3 Component: c AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: rsandifo at gcc dot gnu dot org GCC host triplet: x86_64-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38716
[Bug rtl-optimization/38426] [4.4 Regression] Incorrect code produced with -momit-leaf-frame-pointer -fno-unit-at-a-time
--- Comment #6 from rsandifo at gcc dot gnu dot org 2009-01-06 21:58 --- Subject: Bug 38426 Author: rsandifo Date: Tue Jan 6 21:58:46 2009 New Revision: 143135 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=143135 Log: gcc/ PR rtl-optimization/38426. * ira.c (ira): Set current_function_is_leaf earlier. Modified: trunk/gcc/ChangeLog trunk/gcc/ira.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38426
[Bug rtl-optimization/38426] [4.4 Regression] Incorrect code produced with -momit-leaf-frame-pointer -fno-unit-at-a-time
--- Comment #7 from rsandifo at gcc dot gnu dot org 2009-01-06 22:02 --- Fixed on mainline. Dmitry, sorry for the duplicate work. -- rsandifo at gcc dot gnu dot org changed: What|Removed |Added Status|NEW |RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38426
[Bug testsuite/40699] [4.5 Regression] All sparcv9 libjava execution tests fail on Solaris 11/SPARC
--- Comment #4 from rsandifo at gcc dot gnu dot org 2009-07-09 19:23 --- OK, I'm going to need some help debugging this one. First of all, how are you running your tests? E.g. (a) are you using --target_board unix/-m64, (b) is -m64 the default, or (c) something else? Second, this: [find_libgcc_s $GCJ_UNDER_TEST] is supposed to return the directory of the 64-bit libgcc, but presumably it isn't doing. Could you compare the result of that command with something like: [find_libgcc_s $GFORTRAN_UNDER_TEST] which seems to work? -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40699
[Bug testsuite/40699] [4.5 Regression] All sparcv9 libjava execution tests fail on Solaris 11/SPARC
--- Comment #2 from rsandifo at gcc dot gnu dot org 2009-07-09 19:12 --- Do you only see this for libjava? -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40699
[Bug testsuite/40699] [4.5 Regression] All sparcv9 libjava execution tests fail on Solaris 11/SPARC
--- Comment #6 from rsandifo at gcc dot gnu dot org 2009-07-11 06:11 --- Subject: Bug 40699 Author: rsandifo Date: Sat Jul 11 06:10:49 2009 New Revision: 149508 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=149508 Log: gcc/testsuite/ PR testsuite/40699 PR testsuite/40707 PR testsuite/40709 * lib/gcc-defs.exp, lib/target-libpath.exp, lib/objc.exp, lib/gfortran.exp, lib/g++.exp, lib/obj-c++.exp, lib/c-torture.exp, lib/gcc-dg.exp, lib/gnat.exp, g++.dg/compat/compat.exp, g++.dg/compat/struct-layout-1.exp: Revert 2009-06-30 commit. libstdc++-v3/ PR testsuite/40699 PR testsuite/40707 PR testsuite/40709 * testsuite/lib/libstdc++.exp: Revert 2009-06-30 commit. libjava/ PR testsuite/40699 PR testsuite/40707 PR testsuite/40709 * testsuite/lib/libjava.exp: Revert 2009-06-30 commit. libgomp/ PR testsuite/40699 PR testsuite/40707 PR testsuite/40709 * testsuite/lib/libgomp.exp: Revert 2009-07-02 and 2009-06-30 commits. * testsuite/libgomp.c/c.exp, testsuite/libgomp.c++/c++.exp, testsuite/libgomp.fortran/fortran.exp: Revert 2009-06-30 commits. libffi/ PR testsuite/40699 PR testsuite/40707 PR testsuite/40709 * testsuite/lib/libffi-dg.exp: Revert 2009-07-02, 2009-07-01 and 2009-06-30 commits. libmudflap/ PR testsuite/40699 PR testsuite/40707 PR testsuite/40709 * testsuite/lib/libmudflap.exp: Revert 2009-06-30 commit. Modified: trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/g++.dg/compat/compat.exp trunk/gcc/testsuite/g++.dg/compat/struct-layout-1.exp trunk/gcc/testsuite/lib/c-torture.exp trunk/gcc/testsuite/lib/g++.exp trunk/gcc/testsuite/lib/gcc-defs.exp trunk/gcc/testsuite/lib/gcc-dg.exp trunk/gcc/testsuite/lib/gfortran.exp trunk/gcc/testsuite/lib/gnat.exp trunk/gcc/testsuite/lib/obj-c++.exp trunk/gcc/testsuite/lib/objc.exp trunk/gcc/testsuite/lib/target-libpath.exp trunk/libffi/ChangeLog trunk/libffi/testsuite/lib/libffi-dg.exp trunk/libgomp/ChangeLog trunk/libgomp/testsuite/lib/libgomp.exp trunk/libgomp/testsuite/libgomp.c++/c++.exp trunk/libgomp/testsuite/libgomp.c/c.exp trunk/libgomp/testsuite/libgomp.fortran/fortran.exp trunk/libjava/ChangeLog trunk/libjava/testsuite/lib/libjava.exp trunk/libmudflap/ChangeLog trunk/libmudflap/testsuite/lib/libmudflap.exp trunk/libstdc++-v3/ChangeLog trunk/libstdc++-v3/testsuite/lib/libstdc++.exp -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40699
[Bug testsuite/40707] [4.5 regression] Testsuite no longer works with emulator
--- Comment #2 from rsandifo at gcc dot gnu dot org 2009-07-11 06:11 --- Subject: Bug 40707 Author: rsandifo Date: Sat Jul 11 06:10:49 2009 New Revision: 149508 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=149508 Log: gcc/testsuite/ PR testsuite/40699 PR testsuite/40707 PR testsuite/40709 * lib/gcc-defs.exp, lib/target-libpath.exp, lib/objc.exp, lib/gfortran.exp, lib/g++.exp, lib/obj-c++.exp, lib/c-torture.exp, lib/gcc-dg.exp, lib/gnat.exp, g++.dg/compat/compat.exp, g++.dg/compat/struct-layout-1.exp: Revert 2009-06-30 commit. libstdc++-v3/ PR testsuite/40699 PR testsuite/40707 PR testsuite/40709 * testsuite/lib/libstdc++.exp: Revert 2009-06-30 commit. libjava/ PR testsuite/40699 PR testsuite/40707 PR testsuite/40709 * testsuite/lib/libjava.exp: Revert 2009-06-30 commit. libgomp/ PR testsuite/40699 PR testsuite/40707 PR testsuite/40709 * testsuite/lib/libgomp.exp: Revert 2009-07-02 and 2009-06-30 commits. * testsuite/libgomp.c/c.exp, testsuite/libgomp.c++/c++.exp, testsuite/libgomp.fortran/fortran.exp: Revert 2009-06-30 commits. libffi/ PR testsuite/40699 PR testsuite/40707 PR testsuite/40709 * testsuite/lib/libffi-dg.exp: Revert 2009-07-02, 2009-07-01 and 2009-06-30 commits. libmudflap/ PR testsuite/40699 PR testsuite/40707 PR testsuite/40709 * testsuite/lib/libmudflap.exp: Revert 2009-06-30 commit. Modified: trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/g++.dg/compat/compat.exp trunk/gcc/testsuite/g++.dg/compat/struct-layout-1.exp trunk/gcc/testsuite/lib/c-torture.exp trunk/gcc/testsuite/lib/g++.exp trunk/gcc/testsuite/lib/gcc-defs.exp trunk/gcc/testsuite/lib/gcc-dg.exp trunk/gcc/testsuite/lib/gfortran.exp trunk/gcc/testsuite/lib/gnat.exp trunk/gcc/testsuite/lib/obj-c++.exp trunk/gcc/testsuite/lib/objc.exp trunk/gcc/testsuite/lib/target-libpath.exp trunk/libffi/ChangeLog trunk/libffi/testsuite/lib/libffi-dg.exp trunk/libgomp/ChangeLog trunk/libgomp/testsuite/lib/libgomp.exp trunk/libgomp/testsuite/libgomp.c++/c++.exp trunk/libgomp/testsuite/libgomp.c/c.exp trunk/libgomp/testsuite/libgomp.fortran/fortran.exp trunk/libjava/ChangeLog trunk/libjava/testsuite/lib/libjava.exp trunk/libmudflap/ChangeLog trunk/libmudflap/testsuite/lib/libmudflap.exp trunk/libstdc++-v3/ChangeLog trunk/libstdc++-v3/testsuite/lib/libstdc++.exp -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40707
[Bug testsuite/40709] [4.5 regression] Revision 149113 caused testsuite error
--- Comment #2 from rsandifo at gcc dot gnu dot org 2009-07-11 06:11 --- Subject: Bug 40709 Author: rsandifo Date: Sat Jul 11 06:10:49 2009 New Revision: 149508 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=149508 Log: gcc/testsuite/ PR testsuite/40699 PR testsuite/40707 PR testsuite/40709 * lib/gcc-defs.exp, lib/target-libpath.exp, lib/objc.exp, lib/gfortran.exp, lib/g++.exp, lib/obj-c++.exp, lib/c-torture.exp, lib/gcc-dg.exp, lib/gnat.exp, g++.dg/compat/compat.exp, g++.dg/compat/struct-layout-1.exp: Revert 2009-06-30 commit. libstdc++-v3/ PR testsuite/40699 PR testsuite/40707 PR testsuite/40709 * testsuite/lib/libstdc++.exp: Revert 2009-06-30 commit. libjava/ PR testsuite/40699 PR testsuite/40707 PR testsuite/40709 * testsuite/lib/libjava.exp: Revert 2009-06-30 commit. libgomp/ PR testsuite/40699 PR testsuite/40707 PR testsuite/40709 * testsuite/lib/libgomp.exp: Revert 2009-07-02 and 2009-06-30 commits. * testsuite/libgomp.c/c.exp, testsuite/libgomp.c++/c++.exp, testsuite/libgomp.fortran/fortran.exp: Revert 2009-06-30 commits. libffi/ PR testsuite/40699 PR testsuite/40707 PR testsuite/40709 * testsuite/lib/libffi-dg.exp: Revert 2009-07-02, 2009-07-01 and 2009-06-30 commits. libmudflap/ PR testsuite/40699 PR testsuite/40707 PR testsuite/40709 * testsuite/lib/libmudflap.exp: Revert 2009-06-30 commit. Modified: trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/g++.dg/compat/compat.exp trunk/gcc/testsuite/g++.dg/compat/struct-layout-1.exp trunk/gcc/testsuite/lib/c-torture.exp trunk/gcc/testsuite/lib/g++.exp trunk/gcc/testsuite/lib/gcc-defs.exp trunk/gcc/testsuite/lib/gcc-dg.exp trunk/gcc/testsuite/lib/gfortran.exp trunk/gcc/testsuite/lib/gnat.exp trunk/gcc/testsuite/lib/obj-c++.exp trunk/gcc/testsuite/lib/objc.exp trunk/gcc/testsuite/lib/target-libpath.exp trunk/libffi/ChangeLog trunk/libffi/testsuite/lib/libffi-dg.exp trunk/libgomp/ChangeLog trunk/libgomp/testsuite/lib/libgomp.exp trunk/libgomp/testsuite/libgomp.c++/c++.exp trunk/libgomp/testsuite/libgomp.c/c.exp trunk/libgomp/testsuite/libgomp.fortran/fortran.exp trunk/libjava/ChangeLog trunk/libjava/testsuite/lib/libjava.exp trunk/libmudflap/ChangeLog trunk/libmudflap/testsuite/lib/libmudflap.exp trunk/libstdc++-v3/ChangeLog trunk/libstdc++-v3/testsuite/lib/libstdc++.exp -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40709
[Bug testsuite/40709] [4.5 regression] Revision 149113 caused testsuite error
--- Comment #3 from rsandifo at gcc dot gnu dot org 2009-07-11 06:31 --- Reverted the offending commit. -- rsandifo at gcc dot gnu dot org changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40709
[Bug testsuite/40707] [4.5 regression] Testsuite no longer works with emulator
--- Comment #3 from rsandifo at gcc dot gnu dot org 2009-07-11 06:32 --- Reverted the offending commit. -- rsandifo at gcc dot gnu dot org changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40707
[Bug testsuite/40699] [4.5 Regression] All sparcv9 libjava execution tests fail on Solaris 11/SPARC
--- Comment #7 from rsandifo at gcc dot gnu dot org 2009-07-11 06:44 --- "ro at techfak dot uni-bielefeld dot de" writes: > Unfortunately, the same thing happens when I invoke runtest manually in the > 20090522 tree where the 64-bit tests still worked correctly. Ah! Thanks, that explains it. So the --print-multi-lib command failed before the patch too, but adding the directories for all multilibs masked this problem. (I was wrongly assuming it was the --print-multi-lib invocation itself that I'd broken.) > What I find, though, are two different invocations of gcj (found with truss): > > * one like this > > /vol/gccsrc/obj/gcc-4.5.0-20090522/11-gcc/gcc/gcj > -B/vol/gccsrc/obj/gcc-4.5.0-20090522/11-gcc/gcc/ > -B/vol/gccsrc/obj/gcc-4.5.0-20090522/11-gcc/sparc-sun-solaris2.11/libjava/testsuite/../ > -v > > which finds libgcj.spec, and > > * another one like this > > /vol/gccsrc/obj/gcc-4.5.0-20090522/11-gcc/gcc/gcj > -B/vol/gccsrc/obj/gcc-4.5.0-20090522/11-gcc/gcc/ --encoding=UTF-8 -m64 > --print-multi-directory > > which doesn't (and lacks the second -B above, since libgcj.spec is only > located in the libjava tree). > > Maybe this helps to get this resolved? It does, thanks. I agree that the missing -B option is the problem here. However, the patch has already called a lot of fallout, so the best thing seemed to be to revert it. Thanks a lot for the help though: it shows what needs to be fixed if I or someone else comes back to this at a later date. -- rsandifo at gcc dot gnu dot org changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40699
[Bug target/22209] [4.1 regression] libgfortran unresolvable symbols on irix6.5
--- Comment #4 from rsandifo at gcc dot gnu dot org 2005-11-04 09:22 --- I think TImode has to be a workable mode for IRIX 6. Long double is TFmode, and it would certainly seem odd to support TImode and not TFmode. (I seem to remember the s390 folks having to add TImode support exactly because they had TFmode support. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22209
[Bug c++/20416] Incorrect lifetime for temporary with static const reference
--- Comment #1 from rsandifo at gcc dot gnu dot org 2005-11-21 16:09 --- Confirmed. Here's a dejagnu-style testcase: // PR c++/20416. We correctly constructed the temporary S in foo(), // but incorrectly destroyed it every time foo() was called. // { dg-do run } extern "C" void abort (void); namespace { int counter; } struct S { S() { counter++; } S(const S &) { counter++; } ~S() { counter--; } }; void foo (void) { static const S &s = S(); if (counter != 1) abort (); } int main () { if (counter != 0) abort (); foo (); foo (); } -- rsandifo at gcc dot gnu dot org changed: What|Removed |Added CC| |rsandifo at gcc dot gnu dot | |org Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 Known to fail||3.4.5 4.1.0 Last reconfirmed|-00-00 00:00:00 |2005-11-21 16:09:00 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20416
[Bug c++/20416] Incorrect lifetime for temporary with static const reference
--- Comment #2 from rsandifo at gcc dot gnu dot org 2005-11-21 16:09 --- BTW, this is 12.2/5. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20416
[Bug c++/24977] New: Dependent lookup considers static functions
Sorry in advance if this is a dup. Dependent lookup considers static candidate functions, which seems to be in violation of 14.6.4.2. A dejagnu-style testcase: // { dg-do run } extern "C" void abort (void); void f(int) {} static void f(char) { abort(); } template void g(T t) { f(t); } int main() { g('a'); } -- Summary: Dependent lookup considers static functions Product: gcc Version: 4.1.0 Status: UNCONFIRMED Keywords: wrong-code Severity: normal Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: rsandifo at gcc dot gnu dot org GCC build triplet: i686-pc-linux-gnu GCC host triplet: i686-pc-linux-gnu GCC target triplet: i686-pc-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24977
[Bug c/25805] New: Incorrect handling of zero-initialized flexible arrays
A GNU C extension allows you to initialise a flexible array field. However, if you do this, the DECL_SIZE of the containing object does not account for the size of the initialised array. DECL_SIZE is simply CHAR_BIT * sizeof (the structure type). Thus if you have: struct { int a; int x[]; } d1 = { 0, 0 }; and if -fzero-initialized-in-bss is in effect, we will only allocate one int for d1, not two: d1: .zero 4 A simple executable testcase is: - struct { int a; int x[]; } d1 = { 0, 0 }; int d2 = 0; int main () { d2 = 1; if (d1.x[0] != 0) abort (); exit (0); } - The testcase passes if compiled with -fno-zero-initialized-in-bss. -- Summary: Incorrect handling of zero-initialized flexible arrays Product: gcc Version: 4.2.0 Status: UNCONFIRMED Keywords: wrong-code Severity: normal Priority: P3 Component: c AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: rsandifo at gcc dot gnu dot org GCC build triplet: i686-pc-linux-gnu GCC host triplet: i686-pc-linux-gnu GCC target triplet: i686-pc-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25805
[Bug c/25805] Incorrect handling of zero-initialized flexible arrays
--- Comment #1 from rsandifo at gcc dot gnu dot org 2006-01-16 10:19 --- Testing a fix -- rsandifo at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |rsandifo at gcc dot gnu dot |dot org |org Status|UNCONFIRMED |ASSIGNED Ever Confirmed|0 |1 Last reconfirmed|-00-00 00:00:00 |2006-01-16 10:19:50 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25805
[Bug c/25805] [3.4/4.0/4.1/4.2 Regression] Incorrect handling of zero-initialized flexible arrays
--- Comment #2 from rsandifo at gcc dot gnu dot org 2006-01-19 07:45 --- Subject: Bug 25805 Author: rsandifo Revision: 109947 Modified property: svn:log Modified: svn:log at Thu Jan 19 07:45:28 2006 -- --- svn:log (original) +++ svn:log Thu Jan 19 07:45:28 2006 @@ -1,1 +1,7 @@ -/home/richard/patches/wip/flex-array-init-size.clog + PR c/25805 + * c-decl.c (add_flexible_array_elts_to_size): New function. + (finish_decl): Use it. + +testsuite/ + PR c/25805 + * gcc.dg/pr25805.c: New file. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25805
[Bug c/25805] [3.4/4.0/4.1/4.2 Regression] Incorrect handling of zero-initialized flexible arrays
--- Comment #3 from rsandifo at gcc dot gnu dot org 2006-01-19 07:46 --- Subject: Bug 25805 Author: rsandifo Revision: 109946 Modified property: svn:log Modified: svn:log at Thu Jan 19 07:46:15 2006 -- --- svn:log (original) +++ svn:log Thu Jan 19 07:46:15 2006 @@ -1,1 +1,7 @@ -/home/richard/patches/wip/flex-array-init-size.clog + PR c/25805 + * c-decl.c (add_flexible_array_elts_to_size): New function. + (finish_decl): Use it. + +testsuite/ + PR c/25805 + * gcc.dg/pr25805.c: New file. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25805
[Bug c/25805] [3.4/4.0 Regression] Incorrect handling of zero-initialized flexible arrays
--- Comment #4 from rsandifo at gcc dot gnu dot org 2006-01-19 07:48 --- I've checked in the fix for 4.1 and 4.2. It doesn't apply directly to earlier branches because they used TREE_LISTs for CONSTRUCTORs. A straight-forward conversion would introduce a linear walk over the list, which is probably not acceptable. I'm leaving this is a 3.4 and 4.0 regression for now. (The original commit wasn't added to bugzilla because I used -m rather than -F to specify the log message. Ooops. Now fixed with svn propset.) -- rsandifo at gcc dot gnu dot org changed: What|Removed |Added CC| |rsandifo at gcc dot gnu dot | |org AssignedTo|rsandifo at gcc dot gnu dot |unassigned at gcc dot gnu |org |dot org Status|ASSIGNED|NEW Known to fail|4.1.0 4.0.0 3.3.3 3.4.0 |4.0.0 3.3.3 3.4.0 |4.2.0 | Known to work|3.2.3 |3.2.3 4.1.0 4.2.0 Summary|[3.4/4.0/4.1/4.2 Regression]|[3.4/4.0 Regression] |Incorrect handling of zero- |Incorrect handling of zero- |initialized flexible arrays |initialized flexible arrays http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25805
[Bug middle-end/28403] [4.0/4.1/4.2 Regression] Missed argument pop after doubleword shift
--- Comment #4 from rsandifo at gcc dot gnu dot org 2006-07-20 08:32 --- Subject: Bug 28403 Author: rsandifo Date: Thu Jul 20 08:31:59 2006 New Revision: 115611 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=115611 Log: Backport from mainline: 2006-07-17 Richard Sandiford <[EMAIL PROTECTED]> PR middle-end/28403 * optabs.c (expand_doubleword_shift): Wrap the call to do_compare_rtx_and_jump with NO_DEFER_POP and OK_DEFER_POP. Added: branches/csl/sourcerygxx-4_1/gcc/testsuite/gcc.c-torture/execute/pr28403.c Modified: branches/csl/sourcerygxx-4_1/ChangeLog.csl branches/csl/sourcerygxx-4_1/gcc/optabs.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28403
[Bug middle-end/28402] [4.0/4.1/4.2 Regression] Doubleword shifts implemented using word_mode libcalls
--- Comment #4 from rsandifo at gcc dot gnu dot org 2006-07-20 08:35 --- Subject: Bug 28402 Author: rsandifo Date: Thu Jul 20 08:34:53 2006 New Revision: 115613 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=115613 Log: Backport from mainline: 2006-07-17 Richard Sandiford <[EMAIL PROTECTED]> gcc/ PR middle-end/28402 * optabs.c (expand_binop): Pass next_methods rather than methods to expand_doubleword_shift. gcc/testsuite/ PR middle-end/28402 * gcc.dg/pr28402.c: New test. Added: branches/csl/sourcerygxx-4_1/gcc/testsuite/gcc.dg/pr28402.c Modified: branches/csl/sourcerygxx-4_1/ChangeLog.csl branches/csl/sourcerygxx-4_1/gcc/optabs.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28402
[Bug middle-end/28402] [4.0/4.1 Regression] Doubleword shifts implemented using word_mode libcalls
--- Comment #5 from rsandifo at gcc dot gnu dot org 2006-07-26 13:30 --- Subject: Bug 28402 Author: rsandifo Date: Wed Jul 26 13:30:34 2006 New Revision: 115755 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=115755 Log: gcc/ PR middle-end/28402 * optabs.c (expand_binop): Pass next_methods rather than methods to expand_doubleword_shift. gcc/testsuite/ PR middle-end/28402 * gcc.dg/pr28402.c: New test. Added: branches/gcc-4_1-branch/gcc/testsuite/gcc.dg/pr28402.c Modified: branches/gcc-4_1-branch/gcc/ChangeLog branches/gcc-4_1-branch/gcc/optabs.c branches/gcc-4_1-branch/gcc/testsuite/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28402
[Bug middle-end/28403] [4.0/4.1 Regression] Missed argument pop after doubleword shift
--- Comment #5 from rsandifo at gcc dot gnu dot org 2006-07-26 13:32 --- Subject: Bug 28403 Author: rsandifo Date: Wed Jul 26 13:32:01 2006 New Revision: 115756 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=115756 Log: gcc/ PR middle-end/28403 * optabs.c (expand_doubleword_shift): Wrap the call to do_compare_rtx_and_jump with NO_DEFER_POP and OK_DEFER_POP. gcc/testsuite/ PR middle-end/28403 * gcc.c-torture/execute/pr28403.c: New test. Added: branches/gcc-4_1-branch/gcc/testsuite/gcc.c-torture/execute/pr28403.c Modified: branches/gcc-4_1-branch/gcc/ChangeLog branches/gcc-4_1-branch/gcc/optabs.c branches/gcc-4_1-branch/gcc/testsuite/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28403
[Bug middle-end/28402] [4.0/4.1 Regression] Doubleword shifts implemented using word_mode libcalls
--- Comment #6 from rsandifo at gcc dot gnu dot org 2006-07-26 13:34 --- Subject: Bug 28402 Author: rsandifo Date: Wed Jul 26 13:34:17 2006 New Revision: 115757 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=115757 Log: gcc/ PR middle-end/28402 * optabs.c (expand_binop): Pass next_methods rather than methods to expand_doubleword_shift. gcc/testsuite/ PR middle-end/28402 * gcc.dg/pr28402.c: New test. Added: branches/gcc-4_0-branch/gcc/testsuite/gcc.dg/pr28402.c Modified: branches/gcc-4_0-branch/gcc/ChangeLog branches/gcc-4_0-branch/gcc/optabs.c branches/gcc-4_0-branch/gcc/testsuite/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28402
[Bug middle-end/28403] [4.0/4.1 Regression] Missed argument pop after doubleword shift
--- Comment #6 from rsandifo at gcc dot gnu dot org 2006-07-26 13:35 --- Subject: Bug 28403 Author: rsandifo Date: Wed Jul 26 13:35:34 2006 New Revision: 115758 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=115758 Log: gcc/ PR middle-end/28403 * optabs.c (expand_doubleword_shift): Wrap the call to do_compare_rtx_and_jump with NO_DEFER_POP and OK_DEFER_POP. gcc/testsuite/ PR middle-end/28403 * gcc.c-torture/execute/pr28403.c: New test. Added: branches/gcc-4_0-branch/gcc/testsuite/gcc.c-torture/execute/pr28403.c Modified: branches/gcc-4_0-branch/gcc/ChangeLog branches/gcc-4_0-branch/gcc/optabs.c branches/gcc-4_0-branch/gcc/testsuite/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28403
[Bug middle-end/28402] [4.0/4.1 Regression] Doubleword shifts implemented using word_mode libcalls
--- Comment #7 from rsandifo at gcc dot gnu dot org 2006-07-26 13:38 --- Patch applied to branches. -- rsandifo at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Known to fail|4.0.4 4.1.2 | Known to work|3.4.4 4.2.0 |3.4.4 4.0.4 4.1.2 4.2.0 Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28402
[Bug middle-end/28403] [4.0/4.1 Regression] Missed argument pop after doubleword shift
--- Comment #7 from rsandifo at gcc dot gnu dot org 2006-07-26 13:39 --- Patch applied to branches -- rsandifo at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Known to fail|4.0.4 4.1.2 | Known to work|3.4.4 4.2.0 |3.4.4 4.0.4 4.1.2 4.2.0 Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28403
[Bug target/28126] gcc moves an expensive instruction outside of a conditional
--- Comment #8 from rsandifo at gcc dot gnu dot org 2006-07-30 10:56 --- Subject: Bug 28126 Author: rsandifo Date: Sun Jul 30 10:56:07 2006 New Revision: 115819 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=115819 Log: gcc/ 2006-07-25 Atsushi Nemoto <[EMAIL PROTECTED]> PR target/28126 (partial fix) * config/mips/mips.md (tls_get_tp_): Set can_delay to no. Modified: trunk/gcc/ChangeLog trunk/gcc/config/mips/mips.md -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28126
[Bug target/28126] gcc moves an expensive instruction outside of a conditional
--- Comment #9 from rsandifo at gcc dot gnu dot org 2006-08-03 21:06 --- Created an attachment (id=12010) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=12010&action=view) A hackish fix I agree with Kaz that a blockage would be a correct fix here. I'm just worried about the performance impact. A simple hack for 4.1 is to model tls_tp_ as a division instruction. The middle-end will then treat it as potentially trapping and won't execute it speculatively. The advantages are that: (1) it won't hinder speculation or scheduling of unrelated instructions, and (2) it still allows the optimisers to remove redundant rdhwrs, just as they would for redundant divisions of the same values. Although this is indeed hackish, we're kind-of relying on the same infrasturcture to prevent speculative execution of FPU code on targets where kernel emulation is required. A cleaner fix would be to get may_trap_p (and perhaps other functions) to call a target hook for UNSPECs. As it happens, we're not really getting (2) anyway. The use of register $3 is exposed right at the outset, which stops most optimisers from touching it. E.g. something as simple as: extern __thread int x; void foo (void) { x++; } will execute rdhwr twice. It's simple to fix this by using a pseudo instead of (reg $3). This shouldn't cause problems, as we're already relying on the "=v" constraint to force the use of the right register. If we do use a pseudo, the question is what to do about uses in loops. E.g. if we have: extern __thread int x; void foo (int n, int *ptr) { while (n-- > 0) if (*ptr++ == 1) x++; } should we allow the rdhwr to be hoisted? (It will be if we keep a non-trapping representation of tls_get_tp_, but won't be if we treat it as trapping.) I think the answer is that, in the absence of profiling information, we simply don't know. There are going to be some cases where hoisting is exactly the right thing to do and others where it's exactly the wrong thing. This makes me wonder if we should compromise, and get the base pointer lazily. When we first find that a function needs the base pointer, we can allocate a function-wide pseudo for it, and make sure that the pseudo is zeroed at the beginning of the function. We can then emit: (set (pc) (if_then_else (ne (reg bp) 0) (label_ref foo) (pc)) (set (reg bp) ...UNSPEC_TLS_GET_TP...) foo: every time. This in itself is easy to do, but we'd need some way of telling the optimisers that the result of ...UNSPEC_TLS_GET_TP... is nonzero, and that subsequent (ne (reg bp) 0) branches will always be taken. Random musing, sorry. Richard -- rsandifo at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |rsandifo at gcc dot gnu dot |dot org |org Status|NEW |ASSIGNED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28126
[Bug rtl-optimization/28634] [4.1/4.2 regression] rounding problem with -fdelayed-branch on hppa/mips
--- Comment #2 from rsandifo at gcc dot gnu dot org 2006-08-13 08:34 --- Re comment #1: it's a generic bug in reorg.c (fill_slots_from_thread). I'm testing a patch. -- rsandifo at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |rsandifo at gcc dot gnu dot |dot org |org Status|UNCONFIRMED |ASSIGNED Component|target |rtl-optimization Ever Confirmed|0 |1 Last reconfirmed|-00-00 00:00:00 |2006-08-13 08:34:50 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28634
[Bug rtl-optimization/28634] [4.1/4.2 regression] rounding problem with -fdelayed-branch on hppa/mips
--- Comment #3 from rsandifo at gcc dot gnu dot org 2006-08-14 11:56 --- Subject: Bug 28634 Author: rsandifo Date: Mon Aug 14 12:55:52 2006 New Revision: 116124 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=116124 Log: gcc/ PR rtl-optimization/28634 * reorg.c (fill_slots_from_thread): Do not assume A + X - X == A for floating-point modes unless flag_unsafe_math_optimizations. gcc/testsuite/ PR rtl-optimization/28634 * gcc.c-torture/execute/ieee/pr28634.c: New test. Added: trunk/gcc/testsuite/gcc.c-torture/execute/ieee/pr28634.c Modified: trunk/gcc/ChangeLog trunk/gcc/reorg.c trunk/gcc/testsuite/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28634
[Bug rtl-optimization/28634] [4.1 regression] rounding problem with -fdelayed-branch on hppa/mips
--- Comment #4 from rsandifo at gcc dot gnu dot org 2006-08-14 11:58 --- Patch applied to mainline. It has been approved for 4.1, so I'll apply it there after testing. -- rsandifo at gcc dot gnu dot org changed: What|Removed |Added Known to fail|4.1.0 4.2.0 |4.1.0 Known to work|4.0.3 |4.0.3 4.2.0 Summary|[4.1/4.2 regression]|[4.1 regression] rounding |rounding problem with - |problem with -fdelayed- |fdelayed-branch on hppa/mips|branch on hppa/mips http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28634
[Bug rtl-optimization/28982] New: Incorrect reloading of automodification expressions
If reload decides to create an automodification reload (POST_MODIFY, etc.), inc_for_reload will not deal correctly with any reloads for the base and index registers. This problem is related to: 2006-03-29 Paul Brook <[EMAIL PROTECTED]> * reload1.c (choose_reload_regs): Check for all RTX_AUTOINC operators. (inc_for_reload): Handle PRE_MODIFY and POST_MODIFY addresses. ...before which, any attempt to create PRE_MODIFY and POST_MODIFY reloads would cause an ICE. The symptoms are twofold. If an index register is reloaded from a spill slot, you'll get an ICE such as: error: unrecognizable insn: (insn 481 479 482 3 (set (reg:SI 1 r1) (plus:SI (reg:SI 1 r1) (mem/c:SI (plus:SI (reg/f:SI 13 sp) (const_int 176 [0xb0])) [25 pretmp.56+0 S4 A32]))) -1 (nil) (nil)) If the base register is reloaded from a spill slot, the modification will be lost. There is a third problem. Suppose there's a RELOAD_FOR_INPUT reload (A) that reloads a PRE_MODIFY or POST_MODIFY and a reload (B) that reloads the index of that PRE_MODIFY or POST_MODIFY. (B) will then be a RELOAD_FOR_INPUT_ADDRESS. This is incorrect, as inc_for_reload might only read the index _after_ setting (A)'s reload register, so (B)'s reload register must live longer than a normal RELOAD_FOR_INPUT_ADDRESS is required to. Because Paul's patch is 4.2-only, and because POST_MODIFY reloads would ICE before his patch, the bug is only a 4.2 regression in the sense that an ice-on-valid-code bug can now sometimes be a more serious wrong-code bug. -- Summary: Incorrect reloading of automodification expressions Product: gcc Version: 4.2.0 Status: UNCONFIRMED Keywords: wrong-code, ice-on-valid-code Severity: normal Priority: P3 Component: rtl-optimization AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: rsandifo at gcc dot gnu dot org GCC target triplet: arm-none-linux-gnueabi http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28982
[Bug rtl-optimization/28982] Incorrect reloading of automodification expressions
--- Comment #1 from rsandifo at gcc dot gnu dot org 2006-09-08 08:37 --- Created an attachment (id=12211) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=12211&action=view) Testcase This brute-force test fails with -O2 -mfloat-abi=softfp. -- rsandifo at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |rsandifo at gcc dot gnu dot |dot org |org Status|UNCONFIRMED |ASSIGNED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28982
[Bug rtl-optimization/28634] [4.1 regression] rounding problem with -fdelayed-branch on hppa/mips
--- Comment #5 from rsandifo at gcc dot gnu dot org 2006-09-09 10:56 --- Subject: Bug 28634 Author: rsandifo Date: Sat Sep 9 10:56:31 2006 New Revision: 116796 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=116796 Log: gcc/ PR rtl-optimization/28634 * reorg.c (fill_slots_from_thread): Do not assume A + X - X == A for floating-point modes unless flag_unsafe_math_optimizations. gcc/testsuite/ PR rtl-optimization/28634 * gcc.c-torture/execute/ieee/pr28634.c: New test. Added: branches/gcc-4_1-branch/gcc/testsuite/gcc.c-torture/execute/ieee/pr28634.c Modified: branches/gcc-4_1-branch/gcc/ChangeLog branches/gcc-4_1-branch/gcc/reorg.c branches/gcc-4_1-branch/gcc/testsuite/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28634
[Bug rtl-optimization/28634] rounding problem with -fdelayed-branch on hppa/mips
--- Comment #6 from rsandifo at gcc dot gnu dot org 2006-09-09 11:01 --- Applied to 4.1 after testing on mipsisa64-elf and mips64-linux-gnu. Although the bug has been around for a long time, it isn't known to be a regression from 4.0 to some earlier release, so it doesn't qualify for a 4.0 backport. I'll therefore close this PR as fixed. -- rsandifo at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Known to fail|4.1.0 |4.1.1 Known to work|4.0.3 4.2.0 |4.0.3 4.1.2 4.2.0 Resolution||FIXED Summary|[4.1 regression] rounding |rounding problem with - |problem with -fdelayed- |fdelayed-branch on hppa/mips |branch on hppa/mips | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28634
[Bug target/27681] [4.1 regression] Missing DImode float conversion functions with -msoft-float
--- Comment #6 from rsandifo at gcc dot gnu dot org 2006-09-10 07:13 --- Subject: Bug 27681 Author: rsandifo Date: Sun Sep 10 07:13:12 2006 New Revision: 116811 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=116811 Log: gcc/ PR target/27681 Backport from mainline: 2006-05-23 Richard Sandiford <[EMAIL PROTECTED]> * libgcc2.c (LIBGCC2_MAX_UNITS_PER_WORD): New macro. (LIBGCC2_UNITS_PER_WORD): Use LIBGCC2_MAX_UNITS_PER_WORD rather than MIN_UNITS_PER_WORD to set the default. Also use it in the guard. 2006-05-22 Richard Sandiford <[EMAIL PROTECTED]> * mklibgcc.in (lib2funcs): Remove _floatdidf from initial assignment. 2006-05-19 Richard Sandiford <[EMAIL PROTECTED]> * libgcc2.c (MIN_UNITS_PER_WORD): Move default definition from libgcc2.h. (LIBGCC2_UNITS_PER_WORD): Provide default definition, using old MIN_UNITS_PER_WORD logic from libgcc2.h. Do nothing if LIBGCC2_UNITS_PER_WORD > MIN_UNITS_PER_WORD. * libgcc2.h (MIN_UNITS_PER_WORD): Remove definition from here. Use LIBGCC2_UNITS_PER_WORD rather than MIN_UNITS_PER_WORD to determine the size of Wtype, etc. * mklibgcc.in (LIB2_SIDITI_CONV_FUNCS): New argument. (swfloatfuncs): New variable. (dwfloatfuncs): Likewise. (lib2funcs): Remove floating-point conversion functions from initial assignment. Use LIB2_SIDITI_CONV_FUNCS to determine the set of conversion routines needed. Allow entries to specify an object name, filename and word size. Update users accordingly. * Makefile.in (libgcc.mk): Pass LIB2_SIDITI_CONV_FUNCS. * config/mips/t-mips (LIB2_SIDITI_CONV_FUNCS): Define. Revert: 2006-02-08 Roger Sayle <[EMAIL PROTECTED]> PR target/22209 * config/fixtfdi.c: New libgcc source file. * config/fixunstfdi.c: New source file. * config/floatditf.c: New source file. * config/floatunditf.c: New souce file. * config/mips/t-iris6 (LIB2FUNCS_EXTRA): Include the new source files above instead of config/mips/_tilib.c. * config/mips/t-linux64 (LIB2FUNCS_EXTRA): Likewise. Removed: branches/gcc-4_1-branch/gcc/config/fixtfdi.c branches/gcc-4_1-branch/gcc/config/fixunstfdi.c branches/gcc-4_1-branch/gcc/config/floatditf.c branches/gcc-4_1-branch/gcc/config/floatunditf.c Modified: branches/gcc-4_1-branch/gcc/ChangeLog branches/gcc-4_1-branch/gcc/Makefile.in branches/gcc-4_1-branch/gcc/config/mips/t-iris6 branches/gcc-4_1-branch/gcc/config/mips/t-linux64 branches/gcc-4_1-branch/gcc/config/mips/t-mips branches/gcc-4_1-branch/gcc/libgcc2.c branches/gcc-4_1-branch/gcc/libgcc2.h branches/gcc-4_1-branch/gcc/mklibgcc.in -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27681
[Bug target/22209] [4.1 regression] libgfortran unresolvable symbols on irix6.5
--- Comment #15 from rsandifo at gcc dot gnu dot org 2006-09-10 07:13 --- Subject: Bug 22209 Author: rsandifo Date: Sun Sep 10 07:13:12 2006 New Revision: 116811 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=116811 Log: gcc/ PR target/27681 Backport from mainline: 2006-05-23 Richard Sandiford <[EMAIL PROTECTED]> * libgcc2.c (LIBGCC2_MAX_UNITS_PER_WORD): New macro. (LIBGCC2_UNITS_PER_WORD): Use LIBGCC2_MAX_UNITS_PER_WORD rather than MIN_UNITS_PER_WORD to set the default. Also use it in the guard. 2006-05-22 Richard Sandiford <[EMAIL PROTECTED]> * mklibgcc.in (lib2funcs): Remove _floatdidf from initial assignment. 2006-05-19 Richard Sandiford <[EMAIL PROTECTED]> * libgcc2.c (MIN_UNITS_PER_WORD): Move default definition from libgcc2.h. (LIBGCC2_UNITS_PER_WORD): Provide default definition, using old MIN_UNITS_PER_WORD logic from libgcc2.h. Do nothing if LIBGCC2_UNITS_PER_WORD > MIN_UNITS_PER_WORD. * libgcc2.h (MIN_UNITS_PER_WORD): Remove definition from here. Use LIBGCC2_UNITS_PER_WORD rather than MIN_UNITS_PER_WORD to determine the size of Wtype, etc. * mklibgcc.in (LIB2_SIDITI_CONV_FUNCS): New argument. (swfloatfuncs): New variable. (dwfloatfuncs): Likewise. (lib2funcs): Remove floating-point conversion functions from initial assignment. Use LIB2_SIDITI_CONV_FUNCS to determine the set of conversion routines needed. Allow entries to specify an object name, filename and word size. Update users accordingly. * Makefile.in (libgcc.mk): Pass LIB2_SIDITI_CONV_FUNCS. * config/mips/t-mips (LIB2_SIDITI_CONV_FUNCS): Define. Revert: 2006-02-08 Roger Sayle <[EMAIL PROTECTED]> PR target/22209 * config/fixtfdi.c: New libgcc source file. * config/fixunstfdi.c: New source file. * config/floatditf.c: New source file. * config/floatunditf.c: New souce file. * config/mips/t-iris6 (LIB2FUNCS_EXTRA): Include the new source files above instead of config/mips/_tilib.c. * config/mips/t-linux64 (LIB2FUNCS_EXTRA): Likewise. Removed: branches/gcc-4_1-branch/gcc/config/fixtfdi.c branches/gcc-4_1-branch/gcc/config/fixunstfdi.c branches/gcc-4_1-branch/gcc/config/floatditf.c branches/gcc-4_1-branch/gcc/config/floatunditf.c Modified: branches/gcc-4_1-branch/gcc/ChangeLog branches/gcc-4_1-branch/gcc/Makefile.in branches/gcc-4_1-branch/gcc/config/mips/t-iris6 branches/gcc-4_1-branch/gcc/config/mips/t-linux64 branches/gcc-4_1-branch/gcc/config/mips/t-mips branches/gcc-4_1-branch/gcc/libgcc2.c branches/gcc-4_1-branch/gcc/libgcc2.h branches/gcc-4_1-branch/gcc/mklibgcc.in -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22209
[Bug target/27681] Missing DImode float conversion functions with -msoft-float
--- Comment #7 from rsandifo at gcc dot gnu dot org 2006-09-10 07:17 --- Patch committed. -- rsandifo at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Known to work|4.0.0 4.1.0 4.2.0 |4.0.0 4.1.0 4.1.2 4.2.0 Resolution||FIXED Summary|[4.1 regression] Missing|Missing DImode float |DImode float conversion |conversion functions with - |functions with -msoft-float |msoft-float http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27681
[Bug target/29006] New: Incorrect zeroing of unaligned 64-bit fields on MIPS targets
gcc will use swl/swr instead of sdl/sdr to zero an unaligned 64-bit field. This can be seem with a testcase like: struct __attribute__((__packed__)) s { char c; unsigned long long x; }; void __attribute__((__noinline__)) foo (struct s *s) { s->x = 0; } int main (void) { struct s s = { 1, ~0ULL }; foo (&s); return s.x != 0; } -- Summary: Incorrect zeroing of unaligned 64-bit fields on MIPS targets Product: gcc Version: 4.2.0 Status: UNCONFIRMED Keywords: wrong-code Severity: normal Priority: P3 Component: target AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: rsandifo at gcc dot gnu dot org GCC target triplet: mipsisa64-elf http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29006
[Bug target/29006] Incorrect zeroing of unaligned 64-bit fields on MIPS targets
--- Comment #1 from rsandifo at gcc dot gnu dot org 2006-09-10 19:08 --- I'm about to commit a fix. -- rsandifo at gcc dot gnu dot org changed: What|Removed |Added Known to fail||4.0.3 4.1.1 4.2.0 Known to work||3.3 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29006
[Bug target/29006] Incorrect zeroing of unaligned 64-bit fields on MIPS targets
-- rsandifo at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |rsandifo at gcc dot gnu dot |dot org |org Status|UNCONFIRMED |ASSIGNED Ever Confirmed|0 |1 Last reconfirmed|-00-00 00:00:00 |2006-09-10 19:08:40 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29006
[Bug target/29006] Incorrect zeroing of unaligned 64-bit fields on MIPS targets
--- Comment #2 from rsandifo at gcc dot gnu dot org 2006-09-10 19:28 --- Subject: Bug 29006 Author: rsandifo Date: Sun Sep 10 19:28:48 2006 New Revision: 116822 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=116822 Log: gcc/ PR target/29006 * config/mips/mips-protos.h (mips_mem_fits_mode_p): Declare. * config/mips/mips.c (mips_expand_unaligned_store): Use the mode returned by mode_for_size, rather than the mode of src itself, to choose between 32-bit and 64-bit patterns. (mips_mem_fits_mode_p): New function. * config/mips/mips.md (mov_l, mov_r): Use it to check that the size of the source matches the size of the destination. (mov_l, mov_r): Likewise. gcc/testsuite/ PR target/29006 * gcc.c-torture/execute/pr29006.c: New test. Added: trunk/gcc/testsuite/gcc.c-torture/execute/pr29006.c Modified: trunk/gcc/ChangeLog trunk/gcc/config/mips/mips-protos.h trunk/gcc/config/mips/mips.c trunk/gcc/config/mips/mips.md trunk/gcc/testsuite/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29006