src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements.test/src/org/graalvm/compiler/replacements/test/PointerTest.java
changeset 58877 aec7bf35d6f5
parent 52910 583fd71c47d6
equal deleted inserted replaced
58876:1a8d65e71a66 58877:aec7bf35d6f5
     1 /*
     1 /*
     2  * Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved.
     2  * Copyright (c) 2013, 2019, Oracle and/or its affiliates. All rights reserved.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  *
     4  *
     5  * This code is free software; you can redistribute it and/or modify it
     5  * This code is free software; you can redistribute it and/or modify it
     6  * under the terms of the GNU General Public License version 2 only, as
     6  * under the terms of the GNU General Public License version 2 only, as
     7  * published by the Free Software Foundation.
     7  * published by the Free Software Foundation.
    35 import org.graalvm.compiler.nodes.calc.SignExtendNode;
    35 import org.graalvm.compiler.nodes.calc.SignExtendNode;
    36 import org.graalvm.compiler.nodes.extended.JavaReadNode;
    36 import org.graalvm.compiler.nodes.extended.JavaReadNode;
    37 import org.graalvm.compiler.nodes.extended.JavaWriteNode;
    37 import org.graalvm.compiler.nodes.extended.JavaWriteNode;
    38 import org.graalvm.compiler.nodes.memory.address.OffsetAddressNode;
    38 import org.graalvm.compiler.nodes.memory.address.OffsetAddressNode;
    39 import org.graalvm.compiler.phases.OptimisticOptimizations;
    39 import org.graalvm.compiler.phases.OptimisticOptimizations;
    40 import org.graalvm.compiler.phases.common.CanonicalizerPhase;
       
    41 import org.graalvm.compiler.phases.tiers.HighTierContext;
    40 import org.graalvm.compiler.phases.tiers.HighTierContext;
    42 import org.graalvm.compiler.word.Word;
    41 import org.graalvm.compiler.word.Word;
    43 import org.graalvm.compiler.word.WordCastNode;
    42 import org.graalvm.compiler.word.WordCastNode;
    44 import jdk.internal.vm.compiler.word.LocationIdentity;
    43 import jdk.internal.vm.compiler.word.LocationIdentity;
    45 import jdk.internal.vm.compiler.word.Pointer;
    44 import jdk.internal.vm.compiler.word.Pointer;
   148         OffsetAddressNode address = (OffsetAddressNode) write.getAddress();
   147         OffsetAddressNode address = (OffsetAddressNode) write.getAddress();
   149         Assert.assertEquals(cast, address.getBase());
   148         Assert.assertEquals(cast, address.getBase());
   150         Assert.assertEquals(graph.getParameter(0), cast.getInput());
   149         Assert.assertEquals(graph.getParameter(0), cast.getInput());
   151         Assert.assertEquals(target.wordJavaKind, cast.stamp(NodeView.DEFAULT).getStackKind());
   150         Assert.assertEquals(target.wordJavaKind, cast.stamp(NodeView.DEFAULT).getStackKind());
   152 
   151 
   153         Assert.assertEquals(locationIdentity, write.getLocationIdentity());
   152         Assert.assertEquals(locationIdentity, write.getKilledLocationIdentity());
   154 
   153 
   155         if (indexConvert) {
   154         if (indexConvert) {
   156             SignExtendNode convert = (SignExtendNode) address.getOffset();
   155             SignExtendNode convert = (SignExtendNode) address.getOffset();
   157             Assert.assertEquals(convert.getInputBits(), 32);
   156             Assert.assertEquals(convert.getInputBits(), 32);
   158             Assert.assertEquals(convert.getResultBits(), 64);
   157             Assert.assertEquals(convert.getResultBits(), 64);
   407 
   406 
   408     private void assertNumWordCasts(String snippetName, int expectedWordCasts) {
   407     private void assertNumWordCasts(String snippetName, int expectedWordCasts) {
   409         HighTierContext context = new HighTierContext(getProviders(), null, OptimisticOptimizations.ALL);
   408         HighTierContext context = new HighTierContext(getProviders(), null, OptimisticOptimizations.ALL);
   410 
   409 
   411         StructuredGraph graph = parseEager(snippetName, AllowAssumptions.YES);
   410         StructuredGraph graph = parseEager(snippetName, AllowAssumptions.YES);
   412         new CanonicalizerPhase().apply(graph, context);
   411         this.createCanonicalizerPhase().apply(graph, context);
   413         Assert.assertEquals(expectedWordCasts, graph.getNodes().filter(WordCastNode.class).count());
   412         Assert.assertEquals(expectedWordCasts, graph.getNodes().filter(WordCastNode.class).count());
   414     }
   413     }
   415 
   414 
   416     @Test
   415     @Test
   417     public void testUnusedFromObject() {
   416     public void testUnusedFromObject() {