src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements.test/src/org/graalvm/compiler/replacements/test/PointerTest.java
equal
deleted
inserted
replaced
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() { |