[Bug tree-optimization/56457] Bogus warning: loop-invariant.c:786:20: error: unused variable ‘regno’ when building vax-*-*

egallager at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Sun Nov 10 05:21:00 GMT 2019


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56457

Eric Gallager <egallager at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2019-11-10
     Ever confirmed|0                           |1

--- Comment #3 from Eric Gallager <egallager at gcc dot gnu.org> ---
(In reply to Nicholas Krause from comment #2)
> defs = DF_REF_CHAIN (use);                                                  
> 
> if (!defs)                                                                  
> 
> {                                                                           
> 
> unsigned int regno = DF_REF_REGNO (use);                                    
> 
>                                                                             
> 
> /* If this is the use of an uninitialized argument register that is         
> 
> likely to be spilled, do not move it lest this might extend its             
> 
> lifetime and cause reload to die.  This can occur for a call to             
> 
> a function taking complex number arguments and moving the insns             
> 
> preparing the arguments without moving the call itself wouldn't             
> 
> gain much in practice.  */                                                  
> 
> if ((DF_REF_FLAGS (use) & DF_HARD_REG_LIVE)                                 
> 
> && FUNCTION_ARG_REGNO_P (regno)                                             
> 
> && targetm.class_likely_spilled_p (REGNO_REG_CLASS (regno)))                
> 
> return false;                                                               
> 
>                                                                             
> 
> return true;                                                                
> 
> }
> 
> This is the actual code and it seems to be used not in the if block below it
> Eric. I haven't run a build for it on the current gcc sources but it seems
> to be used currently. As for memory I don't recall it happening during my
> latest gcc builds on the upstream sources.

ok I guess I'll take this as confirmation then.


More information about the Gcc-bugs mailing list