This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
PROP_KILL_DEAD_CODE / REG_EQUAL problems
- To: gcc at gcc dot gnu dot org
- Subject: PROP_KILL_DEAD_CODE / REG_EQUAL problems
- From: John Wehle <john at feith dot com>
- Date: Tue, 2 Oct 2001 20:06:10 -0400 (EDT)
Compiling gcc.c-torture/execute/990222-1.c on the SPARC with
-O3 -fomit-frame-pointer -funroll-all-loops -finline-functions
yields the following bit of rtl after cse runs:
(insn 109 108 110 (set (reg:QI 135)
(subreg:QI (reg:SI 134) 3)) 46 {*movqi_insn} (nil)
(nil))
(insn 110 109 111 (set (mem:QI (reg/v/f:SI 107) 0)
(subreg:QI (reg:SI 134) 3)) 46 {*movqi_insn} (nil)
(nil))
(insn 111 110 112 (set (reg:SI 136)
(ashift:SI (reg:SI 134)
(const_int 24 [0x18]))) 299 {ashlsi3} (nil)
(nil))
(insn 112 111 113 (set (reg:SI 137)
(ashiftrt:SI (reg:SI 136)
(const_int 24 [0x18]))) 306 {ashrsi3} (nil)
(expr_list:REG_EQUAL (sign_extend:SI (reg:QI 135))
Running life_analysis (in order to setup things need by VRP)
causes insn 109 to be deleted since QI 135 is never used,
however the REG_EQUAL note on insn 112 is still present.
Should life_analysis remove any REG_EQUAL notes which it
potently invalidates, is the problem elsewhere, or is
this not a problem?
-- John
-------------------------------------------------------------------------
| Feith Systems | Voice: 1-215-646-8000 | Email: john@feith.com |
| John Wehle | Fax: 1-215-540-5495 | |
-------------------------------------------------------------------------