< prev index next >

src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.phases.common/src/org/graalvm/compiler/phases/common/FixReadsPhase.java

Print this page




 204                 processAbstractBegin((AbstractBeginNode) node);
 205             } else if (node instanceof IfNode) {
 206                 processIf((IfNode) node);
 207             } else if (node instanceof IntegerSwitchNode) {
 208                 processIntegerSwitch((IntegerSwitchNode) node);
 209             } else if (node instanceof BinaryNode) {
 210                 processBinary((BinaryNode) node);
 211             } else if (node instanceof ConditionalNode) {
 212                 processConditional((ConditionalNode) node);
 213             } else if (node instanceof UnaryNode) {
 214                 processUnary((UnaryNode) node);
 215             } else if (node instanceof EndNode) {
 216                 processEnd((EndNode) node);
 217             }
 218         }
 219 
 220         protected void registerCombinedStamps(MergeNode node) {
 221             EconomicMap<ValueNode, Stamp> endMap = endMaps.get(node);
 222             MapCursor<ValueNode, Stamp> entries = endMap.getEntries();
 223             while (entries.advance()) {
 224                 if (registerNewValueStamp(entries.getKey(), entries.getValue())) {





 225                     counterBetterMergedStamps.increment(debug);
 226                 }
 227             }
 228         }
 229 
 230         protected void processEnd(EndNode node) {
 231             AbstractMergeNode abstractMerge = node.merge();
 232             if (abstractMerge instanceof MergeNode) {
 233                 MergeNode merge = (MergeNode) abstractMerge;
 234 
 235                 NodeMap<Block> blockToNodeMap = this.schedule.getNodeToBlockMap();
 236                 Block mergeBlock = blockToNodeMap.get(merge);
 237                 Block mergeBlockDominator = mergeBlock.getDominator();
 238                 Block currentBlock = blockToNodeMap.get(node);
 239 
 240                 EconomicMap<ValueNode, Stamp> currentEndMap = endMaps.get(merge);
 241 
 242                 if (currentEndMap == null || !currentEndMap.isEmpty()) {
 243 
 244                     EconomicMap<ValueNode, Stamp> endMap = EconomicMap.create();




 204                 processAbstractBegin((AbstractBeginNode) node);
 205             } else if (node instanceof IfNode) {
 206                 processIf((IfNode) node);
 207             } else if (node instanceof IntegerSwitchNode) {
 208                 processIntegerSwitch((IntegerSwitchNode) node);
 209             } else if (node instanceof BinaryNode) {
 210                 processBinary((BinaryNode) node);
 211             } else if (node instanceof ConditionalNode) {
 212                 processConditional((ConditionalNode) node);
 213             } else if (node instanceof UnaryNode) {
 214                 processUnary((UnaryNode) node);
 215             } else if (node instanceof EndNode) {
 216                 processEnd((EndNode) node);
 217             }
 218         }
 219 
 220         protected void registerCombinedStamps(MergeNode node) {
 221             EconomicMap<ValueNode, Stamp> endMap = endMaps.get(node);
 222             MapCursor<ValueNode, Stamp> entries = endMap.getEntries();
 223             while (entries.advance()) {
 224                 ValueNode value = entries.getKey();
 225                 if (value.isDeleted()) {
 226                     // nodes from this map can be deleted when a loop dies
 227                     continue;
 228                 }
 229                 if (registerNewValueStamp(value, entries.getValue())) {
 230                     counterBetterMergedStamps.increment(debug);
 231                 }
 232             }
 233         }
 234 
 235         protected void processEnd(EndNode node) {
 236             AbstractMergeNode abstractMerge = node.merge();
 237             if (abstractMerge instanceof MergeNode) {
 238                 MergeNode merge = (MergeNode) abstractMerge;
 239 
 240                 NodeMap<Block> blockToNodeMap = this.schedule.getNodeToBlockMap();
 241                 Block mergeBlock = blockToNodeMap.get(merge);
 242                 Block mergeBlockDominator = mergeBlock.getDominator();
 243                 Block currentBlock = blockToNodeMap.get(node);
 244 
 245                 EconomicMap<ValueNode, Stamp> currentEndMap = endMaps.get(merge);
 246 
 247                 if (currentEndMap == null || !currentEndMap.isEmpty()) {
 248 
 249                     EconomicMap<ValueNode, Stamp> endMap = EconomicMap.create();


< prev index next >