> On 31 Oct 2019, at 05:30, David Holmes <david.hol...@oracle.com> wrote:
>
> Hi Doug,
>
> On 30/10/2019 10:06 pm, Doug Simon wrote:
>>> On 30 Oct 2019, at 05:28, David Holmes <david.hol...@oracle.com
>>> <mailto:david.hol...@oracle.com>> wrote:
>>>
>>> Hi Doug,
>>>
>>> Your proposed patch wasn't quite right. I made some adjustments but I'm
>>> still having issues with the test,
>>> HotSpotMethodSubstitutionTest.testThreadSubstitutions, as I don't see how
>>> to make the test execution conditional on the VM config.
>> Like this:
>
> Thanks for that! One alteration below ...
>
>> diff --git
>> a/compiler/src/org.graalvm.compiler.hotspot.test/src/org/graalvm/compiler/hotspot/test/HotSpotMethodSubstitutionTest.java
>>
>> b/compiler/src/org.graalvm.compiler.hotspot.test/src/org/graalvm/compiler/hotspot/test/HotSpotMethodSubstitutionTest.java
>> index 96e7d979d36..3c928b86961 100644
>> ---
>> a/compiler/src/org.graalvm.compiler.hotspot.test/src/org/graalvm/compiler/hotspot/test/HotSpotMethodSubstitutionTest.java
>> +++
>> b/compiler/src/org.graalvm.compiler.hotspot.test/src/org/graalvm/compiler/hotspot/test/HotSpotMethodSubstitutionTest.java
>> @@ -28,12 +28,13 @@ import java.lang.invoke.ConstantCallSite;
>> import java.lang.invoke.MethodHandles;
>> import java.lang.invoke.MethodType;
>> -import org.graalvm.compiler.nodes.IfNode;
>> -import org.junit.Test;
>> -
>> import org.graalvm.compiler.api.directives.GraalDirectives;
>> import org.graalvm.compiler.api.replacements.MethodSubstitution;
>> +import org.graalvm.compiler.hotspot.GraalHotSpotVMConfig;
>> +import org.graalvm.compiler.hotspot.HotSpotBackend;
>> +import org.graalvm.compiler.nodes.IfNode;
>> import org.graalvm.compiler.replacements.test.MethodSubstitutionTest;
>> +import org.junit.Test;
>> /**
>> * Tests HotSpot specific {@link MethodSubstitution}s.
>> @@ -133,13 +134,18 @@ public class HotSpotMethodSubstitutionTest extends
>> MethodSubstitutionTest {
>> @Test
>> public void testThreadSubstitutions() {
>> + GraalHotSpotVMConfig config = ((HotSpotBackend)
>> getBackend()).getRuntime().getVMConfig();
>> testGraph("currentThread");
>> - assertInGraph(testGraph("threadIsInterrupted", "isInterrupted",
>> true), IfNode.class);
>> - assertInGraph(testGraph("threadInterrupted", "isInterrupted",
>> true), IfNode.class);
>> + if (config.osThreadOffset != Integer.MAX_VALUE) {
>
> s/osThreadOffset/osThreadInterruptedOffset/
Good catch. Sorry about that.
>
> This change removes the interrupted field from osThread but not osThread
> itself. Though as osThread is only used to then access the interrupted field,
> I could both the same. Here's updated webrev showing that:
>
> http://cr.openjdk.java.net/~dholmes/8229516/webrev.v2/
> <http://cr.openjdk.java.net/~dholmes/8229516/webrev.v2/>
Looks good.
-Doug