[Bug middle-end/32940] REG_POINTER attribute on DECL_ARTIFICIAL pointers

pinskia at gcc dot gnu dot org gcc-bugzilla@gcc.gnu.org
Mon Jul 30 23:54:00 GMT 2007



------- 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



More information about the Gcc-bugs mailing list