public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug middle-end/37535]  New: gcc/libgcc2.c:404: internal compiler error: Floating point exception
@ 2008-09-16  0:58 danglin at gcc dot gnu dot org
  2008-09-16  1:01 ` [Bug middle-end/37535] [4.4 Regression] " pinskia at gcc dot gnu dot org
                   ` (18 more replies)
  0 siblings, 19 replies; 20+ messages in thread
From: danglin at gcc dot gnu dot org @ 2008-09-16  0:58 UTC (permalink / raw)
  To: gcc-bugs

/home/dave/gcc-4.4/objdir/./gcc/xgcc -B/home/dave/gcc-4.4/objdir/./gcc/
-B/home/
dave/opt/gnu/gcc/gcc-4.4.0/hppa-linux/bin/
-B/home/dave/opt/gnu/gcc/gcc-4.4.0/hp
pa-linux/lib/ -isystem /home/dave/opt/gnu/gcc/gcc-4.4.0/hppa-linux/include
-isys
tem /home/dave/opt/gnu/gcc/gcc-4.4.0/hppa-linux/sys-include -g -O2 -O2  -g -O2
-
DIN_GCC   -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes
-Wca
st-qual -Wold-style-definition  -isystem ./include  -fPIC -DELF=1 -DLINUX=1 -g
-
DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED   -I. -I.
-I../.././gcc
 -I../../../gcc/libgcc -I../../../gcc/libgcc/. -I../../../gcc/libgcc/../gcc
-I..
/../../gcc/libgcc/../include  -DHAVE_CC_TLS -o _mulvdi3.o -MT _mulvdi3.o -MD
-MP
 -MF _mulvdi3.dep -DL_mulvdi3 -c ../../../gcc/libgcc/../gcc/libgcc2.c \
          -fvisibility=hidden -DHIDE_EXPORTS
../../../gcc/libgcc/../gcc/libgcc2.c: In function '__mulvdi3':
../../../gcc/libgcc/../gcc/libgcc2.c:404: internal compiler error: Floating
poin
t exception
Please submit a full bug report,

Introduced in 140335 or 140337.

Starting program: /home/dave/gcc-4.4/objdir/gcc/cc1 `cat xx.sh`
GNU C (GCC) version 4.4.0 20080915 (experimental) [trunk revision 140378]
(hppa-linux)
        compiled by GNU C version 4.4.0 20080915 (experimental) [trunk revision
140378], GMP version 4.2.2, MPFR version 2.3.1.
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
options passed:  -I. -I. -I../.././gcc -I../../../gcc/libgcc
 -I../../../gcc/libgcc/. -I../../../gcc/libgcc/../gcc
 -I../../../gcc/libgcc/../include -iprefix
 /home/dave/gcc-4.4/objdir/gcc/../lib/gcc/hppa-linux/4.4.0/ -isystem
 /home/dave/gcc-4.4/objdir/./gcc/include -isystem
 /home/dave/gcc-4.4/objdir/./gcc/include-fixed -MD _mulvdi3.d -MF
 _mulvdi3.dep -MP -MT _mulvdi3.o -DIN_GCC -DELF=1 -DLINUX=1
 -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -DHAVE_CC_TLS
 -DL_mulvdi3 -DHIDE_EXPORTS -isystem
 /home/dave/opt/gnu/gcc/gcc-4.4.0/hppa-linux/include -isystem
 /home/dave/opt/gnu/gcc/gcc-4.4.0/hppa-linux/sys-include -isystem ./include
 ../../../gcc/libgcc/../gcc/libgcc2.c -auxbase-strip _mulvdi3.s -g -g -g
 -O2 -O2 -O2 -W -Wall -Wwrite-strings -Wstrict-prototypes
 -Wmissing-prototypes -Wcast-qual -Wold-style-definition -fPIC
 -fvisibility=hidden
options enabled:  -fPIC -falign-functions -falign-jumps -falign-labels
 -fargument-alias -fauto-inc-dec -fbranch-count-reg -fcaller-saves -fcommon
 -fcprop-registers -fcrossjumping -fcse-follow-jumps -fdefer-pop
 -fdelayed-branch -fdelete-null-pointer-checks -fdwarf2-cfi-asm
 -fearly-inlining -feliminate-unused-debug-types -fexpensive-optimizations
 -fforward-propagate -ffunction-cse -fgcse -fgcse-lm
 -fguess-branch-probability -fident -fif-conversion -fif-conversion2
 -findirect-inlining -finline -finline-functions-called-once
 -finline-small-functions -fipa-cp -fipa-pure-const -fipa-reference -fira
 -fira-share-save-slots -fira-share-spill-slots -fivopts
 -fkeep-static-consts -fleading-underscore -fmath-errno -fmerge-constants
 -fmerge-debug-strings -fmove-loop-invariants -fomit-frame-pointer
 -foptimize-register-move -foptimize-sibling-calls -fpeephole -fpeephole2
 -freg-struct-return -fregmove -freorder-blocks -freorder-functions
 -frerun-cse-after-loop -fsched-interblock -fsched-spec
 -fsched-stalled-insns-dep -fschedule-insns -fschedule-insns2
 -fsigned-zeros -fsplit-ivs-in-unroller -fsplit-wide-types
 -fstrict-aliasing -fstrict-overflow -fthread-jumps -ftoplevel-reorder
 -ftrapping-math -ftree-builtin-call-dce -ftree-ccp -ftree-ch
 -ftree-copy-prop -ftree-copyrename -ftree-cselim -ftree-dce
 -ftree-dominator-opts -ftree-dse -ftree-fre -ftree-loop-im
 -ftree-loop-ivcanon -ftree-loop-optimize -ftree-parallelize-loops=
 -ftree-pre -ftree-reassoc -ftree-scev-cprop -ftree-sink -ftree-sra
 -ftree-switch-conversion -ftree-ter -ftree-vect-loop-version -ftree-vrp
 -funit-at-a-time -fvar-tracking -fzero-initialized-in-bss -mbig-switch
 -mgas -mglibc -mno-space-regs
Compiler executable checksum: 284d58e4a72317aed323c67a642295bc
 vprintf getchar fgetc_unlocked getc_unlocked getchar_unlocked putchar
fputc_unlocked putc_unlocked putchar_unlocked getline feof_unlocked
ferror_unlocked gnu_dev_major gnu_dev_minor gnu_dev_makedev __strcspn_c1
__strcspn_c2 __strcspn_c3 __strspn_c1 __strspn_c2 __strspn_c3 __strpbrk_c2
__strpbrk_c3 __strtok_r_1c __strsep_1c __strsep_2c __strsep_3c atof atoi atol
atoll __mulvdi3
Analyzing compilation unit
Performing interprocedural optimizations
 <visibility> <early_local_cleanups> <summary generate> <cp> <inline>
<static-var> <pure-const>Assembling functions:
 __mulvdi3
Program received signal SIGFPE, Arithmetic exception.
$$divoI () at ../../../gcc/libgcc/../gcc/config/pa/milli64.S:439
439             addit,= 0,arg1,r0       /*  trap if divisor == 0 */
Current language:  auto; currently asm
(gdb) bt
#0  $$divoI () at ../../../gcc/libgcc/../gcc/config/pa/milli64.S:439
#1  0x005b7674 in update_copy_costs (allocno=0x886338, decr_p=1 '\001')
    at ../../gcc/gcc/ira-color.c:249
#2  0x005b9228 in assign_hard_reg (allocno=0x886338, retry_p=0 '\0')
    at ../../gcc/gcc/ira-color.c:585
#3  0x005bb584 in color_allocnos () at ../../gcc/gcc/ira-color.c:1261
#4  0x005bbb9c in color_pass (loop_tree_node=0x877b30)
    at ../../gcc/gcc/ira-color.c:1722
#5  0x005aa700 in ira_traverse_loop_tree (bb_p=0 '\0', loop_node=0x0, 
    preorder_func=0x6d4800 <__FUNCTION__.29512+4>, postorder_func=0)
    at ../../gcc/gcc/ira-build.c:1268
#6  0x005b60e0 in ira_color () at ../../gcc/gcc/ira-color.c:1862
#7  0x005a8d38 in rest_of_handle_ira () at ../../gcc/gcc/ira.c:1773
#8  0x0027e110 in execute_one_pass (pass=0x79e134)
    at ../../gcc/gcc/passes.c:1279
#9  0x0027e39c in execute_pass_list (pass=0x79e134)
    at ../../gcc/gcc/passes.c:1327
#10 0x0027e3b0 in execute_pass_list (pass=0x79b714)
    at ../../gcc/gcc/passes.c:1328
#11 0x0038c128 in tree_rest_of_compilation (fndecl=0x403bd680)
    at ../../gcc/gcc/tree-optimize.c:418
#12 0x004e9134 in cgraph_expand_function (node=0x403c8580)
    at ../../gcc/gcc/cgraphunit.c:1038
---Type <return> to continue, or q <return> to quit---
#13 0x004eb1fc in cgraph_optimize () at ../../gcc/gcc/cgraphunit.c:1097
#14 0x00032b1c in c_write_global_declarations () at ../../gcc/gcc/c-decl.c:8071
#15 0x00337d48 in toplev_main (argc=<value optimized out>, 
    argv=<value optimized out>) at ../../gcc/gcc/toplev.c:979
#16 0x40549554 in __libc_start_main () from /lib/libc.so.6
#17 0x0001f158 in _start ()


-- 
           Summary: gcc/libgcc2.c:404: internal compiler error: Floating
                    point exception
           Product: gcc
           Version: 4.4.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: middle-end
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: danglin at gcc dot gnu dot org
 GCC build triplet: hppa-unknown-linux-gnu
  GCC host triplet: hppa-unknown-linux-gnu
GCC target triplet: hppa-unknown-linux-gnu


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


^ permalink raw reply	[flat|nested] 20+ messages in thread

* [Bug middle-end/37535] [4.4 Regression] gcc/libgcc2.c:404: internal compiler error: Floating point exception
  2008-09-16  0:58 [Bug middle-end/37535] New: gcc/libgcc2.c:404: internal compiler error: Floating point exception danglin at gcc dot gnu dot org
@ 2008-09-16  1:01 ` pinskia at gcc dot gnu dot org
  2008-09-16  2:05 ` [Bug middle-end/37535] " danglin at gcc dot gnu dot org
                   ` (17 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2008-09-16  1:01 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #1 from pinskia at gcc dot gnu dot org  2008-09-16 01:00 -------
          update_cost = cp->freq * cost / divisor;

divisor == 0?


-- 

pinskia at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |pinskia at gcc dot gnu dot
                   |                            |org
           Keywords|                            |ice-on-valid-code, ra
            Summary|gcc/libgcc2.c:404: internal |[4.4 Regression]
                   |compiler error: Floating    |gcc/libgcc2.c:404: internal
                   |point exception             |compiler error: Floating
                   |                            |point exception
   Target Milestone|---                         |4.4.0


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


^ permalink raw reply	[flat|nested] 20+ messages in thread

* [Bug middle-end/37535] gcc/libgcc2.c:404: internal compiler error: Floating point exception
  2008-09-16  0:58 [Bug middle-end/37535] New: gcc/libgcc2.c:404: internal compiler error: Floating point exception danglin at gcc dot gnu dot org
  2008-09-16  1:01 ` [Bug middle-end/37535] [4.4 Regression] " pinskia at gcc dot gnu dot org
@ 2008-09-16  2:05 ` danglin at gcc dot gnu dot org
  2008-09-16  3:37 ` danglin at gcc dot gnu dot org
                   ` (16 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: danglin at gcc dot gnu dot org @ 2008-09-16  2:05 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #2 from danglin at gcc dot gnu dot org  2008-09-16 02:04 -------
0x005b7644 <update_copy_costs+308>:     stw r1,-10(sp)
0x005b7648 <update_copy_costs+312>:     fldw -10(sp),fr22R
0x005b764c <update_copy_costs+316>:     cmpiclr,= 0,r10,r0
0x005b7650 <update_copy_costs+320>:     copy r21,r20
0x005b7654 <update_copy_costs+324>:     stw r20,-10(sp)
0x005b7658 <update_copy_costs+328>:     fldw -10(sp),fr22
0x005b765c <update_copy_costs+332>:     xmpyu fr22,fr22R,fr22
0x005b7660 <update_copy_costs+336>:     fstd fr22,-10(sp)
0x005b7664 <update_copy_costs+340>:     ldw -10(sp),r25
0x005b7668 <update_copy_costs+344>:     ldw -c(sp),r26
0x005b766c <update_copy_costs+348>:     b,l 0x5a0cd4,r31
0x005b7670 <update_copy_costs+352>:     nop

The arguments for the multiplication.

(gdb) p/x $r1
$17 = 0x1
(gdb) p/x $r20
$18 = 0xfffffffe

The arguments of the division.

(gdb) p/x $r25
$19 = 0x0
(gdb) p/x $r26
$20 = 0xfffffffe
(gdb) 

Loading r25 from -10(sp) is wierd.


-- 

danglin at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|ice-on-valid-code, ra       |
            Summary|[4.4 Regression]            |gcc/libgcc2.c:404: internal
                   |gcc/libgcc2.c:404: internal |compiler error: Floating
                   |compiler error: Floating    |point exception
                   |point exception             |
   Target Milestone|4.4.0                       |---


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


^ permalink raw reply	[flat|nested] 20+ messages in thread

* [Bug middle-end/37535] gcc/libgcc2.c:404: internal compiler error: Floating point exception
  2008-09-16  0:58 [Bug middle-end/37535] New: gcc/libgcc2.c:404: internal compiler error: Floating point exception danglin at gcc dot gnu dot org
  2008-09-16  1:01 ` [Bug middle-end/37535] [4.4 Regression] " pinskia at gcc dot gnu dot org
  2008-09-16  2:05 ` [Bug middle-end/37535] " danglin at gcc dot gnu dot org
@ 2008-09-16  3:37 ` danglin at gcc dot gnu dot org
  2008-09-16  3:42 ` dave at hiauly1 dot hia dot nrc dot ca
                   ` (15 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: danglin at gcc dot gnu dot org @ 2008-09-16  3:37 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #3 from danglin at gcc dot gnu dot org  2008-09-16 03:36 -------
>From the ira dump,

(insn 172 375 376 25 ../../gcc/gcc/ira-color.c:249 (set (reg:SI 25 %r25)
        (reg/v:SI 7 %r7 [orig:109 divisor ] [109])) 37 {*pa.md:2552} (nil))

(insn 376 172 519 25 ../../gcc/gcc/ira-color.c:247 (set (reg/v:SI 20 %r20
[orig:
112 cost ] [112])
        (if_then_else:SI (ne (reg/v:SI 10 %r10 [orig:124 decr_p+-3 ] [124])
                (const_int 0 [0x0]))
            (reg:SI 21 %r21 [240])
            (reg/v:SI 20 %r20 [orig:112 cost ] [112]))) 24 {*pa.md:1398} (nil))

(insn 519 376 520 25 ../../gcc/gcc/ira-color.c:249 (set (reg:SI 68 %fr22)
        (reg/v:SI 20 %r20 [orig:112 cost ] [112])) 37 {*pa.md:2552} (nil))

(insn 520 519 521 25 ../../gcc/gcc/ira-color.c:249 (set (reg:SI 1 %r1)
        (mem/s:SI (plus:SI (reg/v/f:SI 28 %r28 [orig:104 cp ] [104])
                (const_int 12 [0xc])) [3 <variable>.freq+0 S4 A32])) 37
{*pa.md:
2552} (nil))

(insn 521 520 169 25 ../../gcc/gcc/ira-color.c:249 (set (reg:SI 69 %fr22R)
        (reg:SI 1 %r1)) 37 {*pa.md:2552} (nil))

(insn 169 521 518 25 ../../gcc/gcc/ira-color.c:249 (set (reg:DI 68 %fr22)
        (mult:DI (zero_extend:DI (reg:SI 68 %fr22))
            (zero_extend:DI (reg:SI 69 %fr22R)))) 118 {umulsidi3} (nil))

(insn 518 169 171 25 ../../gcc/gcc/ira-color.c:249 (set (reg:DI 25 %r25 [171])
        (reg:DI 68 %fr22)) 73 {*pa.md:4461} (nil))

(insn 171 518 173 25 ../../gcc/gcc/ira-color.c:249 (set (reg:SI 26 %r26)
        (reg:SI 26 %r26 [orig:171+4 ] [171])) 37 {*pa.md:2552} (nil))

(insn 173 171 175 25 ../../gcc/gcc/ira-color.c:249 (parallel [
            (set (reg:SI 29 %r29)
                (div:SI (reg:SI 26 %r26)
                    (reg:SI 25 %r25)))
            (clobber (reg:SI 1 %r1 [173]))
            (clobber (reg:SI 28 %r28 [174]))
            (clobber (reg:SI 26 %r26))
            (clobber (reg:SI 25 %r25))
            (clobber (reg:SI 31 %r31))
        ]) 121 {*pa.md:5807} (expr_list:REG_EQUAL (div:SI (reg:SI 26 %r26)
            (reg/v:SI 7 %r7 [orig:109 divisor ] [109]))
        (nil)))

IRA makes a bad choice pseudo 171, clobbering the previous load of r25.


-- 


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


^ permalink raw reply	[flat|nested] 20+ messages in thread

* [Bug middle-end/37535] gcc/libgcc2.c:404: internal compiler error: Floating point exception
  2008-09-16  0:58 [Bug middle-end/37535] New: gcc/libgcc2.c:404: internal compiler error: Floating point exception danglin at gcc dot gnu dot org
                   ` (2 preceding siblings ...)
  2008-09-16  3:37 ` danglin at gcc dot gnu dot org
@ 2008-09-16  3:42 ` dave at hiauly1 dot hia dot nrc dot ca
  2008-09-16 13:04 ` [Bug middle-end/37535] [4.4 Regression] " rguenth at gcc dot gnu dot org
                   ` (14 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: dave at hiauly1 dot hia dot nrc dot ca @ 2008-09-16  3:42 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #4 from dave at hiauly1 dot hia dot nrc dot ca  2008-09-16 03:41 -------
Subject: Re:  gcc/libgcc2.c:404: internal compiler
        error: Floating point exception

Attached ira-color.i.gz.

Dave


------- Comment #5 from dave at hiauly1 dot hia dot nrc dot ca  2008-09-16 03:41 -------
Created an attachment (id=16334)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=16334&action=view)


-- 


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


^ permalink raw reply	[flat|nested] 20+ messages in thread

* [Bug middle-end/37535] [4.4 Regression] gcc/libgcc2.c:404: internal compiler error: Floating point exception
  2008-09-16  0:58 [Bug middle-end/37535] New: gcc/libgcc2.c:404: internal compiler error: Floating point exception danglin at gcc dot gnu dot org
                   ` (3 preceding siblings ...)
  2008-09-16  3:42 ` dave at hiauly1 dot hia dot nrc dot ca
@ 2008-09-16 13:04 ` rguenth at gcc dot gnu dot org
  2008-09-16 16:48 ` vmakarov at redhat dot com
                   ` (13 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2008-09-16 13:04 UTC (permalink / raw)
  To: gcc-bugs



-- 

rguenth at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |vmakarov at gcc dot gnu dot
                   |                            |org
            Summary|gcc/libgcc2.c:404: internal |[4.4 Regression]
                   |compiler error: Floating    |gcc/libgcc2.c:404: internal
                   |point exception             |compiler error: Floating
                   |                            |point exception
   Target Milestone|---                         |4.4.0


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


^ permalink raw reply	[flat|nested] 20+ messages in thread

* [Bug middle-end/37535] [4.4 Regression] gcc/libgcc2.c:404: internal compiler error: Floating point exception
  2008-09-16  0:58 [Bug middle-end/37535] New: gcc/libgcc2.c:404: internal compiler error: Floating point exception danglin at gcc dot gnu dot org
                   ` (4 preceding siblings ...)
  2008-09-16 13:04 ` [Bug middle-end/37535] [4.4 Regression] " rguenth at gcc dot gnu dot org
@ 2008-09-16 16:48 ` vmakarov at redhat dot com
  2008-09-17  1:11 ` vmakarov at redhat dot com
                   ` (12 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: vmakarov at redhat dot com @ 2008-09-16 16:48 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #6 from vmakarov at redhat dot com  2008-09-16 16:47 -------
John, thanks for detail analysis.  IRA uses 25 for p171 because there is no
recorded conflicts for p171 and hard register 25.  The problem was introduced
by recent patch

2008-09-04  Richard Sandiford  <rdsandiford@googlemail.com>

        PR middle-end/37243
        * ira-build.c (form_loop_tree): Reverse BB walk.
        (create_bb_allocnos): Likewise.
        * ira-lives.c (make_regno_born_and_dead, regs_set): Delete.
        (mark_reg_store): Rename to...
        (mark_ref_live): ...this and take a df_ref argument instead of
        note_stores arguments.  Assert that we have a register.
        (mark_reg_clobber): Delete.
        (def_conflicts_with_inputs_p): New function.
        (mark_reg_conflicts): Delete.
        (mark_reg_death): Rename to...
        (mark_ref_dead): ...this and take a df_ref argument instead of
        a register.  Assert that we have a register.
        (process_bb_node_lives): Hoist frequency calculation out of
        instruction walk.  Convert from a forwards scan to a backwards scan.
        Use DF_REF_USES and DF_REF_DEFS instead of register notes and
        note_stores.  Remove EH_RETURN_DATA_REGNO and regs_set handling.
        (create_allocno_live_ranges): Don't create regs_set.

I'll work on a fix.  Unfortunately using DF for building conflicts became more
complicated that it was before based on REG notes.  So it will take some time.


-- 


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


^ permalink raw reply	[flat|nested] 20+ messages in thread

* [Bug middle-end/37535] [4.4 Regression] gcc/libgcc2.c:404: internal compiler error: Floating point exception
  2008-09-16  0:58 [Bug middle-end/37535] New: gcc/libgcc2.c:404: internal compiler error: Floating point exception danglin at gcc dot gnu dot org
                   ` (5 preceding siblings ...)
  2008-09-16 16:48 ` vmakarov at redhat dot com
@ 2008-09-17  1:11 ` vmakarov at redhat dot com
  2008-09-18 12:04 ` krebbel at gcc dot gnu dot org
                   ` (11 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: vmakarov at redhat dot com @ 2008-09-17  1:11 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #7 from vmakarov at redhat dot com  2008-09-17 01:10 -------
The patch I mentioned contains the following code at the end of
ira-lives.c::process_bb_node_lives

for all uses: mark uses as live

for all clobbers: mark them as live

for all clobbers: mark them dead

The r25 are in uses and clobbers, so this code makes r25 dead on traversing to
bb start which is quite wrong and results in that p171 does not conflict with
r25.  Besides the part of code for building conflicts is wrong, it is also too
conservative.  The input should conflict only with *early* clobbers. 
Processing only early clobbers on the two last line solves the problem (regular
clobbers are still processed in ira-lives.c::process_bb_node_lives with defs).

I'll sent the patch soon.


-- 


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


^ permalink raw reply	[flat|nested] 20+ messages in thread

* [Bug middle-end/37535] [4.4 Regression] gcc/libgcc2.c:404: internal compiler error: Floating point exception
  2008-09-16  0:58 [Bug middle-end/37535] New: gcc/libgcc2.c:404: internal compiler error: Floating point exception danglin at gcc dot gnu dot org
                   ` (6 preceding siblings ...)
  2008-09-17  1:11 ` vmakarov at redhat dot com
@ 2008-09-18 12:04 ` krebbel at gcc dot gnu dot org
  2008-09-19 23:26 ` vmakarov at gcc dot gnu dot org
                   ` (10 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: krebbel at gcc dot gnu dot org @ 2008-09-18 12:04 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #8 from krebbel at gcc dot gnu dot org  2008-09-18 12:02 -------
This also seem to break S/390 bootstrap currently.  Please see:
http://gcc.gnu.org/ml/gcc/2008-09/msg00304.html


-- 

krebbel at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |krebbel at gcc dot gnu dot
                   |                            |org
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|0                           |1
   Last reconfirmed|0000-00-00 00:00:00         |2008-09-18 12:02:59
               date|                            |


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


^ permalink raw reply	[flat|nested] 20+ messages in thread

* [Bug middle-end/37535] [4.4 Regression] gcc/libgcc2.c:404: internal compiler error: Floating point exception
  2008-09-16  0:58 [Bug middle-end/37535] New: gcc/libgcc2.c:404: internal compiler error: Floating point exception danglin at gcc dot gnu dot org
                   ` (7 preceding siblings ...)
  2008-09-18 12:04 ` krebbel at gcc dot gnu dot org
@ 2008-09-19 23:26 ` vmakarov at gcc dot gnu dot org
  2008-09-20 17:06 ` dave at hiauly1 dot hia dot nrc dot ca
                   ` (9 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: vmakarov at gcc dot gnu dot org @ 2008-09-19 23:26 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #9 from vmakarov at gcc dot gnu dot org  2008-09-19 23:24 -------
Subject: Bug 37535

Author: vmakarov
Date: Fri Sep 19 23:23:34 2008
New Revision: 140504

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=140504
Log:
2008-09-19  Vladimir Makarov  <vmakarov@redhat.com>

        PR middle-end/37535

        * ira-lives.c (mark_reg_live, mark_reg_dead): New functions.
        (mark_ref_live, mark_ref_dead): Use them.
        (def_conflicts_with_inputs_p): Remove.
        (mark_early_clobbers): New function.
        (process_bb_node_lives): Call preprocess_constraints and
        mark_early_clobbers.


Modified:
    branches/ira-merge/gcc/ChangeLog
    branches/ira-merge/gcc/ira-lives.c


-- 


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


^ permalink raw reply	[flat|nested] 20+ messages in thread

* [Bug middle-end/37535] [4.4 Regression] gcc/libgcc2.c:404: internal compiler error: Floating point exception
  2008-09-16  0:58 [Bug middle-end/37535] New: gcc/libgcc2.c:404: internal compiler error: Floating point exception danglin at gcc dot gnu dot org
                   ` (8 preceding siblings ...)
  2008-09-19 23:26 ` vmakarov at gcc dot gnu dot org
@ 2008-09-20 17:06 ` dave at hiauly1 dot hia dot nrc dot ca
  2008-09-20 18:45 ` hjl dot tools at gmail dot com
                   ` (8 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: dave at hiauly1 dot hia dot nrc dot ca @ 2008-09-20 17:06 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #10 from dave at hiauly1 dot hia dot nrc dot ca  2008-09-20 17:04 -------
Subject: Re:  [4.4 Regression] gcc/libgcc2.c:404: internal compiler error:
Floating point exception

> URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=140504
> Log:
> 2008-09-19  Vladimir Makarov  <vmakarov@redhat.com>
> 
>         PR middle-end/37535
> 
>         * ira-lives.c (mark_reg_live, mark_reg_dead): New functions.
>         (mark_ref_live, mark_ref_dead): Use them.
>         (def_conflicts_with_inputs_p): Remove.
>         (mark_early_clobbers): New function.
>         (process_bb_node_lives): Call preprocess_constraints and
>         mark_early_clobbers.
> 
> 
> Modified:
>     branches/ira-merge/gcc/ChangeLog
>     branches/ira-merge/gcc/ira-lives.c

I have tested this change on the trunk with hppa-unknown-linux-gnu
and it fixes the problem.

Thanks,
Dave


-- 


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


^ permalink raw reply	[flat|nested] 20+ messages in thread

* [Bug middle-end/37535] [4.4 Regression] gcc/libgcc2.c:404: internal compiler error: Floating point exception
  2008-09-16  0:58 [Bug middle-end/37535] New: gcc/libgcc2.c:404: internal compiler error: Floating point exception danglin at gcc dot gnu dot org
                   ` (9 preceding siblings ...)
  2008-09-20 17:06 ` dave at hiauly1 dot hia dot nrc dot ca
@ 2008-09-20 18:45 ` hjl dot tools at gmail dot com
  2008-09-21 20:01 ` hjl at gcc dot gnu dot org
                   ` (7 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: hjl dot tools at gmail dot com @ 2008-09-20 18:45 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #11 from hjl dot tools at gmail dot com  2008-09-20 18:44 -------
(In reply to comment #10)
> Subject: Re:  [4.4 Regression] gcc/libgcc2.c:404: internal compiler error:
> Floating point exception
> 
> > URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=140504
> > Log:
> > 2008-09-19  Vladimir Makarov  <vmakarov@redhat.com>
> > 
> >         PR middle-end/37535
> > 
> >         * ira-lives.c (mark_reg_live, mark_reg_dead): New functions.
> >         (mark_ref_live, mark_ref_dead): Use them.
> >         (def_conflicts_with_inputs_p): Remove.
> >         (mark_early_clobbers): New function.
> >         (process_bb_node_lives): Call preprocess_constraints and
> >         mark_early_clobbers.
> > 
>
> I have tested this change on the trunk with hppa-unknown-linux-gnu
> and it fixes the problem.
> 

This patch caused PR 37598.


-- 

hjl dot tools at gmail dot com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
OtherBugsDependingO|                            |37598
              nThis|                            |


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


^ permalink raw reply	[flat|nested] 20+ messages in thread

* [Bug middle-end/37535] [4.4 Regression] gcc/libgcc2.c:404: internal compiler error: Floating point exception
  2008-09-16  0:58 [Bug middle-end/37535] New: gcc/libgcc2.c:404: internal compiler error: Floating point exception danglin at gcc dot gnu dot org
                   ` (10 preceding siblings ...)
  2008-09-20 18:45 ` hjl dot tools at gmail dot com
@ 2008-09-21 20:01 ` hjl at gcc dot gnu dot org
  2008-09-22 22:47 ` hjl at gcc dot gnu dot org
                   ` (6 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: hjl at gcc dot gnu dot org @ 2008-09-21 20:01 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #12 from hjl at gcc dot gnu dot org  2008-09-21 19:59 -------
Subject: Bug 37535

Author: hjl
Date: Sun Sep 21 19:58:24 2008
New Revision: 140533

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=140533
Log:
2008-09-21  Richard Sandiford <rsandifo@nildram.co.uk>

        PR rtl-optimization/37535
        * ira-lives.c (mark_ref_live): Return bool.
        (process_bb_node_lives): Only mark the registers dead which have
        been marked live before without being already live at that point.

Modified:
    branches/ira-merge/gcc/ChangeLog.ira
    branches/ira-merge/gcc/ira-lives.c


-- 


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


^ permalink raw reply	[flat|nested] 20+ messages in thread

* [Bug middle-end/37535] [4.4 Regression] gcc/libgcc2.c:404: internal compiler error: Floating point exception
  2008-09-16  0:58 [Bug middle-end/37535] New: gcc/libgcc2.c:404: internal compiler error: Floating point exception danglin at gcc dot gnu dot org
                   ` (11 preceding siblings ...)
  2008-09-21 20:01 ` hjl at gcc dot gnu dot org
@ 2008-09-22 22:47 ` hjl at gcc dot gnu dot org
  2008-09-26  0:46 ` vmakarov at gcc dot gnu dot org
                   ` (5 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: hjl at gcc dot gnu dot org @ 2008-09-22 22:47 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #13 from hjl at gcc dot gnu dot org  2008-09-22 22:46 -------
Subject: Bug 37535

Author: hjl
Date: Mon Sep 22 22:44:53 2008
New Revision: 140568

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=140568
Log:
2008-09-22  Vladimir Makarov  <vmakarov@redhat.com>

        PR middle-end/37535
        * ira-lives.c (mark_reg_live, mark_reg_dead): New functions.
        (mark_ref_live, mark_ref_dead): Use them.
        (def_conflicts_with_inputs_p): Remove.
        (mark_early_clobbers): New function.
        (process_bb_node_lives): Call preprocess_constraints and
        mark_early_clobbers.

Modified:
    branches/ira-merge/gcc/ChangeLog.ira
    branches/ira-merge/gcc/ira-lives.c


-- 


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


^ permalink raw reply	[flat|nested] 20+ messages in thread

* [Bug middle-end/37535] [4.4 Regression] gcc/libgcc2.c:404: internal compiler error: Floating point exception
  2008-09-16  0:58 [Bug middle-end/37535] New: gcc/libgcc2.c:404: internal compiler error: Floating point exception danglin at gcc dot gnu dot org
                   ` (12 preceding siblings ...)
  2008-09-22 22:47 ` hjl at gcc dot gnu dot org
@ 2008-09-26  0:46 ` vmakarov at gcc dot gnu dot org
  2008-09-30  0:39 ` hjl at gcc dot gnu dot org
                   ` (4 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: vmakarov at gcc dot gnu dot org @ 2008-09-26  0:46 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #14 from vmakarov at gcc dot gnu dot org  2008-09-26 00:44 -------
Subject: Bug 37535

Author: vmakarov
Date: Fri Sep 26 00:43:11 2008
New Revision: 140679

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=140679
Log:
2008-09-25  Vladimir Makarov  <vmakarov@redhat.com>

        PR middle-end/37535

        * ira-lives.c (mark_reg_live, mark_reg_dead): New functions.
        (mark_ref_live, mark_ref_dead): Use them.
        (def_conflicts_with_inputs_p): Remove.
        (mark_early_clobbers): New function.
        (process_bb_node_lives): Call preprocess_constraints and
        mark_early_clobbers.

        * doc/rtx.texi (clobber): Change how RA deals with clobbers.


Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/doc/rtl.texi
    trunk/gcc/ira-lives.c


-- 


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


^ permalink raw reply	[flat|nested] 20+ messages in thread

* [Bug middle-end/37535] [4.4 Regression] gcc/libgcc2.c:404: internal compiler error: Floating point exception
  2008-09-16  0:58 [Bug middle-end/37535] New: gcc/libgcc2.c:404: internal compiler error: Floating point exception danglin at gcc dot gnu dot org
                   ` (13 preceding siblings ...)
  2008-09-26  0:46 ` vmakarov at gcc dot gnu dot org
@ 2008-09-30  0:39 ` hjl at gcc dot gnu dot org
  2008-10-06 15:37 ` vmakarov at gcc dot gnu dot org
                   ` (3 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: hjl at gcc dot gnu dot org @ 2008-09-30  0:39 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #15 from hjl at gcc dot gnu dot org  2008-09-30 00:38 -------
Subject: Bug 37535

Author: hjl
Date: Tue Sep 30 00:36:48 2008
New Revision: 140775

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=140775
Log:
2008-09-29  Vladimir Makarov  <vmakarov@redhat.com>

        PR middle-end/37535
        * ira-lives.c (mark_reg_live, mark_reg_dead): New functions.
        (mark_ref_live, mark_ref_dead): Use them.
        (def_conflicts_with_inputs_p): Remove.
        (mark_early_clobbers): New function.
        (process_bb_node_lives): Call preprocess_constraints and
        mark_early_clobbers.  Process inputs again if necessary.

        * doc/rtl.texi (clobber): Change how RA deals with clobbers.

Modified:
    branches/ira-merge/gcc/ChangeLog.ira
    branches/ira-merge/gcc/doc/rtl.texi
    branches/ira-merge/gcc/ira-lives.c


-- 


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


^ permalink raw reply	[flat|nested] 20+ messages in thread

* [Bug middle-end/37535] [4.4 Regression] gcc/libgcc2.c:404: internal compiler error: Floating point exception
  2008-09-16  0:58 [Bug middle-end/37535] New: gcc/libgcc2.c:404: internal compiler error: Floating point exception danglin at gcc dot gnu dot org
                   ` (14 preceding siblings ...)
  2008-09-30  0:39 ` hjl at gcc dot gnu dot org
@ 2008-10-06 15:37 ` vmakarov at gcc dot gnu dot org
  2008-10-11 15:12 ` danglin at gcc dot gnu dot org
                   ` (2 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: vmakarov at gcc dot gnu dot org @ 2008-10-06 15:37 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #16 from vmakarov at gcc dot gnu dot org  2008-10-06 15:35 -------
Subject: Bug 37535

Author: vmakarov
Date: Mon Oct  6 15:34:26 2008
New Revision: 140906

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=140906
Log:
2008-10-06  Vladimir Makarov  <vmakarov@redhat.com>

        PR middle-end/37535

        * ira-lives.c (mark_reg_live, mark_reg_dead): New functions.
        (mark_ref_live, mark_ref_dead): Use them.
        (def_conflicts_with_inputs_p): Remove.
        (mark_early_clobbers): New function.
        (process_bb_node_lives): Call preprocess_constraints and
        mark_early_clobbers.

        * doc/rtx.texi (clobber): Change how RA deals with clobbers.


Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/doc/rtl.texi
    trunk/gcc/ira-lives.c


-- 


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


^ permalink raw reply	[flat|nested] 20+ messages in thread

* [Bug middle-end/37535] [4.4 Regression] gcc/libgcc2.c:404: internal compiler error: Floating point exception
  2008-09-16  0:58 [Bug middle-end/37535] New: gcc/libgcc2.c:404: internal compiler error: Floating point exception danglin at gcc dot gnu dot org
                   ` (15 preceding siblings ...)
  2008-10-06 15:37 ` vmakarov at gcc dot gnu dot org
@ 2008-10-11 15:12 ` danglin at gcc dot gnu dot org
  2008-10-14 22:27 ` hjl at gcc dot gnu dot org
  2008-10-16  0:54 ` vmakarov at gcc dot gnu dot org
  18 siblings, 0 replies; 20+ messages in thread
From: danglin at gcc dot gnu dot org @ 2008-10-11 15:12 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #17 from danglin at gcc dot gnu dot org  2008-10-11 15:11 -------
Fixed.


-- 

danglin at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |FIXED


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


^ permalink raw reply	[flat|nested] 20+ messages in thread

* [Bug middle-end/37535] [4.4 Regression] gcc/libgcc2.c:404: internal compiler error: Floating point exception
  2008-09-16  0:58 [Bug middle-end/37535] New: gcc/libgcc2.c:404: internal compiler error: Floating point exception danglin at gcc dot gnu dot org
                   ` (16 preceding siblings ...)
  2008-10-11 15:12 ` danglin at gcc dot gnu dot org
@ 2008-10-14 22:27 ` hjl at gcc dot gnu dot org
  2008-10-16  0:54 ` vmakarov at gcc dot gnu dot org
  18 siblings, 0 replies; 20+ messages in thread
From: hjl at gcc dot gnu dot org @ 2008-10-14 22:27 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #18 from hjl at gcc dot gnu dot org  2008-10-14 22:26 -------
Subject: Bug 37535

Author: hjl
Date: Tue Oct 14 22:25:09 2008
New Revision: 141121

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=141121
Log:
2008-10-14  Vladimir Makarov  <vmakarov@redhat.com>

        PR middle-end/37535
        * ira-lives.c (mark_early_clobbers): Remove.
        (make_pseudo_conflict, check_and_make_def_use_conflicts,
        check_and_make_def_conflicts,
        make_early_clobber_and_input_conflicts,
        mark_hard_reg_early_clobbers): New functions.
        (process_bb_node_lives): Call
        make_early_clobber_and_input_conflicts and
        mark_hard_reg_early_clobbers.  Make hard register inputs live
        again.

        * doc/rtl.texi (clobber): Change descriotion of RA behaviour for
        early clobbers of pseudo-registers.

Modified:
    branches/ira-merge/gcc/ChangeLog.ira
    branches/ira-merge/gcc/doc/rtl.texi
    branches/ira-merge/gcc/ira-lives.c


-- 


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


^ permalink raw reply	[flat|nested] 20+ messages in thread

* [Bug middle-end/37535] [4.4 Regression] gcc/libgcc2.c:404: internal compiler error: Floating point exception
  2008-09-16  0:58 [Bug middle-end/37535] New: gcc/libgcc2.c:404: internal compiler error: Floating point exception danglin at gcc dot gnu dot org
                   ` (17 preceding siblings ...)
  2008-10-14 22:27 ` hjl at gcc dot gnu dot org
@ 2008-10-16  0:54 ` vmakarov at gcc dot gnu dot org
  18 siblings, 0 replies; 20+ messages in thread
From: vmakarov at gcc dot gnu dot org @ 2008-10-16  0:54 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #19 from vmakarov at gcc dot gnu dot org  2008-10-16 00:53 -------
Subject: Bug 37535

Author: vmakarov
Date: Thu Oct 16 00:51:34 2008
New Revision: 141160

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=141160
Log:
2008-10-15  Vladimir Makarov  <vmakarov@redhat.com>

        PR middle-end/37535
        * ira-lives.c (mark_early_clobbers): Remove.
        (make_pseudo_conflict, check_and_make_def_use_conflicts,
        check_and_make_def_conflicts,
        make_early_clobber_and_input_conflicts,
        mark_hard_reg_early_clobbers): New functions.
        (process_bb_node_lives): Call
        make_early_clobber_and_input_conflicts and
        mark_hard_reg_early_clobbers.  Make hard register inputs live
        again.

        * doc/rtl.texi (clobber): Change descriotion of RA behaviour for
        early clobbers of pseudo-registers.


Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/doc/rtl.texi
    trunk/gcc/ira-lives.c


-- 


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


^ permalink raw reply	[flat|nested] 20+ messages in thread

end of thread, other threads:[~2008-10-16  0:54 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-09-16  0:58 [Bug middle-end/37535] New: gcc/libgcc2.c:404: internal compiler error: Floating point exception danglin at gcc dot gnu dot org
2008-09-16  1:01 ` [Bug middle-end/37535] [4.4 Regression] " pinskia at gcc dot gnu dot org
2008-09-16  2:05 ` [Bug middle-end/37535] " danglin at gcc dot gnu dot org
2008-09-16  3:37 ` danglin at gcc dot gnu dot org
2008-09-16  3:42 ` dave at hiauly1 dot hia dot nrc dot ca
2008-09-16 13:04 ` [Bug middle-end/37535] [4.4 Regression] " rguenth at gcc dot gnu dot org
2008-09-16 16:48 ` vmakarov at redhat dot com
2008-09-17  1:11 ` vmakarov at redhat dot com
2008-09-18 12:04 ` krebbel at gcc dot gnu dot org
2008-09-19 23:26 ` vmakarov at gcc dot gnu dot org
2008-09-20 17:06 ` dave at hiauly1 dot hia dot nrc dot ca
2008-09-20 18:45 ` hjl dot tools at gmail dot com
2008-09-21 20:01 ` hjl at gcc dot gnu dot org
2008-09-22 22:47 ` hjl at gcc dot gnu dot org
2008-09-26  0:46 ` vmakarov at gcc dot gnu dot org
2008-09-30  0:39 ` hjl at gcc dot gnu dot org
2008-10-06 15:37 ` vmakarov at gcc dot gnu dot org
2008-10-11 15:12 ` danglin at gcc dot gnu dot org
2008-10-14 22:27 ` hjl at gcc dot gnu dot org
2008-10-16  0:54 ` vmakarov at gcc dot gnu dot org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).