RFR: Add support of lzcnt and tzcnt

Gilles Duboscq duboscq at ssw.jku.at
Sat Nov 15 12:06:57 UTC 2014


Hi Igor,

-BitScanForwardNode.inferStamp:
looks like firstMaybeSetBit and min can now be set outside of the if/else
-BitOpsTest:
You could have used UnsafeAccess

The rest looks good to me. Thanks.

Overall, it looks like we should rather use the Count*ZerosNode at the
high level regardless of the platform and lower them in a
platform-dependent way. On AMD64 without lzcnt/tzcnt we would then
introduce the BitScan* nodes only during platform-dependent lowering.
We should put that on the todo-list if we introduce a proper
platform-specific lowering phase before LIR.

-Gilles

On Sat, Nov 15, 2014 at 8:30 AM, Igor Veresov <igor.veresov at oracle.com> wrote:
> The change adds the following:
> - support of lzcnt and tzcnt instructions,
> - unit tests for lzcnt/tzcnt,
> - ability to emit bsf/bsr in case lzcnt/tzcnt were turned off from the command line,
> - tightening the stamps produced by ScanBitForward/ReverseNode nodes.
>
>
> Webrev: http://cr.openjdk.java.net/~iveresov/lztzcnt/webrev.00/
>
> Thanks!
> igor


More information about the graal-dev mailing list