RFR: Add support of lzcnt and tzcnt
Doug Simon
doug.simon at oracle.com
Tue Nov 18 07:44:07 UTC 2014
> On Nov 18, 2014, at 12:21 AM, Christian Thalinger <christian.thalinger at oracle.com> wrote:
>
>
>> On Nov 16, 2014, at 12:56 AM, Igor Veresov <igor.veresov at oracle.com> wrote:
>>
>> Hi Gilles,
>>
>> Thanks for the review!
>> Please find the replies inline.
>>
>>> On Nov 15, 2014, at 4:06 AM, Gilles Duboscq <duboscq at ssw.jku.at> wrote:
>>>
>>> Hi Igor,
>>>
>>> -BitScanForwardNode.inferStamp:
>>> looks like firstMaybeSetBit and min can now be set outside of the if/else
>>
>> Good point. Fixed.
>>
>>> -BitOpsTest:
>>> You could have used UnsafeAccess
>>>
>> Aha, thanks for pointing that out. I grepped for something like it but didn’t notice UnsafeAccess. Fixed.
>>
>>> The rest looks good to me. Thanks.
>>
>> Updated webrev: http://cr.openjdk.java.net/~iveresov/lztzcnt/webrev.01/ <http://cr.openjdk.java.net/~iveresov/lztzcnt/webrev.01/>
>
> Where are the create methods used?
>
> + public static AMD64CountLeadingZerosNode create(ValueNode value) {
> + return new AMD64CountLeadingZerosNode(value);
> + }
> + public static AMD64CountTrailingZerosNode create(ValueNode value) {
> + return new AMD64CountTrailingZerosNode(value);
> + }
They are used by the NodeIntrinsificationPhase. These factory methods are an artifact of the experiment with generating source for Node classes. They may go away at some point in which case NodeIntrinsificationPhase would revert to calling the constructors directly.
-Doug
More information about the graal-dev
mailing list