------- Comment #1 from pinskia at gcc dot gnu dot org 2007-07-30 23:54 ------- ;; quadrant.0 = quadrant (insn 16 15 17 t.c:8 (set (reg:SI 127) (high:SI (symbol_ref:SI ("quadrant") [flags 0x84] <var_decl 0xf7d9f070 quadrant>))) -1 (nil))
(insn 17 16 18 t.c:8 (set (reg/f:SI 126) (lo_sum:SI (reg:SI 127) (symbol_ref:SI ("quadrant") [flags 0x84] <var_decl 0xf7d9f070 quadrant>))) -1 (expr_list:REG_EQUAL (symbol_ref:SI ("quadrant") [flags 0x84] <var_decl 0xf7d9f070 quadrant>) (nil))) (insn 18 17 0 t.c:8 (set (reg:SI 121 [ quadrant.0 ]) (mem/f/c/i:SI (reg/f:SI 126) [2 quadrant+0 S4 A32])) -1 (nil)) The problem here is that DECL_ARTIFICIAL causes REG_POINTER not to be set. See: http://gcc.gnu.org/ml/gcc-patches/2004-06/msg00020.html Reverting that patch was the next step on my pointer plus work (after fixing up the regressions that still need fixing). -- pinskia at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- AssignedTo|unassigned at gcc dot gnu |pinskia at gcc dot gnu dot |dot org |org Status|UNCONFIRMED |ASSIGNED Ever Confirmed|0 |1 Last reconfirmed|0000-00-00 00:00:00 |2007-07-30 23:54:41 date| | Summary|ivopts fails to set |REG_POINTER attribute on |REG_POINTER attribute on |DECL_ARTIFICIAL pointers |pseudo | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32940