[Bug target/28574] [4.2 regression] switch statement points to unreferenced label at -O2

2006-09-20 Thread sje at gcc dot gnu dot org
--- Comment #10 from sje at gcc dot gnu dot org 2006-09-20 16:41 --- Subject: Bug 28574 Author: sje Date: Wed Sep 20 16:41:12 2006 New Revision: 117084 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=117084 Log: PR target/28574 * ifcvt.c (dead_or_predicable): Don't

[Bug target/28574] [4.2 regression] switch statement points to unreferenced label at -O2

2006-09-20 Thread sje at cup dot hp dot com
--- Comment #11 from sje at cup dot hp dot com 2006-09-20 16:49 --- Fix is now checked in. -- sje at cup dot hp dot com changed: What|Removed |Added

[Bug target/28574] [4.2 regression] switch statement points to unreferenced label at -O2

2006-09-14 Thread sje at cup dot hp dot com
--- Comment #9 from sje at cup dot hp dot com 2006-09-14 22:37 --- I don't see any way to delete a block without deleting the attached jumptable so the only fix I can see is to not delete the block in the first place. The block is being deleted on IA64 because it is a 'then block' on

[Bug target/28574] [4.2 regression] switch statement points to unreferenced label at -O2

2006-08-20 Thread mmitchel at gcc dot gnu dot org
-- mmitchel at gcc dot gnu dot org changed: What|Removed |Added Priority|P3 |P2 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28574

[Bug target/28574] [4.2 regression] switch statement points to unreferenced label at -O2

2006-08-02 Thread tbm at cyrius dot com
--- Comment #1 from tbm at cyrius dot com 2006-08-02 17:17 --- Created an attachment (id=11999) -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=11999action=view) test case -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28574

[Bug target/28574] [4.2 regression] switch statement points to unreferenced label at -O2

2006-08-02 Thread pinskia at gcc dot gnu dot org
-- pinskia at gcc dot gnu dot org changed: What|Removed |Added Target Milestone|--- |4.2.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28574

[Bug target/28574] [4.2 regression] switch statement points to unreferenced label at -O2

2006-08-02 Thread steven at gcc dot gnu dot org
--- Comment #2 from steven at gcc dot gnu dot org 2006-08-02 19:03 --- There are a million reasons why labels can disappear in GCC. This happens because GCC deletes or keeps labels based on ref counting (LABEL_NUSES and friends) and this is just too fragile. The way for you to narrow

[Bug target/28574] [4.2 regression] switch statement points to unreferenced label at -O2

2006-08-02 Thread tbm at cyrius dot com
--- Comment #3 from tbm at cyrius dot com 2006-08-02 19:13 --- Thanks for the explanation! I see the following two references in the assembler file but I don't see any code_label references to those number in the dumps. //(insn/c 185 231 30 2 (set (reg/f:DI 14 r14 [386]) //

[Bug target/28574] [4.2 regression] switch statement points to unreferenced label at -O2

2006-08-02 Thread tbm at cyrius dot com
--- Comment #4 from tbm at cyrius dot com 2006-08-02 19:15 --- Ah, sorry, looked for the wrong number. The last pass which has the case_label is: yasm-module.c.144r.peephole2:(code_label 48 47 49 11 [3 uses]) -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28574

[Bug target/28574] [4.2 regression] switch statement points to unreferenced label at -O2

2006-08-02 Thread tbm at cyrius dot com
--- Comment #5 from tbm at cyrius dot com 2006-08-02 19:17 --- So from 144r (peephole2) to 145r (ce3) it goes from: ;; Insn is not within a basic block (code_label 48 47 49 11 [3 uses]) ;; Insn is not within a basic block (jump_insn 49 48 50 (addr_diff_vec:DI (label_ref:DI 48)

[Bug target/28574] [4.2 regression] switch statement points to unreferenced label at -O2

2006-08-02 Thread steven at gcc dot gnu dot org
-- steven at gcc dot gnu dot org changed: What|Removed |Added Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 Last

[Bug target/28574] [4.2 regression] switch statement points to unreferenced label at -O2

2006-08-02 Thread tbm at cyrius dot com
--- Comment #6 from tbm at cyrius dot com 2006-08-02 19:43 --- Slightly more reduced testcase: typedef enum yasm_module_type { YASM_MODULE_ARCH = 0, YASM_MODULE_DBGFMT, YASM_MODULE_OBJFMT, YASM_MODULE_LISTFMT, YASM_MODULE_OPTIMIZER } yasm_module_type; typedef

[Bug target/28574] [4.2 regression] switch statement points to unreferenced label at -O2

2006-08-02 Thread steven at gcc dot gnu dot org
--- Comment #7 from steven at gcc dot gnu dot org 2006-08-02 20:52 --- ;; Insn is not within a basic block (code_label 48 47 49 11 [3 uses]) ;; Insn is not within a basic block (jump_insn 49 48 50 (addr_diff_vec:DI (label_ref:DI 48) [ (label_ref:DI 103)

[Bug target/28574] [4.2 regression] switch statement points to unreferenced label at -O2

2006-08-02 Thread steven at gcc dot gnu dot org
--- Comment #8 from steven at gcc dot gnu dot org 2006-08-02 21:10 --- Happens when we are in find_if_case_1, where we call: delete_basic_block (then_bb); The basic block we try to remove is this one: ;; basic block 5, loop depth 1, count 0 ;; prev block 9, next block 6 ;; pred: ;;