RFR 8249189: AARCH64: more L2I conversions can be skipped (ubfiz)

Andrew Haley aph at redhat.com
Fri Jul 24 08:15:23 UTC 2020


On 22/07/2020 14:36, Boris Ulasevich wrote:
> Please review the update for aarch64 AD template file to generate more
> bitfield extraction rules where I2L and L2I conversions can be skipped.
> 
> http://cr.openjdk.java.net/~bulasevich/8249189/webrev.02
> http://bugs.openjdk.java.net/browse/JDK-8249189
> 
> Tested with JTREG and manual [1] tests.

4056 operand immL_positive_bitmaskI()
4057 %{
4058   predicate((n->get_long() != 0)
4059             && ((n->get_long() & 0xffffffff80000000L) == 0)
4060             && is_power_of_2(n->get_long() + 1));
4061   match(ConL);
4062
4063   op_cost(0);
4064   format %{ %}
4065   interface(CONST_INTER);
4066 %}

Isn't this a difficult-to-understand way of saying

4058   predicate((n->get_long() != 0)
4059             && ((julong)n->get_long() < 0x80000000LL)
4060             && is_power_of_2(n->get_long() + 1));

Note the "LL" here: we have to work with LLP64 systems.

Otherwise OK.

-- 
Andrew Haley  (he/him)
Java Platform Lead Engineer
Red Hat UK Ltd. <https://www.redhat.com>
https://keybase.io/andrewhaley
EAC8 43EB D3EF DB98 CC77 2FAD A5CD 6035 332F A671



More information about the hotspot-compiler-dev mailing list