[Bug middle-end/44716] [4.6 Regression] Bootstrap fails with partial inlining (r161382)

2010-09-23 Thread sje at cup dot hp dot com


--- Comment #17 from sje at cup dot hp dot com  2010-09-23 16:27 ---
It looks like GCC on IA64 HP-UX has a problem when a routine in .text.unlikely
calls a function in .text.  If I define UNLIKELY_EXECUTED_TEXT_SECTION_NAME and
HOT_TEXT_SECTION_NAME to just be '.text' then I can bootstrap with partial
inlining enabled.  I think the bug that is causing the abort is probably in the
GNU assembler or the HP linker or some combination of the two.

There is still a GCC bug here because the partial inlining change shouldn't
have triggered the use of .text.unlikely.  Particularly since it appears that
it is the caller of the partially inlined function that is getting put into
.text.unlikely, not the 'remainder' of the partially inlined function.

On IA64 Linux, we do not appear to be using .text.unlikely, and that is
probably why I see this bug on HP-UX but not Linux.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44716



[Bug middle-end/44716] [4.6 Regression] Bootstrap fails with partial inlining (r161382)

2010-09-20 Thread sje at cup dot hp dot com


--- Comment #16 from sje at cup dot hp dot com  2010-09-20 22:12 ---
Honza, have you had a chance to look at this failure recently?  It is still
happening and I can only build GCC on ia64-hp-hpux11.23 using workarounds to
stop some of the inlining.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44716



[Bug middle-end/43760] [4.6 regression] New test failures

2010-09-02 Thread sje at cup dot hp dot com


--- Comment #7 from sje at cup dot hp dot com  2010-09-02 18:26 ---
I wonder if we should attack this from a different angle.  We have been trying
to make the .pred.mutex.rel info more accurate to avoid this warning.  If we
can't do that I wonder if we should make GCC more conservative about doing two
predicated writes in a single instruction group.  This would make the code
slower but it might be an infrequent enough occurance that it doesn't matter.

Also, I currently see gfortran.dg/maxlocval_3.f90 failing with this message and
when I look at the assembly code, there are two predicated writes that are
using two consecutive pr registers (p12 and p13) but they are not set in a
single cmp instructions.  They are set seperately and I believe that both could
be true which would mean that we are generating invalid code.

I am going to test a patch that changes rws_access_regno to not allow two
predicated register write in the same instruction group.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43760



[Bug bootstrap/44970] [4.6 regression] Revision 162270 failed to bootstrap

2010-08-23 Thread sje at cup dot hp dot com


--- Comment #75 from sje at cup dot hp dot com  2010-08-23 20:49 ---
Paolo, are you looking at this?  The hppa64-*-* bootstrap is still broken.


-- 

sje at cup dot hp dot com changed:

   What|Removed |Added

 CC||sje at cup dot hp dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44970



[Bug plugins/45346] New: hard-reg-set.h needs to be in the plugin include directory

2010-08-19 Thread sje at cup dot hp dot com
I am trying to build a plugin that uses cgraph.h, which is in the plugin
directory.  But cgraph.h needs function.h and function.h needs hard-reg-set.h.

hard-reg-set.h is not in the plugin include directory.

The test case is to build a plugin where the plugin uses the header file
cgraph.h
or function.h.

I believe this started failing at r159776 when Paul Brook added the include of
hard-reg-set.h into function.h


-- 
   Summary: hard-reg-set.h needs to be in the plugin include
directory
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: plugins
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: sje at cup dot hp dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45346



[Bug plugins/45348] New: cp/cp-tree.h in plugin header does not work.

2010-08-19 Thread sje at cup dot hp dot com
If you include the header file cp/cp-tree.h in a plugin it will not compile
because cp/cp-tree.h includes c-family/c-common.h which cannot be found.
c-common.h is in the plugin directory but not under the c-family directory.

It looks like the makefile tries to flatten the directory structure when
putting headers in the plugin directory which is why c-common.h is in
plugin/include and
not plugin/include/c-family.  I don't know if cp/cp-tree.h should be changed or
if the Makefile should be changed.

Test case ia a plugin that includes cp/cp-tree.h.


-- 
   Summary: cp/cp-tree.h in plugin header does not work.
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: plugins
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: sje at cup dot hp dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45348



[Bug testsuite/45266] [4.6 regression] FAIL: gfortran.dg/array_memcpy_3.f90

2010-08-16 Thread sje at cup dot hp dot com


--- Comment #8 from sje at cup dot hp dot com  2010-08-16 17:11 ---
! { dg-final { scan-tree-dump-times memcpy|ref-all.*ref-all 2 original } }

worked for me on IA64 where we have 2 memcpys' in the output.  Neither of my
suggestions from comment #7 worked.  I don't know if this will work on a
platform
which generates the 'ref-all' strings instead of memcpy's.  All my platforms;
IA64, PA, x86 seem to generate memcpy.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45266



[Bug testsuite/45266] [4.6 regression] FAIL: gfortran.dg/array_memcpy_3.f90

2010-08-13 Thread sje at cup dot hp dot com


--- Comment #7 from sje at cup dot hp dot com  2010-08-13 22:39 ---
Does memcpy|(ref-all.*ref-all)  need to be (memcpy|(ref-all.*ref-all)) or
perhaps (memcpy|ref-all.*ref-all).  Everyplace else I see a | in a scan
statement there are parentheses around the options.


-- 

sje at cup dot hp dot com changed:

   What|Removed |Added

 CC||sje at cup dot hp dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45266



[Bug middle-end/44716] [4.6 Regression] Bootstrap fails with partial inlining (r161382)

2010-08-11 Thread sje at cup dot hp dot com


--- Comment #12 from sje at cup dot hp dot com  2010-08-11 17:20 ---
I have a slightly smaller test case for this, but it still needs to bootstrap
to fail.  If I bootstrap just the C part of the compiler I get a successful
build (with partial inlining enabled) but when I use that compiler to compile
this test case (with -O2) I get a segfault in the compiler:

char *s4;
test2_sub (int i, ...)
{
  __builtin_va_list ap;
  __builtin___vsprintf_chk (s4, 0, __builtin_object_size (s4, 0), %s %d, ap);
}


If I modify the gimple_rewrite_call_expr call in builtins.c and replace the
call to gimple_call_num_args with a new function that I don't inline (or that I
inline completely) the segfault goes away.

Looking at some of the dump files, builtins.c.041t.fnsplit shows
gimple_call_num_args getting split but I don't see any indication of inlining
in builtins.c.015/025/043.  fnsplit creates gimple_call_num_args.part.22 and
changes gimple_call_num_args to call that routine the dump doesn't show
imple_rewrite_call_expr calling part.22 but later dumps do show this.  I will
attach builtins.c.041t.fnsplit.

Any help on this bug would be appreciated, IA64 HP-UX has not bootstrapped with
ToT sources in some time now.


-- 

sje at cup dot hp dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2010-08-11 17:20:41
   date||


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44716



[Bug middle-end/44716] [4.6 Regression] Bootstrap fails with partial inlining (r161382)

2010-08-11 Thread sje at cup dot hp dot com


--- Comment #13 from sje at cup dot hp dot com  2010-08-11 17:23 ---
Created an attachment (id=21455)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=21455action=view)
compressed builtins.c.041t.fnsplit dump file

I believe that the splitting and inlining of gimple_call_num_args into
gimple_rewrite_call_expr is causing the failure but I do not know why.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44716



[Bug middle-end/41551] [4.4 Regression] ia64: ICE: in instantiate_virtual_regs_in_insn, at function.c:1630

2010-08-10 Thread sje at cup dot hp dot com


--- Comment #8 from sje at cup dot hp dot com  2010-08-10 15:58 ---
Backported to the 4.4 branch.


-- 

sje at cup dot hp dot com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41551



[Bug target/44583] [4.6 Regression] c-c++-common/torture/complex-sign-add.c fails for signed zeros

2010-08-04 Thread sje at cup dot hp dot com


--- Comment #12 from sje at cup dot hp dot com  2010-08-04 19:25 ---
Fixed on ToT.


-- 

sje at cup dot hp dot com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44583



[Bug fortran/45151] [4.6 regression] New Fortran failuires

2010-08-03 Thread sje at cup dot hp dot com


--- Comment #14 from sje at cup dot hp dot com  2010-08-03 15:42 ---
The assembler warning messages (shown in comment #13) that are causing the
failure of gfortran.dg/maxlocval_3.f90 are due to PR 15445 and is not a new
problem.


-- 

sje at cup dot hp dot com changed:

   What|Removed |Added

 CC||sje at cup dot hp dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45151



[Bug target/45063] [4.6 Regression] ICE: Segmentation fault (cc1) compiling matmul_i1.c

2010-07-30 Thread sje at cup dot hp dot com


--- Comment #16 from sje at cup dot hp dot com  2010-07-30 18:33 ---
I just tried the patch in comment #15 and successfully bootstrapped GCC on my
32 bit PA system (including building matmul_i1.c).  This was on ToT (r162716).


-- 

sje at cup dot hp dot com changed:

   What|Removed |Added

 CC||sje at cup dot hp dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45063



[Bug target/44583] [4.6 Regression] c-c++-common/torture/complex-sign-add.c fails for signed zeros

2010-07-29 Thread sje at cup dot hp dot com


--- Comment #10 from sje at cup dot hp dot com  2010-07-29 21:32 ---
I have posted a patch for this bug to gcc-patches.

http://gcc.gnu.org/ml/gcc-patches/2010-07/msg02302.html


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44583



[Bug target/43941] Impossible to build any version beyond 4.2.4

2010-07-29 Thread sje at cup dot hp dot com


--- Comment #6 from sje at cup dot hp dot com  2010-07-29 21:50 ---
Because the ia64-hp-hpux11.31 compiler generates 32 bit code by default you
cannot do a bootstrap build in 64 bit mode.  From install.texi:

Note that the bootstrap compiler and the resulting GCC must be link
compatible, else the bootstrap will fail with linker errors about
incompatible object file formats.

Since the resulting GCC generates 32 bit code and the bootstrap compiler you
are using generates 64 bit code they are not link compatible.

Note that you can build GCC in 32 bit mode and still use the resulting compiler
to compile programs in 64 bit mode by using the -mlp64 option.


-- 

sje at cup dot hp dot com changed:

   What|Removed |Added

 Status|WAITING |RESOLVED
 Resolution||INVALID


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43941



[Bug target/45026] Empty function compiles to many loads and stores

2010-07-26 Thread sje at cup dot hp dot com


--- Comment #1 from sje at cup dot hp dot com  2010-07-26 20:07 ---
It doesn't result in any loads, just stores.  This code is storing the first
part of the structure argument which was passed (partially) in registers into
memory.  Obviously it doesn't need to do this since the argument isn't used.  I
think this is an unfortunate side-effect of passing a large structure as an
argument.  If the structure were smaller and fit entirely into registers you
would see an empty function.  Large structures are split on IA64 with the first
part going into registers and the last part going into memory and it looks like
GCC 'reconstructs' the structure in memory before determining if it is needed
or not.

Ideally, you should pass a pointer here instead of passing (and copying) the
structure, but it would be nice if GCC realised the argument wasn't needed and
didn't do the stores so this could be considered a missed optimization.


-- 

sje at cup dot hp dot com changed:

   What|Removed |Added

 CC||sje at cup dot hp dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45026



[Bug middle-end/44878] [4.6 Regression] Build fails when compiling libstdc++

2010-07-22 Thread sje at cup dot hp dot com


--- Comment #4 from sje at cup dot hp dot com  2010-07-22 22:29 ---
Fixed, I can now bootstrap GCC *with partial inlining turned off*.  Partial
inlining still doesn't work on IA64 HP-UX, that problem is PR 44716.


-- 

sje at cup dot hp dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44878



[Bug libgomp/45025] Memory ordering issues with libgomp critical sections and __sync

2010-07-21 Thread sje at cup dot hp dot com


--- Comment #1 from sje at cup dot hp dot com  2010-07-21 22:39 ---
I backported the patch for PR 42869 to the 4.4 branch to fix Itanium.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45025



[Bug middle-end/44878] [4.6 Regression] Build fails when compiling libstdc++

2010-07-09 Thread sje at cup dot hp dot com


--- Comment #2 from sje at cup dot hp dot com  2010-07-09 16:10 ---
Here is a smaller test case:

class e
{
  public:
  e(void* __e);
  e(const e);
};

void * v() { }
e foo() { return e(v()); }

It only fails on IA64 in 32 bit mode and the problem seems to be related to
the change in needs_to_live_in_memory.  If I undo the one line change in that
function then the example will compile.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44878



[Bug middle-end/44813] [4.6 Regression] ipa-split causes ice in ptr_deref_may_alias_decl_p, at tree-ssa-alias.c:173

2010-07-08 Thread sje at cup dot hp dot com


--- Comment #5 from sje at cup dot hp dot com  2010-07-08 20:39 ---
The patch for this fix broke the ia64-hp-hpux11.23 build.  I will attach a new
test case, if I compile the test case with cc1plus I get an ICE.  This is
probably some issue with Pmode vs. ptr_mode.  I do not need to build bootstrap
to reproduce the problem and I do not need any options when compiling the test
case.

$ obj_gcc/gcc/cc1plus -quiet x.cc
x.cc: In function 'std::__exception_ptr::exception_ptr
std::current_exception()':
x.cc:19:1: internal compiler error: in emit_move_insn, at expr.c:3397
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.


-- 

sje at cup dot hp dot com changed:

   What|Removed |Added

 CC||sje at cup dot hp dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44813



[Bug middle-end/44813] [4.6 Regression] ipa-split causes ice in ptr_deref_may_alias_decl_p, at tree-ssa-alias.c:173

2010-07-08 Thread sje at cup dot hp dot com


--- Comment #6 from sje at cup dot hp dot com  2010-07-08 20:40 ---
Created an attachment (id=21151)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=21151action=view)
Test case that fails on ia64-hp-hpux11.23


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44813



[Bug c++/44878] New: Build fails when compiling libstdc++

2010-07-08 Thread sje at cup dot hp dot com
The patch to PR 44813 broke the build on ia64-hp-hpux11.23.  The patch went in
at r161898.  Attached is a test case which causes an ICE when compiled with GCC
on ia64-hp-hpux11.23.  No options are needed during the compile.  The failure
is:

x.cc: In function 'std::__exception_ptr::exception_ptr
std::current_exception()':
x.cc:19:1: internal compiler error: in emit_move_insn, at expr.c:3397
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.

In the debugger I see:

(gdb) p mode
$1 = DImode
(gdb) p debug_rtx(x)
(reg/f:DI 341 [ retval+-4 ])
$2 = void
(gdb) p debug_rtx(y)
(subreg/s/v:SI (reg/f:DI 341 [ retval+-4 ]) 4)

so the problem is the mismatch in the modes.  IA64 generates 32 bit pointers by
default but they need to be extended to 64 bits before being dereferenced.


-- 
   Summary: Build fails when compiling libstdc++
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: sje at cup dot hp dot com
 GCC build triplet: ia64-hp-hpux11.23
  GCC host triplet: ia64-hp-hpux11.23
GCC target triplet: ia64-hp-hpux11.23


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44878



[Bug c++/44878] Build fails when compiling libstdc++

2010-07-08 Thread sje at cup dot hp dot com


--- Comment #1 from sje at cup dot hp dot com  2010-07-08 21:53 ---
Created an attachment (id=21152)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=21152action=view)
Test case that fails on ia64-hp-hpux11.23

This test case generates an ICE on ia64-hp-hpux11.23.  No options are required
during compile.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44878



[Bug middle-end/44813] [4.6 Regression] ipa-split causes ice in ptr_deref_may_alias_decl_p, at tree-ssa-alias.c:173

2010-07-08 Thread sje at cup dot hp dot com


--- Comment #8 from sje at cup dot hp dot com  2010-07-08 21:53 ---
I have created PR 44878 for the IA64 problem.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44813



[Bug middle-end/44716] [4.6 Regression] Bootstrap fails with partial inlining (r161382)

2010-07-07 Thread sje at cup dot hp dot com


--- Comment #3 from sje at cup dot hp dot com  2010-07-07 15:30 ---
I haven't been able to come up with a test case other then bootstrapping.  If I
build a non-bootstrap compiler and run the testsuite I don't get any unexpected
failures due to this problem.  It is only when, during bootstrap, I run the
cc1plus executable that was built by the stage1 cc1 that I get a failure.  At
that point trying to compile any C++ program with cc1plus results in cc1plus
aborting.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44716



[Bug middle-end/44716] [4.6 Regression] Bootstrap fails with partial inlining (r161382)

2010-07-07 Thread sje at cup dot hp dot com


--- Comment #4 from sje at cup dot hp dot com  2010-07-07 17:22 ---
The problem seems to happen when compiling cp/decl.c.  If I compile this file
at -O1 instead of -O2 the resulting C++ compiler will work.  I am trying to see
if I can track it down to one function within cp/decl.c.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44716



[Bug middle-end/44716] [4.6 Regression] Bootstrap fails with partial inlining (r161382)

2010-07-07 Thread sje at cup dot hp dot com


--- Comment #5 from sje at cup dot hp dot com  2010-07-07 22:48 ---
If I put __attribute__ ((noinline)) on check_class_member_definition_namespace
in cp/decl.c, I don't see the bug.  I don't see anything special about this
function so I don't know why it is having problems being (partially)
inlined when nothing else seems to cause problems.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44716



[Bug middle-end/44716] [4.6 Regression] Bootstrap fails with partial inlining (r161382)

2010-07-07 Thread sje at cup dot hp dot com


--- Comment #7 from sje at cup dot hp dot com  2010-07-07 23:43 ---
Created an attachment (id=21129)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=21129action=view)
Compressed preprocessed cp/decl.c


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44716



[Bug middle-end/44716] [4.6 Regression] Bootstrap fails with partial inlining (r161382)

2010-07-07 Thread sje at cup dot hp dot com


--- Comment #8 from sje at cup dot hp dot com  2010-07-07 23:44 ---
Created an attachment (id=21130)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=21130action=view)
Compressed decl.c.015t.inline_param1 file


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44716



[Bug middle-end/44716] [4.6 Regression] Bootstrap fails with partial inlining (r161382)

2010-07-07 Thread sje at cup dot hp dot com


--- Comment #9 from sje at cup dot hp dot com  2010-07-07 23:44 ---
Created an attachment (id=21131)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=21131action=view)
Compressed decl.c.025t.einline2 file


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44716



[Bug middle-end/44716] [4.6 Regression] Bootstrap fails with partial inlining (r161382)

2010-07-07 Thread sje at cup dot hp dot com


--- Comment #10 from sje at cup dot hp dot com  2010-07-07 23:45 ---
Created an attachment (id=21132)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=21132action=view)
Compressed decl.c.041t.fnsplit file


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44716



[Bug middle-end/44716] [4.6 Regression] Bootstrap fails with partial inlining (r161382)

2010-07-07 Thread sje at cup dot hp dot com


--- Comment #11 from sje at cup dot hp dot com  2010-07-07 23:45 ---
Created an attachment (id=21133)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=21133action=view)
Compressed decl.c.043t.inline_param3 file


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44716



[Bug middle-end/44790] [4.6 Regression] Bootstrap fails after MEM-REF merge

2010-07-06 Thread sje at cup dot hp dot com


--- Comment #3 from sje at cup dot hp dot com  2010-07-06 16:44 ---
The neccessary UNSPEC seems to be there if you trace the instructions back
far enough.  I tried it on my test case and it worked.  I am now testing the
patch on ToT to see if I can bootstrap.  I also have to turn off partial
inlining to get bootstrap to work on ia64-hp-hpux11.23.  I tweaked the patch
for ToT there are a bunch of changes to expr.c including setting base so the
patch I am currently testing with r161861 looks like this:

Index: expr.c
===
--- expr.c  (revision 161861)
+++ expr.c  (working copy)
@@ -8777,13 +8777,11 @@ expand_expr_real_1 (tree exp, rtx target
  base = build2 (BIT_AND_EXPR, TREE_TYPE (base),
 gimple_assign_rhs1 (def_stmt),
 gimple_assign_rhs2 (def_stmt));
-   op0 = expand_expr (base, NULL_RTX, address_mode, EXPAND_NORMAL);
if (!integer_zerop (TREE_OPERAND (exp, 1)))
- {
-   rtx off;
-   off = immed_double_int_const (mem_ref_offset (exp), address_mode);
-   op0 = simplify_gen_binary (PLUS, address_mode, op0, off);
- }
+ base = build2 (POINTER_PLUS_EXPR, TREE_TYPE (base),
+base, double_int_to_tree (sizetype,
+  mem_ref_offset (exp)));
+   op0 = expand_expr (base, NULL_RTX, address_mode, EXPAND_SUM);
op0 = memory_address_addr_space (mode, op0, as);
temp = gen_rtx_MEM (mode, op0);
set_mem_attributes (temp, exp, 0);


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44790



[Bug middle-end/44790] [4.6 Regression] Bootstrap fails after MEM-REF merge

2010-07-06 Thread sje at cup dot hp dot com


--- Comment #4 from sje at cup dot hp dot com  2010-07-06 22:56 ---
I successfully bootstrapped ToT (after setting flag_partial_inlining to 0 to
work around pr44716) using the patch.  Testing also looked good, there are some
new failures but they are all either new tests that may have never worked on
this platform or tests that are also failing on other platforms.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44790



[Bug middle-end/44790] New: Bootstrap fails after MEM-REF merge

2010-07-02 Thread sje at cup dot hp dot com
GCC fails to bootstrap on ia64-hp-hpux11.23 after r161655.  Building without
bootstrap and running the testsuite shows that tests are failing in 32 bit mode
but not 64 bit mode so the problem is probably ia64's unique method of
extending pointers in 32 bit mode  Most of the failing tests involve va_args.

Here is a cutdown test that fails:

f (int n, ...)
{
  long x;
  int i;

  __builtin_va_list ap;
  __builtin_va_start(ap,n);
  x = __builtin_va_arg(ap,long);
  if (x != 123)
  abort();
  __builtin_va_end(ap);
}

main ()
{
  f (3, (long) 123);
  exit(0);
}


-- 
   Summary: Bootstrap fails after MEM-REF merge
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: middle-end
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: sje at cup dot hp dot com
 GCC build triplet: ia64-hp-hpux11.23
  GCC host triplet: ia64-hp-hpux11.23
GCC target triplet: ia64-hp-hpux11.23


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44790



[Bug middle-end/44790] Bootstrap fails after MEM-REF merge

2010-07-02 Thread sje at cup dot hp dot com


--- Comment #1 from sje at cup dot hp dot com  2010-07-02 19:49 ---
This may be related to x + CST folding.  The bug only happens at -O1 or above.
I think I forgot to mention that in the original bug report.
When I look at the expand dump and the comparision to 123 I see:


(insn 17 16 18 3 x.c:8 (set (reg:DI 348)
(zero_extend:DI (subreg/s/v:SI (reg/v/f:DI 339 [ ap+-4 ]) 4))) -1
(nil))

(insn 18 17 19 3 x.c:8 (set (reg/f:DI 347)
(plus:DI (reg:DI 348)
(const_int 4 [0x4]))) -1 (nil))

(insn 19 18 20 3 x.c:9 (set (reg:SI 349)
(mem:SI (reg/f:DI 347) [0 MEM[(int *)ap_1 + 4B]+0 S4 A32])) -1 (nil))

(insn 20 19 21 3 x.c:9 (set (reg:BI 350)
(eq:BI (reg:SI 349)
(const_int 123 [0x7b]))) -1 (nil))

Instruction 17, where we set r348 to zero_extend of r339 looks wrong.  We
need to do a pointer extend here, I.e. (unspec 24) go generate an addp4.
r349 is not a valid pointer after instruction 17 and this generates the fault.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44790



[Bug middle-end/44716] New: Bootstrap fails with partial inlining (r161382)

2010-06-29 Thread sje at cup dot hp dot com
The ia64-hp-hpux11.23 platform fails when building the C++ library during a
bootstrap build with r161382.  r161381 works. r161521, which has some bug
fixes, still fails.  The failure only occurs with bootstrap, the compiler
faults when building the libstdc++ library.

/proj/opensrc_nobackup/sje/reg3/build-ia64-hp-hpux11.23-trunk/obj_gcc/ia64-hp-hpux11.23/libstdc++-v3/include/bits/postypes.h:123:12:
internal compiler error: Illegal instruction
Please submit a full bug report,  
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.
make[4]: *** [ia64-hp-hpux11.23/bits/stdc++.h.gch/O2ggnu++0x.gch] Error

Running under gdb didn't give me a complete backtrace but did show:

#0  0x42c88b0:2 in cplus_expand_constant (cst=0x6432d880)
at /proj/opensrc_nobackup/sje/reg3/src/trunk/gcc/cp/expr.c:70

I will try turning off partial inlining and see if that fixes the
problem using the r161382 sources.  This bug doesn't appear to be
the same as PR44671 (fixed in r161521) or PR44687 (an ICE error in tree_nrv).


-- 
   Summary: Bootstrap fails with partial inlining (r161382)
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: middle-end
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: sje at cup dot hp dot com
 GCC build triplet: ia64-hp-hpux11.23
  GCC host triplet: ia64-hp-hpux11.23
GCC target triplet: ia64-hp-hpux11.23


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44716



[Bug middle-end/44716] Bootstrap fails with partial inlining (r161382)

2010-06-29 Thread sje at cup dot hp dot com


--- Comment #1 from sje at cup dot hp dot com  2010-06-29 20:32 ---
I have verified that the bootstrap works if I set flag_partial_inlining to 0.
I also did a build with --disable-libstdcxx-pch to see if the build failed when
I didn't build pre-compiled C++ headers and it does.  It dies while compiling
libstdc++-v3/libsupc++/array_type_info.cc with the same error.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44716



[Bug testsuite/43283] ld: Unsatisfied symbol start in file c_lto_20091216-1_0.o

2010-06-25 Thread sje at cup dot hp dot com


--- Comment #8 from sje at cup dot hp dot com  2010-06-25 16:10 ---
Resolved with code change to test case.


-- 

sje at cup dot hp dot com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43283



[Bug middle-end/44583] [4.6 Regression] c-c++-common/torture/complex-sign-add.c

2010-06-25 Thread sje at cup dot hp dot com


--- Comment #3 from sje at cup dot hp dot com  2010-06-25 20:21 ---
I see this failure on ia64 linux and hp-ux.  The interesting thing is that it
fails when compiled with C++ but not when compiled with C.  Here is a smaller
test case that shows that the imaginary part of c1 is +0 in the good case
(compiled with C) and -0 in the bad case (compiled with C++).  This only shows
up when not doing any optimization (-O0) because with optimization everything
seems to get correctly folded.

#ifdef __cplusplus
extern C {
#endif
extern void exit(int);
int printf(const char *format, ...);
#ifdef __cplusplus
}
#endif

int main (void) {

 _Complex float a1, b1, c1;

 a1 = 0.0f + 0.0if;
 b1 = 0.0f - 0.0if;

 c1 = a1 + b1;
 if (__builtin_copysignf (1.0, __imag__ (a1)) != + 1.0) printf(one\n);
 if (__builtin_copysignf (1.0, __imag__ (b1)) != - 1.0) printf(two\n);
 if (__builtin_copysignf (1.0, __imag__ (c1)) != + 1.0) printf(three\n);
 printf(%f\n,__imag__ (c1));
 exit (0);
}


-- 

sje at cup dot hp dot com changed:

   What|Removed |Added

 CC||sje at cup dot hp dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44583



[Bug middle-end/44583] [4.6 Regression] c-c++-common/torture/complex-sign-add.c

2010-06-25 Thread sje at cup dot hp dot com


--- Comment #5 from sje at cup dot hp dot com  2010-06-25 22:47 ---
I verified that this works in r160902 and fails in 160903.


In 160902 I get this (partial) psuedo-code:

  IMAGPART_EXPR a1 = 0.0;
  D.1749_4 = -0.0;
  IMAGPART_EXPR b1 = D.1749_4;
  D.1760_12 = IMAGPART_EXPR a1;
  D.1762_14 = IMAGPART_EXPR b1;
  D.1764_16 = D.1760_12 + D.1762_14;
  IMAGPART_EXPR c1 = D.1764_16;
  D.1754_9 = IMAGPART_EXPR c1;
  D.1755_10 = (double) D.1754_9;
  printf (%f\n[0], D.1755_10);

In 160903 I get:

  b1$imag_4 = -0.0;
  c1$imag_10 = b1$imag_4 + 0.0;
  D.1749_7 = c1$imag_10;
  D.1750_8 = (double) D.1749_7;
  printf (%f\n[0], D.1750_8);

I am not sure if it is significant that in the first one I have:

D.1764_16  = 0.0 + (- 0.0)

and in the second one I have:

c1$imag_10 = (- 0.0) + 0.0

I.e. the order of the -0.0 is different.

Looking at the assembly code in 160902 I see (paraphrasing):

 fmov f8 = f0
 fneg f6 = f0
 fadd.s f6 = f8, f6

and in 160903 I see:

 fneg f6 = f0
 fadd.s f6 = f6, f0

Changing the new code by hand to swap the arguments to fadd around does
seem to fix things in the new code.  But, oddly enough, if I swap the
arguments around in the old (good) code it doesn't break, I am not sure why.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44583



[Bug fortran/42169] [4.4/4.5/4.6 Regression] gfortran.dg/pr41928.f90:47: internal compiler error: in store_can_be_removed_p, at ira-emit.c:371

2010-06-11 Thread sje at cup dot hp dot com


--- Comment #13 from sje at cup dot hp dot com  2010-06-11 20:19 ---
On hppa2.0w-hp-hpux11.11, I don't see the testsuite failure after 158397.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42169



[Bug debug/42648] [4.5/4.6 Regression] gcc.dg/guality/pr41353-1.c FAILs at -On, n 0

2010-06-10 Thread sje at cup dot hp dot com


--- Comment #8 from sje at cup dot hp dot com  2010-06-10 19:27 ---
I see pr41353-1.c failures with -O2 -flto and -O2 -fwhopr as well as with -O3.
I also see other guality tests fail with non -O3 flags.

See http://gcc.gnu.org/ml/gcc-testresults/2010-06/msg00991.html


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42648



[Bug target/43941] Impossible to build any version beyond 4.2.4

2010-05-05 Thread sje at cup dot hp dot com


--- Comment #4 from sje at cup dot hp dot com  2010-05-05 20:54 ---
I have reproduced this failure, and the problem seems to be in GMP.  You
mention that you set ABI to 64.  I noticed that if I built GMP with the HP
compiler ABI is set to 32 and then when I built GCC with that GMP it failed in
the manner you show in your report.  When I built GMP with GCC, ABI was set to
64 and the compiler I built with that GMP worked fine.  You might want to try
rebuilding GMP with GCC.

Also, you mentioned that the HP Porting Center only has GCC 4.2.3, you can get
newer pre-built GCC versions for HP-UX at http://www.hp.com/go/gcc (though
these are all built in 32 bit mode).

I was able to build GCC using HP C (in 32 bit mode) with no problems and no
changes needed.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43941



[Bug target/43941] Impossible to build any version beyond 4.2.4

2010-04-30 Thread sje at cup dot hp dot com


--- Comment #3 from sje at cup dot hp dot com  2010-04-30 22:55 ---
I've built GCC on IA64 HP-UX 11.31, but never in 64 bit mode.  I build in 32
bit mode (the default for GCC and HP C) and I haven't seen this problem.  I'll
try
building in 64 bit mode to see if I can reproduce the problem but it may take a
while since all the libraries in my BE (gmp, mpfr, etc) are in 32 bit mode and
I'll need to create 64 bit ones.

I haven't tried building GCC with the HP compiler in some time.


-- 

sje at cup dot hp dot com changed:

   What|Removed |Added

 CC||sje at cup dot hp dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43941



[Bug debug/42648] [4.5/4.6 Regression] gcc.dg/guality/pr41353-1.c FAILs at -On, n 0

2010-04-21 Thread sje at cup dot hp dot com


--- Comment #6 from sje at cup dot hp dot com  2010-04-21 16:27 ---
This looks like what I see on ia64-debian-linux-gnu as well.


-- 

sje at cup dot hp dot com changed:

   What|Removed |Added

 CC||sje at cup dot hp dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42648



[Bug middle-end/43760] [4.6 regression] New test failures

2010-04-19 Thread sje at cup dot hp dot com


--- Comment #1 from sje at cup dot hp dot com  2010-04-19 21:30 ---
/var/tmp//ccGMk41W.s: Assembler messages:
/var/tmp//ccGMk41W.s:201: Warning: Use of 'mov' may violate WAW dependency
'GR%, % in 1 - 127' (impliedf), specific resource number is 18
/var/tmp//ccGMk41W.s:201: Warning: Only the first path encountering the
conflict is reported
/var/tmp//ccGMk41W.s:200: Warning: This is the location of the conflicting
usage



It looks like this is PR 36898.  The warning is bogus in the sense that there
is no real WAW dependency conflict but the assembler isn't able to figure that
out on it's own without some help with better .pred.rel.mutex lines from the
compiler.


-- 

sje at cup dot hp dot com changed:

   What|Removed |Added

 CC||sje at cup dot hp dot com
 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2010-04-19 21:30:40
   date||


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43760



[Bug middle-end/43760] [4.6 regression] New test failures

2010-04-19 Thread sje at cup dot hp dot com


--- Comment #3 from sje at cup dot hp dot com  2010-04-20 00:01 ---
Any ideas on how to fix the compiler?  The best idea I could come up with was
to check each basic block to see if there are any conditional sets of predicate
registers in it and add pred.rel.mutex lines for those registers.  If we add
pred.rel.mutex lines for all used predicate registers we wind up adding a lot
of unneeded pred.rel.mutex statements.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43760



[Bug fortran/42169] [4.4/4.5/4.6 Regression] gfortran.dg/pr41928.f90:47: internal compiler error: in store_can_be_removed_p, at ira-emit.c:371

2010-04-16 Thread sje at cup dot hp dot com


--- Comment #8 from sje at cup dot hp dot com  2010-04-16 19:54 ---
I think the problem is related to the fact that IRA is trying to figure out if
the store of lx1 can be eliminated and lx1 may be uninitialized.  The only
place lx1 is set is in an if statement in a loop.  If we don't execute the if
statement then lx1 is never set and this may be what IRA is complaining about.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42169



[Bug middle-end/31490] Compile error section type conflict

2010-04-16 Thread sje at cup dot hp dot com


--- Comment #17 from sje at cup dot hp dot com  2010-04-16 22:29 ---
Is there any reason none of the patches created for this bug have been checked
in?  I still get a 'section type conflict' on IA64 with the test case from
Comment #2.


-- 

sje at cup dot hp dot com changed:

   What|Removed |Added

 CC||sje at cup dot hp dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31490



[Bug fortran/42169] [4.4/4.5/4.6 Regression] gfortran.dg/pr41928.f90:47: internal compiler error: in store_can_be_removed_p, at ira-emit.c:371

2010-04-15 Thread sje at cup dot hp dot com


--- Comment #6 from sje at cup dot hp dot com  2010-04-15 17:10 ---
I tried comparing the tree's between hppa2.0w-hp-hpux11.11, where I get the bug
and ia64-hp-hpux11.23, where I do not see the bug and I didn't see any real
differences in the trees, just differences in the names of generated variables
(D.1056 vs. D.1077, etc).  I used my cutdown test case, testcase.f90, which is
the smallest test case I was able to create.  The unnamed-unsigned variables I
see are 32 bits and not 64 bits, but the odd thing that I see (on both pa and
ia64)
is:

$ grep D.762 x*.f90.*
x.f90.003t.original:  unnamed-unsigned:32 D.762;
x.f90.003t.original:D.762 = (unnamed-unsigned:32) size.6 * 8;

The variable is given a value but never used.  These 'unnamed-unsigned'
variables seem to disappear during the copyrename1 phase.  I think this value
is the size of the array, in this case the size of ncoset.  I guess the Fortran
front-end generates it in case it is needed but in this case it is never needed
and so gets optimized away.  I don't know if it is related to the problem at
all but I do wonder why it is 'unnamed-unsigned' and not given a real type
name.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42169



[Bug fortran/42169] [4.4/4.5/4.6 Regression] gfortran.dg/pr41928.f90:47: internal compiler error: in store_can_be_removed_p, at ira-emit.c:371

2010-04-15 Thread sje at cup dot hp dot com


--- Comment #7 from sje at cup dot hp dot com  2010-04-15 23:47 ---
Since the failure requires -O1 as well as -fbounds-check I tried turning off
various -O1 optimizations.  I could turn off everything (and still get the bug)
except if I use -fno-tree-dominator-opts or -fno-guess-branch-probability.
If I use either of these flags the bug does not happen.  I think something is
happening related to the fact that _gfortran_runtime_error_at is marked as
'NORETURN' that is causing a bad optimization.  It may be related to making
registers as REG_DEAD but I haven't found a place where I think this marking
is actually wrong yet.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42169



[Bug testsuite/43739] [4.5 Regression] FAIL: gcc.dg/pr43643.c (test for excess errors)

2010-04-14 Thread sje at cup dot hp dot com


--- Comment #2 from sje at cup dot hp dot com  2010-04-14 16:49 ---
Fixed by adding -static to link like other tests already do.


-- 

sje at cup dot hp dot com changed:

   What|Removed |Added

 CC||sje at cup dot hp dot com
 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43739



[Bug testsuite/43283] ld: Unsatisfied symbol start in file c_lto_20091216-1_0.o

2010-04-14 Thread sje at cup dot hp dot com


--- Comment #3 from sje at cup dot hp dot com  2010-04-14 16:59 ---
Dave, do you have a patch for this?  I see it on ia64 hpux too.


-- 

sje at cup dot hp dot com changed:

   What|Removed |Added

 CC||sje at cup dot hp dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43283



[Bug testsuite/43283] ld: Unsatisfied symbol start in file c_lto_20091216-1_0.o

2010-04-14 Thread sje at cup dot hp dot com


--- Comment #5 from sje at cup dot hp dot com  2010-04-14 19:34 ---
I wonder if using 

asm (.globl start);
asm (start: nop);

Would work for everyone?  I am going to try that on my nightly HP-UX and Linux
runs.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43283



[Bug middle-end/42169] [4.4/4.5/4.6 Regression] gfortran.dg/pr41928.f90:47: internal compiler error: in store_can_be_removed_p, at ira-emit.c:371

2010-04-14 Thread sje at cup dot hp dot com


--- Comment #3 from sje at cup dot hp dot com  2010-04-14 21:56 ---
Created an attachment (id=20380)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20380action=view)
Shorter version of pr41928.f90

Here is a cutdown version of the failing test.  Note that in this version coset
is a function call instead of an array.  If I make coset an array like in the
original pr41928.f90, the test passes.  Also if I make ax and ay integers the
test passes.  Since ax and ay are used as do loop variables if you don't
compile with -w (like the test case does) then you get messages like these
with this test case and with the original one.

Warning: Deleted feature: Loop variable at (1) must be integer
Warning: Deleted feature: End expression in DO loop at (1) must be integer

If you modify the test (original or my cutdown version) to fix these warnings
the failure goes away.

I am not sure if a ICE in a testcase that uses deleted features is a bug or not
but since I think the problem is that the fortran front-end is sending bad
gimple to the middle end I am going to change this from a middle-end bug to a
fortran bug.

I have no idea why I only see this on hppa[12]*-hp-hpux11* and not on any other
platforms.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42169



[Bug fortran/42169] [4.4/4.5/4.6 Regression] gfortran.dg/pr41928.f90:47: internal compiler error: in store_can_be_removed_p, at ira-emit.c:371

2010-04-14 Thread sje at cup dot hp dot com


-- 

sje at cup dot hp dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
  Component|middle-end  |fortran
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2010-04-14 21:56:44
   date||


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42169



[Bug libffi/40385] new testcases bought in by Revision 148285 fail on ia64

2010-04-14 Thread sje at cup dot hp dot com


--- Comment #11 from sje at cup dot hp dot com  2010-04-14 22:29 ---
I am going to close out this bug report since there are currently no failures
on IA64, only expected failures for libffi.call/err_bad_abi.c and
libffi.call/err_bad_typedef.c which are XFAIL'ed for all platforms.


-- 

sje at cup dot hp dot com changed:

   What|Removed |Added

 CC||sje at cup dot hp dot com
 Status|NEW |RESOLVED
 Resolution||FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40385



[Bug c/43633] New: sizeof returns wrong size for large long long values when using -std=c99

2010-04-02 Thread sje at cup dot hp dot com
If I compile a program with -std=c99 and do a sizeof of a constant that is
larger then LONG_LONG_MAX but smaller then ULONG_LONG_MAX I get 16 instead of
8.  For values larger then ULONG_LONG_MAX I get 8.  I can reproduce this on x86
Linux and IA64 HP-UX (and probably other systems).Here is a test case that
should show the problem on any systems where LONG LONG is 8 bytes.  Compiled
without -std=c99 all the prints will print '8', with '-std=c99' the middle two
prints will print out 16 instead of 8.  Reproducable with ToT and going back to
at least 4.1.0.

#include stdio.h
main()
{
/* LONG_LONG_MAX */
printf(%ld\n, sizeof(9223372036854775807LL));
/* LONG_LONG_MAX + 1 */
printf(%ld\n, sizeof(9223372036854775808LL));
/* ULONG_LONG_MAX as a long long type */
printf(%ld\n, sizeof(18446744073709551615LL));
/* ULONG_LONG_MAX + 1 as a long long type */
printf(%ld\n, sizeof(18446744073709551616LL));
}


-- 
   Summary: sizeof returns wrong size for large long long values
when using -std=c99
   Product: gcc
   Version: 4.5.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: sje at cup dot hp dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43633



[Bug target/42040] [ia64] Inappropriate address spills

2010-03-24 Thread sje at cup dot hp dot com


--- Comment #14 from sje at cup dot hp dot com  2010-03-24 21:34 ---
Well it looks like the big SPEC slowdowns were a glitch.  The generated code is
only slightly different and when I tried to reproduce the results I saw a
slight
speed up in mcf instead of a slowdown.  I still got an overall slowdown in
SPEC, but it was only 0.25%.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42040



[Bug target/42040] [ia64] Inappropriate address spills

2010-03-22 Thread sje at cup dot hp dot com


--- Comment #12 from sje at cup dot hp dot com  2010-03-22 20:48 ---
Since the proposed patch to meant to address non-optimimal code generation I
decided to try the patch with SPEC2006 and see if it helped the performance. On
SPECint, I got a 3% slowdown, mostly due to 429.mcf slowing down a lot (20%). 
471.omnetap also slowed down (7%) and nothing else changed much.  With SPECfp,
we got a 0.36% speedup, with 434.zeusmp (4.4%) and 459.GemsFTDT (3.39%)
speeding up the most and no significant slowdowns.  I will try to see what
happened with 429.mcf and see why that slowed down so much.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42040



[Bug target/42040] [ia64] Inappropriate address spills

2010-03-17 Thread sje at cup dot hp dot com


--- Comment #8 from sje at cup dot hp dot com  2010-03-17 22:09 ---
I tried the patch and didn't have any problem bootstrapping and I didn't see
any regressions.  It also fixed my small test case, but when I went back and
tried some of the other tests from PR 28490 I still saw some of the bad gprel
usages.  Here is a slightly more cutdown testcase from 28490 that still fails
with the patch applied and when compiling with -O2.

extern const char basesyntax[];
extern const char arisyntax[];
typedef struct __jmp_buf_tag { }
jmp_buf[1];
struct jmploc { jmp_buf loc; };
readtoken1 (int firstc, char const *syntax, char *eofmark, int striptabs)
{
  int c = firstc;
for (;;)
  {
switch (syntax[c])
  {
  case 1:
if (syntax == (basesyntax + 130))
  goto endword;
syntax = (basesyntax + 130);
parsebackq_oldreturn:;
  }
  }
endword:
if (syntax == (arisyntax + 130)) {
struct jmploc jmploc;
if (_setjmp (jmploc.loc))
  goto parsebackq_oldreturn;
}
}


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42040



[Bug target/42040] [ia64] Inappropriate address spills

2010-03-17 Thread sje at cup dot hp dot com


--- Comment #10 from sje at cup dot hp dot com  2010-03-17 23:47 ---
Reading Richard's initial comment I thought the problem was that the code was
(or could be) illegal because the relocation may be out of range and we
shouldn't
use the gprel relocation for any of these constant pool references.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42040



[Bug middle-end/43391] [4.5 Regression] make_decl_rtl failure for C++ on AIX and HPUX

2010-03-16 Thread sje at cup dot hp dot com


--- Comment #1 from sje at cup dot hp dot com  2010-03-16 18:09 ---
If I remove the assert and look at all the times this is triggered in my small
test case they all seem to involve builtin typeinfos created by
emit_support_tinfos.  If you look at this routine there are some comments 
about forcing things to be comdat.  I think this is be base of the problem.  It
may be that HPPA and AIX need to create a target specific library_rtti_comdat
function but I haven't looked into that in detail yet to see if it will fix the
problem.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43391



[Bug middle-end/43391] [4.5 Regression] make_decl_rtl failure for C++ on AIX and HPUX

2010-03-16 Thread sje at cup dot hp dot com


--- Comment #2 from sje at cup dot hp dot com  2010-03-16 21:23 ---
Using:

#define TARGET_CXX_LIBRARY_RTTI_COMDAT hook_bool_void_false

like DARWIN has, doesn't completely fix the problem.  I still get the same
failure but now only with 2 typeinfo's instead of with all the typeinfos
created by emit_support_tinfos.

_ZTSN10__cxxabiv117__array_type_infoE
typeinfo name for __cxxabiv1::__array_type_info
_ZTIN10__cxxabiv117__array_type_infoE
typeinfo for __cxxabiv1::__array_type_info

I wonder if tinfo_base_init should be checking targetm.cxx.library_rtti_comdat
when creating these typeinfo's (via create_pseudo_type_info).

Lots of ramifications here that I don't understand.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43391



[Bug target/42869] GOMP_critical_start wrong on Itanium due to __sync miscompilation

2010-03-12 Thread sje at cup dot hp dot com


--- Comment #6 from sje at cup dot hp dot com  2010-03-12 18:22 ---
Fixed by moving the mf after the cmpxch.rel.  The cmpxchg.rel will keep memory
operations from moving down and the mf will keep them from moving up.  Changing
cmpxchg.rel to cmpxchg.acq would have achieved the same result.


-- 

sje at cup dot hp dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42869



[Bug target/42040] [ia64] Inappropriate address spills

2010-03-12 Thread sje at cup dot hp dot com


--- Comment #1 from sje at cup dot hp dot com  2010-03-12 19:22 ---
I once asked Jim Wilson about this but didn't get an answer.  Here is a pointer
to that email.  Also included here is a short example that generates the gprel
load.

My earlier example and question can be seen in:

http://gcc.gnu.org/ml/gcc-patches/2006-09/msg00170.html


Short test case:

typedef struct table { int a; int b; int c; } table;
extern table mv_tables[2];
void foo()
{
init_mv_table(mv_tables[1]);
}


-- 

sje at cup dot hp dot com changed:

   What|Removed |Added

 CC||sje at cup dot hp dot com,
   ||wilson at codesourcery dot
   ||com
 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2010-03-12 19:22:03
   date||


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42040



[Bug target/42869] GOMP_critical_start wrong on Itanium due to __sync miscompilation

2010-03-09 Thread sje at cup dot hp dot com


--- Comment #2 from sje at cup dot hp dot com  2010-03-09 23:25 ---
I think the code is wrong.  Looking at ToT, config/ia64/sync.md will generate
the code shown where the memory fence is in front of the cmpxchg4.rel
instruction.

cmpxchg4.rel has release semantics which are defined in the Itanium manual as:
Release instructions guarentee that all previous orderable instructions are
made visible prior to being made visible themselves.  This would imply to me
that the memory fence before the cmpxchg4.rel is not needed but we do need one
after it in order to prevent things being moved up ahead of the cmpxchg4.rel. 
Alternatively, we could change to code to use cmpxchg4.acq instead of
cmpxchg4.rel and keep the memory fence where it is.  cmpxchg4.acq has acquire
semantics instead of release semantics.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42869



[Bug target/42869] GOMP_critical_start wrong on Itanium due to __sync miscompilation

2010-03-09 Thread sje at cup dot hp dot com


--- Comment #4 from sje at cup dot hp dot com  2010-03-09 23:49 ---
Yes, I think this is clearly a bug in the IA64 definition of
sync_compare_and_swap.  I think the fix is swapping the two instructions being
generated by the IA64 sync_compare_and_swap instruction.  (cmpxchg4.rel
followed by a memory fence instead of a memory fence followed by cmpxchg4.rel).


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42869



[Bug middle-end/41250] hppa has DECL_VALUE_EXPR decls appearing in the function

2010-02-26 Thread sje at cup dot hp dot com


--- Comment #4 from sje at cup dot hp dot com  2010-02-26 19:05 ---
Was the patch from comment #3 ever sent to gcc-patches?  I couldn't find it.  I
did see earlier discussions about some other patches but the patch in comment
#3 seems to have been put here after those discussions.

I tested it on my hppa2.0w-hp-hpux11.11 system and it fixed
g++.dg/torture/pr34099.C and did not cause any regressions.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41250



[Bug middle-end/42837] [4.5 Regression] FAIL: g++.dg/abi/packed1.C execution test

2010-02-17 Thread sje at cup dot hp dot com


--- Comment #6 from sje at cup dot hp dot com  2010-02-17 18:03 ---
I tried the test with GCC 4.4.0 and 4.3.3 on IA64, in those cases the test
failed because we didn't actually pack anything and then the if test failed and
we called abort.

$ /opt/hp-gcc-4.3.3/bin/g++ -Wpacked packed1.C -o x;./x   
packed1.C:7: warning: packed attribute causes inefficient alignment for 'INNER'
packed1.C:13: warning: ignoring packed attribute because of unpacked non-POD
field 'INNER OUTER::inner'
Abort(coredump)

With the latest compiler on IA64, we try to pack the structure.  This results
in no warning messages but we then generate a Bus error, probably due to
illegal alignment.

So the test never worked but this still seems like a regression in behaviour.

The HP compiler seems to handle this, it compiles and runs without calling
abort.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42837



[Bug middle-end/42837] [4.5 Regression] FAIL: g++.dg/abi/packed1.C execution test

2010-02-16 Thread sje at cup dot hp dot com


--- Comment #3 from sje at cup dot hp dot com  2010-02-16 18:48 ---
I would guess this failure started with r156088 when the test was added.  I
think the test is OK but that ia64 can't handle packing OUTER when one of the
fields in OUTER is a struct with a virtual function.


-- 

sje at cup dot hp dot com changed:

   What|Removed |Added

 CC||sje at cup dot hp dot com
 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2010-02-16 18:48:29
   date||


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42837



[Bug middle-end/42837] [4.5 Regression] FAIL: g++.dg/abi/packed1.C execution test

2010-02-16 Thread sje at cup dot hp dot com


--- Comment #4 from sje at cup dot hp dot com  2010-02-16 18:50 ---
Forgot to mention that the test was added along with a fix for PR c++/41788.
I don't think the fix or the test are bad though.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42837



[Bug target/42924] [4.5 Regression] pex-unix.c:589:1: internal compiler error: output_operand

2010-02-05 Thread sje at cup dot hp dot com


--- Comment #13 from sje at cup dot hp dot com  2010-02-05 18:23 ---
Fixed with the definition of TARGET_DELEGITIMIZE_ADDRESS.


-- 

sje at cup dot hp dot com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42924



[Bug target/42924] [4.5 Regression] pex-unix.c:589:1: internal compiler error: output_operand

2010-02-03 Thread sje at cup dot hp dot com


--- Comment #10 from sje at cup dot hp dot com  2010-02-03 19:31 ---
  return XVECEXP (XEXP (x, 1), 0, 0);
 
 The return is wrong.  The UNSPEC_DLTIND14R operation returns the
 address of XVECEXP (XEXP (x, 1), 0, 0).


Is it as simple as wrapping this in a MEM rtx?  I am testing 

 return gen_rtx_MEM (GET_MODE (x), XVECEXP (XEXP (x, 1), 0, 0));

So far, so good.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42924



[Bug target/42924] [4.5 Regression] pex-unix.c:589:1: internal compiler error: output_operand

2010-02-02 Thread sje at cup dot hp dot com


--- Comment #6 from sje at cup dot hp dot com  2010-02-02 17:25 ---
Jakub Jelinek suggested this patch to pa.c which fixes the compilation failure
but causes bad code generation.

static rtx pa_delegitimize_address (rtx);
#undef TARGET_DELEGITIMIZE_ADDRESS
#define TARGET_DELEGITIMIZE_ADDRESS pa_delegitimize_address
static rtx
pa_delegitimize_address (rtx orig_x)
{
  rtx x = delegitimize_mem_from_attrs (orig_x);

  if (GET_CODE (x) == LO_SUM
   GET_CODE (XEXP (x, 1)) == UNSPEC
   XINT (XEXP (x, 1), 1) == UNSPEC_DLTIND14R)
return XVECEXP (XEXP (x, 1), 0, 0);
  return x;
}


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42924



[Bug target/42924] [4.5 Regression] pex-unix.c:589:1: internal compiler error: output_operand

2010-02-02 Thread sje at cup dot hp dot com


--- Comment #7 from sje at cup dot hp dot com  2010-02-02 17:29 ---
If you apply the patch from comment #6 the following test case generates bad
code at -O1 or higher optimization.  Instead of loading 0 to initialize v it is
loading the contents of memory location 0 to do the initialization.

f(int n) {
int i;
double v[n];
for(i=0;in;i++)
v[i]=0;
}

main() {
f(100);
exit(0);
}


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42924



[Bug target/42924] [4.5 Regression] pex-unix.c:589:1: internal compiler error: output_operand

2010-02-02 Thread sje at cup dot hp dot com


--- Comment #8 from sje at cup dot hp dot com  2010-02-02 17:49 ---
Using test case from comment #7, I compared r156291 and r156292 (plus the patch
from comment #6).  I compiled with -O1 and it looks like we go wrong during
common sub expression elimination.

r156291 has x.c.150r.cse1 with:

(insn 81 80 82 4 y.c:5 (set (reg:DI 156)
(plus:DI (reg:DI 27 %r27) 
(high:DI (symbol_ref/u:DI (*L$C) [flags 0x2] 84
{*pa.md:2561} (nil))

(insn 82 81 83 4 y.c:5 (set (reg/f:DI 155)
(mem/u/c:DI (lo_sum:DI (reg:DI 156)
(unspec:DI [
(symbol_ref/u:DI (*L$C) [flags 0x2])
] 2)) [0 S8 A64])) 120 {*pa.md:4100} (expr_list:REG_EQUAL
(symbol_ref/u:DI (*L$C) [flags 0x2])
(nil)))

(insn 83 82 84 4 y.c:5 (set (reg:DF 157)
(mem/u/c/i:DF (reg/f:DI 155) [0 S8 A64])) 118 {*pa.md:3933} (nil))



Where as r156292 (plus patch) has:

(insn 81 80 82 4 y.c:5 (set (reg:DI 156)
(plus:DI (reg:DI 27 %r27)
(high:DI (symbol_ref/u:DI (*L$C) [flags 0x2] 84
{*pa.md:2561} (nil))

(insn 82 81 83 4 y.c:5 (set (reg/f:DI 155)
(const_int 0 [0x0])) 120 {*pa.md:4100} (expr_list:REG_EQUAL
(symbol_ref/u:DI (*L$C) [flags 0x2])
(nil)))

(insn 83 82 84 4 y.c:5 (set (reg:DF 157)
(mem/u/c/i:DF (reg/f:DI 155) [0 S8 A64])) 118 {*pa.md:3933} (nil))


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42924



[Bug target/42542] Vectorizer produces incorrect results on max/min of unsigned intergers

2010-01-11 Thread sje at cup dot hp dot com


--- Comment #21 from sje at cup dot hp dot com  2010-01-11 23:32 ---
Created an attachment (id=19544)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=19544action=view)
ia64 patch (fixes int, not short or char)


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42542



[Bug target/42542] Vectorizer produces incorrect results on max/min of unsigned intergers

2010-01-11 Thread sje at cup dot hp dot com


--- Comment #22 from sje at cup dot hp dot com  2010-01-11 23:33 ---
I am looking at this on IA64 and fixing it for V2SI seems simple enough.  
I will attach a patch.  But I am not sure what to do for V4HI and V8QI. 
The current code uses an 'unsigned saturating subtraction' and that
seems to be what x86 is using for V16QI and V8HI.  But when I run
pr42542-2.c and pr42542-3.c (short and char) on IA64 they fail.  My
patch does make pr42542-1.c (int) work.  I tried handling V4HI and V8QI
in the same way as V2SI but that didn't seem to work either.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42542



[Bug target/42542] Vectorizer produces incorrect results on max/min of unsigned intergers

2010-01-11 Thread sje at cup dot hp dot com


--- Comment #24 from sje at cup dot hp dot com  2010-01-12 00:58 ---
Never mind, when I copied (and modified) the x86 tests for ia64 I forgot to put
a 'return 0' at the end of the main program so I was getting a non-zero exit. 
I will test my patch tonight and if all looks good submit it tomorrow.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42542



[Bug debug/41700] g++.dg/debug/dwarf2/icf.C

2009-12-02 Thread sje at cup dot hp dot com


--- Comment #10 from sje at cup dot hp dot com  2009-12-02 17:20 ---
This bug appears to be fixed on all my PA and IPF targets.
Closing out as fixed.


-- 

sje at cup dot hp dot com changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41700



[Bug middle-end/41551] ia64: ICE: in instantiate_virtual_regs_in_insn, at function.c:1630

2009-11-30 Thread sje at cup dot hp dot com


--- Comment #3 from sje at cup dot hp dot com  2009-11-30 22:10 ---
Fixed in r154843, test case added in gcc.dg/pr41551.c.


-- 

sje at cup dot hp dot com changed:

   What|Removed |Added

 CC||sje at cup dot hp dot com
 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41551



[Bug testsuite/42086] FAIL: gcc.target/ia64/fptr-1.c execution test

2009-11-30 Thread sje at cup dot hp dot com


--- Comment #3 from sje at cup dot hp dot com  2009-11-30 22:41 ---
Fixed.


-- 

sje at cup dot hp dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42086



[Bug target/40959] build fails - No rule to make target `/usr/ports/lang/gcc43/work/build/ia64-portbld-freebsd8.0/libgcc/crtfastmath.o', needed by `T_TARGET'. Stop.

2009-11-23 Thread sje at cup dot hp dot com


--- Comment #13 from sje at cup dot hp dot com  2009-11-23 15:43 ---
I think you will need to create a fde-freebsd.c file in gcc/config/ia64 to
define Unwind_FindTableEntry.  See fde-glibc.c and fde-vms.c for examples.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40959



[Bug target/40959] build fails - No rule to make target `/usr/ports/lang/gcc43/work/build/ia64-portbld-freebsd8.0/libgcc/crtfastmath.o', needed by `T_TARGET'. Stop.

2009-11-20 Thread sje at cup dot hp dot com


--- Comment #10 from sje at cup dot hp dot com  2009-11-20 16:59 ---
Does freebsd use glibc?  Does freebsd have a system libunwind?  I am going to
guess yes to the first question and no to the second in which case you need to
edit gcc/config.gcc and modify the 'ia64*-*-freebsd*' entry to include the
t-libunwind-elf and ia64/t-glibc-libunwind makefile fragments to the tm_file
list.  That is what 'ia64*-*-linux* does when 'with_system_libunwind' is set to
no.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40959



[Bug target/40959] build fails - No rule to make target `/usr/ports/lang/gcc43/work/build/ia64-portbld-freebsd8.0/libgcc/crtfastmath.o', needed by `T_TARGET'. Stop.

2009-11-16 Thread sje at cup dot hp dot com


--- Comment #7 from sje at cup dot hp dot com  2009-11-16 18:14 ---
The patch worked for me after changing some leading spaces to tabs  If you
grabbed it with a cut-n-paste the patch may have had spaces in it instead of
tabs (or perhaps it was put in the report that way).  You can either change the
spaces to tabs by hand and use patch or you could just apply the patch by hand,
there is only one instance of ia64*freebsd in the libgcc/config.host file and
all you need to do is add the two new lines to the file at that location.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40959



[Bug middle-end/40505] hppa: ICE: in expand_expr_addr_expr_1, at expr.c:6830

2009-11-02 Thread sje at cup dot hp dot com


--- Comment #8 from sje at cup dot hp dot com  2009-11-02 19:29 ---
Dave,  did you get any comments on your proposed patch?  I just got a bug
report from a GCC user that appears to be this same problem.


-- 

sje at cup dot hp dot com changed:

   What|Removed |Added

 CC||sje at cup dot hp dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40505



[Bug c/41567] Too small .bss stack

2009-10-30 Thread sje at cup dot hp dot com


--- Comment #7 from sje at cup dot hp dot com  2009-10-30 20:15 ---
I tried (and failed) to reproduce this using msmpeg4.i and compiling with:

gcc -shared -pthread -std=c99 -fomit-frame-pointer -g -O3 -fno-math-errno
-fno-signed-zeros -fPIC -fno-tree-vectorize msmpeg4.i -o x.so

I tried ToT, 4.4 and 4.3 GCC compilers and was unable to reproduce the bug.

I wonder if it only happens when linking in all the objects together.

I also wonder what linker you were using, I was using the latest 2.20 linker.


-- 

sje at cup dot hp dot com changed:

   What|Removed |Added

 CC||sje at cup dot hp dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41567



[Bug target/41279] [4.5 Regression] 252.eon performance regression

2009-10-30 Thread sje at cup dot hp dot com


--- Comment #8 from sje at cup dot hp dot com  2009-10-30 20:42 ---
It looks like a patch has been checked in to fix this bug, is there any reason
we can't close this defect?


-- 

sje at cup dot hp dot com changed:

   What|Removed |Added

 CC||sje at cup dot hp dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41279



[Bug rtl-optimization/41171] register allocator undoing optimal schedule

2009-10-30 Thread sje at cup dot hp dot com


--- Comment #7 from sje at cup dot hp dot com  2009-10-30 21:00 ---
Has a patch to move update_equiv_regs into its own pass been submitted?
I don't see one and IA64 is still producing the 'wrong' scheduling.


-- 

sje at cup dot hp dot com changed:

   What|Removed |Added

 CC||sje at cup dot hp dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41171



[Bug c/41567] Too small .bss stack

2009-10-30 Thread sje at cup dot hp dot com


--- Comment #9 from sje at cup dot hp dot com  2009-10-30 21:34 ---
 I thought the report and log was clear enough on the fact that this is
 indeed a problem that only arises during the final link. If not, then
 now it is ;)

I guess the point I was trying to make is that I don't think it is possible to
reproduce this by just compiling and linking msmpeg4.i.  I think it is
necessary to have all the objects that are being linked into the final library
in order to get the error.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41567



[Bug c/41567] Too small .bss stack

2009-10-30 Thread sje at cup dot hp dot com


--- Comment #10 from sje at cup dot hp dot com  2009-10-30 21:54 ---
I am not sure if this would help or not but it might be interesting to try the
-mno-sdata flag on the compilation to see if that helps.  By default GCC on
IA64 will use .sbss (short bss) and .bss (normal bss) sections.  -mno-sdata
will turn off the use of .sbss.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41567



[Bug middle-end/37565] __optimize__ attribute doesn't work correctly

2009-10-29 Thread sje at cup dot hp dot com


--- Comment #10 from sje at cup dot hp dot com  2009-10-29 17:03 ---
The patch I checked in provides the infrastructure to fix this problem and I
have fixed the IA64 instance of it but other targets (like x86) will need to
define TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE as well to completely resolve this
defect.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37565



[Bug debug/41700] g++.dg/debug/dwarf2/icf.C

2009-10-23 Thread sje at cup dot hp dot com


--- Comment #7 from sje at cup dot hp dot com  2009-10-23 18:52 ---
I haven't had a chance to test it on PA yet but it fixes the problem on
Itanium.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41700



[Bug debug/41801] New: VTA: ICE in loc_cmp.

2009-10-22 Thread sje at cup dot hp dot com
The included test case is cut down from
libstdc++-v3/testsuite/29_atomics/atomic_flag/clear/1.cc and ICE's when
compiled with '-milp32 -O1 -g -std=gnu++0x' on IA64 HP-UX.  It works in 64 bit
mode and it works with -O0.  The ICE is:

x.C: In function 'int main()':
x.C:16:1: internal compiler error: in loc_cmp, at var-tracking.c:2461

The C++ test case is:

typedef enum memory_order {
   memory_order_acquire,
   memory_order_acq_rel,
   memory_order_seq_cst } memory_order;
typedef struct __atomic_flag_base   { bool _M_i; } __atomic_flag_base;
struct atomic_flag : public __atomic_flag_base  {
 atomic_flag(bool __i) : __atomic_flag_base({ __i }) { }
 void clear(memory_order __m = memory_order_seq_cst) volatile {
 __sync_lock_release(_M_i);
 if (__m != memory_order_acquire  __m != memory_order_acq_rel) 
__sync
_synchronize();
   }
};
int main() {
atomic_flag f = { false };
f.clear();
}


-- 
   Summary: VTA: ICE in loc_cmp.
   Product: gcc
   Version: 4.5.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: debug
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: sje at cup dot hp dot com
 GCC build triplet: ia46-hp-hpux11.23
  GCC host triplet: ia64-hp-hpux11.23
GCC target triplet: ia64-hp-hpux11.23


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41801



[Bug rtl-optimization/41697] ICE on gcc.c-torture/compile/20090917-1.c

2009-10-15 Thread sje at cup dot hp dot com


--- Comment #2 from sje at cup dot hp dot com  2009-10-15 21:53 ---
Fixed with checkin.


-- 

sje at cup dot hp dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41697



[Bug testsuite/41700] g++.dg/debug/dwarf2/icf.C

2009-10-14 Thread sje at cup dot hp dot com


--- Comment #2 from sje at cup dot hp dot com  2009-10-14 21:03 ---
I see failures for this test on IA64 HP-UX and Linux as well.

FAIL: g++.dg/debug/dwarf2/icf.C scan-assembler 0x0.*Vtable slot
FAIL: g++.dg/debug/dwarf2/icf.C scan-assembler 0x1.*Vtable slot
FAIL: g++.dg/debug/dwarf2/icf.C scan-assembler \\.section.*.debug_vcall


-- 

sje at cup dot hp dot com changed:

   What|Removed |Added

 CC||sje at cup dot hp dot com
 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2009-10-14 21:03:06
   date||


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41700



[Bug middle-end/41394] [4.5 Regression] pr34668-2.c:5:15: error: type mismatch in array reference

2009-10-14 Thread sje at cup dot hp dot com


--- Comment #2 from sje at cup dot hp dot com  2009-10-14 21:14 ---
This looks like a duplicate of 41086.  I see it on IA64 HP-UX and Linux as
well.


-- 

sje at cup dot hp dot com changed:

   What|Removed |Added

 CC||sje at cup dot hp dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41394



  1   2   3   4   5   6   >