This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug rtl-optimization/38740] [4.4 Regression] Incorrect delayed branch optimization
- From: "danglin at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 17 Jan 2009 22:34:07 -0000
- Subject: [Bug rtl-optimization/38740] [4.4 Regression] Incorrect delayed branch optimization
- References: <bug-38740-276@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #10 from danglin at gcc dot gnu dot org 2009-01-17 22:34 -------
This is the last output of the register usage information prior to the dbr
pass. I am somewhat puzzled as to why register 124 doesn't appear as
allocated to %r28 in the "lr in" and "lr use" lines for blocks 4 and 9.
;; Start of basic block ( 4) -> 9
;; bb 9 artificial_defs: { }
;; bb 9 artificial_uses: { u-1(3){ }u-1(30){ }}
;; lr in 3 [%r3] 30 [%r30] 124
;; lr use 3 [%r3] 30 [%r30] 124
;; lr def 140
;; Pred edge 4
(code_label 35 466 453 9 774 "" [1 uses])
(note 453 35 36 9 [bb 9] NOTE_INSN_BASIC_BLOCK)
(insn 36 453 37 9 LZMAEncoder.cc:3105 (set (reg:SI 19 %r19 [140])
(const_int 1105 [0x451])) 37 {*pa.md:2552} (nil))
(jump_insn 37 36 454 9 LZMAEncoder.cc:3105 (set (pc)
(if_then_else (eq (reg:SI 28 %r28 [orig:124 D.7781 ] [124])
(reg:SI 19 %r19 [140]))
(label_ref 124)
(pc))) 25 {*pa.md:1780} (nil))
;; End of basic block 9 -> ( 25 10)
;; lr out 3 [%r3] 30 [%r30] 124
;; Succ edge 25
;; Succ edge 10 (fallthru)
;; Start of basic block ( 9) -> 10
;; bb 10 artificial_defs: { }
;; bb 10 artificial_uses: { u-1(3){ }u-1(30){ }}
;; lr in 3 [%r3] 30 [%r30] 124
;; lr use 3 [%r3] 30 [%r30] 124
;; lr def 141
;; Pred edge 9 (fallthru)
(note 454 37 38 10 [bb 10] NOTE_INSN_BASIC_BLOCK)
(insn 38 454 39 10 LZMAEncoder.cc:3105 (set (reg:SI 19 %r19 [141])
(const_int 1105 [0x451])) 37 {*pa.md:2552} (nil))
(jump_insn 39 38 455 10 LZMAEncoder.cc:3105 (set (pc)
(if_then_else (gtu (reg:SI 28 %r28 [orig:124 D.7781 ] [124])
(reg:SI 19 %r19 [141]))
(label_ref 44)
(pc))) 25 {*pa.md:1780} (nil))
;; End of basic block 10 -> ( 13 11)
;; lr out 3 [%r3] 30 [%r30] 124
;; Start of basic block ( 9) -> 25
;; bb 25 artificial_defs: { };; bb 25 artificial_uses: { u-1(3){ }u-1(30){ }}
;; lr in 3 [%r3] 30 [%r30]
;; lr use 3 [%r3] 30 [%r30]
;; lr def 118 177 178
;; Pred edge 9
(code_label 124 482 125 25 771 "" [1 uses])
(note 125 124 126 25 [bb 25] NOTE_INSN_BASIC_BLOCK)
(insn 126 125 127 25 LZMAEncoder.cc:3128 (set (reg/f:SI 28 %r28 [177])
(mem/f/c/i:SI (plus:SI (reg/f:SI 3 %r3)
(const_int 48 [0x30])) [0 prop+0 S4 A64])) 37 {*pa.md:2552}
(nil
))
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38740