This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: vax optimization breakage?
- To: Jeffrey A Law <law at cygnus dot com>
- Subject: Re: vax optimization breakage?
- From: Brandon Creighton <bjc at pobox dot com>
- Date: Sun, 23 Jul 2000 18:11:16 -0500
- Cc: gcc at gcc dot gnu dot org
- References: <20000723172324.D17424@pobox.com> <955.964390492@upchuck>
On Sun, Jul 23, 2000 at 04:14:52PM -0600, Jeffrey A Law wrote:
> I think the return insn was inserted into the wrong place. It really
> shouldn't have been inserted inside the loop notes, but instead should
> have been placed after the LOOP_END note.
>
>
> What do the .rtl and .jump rtl dumps look like?
attached.
;; Function func
(note 2 0 3 NOTE_INSN_DELETED -1347440721)
(note 3 2 6 NOTE_INSN_FUNCTION_BEG -1347440721)
(note 6 3 9 0x4027d580 NOTE_INSN_BLOCK_BEG -1347440721)
(insn 9 6 11 (set (mem/f:SI (symbol_ref:SI ("cnt")) 4)
(const_int 0 [0x0])) -1 (nil)
(nil))
(insn 11 9 12 (set (reg/v:SI 21)
(const_int 0 [0x0])) -1 (nil)
(nil))
(note 12 11 30 NOTE_INSN_LOOP_BEG -1347440721)
(jump_insn 30 12 31 (set (pc)
(label_ref 13)) -1 (nil)
(nil))
(barrier 31 30 29)
(code_label 29 31 18 6 "" "" [0 uses])
(code_label 18 29 22 5 "" "" [0 uses])
(insn 22 18 23 (set (reg:SI 22)
(mem/f:SI (symbol_ref:SI ("cnt")) 4)) -1 (nil)
(nil))
(insn 23 22 26 (set (mem/f:SI (symbol_ref:SI ("cnt")) 4)
(plus:SI (reg:SI 22)
(const_int 1 [0x1]))) -1 (nil)
(nil))
(note 26 23 27 NOTE_INSN_LOOP_CONT -1347440721)
(code_label 27 26 28 4 "" "" [0 uses])
(insn 28 27 13 (set (reg/v:SI 21)
(plus:SI (reg/v:SI 21)
(const_int 1 [0x1]))) -1 (nil)
(nil))
(code_label 13 28 14 2 "" "" [0 uses])
(insn 14 13 15 (set (cc0)
(compare (reg/v:SI 21)
(const_int 4 [0x4]))) -1 (nil)
(nil))
(jump_insn 15 14 16 (set (pc)
(if_then_else (le (cc0)
(const_int 0 [0x0]))
(label_ref 18)
(pc))) -1 (nil)
(nil))
(jump_insn 16 15 17 (set (pc)
(label_ref 35)) -1 (nil)
(nil))
(barrier 17 16 32)
(jump_insn 32 17 33 (set (pc)
(label_ref 29)) -1 (nil)
(nil))
(barrier 33 32 34)
(note 34 33 35 NOTE_INSN_LOOP_END -1347440721)
(code_label 35 34 37 3 "" "" [0 uses])
(note 37 35 38 0x4027d580 NOTE_INSN_BLOCK_END -1347440721)
(note 38 37 40 NOTE_INSN_FUNCTION_END -1347440721)
(jump_insn 40 38 41 (return) -1 (nil)
(nil))
(barrier 41 40 0)
;; Function func
(note 2 0 3 NOTE_INSN_DELETED -1347440721)
(note 3 2 6 NOTE_INSN_FUNCTION_BEG -1347440721)
(note 6 3 42 0x4027d580 NOTE_INSN_BLOCK_BEG -1347440721)
(note 42 6 9 [bb 0] NOTE_INSN_BASIC_BLOCK -1347440721)
(insn 9 42 11 (set (mem/f:SI (symbol_ref:SI ("cnt")) 4)
(const_int 0 [0x0])) -1 (nil)
(nil))
(insn 11 9 46 (set (reg/v:SI 21)
(const_int 0 [0x0])) -1 (nil)
(nil))
(insn 46 11 47 (set (cc0)
(compare (reg/v:SI 21)
(const_int 4 [0x4]))) -1 (nil)
(nil))
(jump_insn 47 46 51 (set (pc)
(if_then_else (le (cc0)
(const_int 0 [0x0]))
(label_ref 18)
(pc))) -1 (nil)
(nil))
(note 51 47 48 [bb 1] NOTE_INSN_BASIC_BLOCK -1347440721)
(jump_insn 48 51 49 (return) -1 (nil)
(nil))
(barrier 49 48 12)
(note 12 49 18 NOTE_INSN_LOOP_BEG -1347440721)
(code_label 18 12 43 5 "" "" [2 uses])
(note 43 18 22 [bb 2] NOTE_INSN_BASIC_BLOCK -1347440721)
(insn 22 43 23 (set (reg:SI 22)
(mem/f:SI (symbol_ref:SI ("cnt")) 4)) -1 (nil)
(nil))
(insn 23 22 26 (set (mem/f:SI (symbol_ref:SI ("cnt")) 4)
(plus:SI (reg:SI 22)
(const_int 1 [0x1]))) -1 (nil)
(nil))
(note 26 23 28 NOTE_INSN_LOOP_CONT -1347440721)
(insn 28 26 50 (set (reg/v:SI 21)
(plus:SI (reg/v:SI 21)
(const_int 1 [0x1]))) -1 (nil)
(nil))
(note 50 28 14 NOTE_INSN_LOOP_VTOP -1347440721)
(insn 14 50 15 (set (cc0)
(compare (reg/v:SI 21)
(const_int 4 [0x4]))) -1 (nil)
(nil))
(jump_insn 15 14 45 (set (pc)
(if_then_else (le (cc0)
(const_int 0 [0x0]))
(label_ref 18)
(pc))) -1 (nil)
(nil))
(note 45 15 16 [bb 3] NOTE_INSN_BASIC_BLOCK -1347440721)
(jump_insn 16 45 17 (return) 141 {return} (nil)
(nil))
(barrier 17 16 34)
(note 34 17 37 NOTE_INSN_LOOP_END -1347440721)
(note 37 34 0 0x4027d580 NOTE_INSN_BLOCK_END -1347440721)