public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
* m32c failure at cfgrtl.c:2332 (purge_dead_edges)
@ 2008-05-21 20:36 DJ Delorie
  0 siblings, 0 replies; only message in thread
From: DJ Delorie @ 2008-05-21 20:36 UTC (permalink / raw)
  To: gcc


I've got a number of test cases that are all failing in the same place:

#1  0x081cf498 in purge_dead_edges (bb=0xb7f67834) at ../../gcc/gcc/cfgrtl.c:2332
2332      gcc_assert (single_succ_p (bb));

(similar to http://gcc.gnu.org/ml/gcc/2008-04/msg00473.html but I'm using trunk)

What's up here?  I don't see these types of crashes in the 4.3 branch.


Example:

Executing on host: /sata/dj/gnu/gcc/m32c-elf/gcc/xgcc -B/sata/dj/gnu/gcc/m32c-elf/gcc/ /sata/dj/gnu/gcc/gcc/gcc/testsuite/gcc.dg/duff-1.c   -O2 -DSTACK_SIZE=4096 -DNO_TRAMPOLINES -fno-show-column   -msim    -lm   -mcpu=m16c -o ./duff-1.exe    (timeout = 30)
/sata/dj/gnu/gcc/gcc/gcc/testsuite/gcc.dg/duff-1.c: In function 'duffcpy':
/sata/dj/gnu/gcc/gcc/gcc/testsuite/gcc.dg/duff-1.c:36: internal compiler error: in purge_dead_edges, at cfgrtl.c:2332


The BB looks like this:

;; basic block 20, loop depth 0, count 0
;; prev block 19, next block 3
;; pred:      
;; succ:      
(code_label 31 30 83 20 8 "" [2 uses])
(note 83 31 32 20 [bb 20] NOTE_INSN_BASIC_BLOCK)


and the insns look like this (full listing also attached):

(note 82 28 29 19 [bb 19] NOTE_INSN_BASIC_BLOCK)

(jump_insn 29 82 30 19 dj.c:19 (set (pc)
        (label_ref 32)) -1 (nil))

(barrier 30 29 31)

(code_label 31 30 83 20 8 "" [2 uses])

(note 83 31 32 20 [bb 20] NOTE_INSN_BASIC_BLOCK)

(code_label 32 83 33 3 5 "" [2 uses])

(note 33 32 34 3 [bb 3] NOTE_INSN_BASIC_BLOCK)

(insn 34 33 35 3 dj.c:25 (set (reg:QI 30)



------------------------------------------------------------------------------

(note 1 0 6 NOTE_INSN_DELETED)

(note 6 1 2 9 [bb 9] NOTE_INSN_BASIC_BLOCK)

(insn 2 6 3 9 dj.c:18 (set (reg/v/f:HI 25 [ dst ])
        (reg:HI 2 r1 [ dst ])) -1 (nil))

(insn 3 2 4 9 dj.c:18 (set (reg/v/f:HI 26 [ src ])
        (reg:HI 1 r2 [ src ])) -1 (nil))

(insn 4 3 5 9 dj.c:18 (set (reg/v:SI 27 [ size ])
        (mem/c/i:SI (reg/f:HI 20 virtual-incoming-args) [2 size+0 S4 A8])) -1 (expr_list:REG_EQUIV (mem/c/i:SI (reg/f:HI 20 virtual-incoming-args) [2 size+0 S4 A8])
        (nil)))

(note 5 4 7 9 NOTE_INSN_FUNCTION_BEG)

(note 7 5 8 2 [bb 2] NOTE_INSN_BASIC_BLOCK)

(insn 8 7 9 2 dj.c:19 (set (reg:SI 28)
        (and:SI (reg/v:SI 27 [ size ])
            (const_int 3 [0x3]))) -1 (nil))

(jump_insn 9 8 74 2 dj.c:19 (set (pc)
        (if_then_else (ne (subreg:HI (reg:SI 28) 0)
                (const_int 1 [0x1]))
            (label_ref 13)
            (pc))) -1 (nil))

(note 74 9 10 11 [bb 11] NOTE_INSN_BASIC_BLOCK)

(jump_insn 10 74 75 11 dj.c:19 (set (pc)
        (if_then_else (ne (subreg:HI (reg:SI 28) 2)
                (const_int 0 [0x0]))
            (label_ref 13)
            (pc))) -1 (nil))

(note 75 10 11 12 [bb 12] NOTE_INSN_BASIC_BLOCK)

(jump_insn 11 75 12 12 dj.c:19 (set (pc)
        (label_ref 44)) -1 (nil))

(barrier 12 11 13)

(code_label 13 12 76 13 6 "" [2 uses])

(note 76 13 14 13 [bb 13] NOTE_INSN_BASIC_BLOCK)

(insn 14 76 15 13 dj.c:19 (set (mem:HI (pre_dec:HI (reg/f:HI 8 sp)) [0 S2 A8])
        (const_int 0 [0x0])) -1 (nil))

(insn 15 14 16 13 dj.c:19 (set (mem:HI (pre_dec:HI (reg/f:HI 8 sp)) [0 S2 A8])
        (const_int 1 [0x1])) -1 (nil))

(insn 16 15 17 13 dj.c:19 (set (mem:HI (pre_dec:HI (reg/f:HI 8 sp)) [0 S2 A8])
        (subreg:HI (reg:SI 28) 2)) -1 (nil))

(insn 17 16 18 13 dj.c:19 (set (mem:HI (pre_dec:HI (reg/f:HI 8 sp)) [0 S2 A8])
        (subreg:HI (reg:SI 28) 0)) -1 (nil))

(insn 18 17 19 13 dj.c:19 (set (reg/f:HI 29)
        (symbol_ref:HI ("__ucmpsi2") [flags 0x41])) -1 (nil))

(call_insn/u 19 18 20 13 dj.c:19 (parallel [
            (set (reg:HI 0 r0)
                (call (mem:QI (reg/f:HI 29) [0 S1 A8])
                    (const_int 8 [0x8])))
            (use (const_int 0 [0x0]))
        ]) -1 (expr_list:REG_EH_REGION (const_int 0 [0x0])
        (nil))
    (expr_list:REG_DEP_TRUE (use (mem:SI (plus:HI (reg/f:HI 23 virtual-outgoing-args)
                    (scratch:HI)) [0 S4 A8]))
        (expr_list:REG_DEP_TRUE (use (mem:SI (plus:HI (reg/f:HI 23 virtual-outgoing-args)
                        (scratch:HI)) [0 S4 A8]))
            (nil))))

(insn 20 19 21 13 dj.c:19 (set (reg/f:HI 8 sp)
        (plus:HI (reg/f:HI 8 sp)
            (const_int 8 [0x8]))) -1 (nil))

(jump_insn 21 20 77 13 dj.c:19 (set (pc)
        (if_then_else (ltu (reg:HI 0 r0)
                (const_int 1 [0x1]))
            (label_ref 50)
            (pc))) -1 (nil))

(note 77 21 22 14 [bb 14] NOTE_INSN_BASIC_BLOCK)

(jump_insn 22 77 78 14 dj.c:19 (set (pc)
        (if_then_else (ne (subreg:HI (reg:SI 28) 0)
                (const_int 2 [0x2]))
            (label_ref 26)
            (pc))) -1 (nil))

(note 78 22 23 15 [bb 15] NOTE_INSN_BASIC_BLOCK)

(jump_insn 23 78 79 15 dj.c:19 (set (pc)
        (if_then_else (ne (subreg:HI (reg:SI 28) 2)
                (const_int 0 [0x0]))
            (label_ref 26)
            (pc))) -1 (nil))

(note 79 23 24 16 [bb 16] NOTE_INSN_BASIC_BLOCK)

(jump_insn 24 79 25 16 dj.c:19 (set (pc)
        (label_ref 38)) -1 (nil))

(barrier 25 24 26)

(code_label 26 25 80 17 7 "" [2 uses])

(note 80 26 27 17 [bb 17] NOTE_INSN_BASIC_BLOCK)

(jump_insn 27 80 81 17 dj.c:19 (set (pc)
        (if_then_else (ne (subreg:HI (reg:SI 28) 0)
                (const_int 3 [0x3]))
            (label_ref 31)
            (pc))) -1 (nil))

(note 81 27 28 18 [bb 18] NOTE_INSN_BASIC_BLOCK)

(jump_insn 28 81 82 18 dj.c:19 (set (pc)
        (if_then_else (ne (subreg:HI (reg:SI 28) 2)
                (const_int 0 [0x0]))
            (label_ref 31)
            (pc))) -1 (nil))

(note 82 28 29 19 [bb 19] NOTE_INSN_BASIC_BLOCK)

(jump_insn 29 82 30 19 dj.c:19 (set (pc)
        (label_ref 32)) -1 (nil))

(barrier 30 29 31)

(code_label 31 30 83 20 8 "" [2 uses])

(note 83 31 32 20 [bb 20] NOTE_INSN_BASIC_BLOCK)

(code_label 32 83 33 3 5 "" [2 uses])

(note 33 32 34 3 [bb 3] NOTE_INSN_BASIC_BLOCK)

(insn 34 33 35 3 dj.c:25 (set (reg:QI 30)
        (mem:QI (reg/v/f:HI 26 [ src ]) [0 S1 A8])) -1 (nil))

(insn 35 34 36 3 dj.c:25 (set (mem:QI (reg/v/f:HI 25 [ dst ]) [0 S1 A8])
        (reg:QI 30)) -1 (nil))

(insn 36 35 37 3 dj.c:25 (set (reg/v/f:HI 25 [ dst ])
        (plus:HI (reg/v/f:HI 25 [ dst ])
            (const_int 1 [0x1]))) -1 (nil))

(insn 37 36 38 3 dj.c:25 (set (reg/v/f:HI 26 [ src ])
        (plus:HI (reg/v/f:HI 26 [ src ])
            (const_int 1 [0x1]))) -1 (nil))

(code_label 38 37 39 4 4 "" [1 uses])

(note 39 38 40 4 [bb 4] NOTE_INSN_BASIC_BLOCK)

(insn 40 39 41 4 dj.c:27 (set (reg:QI 31)
        (mem:QI (reg/v/f:HI 26 [ src ]) [0 S1 A8])) -1 (nil))

(insn 41 40 42 4 dj.c:27 (set (mem:QI (reg/v/f:HI 25 [ dst ]) [0 S1 A8])
        (reg:QI 31)) -1 (nil))

(insn 42 41 43 4 dj.c:27 (set (reg/v/f:HI 25 [ dst ])
        (plus:HI (reg/v/f:HI 25 [ dst ])
            (const_int 1 [0x1]))) -1 (nil))

(insn 43 42 44 4 dj.c:27 (set (reg/v/f:HI 26 [ src ])
        (plus:HI (reg/v/f:HI 26 [ src ])
            (const_int 1 [0x1]))) -1 (nil))

(code_label 44 43 45 5 3 "" [1 uses])

(note 45 44 46 5 [bb 5] NOTE_INSN_BASIC_BLOCK)
(insn 46 45 47 5 dj.c:29 (set (reg:QI 32)
        (mem:QI (reg/v/f:HI 26 [ src ]) [0 S1 A8])) -1 (nil))

(insn 47 46 48 5 dj.c:29 (set (mem:QI (reg/v/f:HI 25 [ dst ]) [0 S1 A8])
        (reg:QI 32)) -1 (nil))

(insn 48 47 49 5 dj.c:29 (set (reg/v/f:HI 25 [ dst ])
        (plus:HI (reg/v/f:HI 25 [ dst ])
            (const_int 1 [0x1]))) -1 (nil))

(insn 49 48 50 5 dj.c:29 (set (reg/v/f:HI 26 [ src ])
        (plus:HI (reg/v/f:HI 26 [ src ])
            (const_int 1 [0x1]))) -1 (nil))

(code_label 50 49 51 6 2 "" [1 uses])

(note 51 50 52 6 [bb 6] NOTE_INSN_BASIC_BLOCK)

(jump_insn 52 51 53 6 dj.c:31 (set (pc)
        (if_then_else (ne (subreg:HI (reg/v:SI 27 [ size ]) 2)
                (const_int 0 [0x0]))
            (label_ref 58)
            (pc))) -1 (nil))

(jump_insn 53 52 54 6 dj.c:31 (set (pc)
        (if_then_else (ne (subreg:HI (reg/v:SI 27 [ size ]) 2)
                (const_int 0 [0x0]))
            (label_ref 67)
            (pc))) -1 (nil))

(jump_insn 54 53 55 6 dj.c:31 (set (pc)
        (if_then_else (gtu (subreg:HI (reg/v:SI 27 [ size ]) 0)
                (const_int 3 [0x3]))
            (label_ref 58)
            (pc))) -1 (nil))

(jump_insn 55 54 56 6 dj.c:31 (set (pc)
        (if_then_else (ne (subreg:HI (reg/v:SI 27 [ size ]) 0)
                (const_int 3 [0x3]))
            (label_ref 67)
            (pc))) -1 (nil))

(jump_insn 56 55 57 6 dj.c:31 (set (pc)
        (label_ref 67)) -1 (nil))

(barrier 57 56 58)

(code_label 58 57 59 6 10 "" [2 uses])

(note 59 58 60 7 [bb 7] NOTE_INSN_BASIC_BLOCK)

(insn 60 59 61 7 dj.c:33 (set (reg/v:SI 27 [ size ])
        (plus:SI (reg/v:SI 27 [ size ])
            (const_int -4 [0xfffffffc]))) -1 (nil))

(insn 61 60 62 7 dj.c:23 (set (reg:QI 33)
        (mem:QI (reg/v/f:HI 26 [ src ]) [0 S1 A8])) -1 (nil))

(insn 62 61 63 7 dj.c:23 (set (mem:QI (reg/v/f:HI 25 [ dst ]) [0 S1 A8])
        (reg:QI 33)) -1 (nil))

(insn 63 62 64 7 dj.c:23 (set (reg/v/f:HI 25 [ dst ])
        (plus:HI (reg/v/f:HI 25 [ dst ])
            (const_int 1 [0x1]))) -1 (nil))
(insn 64 63 65 7 dj.c:23 (set (reg/v/f:HI 26 [ src ])
        (plus:HI (reg/v/f:HI 26 [ src ])
            (const_int 1 [0x1]))) -1 (nil))

(jump_insn 65 64 66 7 dj.c:23 (set (pc)
        (label_ref 32)) -1 (nil))

(barrier 66 65 67)

(code_label 67 66 68 8 9 "" [3 uses])

(note 68 67 73 8 [bb 8] NOTE_INSN_BASIC_BLOCK)

(note 73 68 70 10 [bb 10] NOTE_INSN_BASIC_BLOCK)

(jump_insn 70 73 71 10 dj.c:36 (set (pc)
        (label_ref 72)) -1 (nil))

(barrier 71 70 69)

(code_label 69 71 72 10 1 "" [0 uses])

(code_label 72 69 0 10 11 "" [1 uses])

(nil)

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2008-05-21 20:36 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-05-21 20:36 m32c failure at cfgrtl.c:2332 (purge_dead_edges) DJ Delorie

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