[Bug rtl-optimization/27073] invalid gcse manipulation of REG_EQUIV notes

2006-04-09 Thread rsandifo at gcc dot gnu dot org


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

2006-04-09 Thread rsandifo at gcc dot gnu dot org


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

2006-04-09 Thread rsandifo at gcc dot gnu dot org


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

2006-04-09 Thread rsandifo at gcc dot gnu dot org


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

2006-04-11 Thread rsandifo at gcc dot gnu dot org


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

2006-04-25 Thread rsandifo at gcc dot gnu dot org


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

2006-04-25 Thread rsandifo at gcc dot gnu dot org


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

2006-04-25 Thread rsandifo at gcc dot gnu dot org


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

2006-04-27 Thread rsandifo at gcc dot gnu dot org


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

2006-04-27 Thread rsandifo at gcc dot gnu dot org


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

2006-04-28 Thread rsandifo at gcc dot gnu dot org


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

2006-05-02 Thread rsandifo at gcc dot gnu dot org


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

2006-05-02 Thread rsandifo at gcc dot gnu dot org


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

2006-05-19 Thread rsandifo at gcc dot gnu dot org


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

2006-05-19 Thread rsandifo at gcc dot gnu dot org


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

2006-05-19 Thread rsandifo at gcc dot gnu dot org


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

2006-05-19 Thread rsandifo at gcc dot gnu dot org
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

2006-05-19 Thread rsandifo at gcc dot gnu dot org


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

2006-05-20 Thread rsandifo at gcc dot gnu dot org


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

2006-05-20 Thread rsandifo at gcc dot gnu dot org


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

2006-05-22 Thread rsandifo at gcc dot gnu dot org


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

2006-05-22 Thread rsandifo at gcc dot gnu dot org


-- 

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

2006-05-22 Thread rsandifo at gcc dot gnu dot org


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

2006-05-23 Thread rsandifo at gcc dot gnu dot org


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

2006-05-23 Thread rsandifo at gcc dot gnu dot org


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

2006-05-23 Thread rsandifo at gcc dot gnu dot org


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

2006-06-04 Thread rsandifo at gcc dot gnu dot org


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

2006-06-06 Thread rsandifo at gcc dot gnu dot org


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

2006-06-19 Thread rsandifo at gcc dot gnu dot org


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

2006-06-19 Thread rsandifo at gcc dot gnu dot org


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

2006-06-21 Thread rsandifo at gcc dot gnu dot org


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

2006-06-21 Thread rsandifo at gcc dot gnu dot org


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

2006-07-17 Thread rsandifo at gcc dot gnu dot org
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

2006-07-17 Thread rsandifo at gcc dot gnu dot org


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

2006-07-17 Thread rsandifo at gcc dot gnu dot org
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

2006-07-17 Thread rsandifo at gcc dot gnu dot org


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

2006-07-17 Thread rsandifo at gcc dot gnu dot org


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

2006-07-17 Thread rsandifo at gcc dot gnu dot org


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

2006-07-17 Thread rsandifo at gcc dot gnu dot org


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

2006-07-17 Thread rsandifo at gcc dot gnu dot org


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

2008-11-11 Thread rsandifo at gcc dot gnu dot org


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

2008-11-11 Thread rsandifo at gcc dot gnu dot org


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

2008-11-15 Thread rsandifo at gcc dot gnu dot org


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

2008-11-16 Thread rsandifo at gcc dot gnu dot org


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

2008-11-16 Thread rsandifo at gcc dot gnu dot org


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

2008-11-16 Thread rsandifo at gcc dot gnu dot org


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

2008-12-15 Thread rsandifo at gcc dot gnu dot org


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

2008-12-20 Thread rsandifo at gcc dot gnu dot org


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

2008-12-21 Thread rsandifo at gcc dot gnu dot org
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

2008-12-21 Thread rsandifo at gcc dot gnu dot org


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

2008-12-21 Thread rsandifo at gcc dot gnu dot org
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

2008-12-21 Thread rsandifo at gcc dot gnu dot org


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

2008-12-21 Thread rsandifo at gcc dot gnu dot org
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

2008-12-21 Thread rsandifo at gcc dot gnu dot org


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

2008-12-21 Thread rsandifo at gcc dot gnu dot org


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

2008-12-21 Thread rsandifo at gcc dot gnu dot org


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

2009-01-03 Thread rsandifo at gcc dot gnu dot org
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

2009-01-06 Thread rsandifo at gcc dot gnu dot org


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

2009-01-06 Thread rsandifo at gcc dot gnu dot org


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

2009-07-09 Thread rsandifo at gcc dot gnu dot org


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

2009-07-09 Thread rsandifo at gcc dot gnu dot org


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

2009-07-10 Thread rsandifo at gcc dot gnu dot org


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

2009-07-10 Thread rsandifo at gcc dot gnu dot org


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

2009-07-10 Thread rsandifo at gcc dot gnu dot org


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

2009-07-10 Thread rsandifo at gcc dot gnu dot org


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

2009-07-10 Thread rsandifo at gcc dot gnu dot org


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

2009-07-10 Thread rsandifo at gcc dot gnu dot org


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

2005-11-04 Thread rsandifo at gcc dot gnu dot org


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

2005-11-21 Thread rsandifo at gcc dot gnu dot org


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

2005-11-21 Thread rsandifo at gcc dot gnu dot org


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

2005-11-21 Thread rsandifo at gcc dot gnu dot org
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

2006-01-16 Thread rsandifo at gcc dot gnu dot org
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

2006-01-16 Thread rsandifo at gcc dot gnu dot org


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

2006-01-18 Thread rsandifo at gcc dot gnu dot org


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

2006-01-18 Thread rsandifo at gcc dot gnu dot org


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

2006-01-18 Thread rsandifo at gcc dot gnu dot org


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

2006-07-20 Thread rsandifo at gcc dot gnu dot org


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

2006-07-20 Thread rsandifo at gcc dot gnu dot org


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

2006-07-26 Thread rsandifo at gcc dot gnu dot org


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

2006-07-26 Thread rsandifo at gcc dot gnu dot org


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

2006-07-26 Thread rsandifo at gcc dot gnu dot org


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

2006-07-26 Thread rsandifo at gcc dot gnu dot org


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

2006-07-26 Thread rsandifo at gcc dot gnu dot org


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

2006-07-26 Thread rsandifo at gcc dot gnu dot org


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

2006-07-30 Thread rsandifo at gcc dot gnu dot org


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

2006-08-03 Thread rsandifo at gcc dot gnu dot org


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

2006-08-13 Thread rsandifo at gcc dot gnu dot org


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

2006-08-14 Thread rsandifo at gcc dot gnu dot org


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

2006-08-14 Thread rsandifo at gcc dot gnu dot org


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

2006-09-08 Thread rsandifo at gcc dot gnu dot org
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

2006-09-08 Thread rsandifo at gcc dot gnu dot org


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

2006-09-09 Thread rsandifo at gcc dot gnu dot org


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

2006-09-09 Thread rsandifo at gcc dot gnu dot org


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

2006-09-10 Thread rsandifo at gcc dot gnu dot org


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

2006-09-10 Thread rsandifo at gcc dot gnu dot org


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

2006-09-10 Thread rsandifo at gcc dot gnu dot org


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

2006-09-10 Thread rsandifo at gcc dot gnu dot org
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

2006-09-10 Thread rsandifo at gcc dot gnu dot org


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

2006-09-10 Thread rsandifo at gcc dot gnu dot org


-- 

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

2006-09-10 Thread rsandifo at gcc dot gnu dot org


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



  1   2   3   4   5   >