RFR (XS) 8252362: C2: Remove no-op checking for callee-saved-floats

Vladimir Ivanov vladimir.x.ivanov at oracle.com
Wed Aug 26 09:30:25 UTC 2020


Looks good and trivial.

The code was added as part of JDK-6527187 [1], but it was useless from 
the very beginning.

Best regards,
Vladimir Ivanov

[1] https://bugs.openjdk.java.net/browse/JDK-6527187

On 26.08.2020 11:06, Aleksey Shipilev wrote:
> Cleanup:
>    https://bugs.openjdk.java.net/browse/JDK-8252362
> 
> The block below does not do anything, because there are no side-effects 
> anywhere, and then callee_saved_floats is left unused. It is this way 
> since the initial load. I believe C2 (matching) code just uses SOE/SOC 
> info from .ad. Anyhow, I cannot find where the rest of runtime codifies 
> SOE/SOC registers to check here. There are plenty of hand-enumerated 
> registers in, say, macroAssembler-s.
> 
> I think it is cleaner to remove the block:
> 
> diff -r e12584d50765 src/hotspot/share/opto/c2compiler.cpp
> --- a/src/hotspot/share/opto/c2compiler.cpp     Wed Aug 26 09:29:46 2020 
> +0200
> +++ b/src/hotspot/share/opto/c2compiler.cpp     Wed Aug 26 10:02:48 2020 
> +0200
> @@ -64,14 +64,4 @@
>     }
> 
> -  // Check that runtime and architecture description agree on 
> callee-saved-floats
> -  bool callee_saved_floats = false;
> -  for( OptoReg::Name i=OptoReg::Name(0); 
> i<OptoReg::Name(_last_Mach_Reg); i = OptoReg::add(i,1) ) {
> -    // Is there a callee-saved float or double?
> -    if( register_save_policy[i] == 'E' /* callee-saved */ &&
> -       (register_save_type[i] == Op_RegF || register_save_type[i] == 
> Op_RegD) ) {
> -      callee_saved_floats = true;
> -    }
> -  }
> -
>     DEBUG_ONLY( Node::init_NodeProperty(); )
> 
> Testing: local tier1
> 


More information about the hotspot-compiler-dev mailing list