optimization/8154: gcj not emitting switch table
aph@gcc.gnu.org
aph@gcc.gnu.org
Tue Oct 8 07:36:00 GMT 2002
Synopsis: gcj not emitting switch table
State-Changed-From-To: open->analyzed
State-Changed-By: aph
State-Changed-When: Tue Oct 8 07:36:37 2002
State-Changed-Why:
Looks like try_optimize_cfg is making a mess of this -- we end up with
(insn 53 84 54 1 0x400d0fd0 (set (reg/f:SI 80)
(label_ref:SI 57)) 38 {*movsi_1} (nil)
(insn_list:REG_LABEL 57 (expr_list:REG_EQUAL (label_ref:SI 57)
(nil))))
(insn 54 53 55 1 0x400d0fd0 (set (reg:SI 81)
(mem/u:SI (plus:SI (mult:SI (reg:SI 78)
(const_int 4 [0x4]))
(reg/f:SI 80)) [0 S4 A8])) 38 {*movsi_1} (nil)
(nil))
(jump_insn 55 54 56 1 0x400d0fd0 (parallel [
(set (pc)
(reg:SI 81))
(use (label_ref 57))
]) 370 {*tablejump_1} (nil)
(nil))
;; End of basic block 1, registers live:
(nil)
(barrier 56 55 57)
;; Insn is not within a basic block
(code_label 57 56 58 10 "" [2 uses])
;; Insn is not within a basic block
(jump_insn 58 57 59 (nil) (addr_vec:SI [
(label_ref:SI 19)
(label_ref:SI 23)
(label_ref:SI 27)
(label_ref:SI 31)
(label_ref:SI 35)
(label_ref:SI 39)
(label_ref:SI 43)
]) -1 (nil)
(nil))
turning into
(insn 53 84 54 1 0x400d0fd0 (set (reg/f:SI 80)
(label_ref:SI 57)) 38 {*movsi_1} (nil)
(insn_list:REG_LABEL 57 (expr_list:REG_EQUAL (label_ref:SI 57)
(nil))))
(insn 54 53 45 1 0x400d0fd0 (set (reg:SI 81)
(mem/u:SI (plus:SI (mult:SI (reg:SI 78)
(const_int 4 [0x4]))
(reg/f:SI 80)) [0 S4 A8])) 38 {*movsi_1} (insn_list 53 (nil))
(expr_list:REG_DEAD (reg:SI 78)
(expr_list:REG_DEAD (reg/f:SI 80)
(expr_list:REG_UNUSED (reg:SI 81)
(nil)))))
(insn 45 54 60 1 0x400d0a50 (set (reg/v/f:SI 60)
(mem/u:SI (const:SI (plus:SI (symbol_ref:SI ("_CD_linkbug"))
(const_int 32 [0x20]))) [0 S4 A32])) 38 {*movsi_1} (nil)
(nil))
;; End of basic block 1, registers live:
6 [bp] 7 [sp] 16 [] 20 [frame] 59 60
Yes, the jump_insn 55 has disappeared altogether.
http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=8154
More information about the Gcc-prs
mailing list