1 /* |
1 /* |
2 * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved. |
2 * Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved. |
3 * Copyright (c) 2017, Red Hat Inc. All rights reserved. |
3 * Copyright (c) 2017, Red Hat Inc. All rights reserved. |
4 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
5 * |
5 * |
6 * This code is free software; you can redistribute it and/or modify it |
6 * This code is free software; you can redistribute it and/or modify it |
7 * under the terms of the GNU General Public License version 2 only, as |
7 * under the terms of the GNU General Public License version 2 only, as |
67 for (Node node : graph.getNodes()) { |
67 for (Node node : graph.getNodes()) { |
68 AddressNode address; |
68 AddressNode address; |
69 AddressNode lowered; |
69 AddressNode lowered; |
70 if (node instanceof ReadNode) { |
70 if (node instanceof ReadNode) { |
71 ReadNode readNode = (ReadNode) node; |
71 ReadNode readNode = (ReadNode) node; |
72 Stamp stamp = readNode.stamp(NodeView.DEFAULT); |
72 Stamp stamp = readNode.getAccessStamp(); |
73 address = readNode.getAddress(); |
73 address = readNode.getAddress(); |
74 lowered = lowering.lower(readNode, stamp, address); |
74 lowered = lowering.lower(readNode, stamp, address); |
75 } else if (node instanceof JavaReadNode) { |
75 } else if (node instanceof JavaReadNode) { |
76 JavaReadNode javaReadNode = (JavaReadNode) node; |
76 JavaReadNode javaReadNode = (JavaReadNode) node; |
77 Stamp stamp = javaReadNode.stamp(NodeView.DEFAULT); |
77 Stamp stamp = javaReadNode.stamp(NodeView.DEFAULT); |
78 address = javaReadNode.getAddress(); |
78 address = javaReadNode.getAddress(); |
79 lowered = lowering.lower(javaReadNode, stamp, address); |
79 lowered = lowering.lower(javaReadNode, stamp, address); |
80 } else if (node instanceof FloatingReadNode) { |
80 } else if (node instanceof FloatingReadNode) { |
81 FloatingReadNode floatingReadNode = (FloatingReadNode) node; |
81 FloatingReadNode floatingReadNode = (FloatingReadNode) node; |
82 Stamp stamp = floatingReadNode.stamp(NodeView.DEFAULT); |
82 Stamp stamp = floatingReadNode.getAccessStamp(); |
83 address = floatingReadNode.getAddress(); |
83 address = floatingReadNode.getAddress(); |
84 lowered = lowering.lower(floatingReadNode, stamp, address); |
84 lowered = lowering.lower(floatingReadNode, stamp, address); |
85 } else if (node instanceof AbstractWriteNode) { |
85 } else if (node instanceof AbstractWriteNode) { |
86 AbstractWriteNode abstractWriteNode = (AbstractWriteNode) node; |
86 AbstractWriteNode abstractWriteNode = (AbstractWriteNode) node; |
87 Stamp stamp = abstractWriteNode.value().stamp(NodeView.DEFAULT); |
87 Stamp stamp = abstractWriteNode.getAccessStamp(); |
88 address = abstractWriteNode.getAddress(); |
88 address = abstractWriteNode.getAddress(); |
89 lowered = lowering.lower(abstractWriteNode, stamp, address); |
89 lowered = lowering.lower(abstractWriteNode, stamp, address); |
90 } else if (node instanceof PrefetchAllocateNode) { |
90 } else if (node instanceof PrefetchAllocateNode) { |
91 PrefetchAllocateNode prefetchAllocateNode = (PrefetchAllocateNode) node; |
91 PrefetchAllocateNode prefetchAllocateNode = (PrefetchAllocateNode) node; |
92 Stamp stamp = StampFactory.forKind(JavaKind.Object); |
92 Stamp stamp = StampFactory.forKind(JavaKind.Object); |