On 04/07/2016 11:56 PM, Jakub Jelinek wrote:
Not sure if this patch catches everything though, perhaps there could be e.g. (set (reg:SI ...) (plus:SI ((subreg:SI (reg:QI ...) 0) (const_int ...))) and we'd still assign REG_EQUAL note. So maybe instead we should walk the *loc expression and look for paradoxical subregs, and for each of them, if we find the DF_REF_REG (use) mentioned in their operand, clear set_reg_equal. Though of course, if DF_REF_REG (use) itself is a paradoxical subreg, we could clear set_reg_equal without any walking.
It seems like something like that could happen. How much do we lose if we just don't make new REG_EQUAL notes here? Bernd