[Bug rtl-optimization/17356] [4.0/4.1 Regression] [Ada] [ia64] ACATS c41325a other ICE, also while building libada

2005-10-17 Thread schwab at suse dot de


--- Comment #17 from schwab at suse dot de  2005-10-17 12:06 ---
Bootstrap was successful and most Ada tests pass now
(http://gcc.gnu.org/ml/gcc-testresults/2005-10/msg00730.html).


-- 


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



[Bug rtl-optimization/17356] [4.0/4.1 Regression] [Ada] [ia64] ACATS c41325a other ICE, also while building libada

2005-10-17 Thread cvs-commit at gcc dot gnu dot org


--- Comment #18 from cvs-commit at gcc dot gnu dot org  2005-10-18 00:23 
---
Subject: Bug 17356

CVSROOT:/cvs/gcc
Module name:gcc
Changes by: [EMAIL PROTECTED]  2005-10-18 00:22:53

Modified files:
gcc: ChangeLog cfgrtl.c 

Log message:
Fix IA-64 libada build failure, abnormal call edges on non-call insns.
PR rtl-optimization/17356
* cfgrtl.c (purge_dead_edges): Check for EDGE_ABNORMAL_CALL before
checking for EDGE_EH.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gccr1=2.10176r2=2.10177
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cfgrtl.c.diff?cvsroot=gccr1=1.181r2=1.182


-- 


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



[Bug rtl-optimization/17356] [4.0/4.1 Regression] [Ada] [ia64] ACATS c41325a other ICE, also while building libada

2005-10-17 Thread wilson at gcc dot gnu dot org


--- Comment #19 from wilson at gcc dot gnu dot org  2005-10-18 00:52 ---
Fixed on mainline, still broken on gcc-4.0.x branch.  I've started a builds to
test it.  This will take a while.


-- 


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



[Bug rtl-optimization/17356] [4.0/4.1 Regression] [Ada] [ia64] ACATS c41325a other ICE, also while building libada

2005-10-16 Thread wilson at gcc dot gnu dot org


--- Comment #15 from wilson at gcc dot gnu dot org  2005-10-17 02:00 ---
It is dying in rest_of_handle_flow2 - split_all_insns - verify_flow_info.  We
have non-call insns with EDGE_ABNORMAL_CALL edges attached to them.

The insns are coming from post-reload call insn splits.  Before splitting, we
have

(call_insn 118 116 3807 4 (parallel [
(set (reg:OI 8 r8)
(call (mem:DI (symbol_ref:DI
(ada__text_io__editing__parse_num\ber_string) [flags 0x3] function_decl
0x2a9590de00 ada__text_io__editing__par\se_number_string) [0 S8 A64])
(const_int 1 [0x1])))
(clobber (reg:DI 320 b0))
(clobber (scratch:DI))
(clobber (scratch:DI))
]) 257 {call_value_gp} (insn_list:REG_DEP_TRUE 117 (nil))
(expr_list:REG_EH_REGION (const_int 1 [0x1])
(nil))
(expr_list:REG_DEP_TRUE (use (reg:DI 1 r1))
(expr_list:REG_DEP_TRUE (use (reg:TI 120 out0 [ D.1574 ]))
(nil

after splitting we have

(call_insn 4891 116 4892 4 (parallel [
(set (reg:OI 8 r8)
(call (mem:DI (symbol_ref:DI
(ada__text_io__editing__parse_num\ber_string) [flags 0x3] function_decl
0x2a9590de00 ada__text_io__editing__par\se_number_string) [0 S8 A64])
(const_int 0 [0x0])))
(clobber (reg:DI 320 b0))
]) 254 {call_value_nogp} (nil)
(expr_list:REG_EH_REGION (const_int 1 [0x1])
(nil))
(expr_list:REG_DEP_TRUE (use (reg:DI 1 r1))
(expr_list:REG_DEP_TRUE (use (reg:TI 120 out0 [ D.1574 ]))
(nil

(insn 4892 4891 4893 4 (set (reg:DI 1 r1)
(plus:DI (reg/f:DI 111 loc79)
(const_int -80 [0xffb0]))) 105 {adddi3} (nil)
(nil))

(insn 4893 4892 3807 4 (set (reg:DI 1 r1)
(mem:DI (reg:DI 1 r1) [0 S8 A64])) 5 {*movdi_internal} (nil)
(expr_list:REG_EH_REGION (const_int 1 [0x1])
(nil)))

We call find_bb_boundaries to split this into two blocks, and then
purge_dead_edges should delete the abnormal call edge on the load.

But there is a problem here... Ada sets flag_non_call_exceptions by default. 
So the load is a trapping insn, just not a call-trapping insn.

In purge_dead_edges, we first verify that an EH edge is OK, then we verify that
an abnormal call edge is OK.  But since an abnormal call edge is always an EH
edge, the first test triggers, and passes, because we do need an EH edge here.

We can fix this problem by switching the order of the tests.

With this patch, a cross-compiler ada build got all of the way to gnattools,
where it died building make.adb.  This means libada built successfully.  The
make.adb error is a different unrelated problem.
gcc -c -I./ -I/usr/lib64/gcc-lib/x86_64-suse-linux/3.3.3/adalib/../adainclude
-\I/usr/lib64/gcc-lib/x86_64-suse-linux/3.3.3/adalib/ -I.
-I/home/wilson/GCC/gcc/\gcc/ada -g -O2 -W -Wall -Wwrite-strings
-Wstrict-prototypes -Wmissing-prototype\s -fno-common -gnatpg -gnata -I-
/home/wilson/GCC/gcc/gcc/ada/gnatvsn.adb
gcc -c -I./ -I/usr/lib64/gcc-lib/x86_64-suse-linux/3.3.3/adalib/../adainclude
-\I/usr/lib64/gcc-lib/x86_64-suse-linux/3.3.3/adalib/ -I.
-I/home/wilson/GCC/gcc/\gcc/ada -g -O2 -W -Wall -Wwrite-strings
-Wstrict-prototypes -Wmissing-prototype\s -fno-common -gnatpg -gnata -I-
/home/wilson/GCC/gcc/gcc/ada/make.adb
make.adb:3577:45: Unmatched actual in call
make.adb:3581:45: Unmatched actual in call
make.adb:3804:13: invalid parameter list in call (use -gnatf for details)
make.adb:5709:10: invalid parameter list in call (use -gnatf for details)
mlib.ads:75:15: Attribute is undefined
mlib.ads:75:28: Time_Stamps is undefined

I am assuming this is good enough to close the problem after a proper bootstrap
test.  I'll have to try a native ia64 bootstrap now. 


-- 

wilson at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |wilson at gcc dot gnu dot
   |dot org |org
 Status|NEW |ASSIGNED
   Last reconfirmed|2005-06-12 15:03:55 |2005-10-17 02:00:49
   date||


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



[Bug rtl-optimization/17356] [4.0/4.1 Regression] [Ada] [ia64] ACATS c41325a other ICE, also while building libada

2005-10-16 Thread wilson at gcc dot gnu dot org


--- Comment #16 from wilson at gcc dot gnu dot org  2005-10-17 02:03 ---
Created an attachment (id=10005)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=10005action=view)
patch to fix ia64-linux libada build failure

And here's the patch.  It is simple enough that it should be safe.


-- 


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



[Bug rtl-optimization/17356] [4.0/4.1 Regression] [Ada] [ia64] ACATS c41325a other ICE, also while building libada

2005-10-15 Thread pinskia at gcc dot gnu dot org


--- Comment #14 from pinskia at gcc dot gnu dot org  2005-10-15 22:26 
---
(In reply to comment #13)
 Ada bugs are not release critical; removing target milestone.

Even though this is only known to effect Ada, it could most likely effect C++
also, just nobody has found a testcase for this.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

   Target Milestone|--- |4.0.3


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



[Bug rtl-optimization/17356] [4.0/4.1 Regression] [Ada] [ia64] ACATS c41325a other ICE, also while building libada

2005-08-21 Thread mmitchel at gcc dot gnu dot org

--- Additional Comments From mmitchel at gcc dot gnu dot org  2005-08-22 
01:42 ---
Ada bugs are not release critical; removing target milestone.

-- 
   What|Removed |Added

   Target Milestone|4.1.0   |---


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


[Bug rtl-optimization/17356] [4.0/4.1 Regression] [Ada] [ia64] ACATS c41325a other ICE, also while building libada

2005-03-05 Thread pinskia at gcc dot gnu dot org


-- 
   What|Removed |Added

   Target Milestone|--- |4.1.0


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


[Bug rtl-optimization/17356] [4.0/4.1 Regression] [Ada] [ia64] ACATS c41325a other ICE, also while building libada

2005-02-27 Thread schwab at suse dot de

--- Additional Comments From schwab at suse dot de  2005-02-27 15:09 ---
Only happens with --enable-checking. 

-- 
   What|Removed |Added

   Keywords||ice-checking


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