annotate graal/com.oracle.graal.lir/src/com/oracle/graal/lir/framemap/FrameMapBuilderImpl.java @ 19020:312cf5a0376e

Remove FrameMapBuilder.requireMapping() (only LIR needs to be updated).
author Josef Eisl <josef.eisl@jku.at>
date Wed, 03 Dec 2014 20:21:24 +0100
parents d68ab3959fec
children 252067cb86ad
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
18155
115c9fac7542 Move FrameMapBuilderImpl to com.oracle.graal.lir.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
1 /*
115c9fac7542 Move FrameMapBuilderImpl to com.oracle.graal.lir.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
2 * Copyright (c) 2014, 2014, Oracle and/or its affiliates. All rights reserved.
115c9fac7542 Move FrameMapBuilderImpl to com.oracle.graal.lir.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
115c9fac7542 Move FrameMapBuilderImpl to com.oracle.graal.lir.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
4 *
115c9fac7542 Move FrameMapBuilderImpl to com.oracle.graal.lir.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
5 * This code is free software; you can redistribute it and/or modify it
115c9fac7542 Move FrameMapBuilderImpl to com.oracle.graal.lir.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
6 * under the terms of the GNU General Public License version 2 only, as
115c9fac7542 Move FrameMapBuilderImpl to com.oracle.graal.lir.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
7 * published by the Free Software Foundation.
115c9fac7542 Move FrameMapBuilderImpl to com.oracle.graal.lir.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
8 *
115c9fac7542 Move FrameMapBuilderImpl to com.oracle.graal.lir.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
9 * This code is distributed in the hope that it will be useful, but WITHOUT
115c9fac7542 Move FrameMapBuilderImpl to com.oracle.graal.lir.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
115c9fac7542 Move FrameMapBuilderImpl to com.oracle.graal.lir.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
115c9fac7542 Move FrameMapBuilderImpl to com.oracle.graal.lir.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
12 * version 2 for more details (a copy is included in the LICENSE file that
115c9fac7542 Move FrameMapBuilderImpl to com.oracle.graal.lir.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
13 * accompanied this code).
115c9fac7542 Move FrameMapBuilderImpl to com.oracle.graal.lir.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
14 *
115c9fac7542 Move FrameMapBuilderImpl to com.oracle.graal.lir.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
15 * You should have received a copy of the GNU General Public License version
115c9fac7542 Move FrameMapBuilderImpl to com.oracle.graal.lir.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
16 * 2 along with this work; if not, write to the Free Software Foundation,
115c9fac7542 Move FrameMapBuilderImpl to com.oracle.graal.lir.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
115c9fac7542 Move FrameMapBuilderImpl to com.oracle.graal.lir.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
18 *
115c9fac7542 Move FrameMapBuilderImpl to com.oracle.graal.lir.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
115c9fac7542 Move FrameMapBuilderImpl to com.oracle.graal.lir.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
20 * or visit www.oracle.com if you need additional information or have any
115c9fac7542 Move FrameMapBuilderImpl to com.oracle.graal.lir.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
21 * questions.
115c9fac7542 Move FrameMapBuilderImpl to com.oracle.graal.lir.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
22 */
18443
1c92d437179b FrameMapBuilder: move into package.
Josef Eisl <josef.eisl@jku.at>
parents: 18442
diff changeset
23 package com.oracle.graal.lir.framemap;
18155
115c9fac7542 Move FrameMapBuilderImpl to com.oracle.graal.lir.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
24
19020
312cf5a0376e Remove FrameMapBuilder.requireMapping() (only LIR needs to be updated).
Josef Eisl <josef.eisl@jku.at>
parents: 18469
diff changeset
25 import static com.oracle.graal.api.code.ValueUtil.*;
312cf5a0376e Remove FrameMapBuilder.requireMapping() (only LIR needs to be updated).
Josef Eisl <josef.eisl@jku.at>
parents: 18469
diff changeset
26
18155
115c9fac7542 Move FrameMapBuilderImpl to com.oracle.graal.lir.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
27 import java.util.*;
115c9fac7542 Move FrameMapBuilderImpl to com.oracle.graal.lir.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
28
115c9fac7542 Move FrameMapBuilderImpl to com.oracle.graal.lir.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
29 import com.oracle.graal.api.code.*;
115c9fac7542 Move FrameMapBuilderImpl to com.oracle.graal.lir.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
30 import com.oracle.graal.api.meta.*;
18429
79268cfc256a StackSlot is no longer a VirtualStackSlot (rename ForwardingFrameMapBuilder to DelayedFrameMapBuilder).
Josef Eisl <josef.eisl@jku.at>
parents: 18428
diff changeset
31 import com.oracle.graal.compiler.common.*;
19020
312cf5a0376e Remove FrameMapBuilder.requireMapping() (only LIR needs to be updated).
Josef Eisl <josef.eisl@jku.at>
parents: 18469
diff changeset
32 import com.oracle.graal.compiler.common.cfg.*;
312cf5a0376e Remove FrameMapBuilder.requireMapping() (only LIR needs to be updated).
Josef Eisl <josef.eisl@jku.at>
parents: 18469
diff changeset
33 import com.oracle.graal.debug.*;
312cf5a0376e Remove FrameMapBuilder.requireMapping() (only LIR needs to be updated).
Josef Eisl <josef.eisl@jku.at>
parents: 18469
diff changeset
34 import com.oracle.graal.debug.Debug.Scope;
312cf5a0376e Remove FrameMapBuilder.requireMapping() (only LIR needs to be updated).
Josef Eisl <josef.eisl@jku.at>
parents: 18469
diff changeset
35 import com.oracle.graal.lir.*;
18423
c656c5772cfa Pass LIRGenerationResult to FrameMapBuilder.buildFrameMap().
Josef Eisl <josef.eisl@jku.at>
parents: 18422
diff changeset
36 import com.oracle.graal.lir.gen.*;
18155
115c9fac7542 Move FrameMapBuilderImpl to com.oracle.graal.lir.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
37
115c9fac7542 Move FrameMapBuilderImpl to com.oracle.graal.lir.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
38 /**
18429
79268cfc256a StackSlot is no longer a VirtualStackSlot (rename ForwardingFrameMapBuilder to DelayedFrameMapBuilder).
Josef Eisl <josef.eisl@jku.at>
parents: 18428
diff changeset
39 * A FrameMapBuilder that records allocation.
18155
115c9fac7542 Move FrameMapBuilderImpl to com.oracle.graal.lir.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
40 */
18461
3b89c08c75f7 Rename DelayedFrameMapBuilder to FrameMapBuilderImpl (again).
Josef Eisl <josef.eisl@jku.at>
parents: 18459
diff changeset
41 public class FrameMapBuilderImpl implements FrameMapBuilder {
18155
115c9fac7542 Move FrameMapBuilderImpl to com.oracle.graal.lir.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
42
115c9fac7542 Move FrameMapBuilderImpl to com.oracle.graal.lir.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
43 private final RegisterConfig registerConfig;
18422
a06ab51f9196 Add FrameMapBuilder.getCodeCache().
Josef Eisl <josef.eisl@jku.at>
parents: 18421
diff changeset
44 private final CodeCacheProvider codeCache;
18433
a0cd3a1e7d7d FrameMapFactory: create (empty) FrameMap eagerly.
Josef Eisl <josef.eisl@jku.at>
parents: 18432
diff changeset
45 protected final FrameMap frameMap;
18454
5af19da6fae5 DelayedFrameMapBuilder: remove TrackedVirtualStackSlot.
Josef Eisl <josef.eisl@jku.at>
parents: 18453
diff changeset
46 private final List<VirtualStackSlot> stackSlots;
18429
79268cfc256a StackSlot is no longer a VirtualStackSlot (rename ForwardingFrameMapBuilder to DelayedFrameMapBuilder).
Josef Eisl <josef.eisl@jku.at>
parents: 18428
diff changeset
47 private final List<CallingConvention> calls;
18469
d68ab3959fec Remove static id from VirtualStackSlot.
Josef Eisl <josef.eisl@jku.at>
parents: 18461
diff changeset
48 private int numStackSlots;
18155
115c9fac7542 Move FrameMapBuilderImpl to com.oracle.graal.lir.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
49
18461
3b89c08c75f7 Rename DelayedFrameMapBuilder to FrameMapBuilderImpl (again).
Josef Eisl <josef.eisl@jku.at>
parents: 18459
diff changeset
50 public FrameMapBuilderImpl(FrameMap frameMap, CodeCacheProvider codeCache, RegisterConfig registerConfig) {
18458
ff3f0bf30b2e DelayedFrameMapBuilder: require non null register config.
Josef Eisl <josef.eisl@jku.at>
parents: 18457
diff changeset
51 assert registerConfig != null : "No register config!";
18155
115c9fac7542 Move FrameMapBuilderImpl to com.oracle.graal.lir.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
52 this.registerConfig = registerConfig == null ? codeCache.getRegisterConfig() : registerConfig;
18422
a06ab51f9196 Add FrameMapBuilder.getCodeCache().
Josef Eisl <josef.eisl@jku.at>
parents: 18421
diff changeset
53 this.codeCache = codeCache;
18457
6c7efa29b626 DelayedFrameMapBuilder: remove FrameMapFactory.
Josef Eisl <josef.eisl@jku.at>
parents: 18456
diff changeset
54 this.frameMap = frameMap;
18429
79268cfc256a StackSlot is no longer a VirtualStackSlot (rename ForwardingFrameMapBuilder to DelayedFrameMapBuilder).
Josef Eisl <josef.eisl@jku.at>
parents: 18428
diff changeset
55 this.stackSlots = new ArrayList<>();
79268cfc256a StackSlot is no longer a VirtualStackSlot (rename ForwardingFrameMapBuilder to DelayedFrameMapBuilder).
Josef Eisl <josef.eisl@jku.at>
parents: 18428
diff changeset
56 this.calls = new ArrayList<>();
18469
d68ab3959fec Remove static id from VirtualStackSlot.
Josef Eisl <josef.eisl@jku.at>
parents: 18461
diff changeset
57 this.numStackSlots = 0;
18155
115c9fac7542 Move FrameMapBuilderImpl to com.oracle.graal.lir.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
58 }
115c9fac7542 Move FrameMapBuilderImpl to com.oracle.graal.lir.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
59
18426
b2b37b36a254 Move freeSpillSlot() from FrameMap to ForwardingFrameMapBuilder.
Josef Eisl <josef.eisl@jku.at>
parents: 18425
diff changeset
60 public VirtualStackSlot allocateSpillSlot(LIRKind kind) {
18469
d68ab3959fec Remove static id from VirtualStackSlot.
Josef Eisl <josef.eisl@jku.at>
parents: 18461
diff changeset
61 SimpleVirtualStackSlot slot = new SimpleVirtualStackSlot(numStackSlots++, kind);
18429
79268cfc256a StackSlot is no longer a VirtualStackSlot (rename ForwardingFrameMapBuilder to DelayedFrameMapBuilder).
Josef Eisl <josef.eisl@jku.at>
parents: 18428
diff changeset
62 stackSlots.add(slot);
79268cfc256a StackSlot is no longer a VirtualStackSlot (rename ForwardingFrameMapBuilder to DelayedFrameMapBuilder).
Josef Eisl <josef.eisl@jku.at>
parents: 18428
diff changeset
63 return slot;
79268cfc256a StackSlot is no longer a VirtualStackSlot (rename ForwardingFrameMapBuilder to DelayedFrameMapBuilder).
Josef Eisl <josef.eisl@jku.at>
parents: 18428
diff changeset
64 }
79268cfc256a StackSlot is no longer a VirtualStackSlot (rename ForwardingFrameMapBuilder to DelayedFrameMapBuilder).
Josef Eisl <josef.eisl@jku.at>
parents: 18428
diff changeset
65
18428
0826409daa24 Use VirtualStackSlot for outObjectStackSlots in FrameMapBuilder.allocateStackSlots().
Josef Eisl <josef.eisl@jku.at>
parents: 18427
diff changeset
66 public VirtualStackSlot allocateStackSlots(int slots, BitSet objects, List<VirtualStackSlot> outObjectStackSlots) {
18427
9bf59aa9d8c6 Move allocateStackSlots logic from FrameMap to ForwardingFrameMapBuilder.
Josef Eisl <josef.eisl@jku.at>
parents: 18426
diff changeset
67 if (slots == 0) {
9bf59aa9d8c6 Move allocateStackSlots logic from FrameMap to ForwardingFrameMapBuilder.
Josef Eisl <josef.eisl@jku.at>
parents: 18426
diff changeset
68 return null;
9bf59aa9d8c6 Move allocateStackSlots logic from FrameMap to ForwardingFrameMapBuilder.
Josef Eisl <josef.eisl@jku.at>
parents: 18426
diff changeset
69 }
18429
79268cfc256a StackSlot is no longer a VirtualStackSlot (rename ForwardingFrameMapBuilder to DelayedFrameMapBuilder).
Josef Eisl <josef.eisl@jku.at>
parents: 18428
diff changeset
70 if (outObjectStackSlots != null) {
79268cfc256a StackSlot is no longer a VirtualStackSlot (rename ForwardingFrameMapBuilder to DelayedFrameMapBuilder).
Josef Eisl <josef.eisl@jku.at>
parents: 18428
diff changeset
71 throw GraalInternalError.unimplemented();
18427
9bf59aa9d8c6 Move allocateStackSlots logic from FrameMap to ForwardingFrameMapBuilder.
Josef Eisl <josef.eisl@jku.at>
parents: 18426
diff changeset
72 }
18469
d68ab3959fec Remove static id from VirtualStackSlot.
Josef Eisl <josef.eisl@jku.at>
parents: 18461
diff changeset
73 VirtualStackSlotRange slot = new VirtualStackSlotRange(numStackSlots++, slots, objects);
18429
79268cfc256a StackSlot is no longer a VirtualStackSlot (rename ForwardingFrameMapBuilder to DelayedFrameMapBuilder).
Josef Eisl <josef.eisl@jku.at>
parents: 18428
diff changeset
74 stackSlots.add(slot);
79268cfc256a StackSlot is no longer a VirtualStackSlot (rename ForwardingFrameMapBuilder to DelayedFrameMapBuilder).
Josef Eisl <josef.eisl@jku.at>
parents: 18428
diff changeset
75 return slot;
18155
115c9fac7542 Move FrameMapBuilderImpl to com.oracle.graal.lir.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
76 }
115c9fac7542 Move FrameMapBuilderImpl to com.oracle.graal.lir.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
77
115c9fac7542 Move FrameMapBuilderImpl to com.oracle.graal.lir.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
78 public RegisterConfig getRegisterConfig() {
115c9fac7542 Move FrameMapBuilderImpl to com.oracle.graal.lir.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
79 return registerConfig;
115c9fac7542 Move FrameMapBuilderImpl to com.oracle.graal.lir.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
80 }
115c9fac7542 Move FrameMapBuilderImpl to com.oracle.graal.lir.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
81
18422
a06ab51f9196 Add FrameMapBuilder.getCodeCache().
Josef Eisl <josef.eisl@jku.at>
parents: 18421
diff changeset
82 public CodeCacheProvider getCodeCache() {
a06ab51f9196 Add FrameMapBuilder.getCodeCache().
Josef Eisl <josef.eisl@jku.at>
parents: 18421
diff changeset
83 return codeCache;
a06ab51f9196 Add FrameMapBuilder.getCodeCache().
Josef Eisl <josef.eisl@jku.at>
parents: 18421
diff changeset
84 }
a06ab51f9196 Add FrameMapBuilder.getCodeCache().
Josef Eisl <josef.eisl@jku.at>
parents: 18421
diff changeset
85
18469
d68ab3959fec Remove static id from VirtualStackSlot.
Josef Eisl <josef.eisl@jku.at>
parents: 18461
diff changeset
86 /**
d68ab3959fec Remove static id from VirtualStackSlot.
Josef Eisl <josef.eisl@jku.at>
parents: 18461
diff changeset
87 * Returns the number of {@link VirtualStackSlot}s created by this {@link FrameMapBuilder}. Can
d68ab3959fec Remove static id from VirtualStackSlot.
Josef Eisl <josef.eisl@jku.at>
parents: 18461
diff changeset
88 * be used as an upper bound for an array indexed by {@link VirtualStackSlot#getId()}.
d68ab3959fec Remove static id from VirtualStackSlot.
Josef Eisl <josef.eisl@jku.at>
parents: 18461
diff changeset
89 */
d68ab3959fec Remove static id from VirtualStackSlot.
Josef Eisl <josef.eisl@jku.at>
parents: 18461
diff changeset
90 public int getNumberOfStackSlots() {
d68ab3959fec Remove static id from VirtualStackSlot.
Josef Eisl <josef.eisl@jku.at>
parents: 18461
diff changeset
91 return numStackSlots;
d68ab3959fec Remove static id from VirtualStackSlot.
Josef Eisl <josef.eisl@jku.at>
parents: 18461
diff changeset
92 }
d68ab3959fec Remove static id from VirtualStackSlot.
Josef Eisl <josef.eisl@jku.at>
parents: 18461
diff changeset
93
18155
115c9fac7542 Move FrameMapBuilderImpl to com.oracle.graal.lir.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
94 public void callsMethod(CallingConvention cc) {
18429
79268cfc256a StackSlot is no longer a VirtualStackSlot (rename ForwardingFrameMapBuilder to DelayedFrameMapBuilder).
Josef Eisl <josef.eisl@jku.at>
parents: 18428
diff changeset
95 calls.add(cc);
18155
115c9fac7542 Move FrameMapBuilderImpl to com.oracle.graal.lir.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
96 }
115c9fac7542 Move FrameMapBuilderImpl to com.oracle.graal.lir.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
97
18423
c656c5772cfa Pass LIRGenerationResult to FrameMapBuilder.buildFrameMap().
Josef Eisl <josef.eisl@jku.at>
parents: 18422
diff changeset
98 public FrameMap buildFrameMap(LIRGenerationResult res) {
18459
632e7c384aea Replace FrameMappingToolImpl by SimpleStackSlotAllocator.
Josef Eisl <josef.eisl@jku.at>
parents: 18458
diff changeset
99 FrameMappingTool mapper = new SimpleStackSlotAllocator().allocateStackSlots(this);
18429
79268cfc256a StackSlot is no longer a VirtualStackSlot (rename ForwardingFrameMapBuilder to DelayedFrameMapBuilder).
Josef Eisl <josef.eisl@jku.at>
parents: 18428
diff changeset
100 for (CallingConvention cc : calls) {
79268cfc256a StackSlot is no longer a VirtualStackSlot (rename ForwardingFrameMapBuilder to DelayedFrameMapBuilder).
Josef Eisl <josef.eisl@jku.at>
parents: 18428
diff changeset
101 frameMap.callsMethod(cc);
79268cfc256a StackSlot is no longer a VirtualStackSlot (rename ForwardingFrameMapBuilder to DelayedFrameMapBuilder).
Josef Eisl <josef.eisl@jku.at>
parents: 18428
diff changeset
102 }
19020
312cf5a0376e Remove FrameMapBuilder.requireMapping() (only LIR needs to be updated).
Josef Eisl <josef.eisl@jku.at>
parents: 18469
diff changeset
103 // update LIR
312cf5a0376e Remove FrameMapBuilder.requireMapping() (only LIR needs to be updated).
Josef Eisl <josef.eisl@jku.at>
parents: 18469
diff changeset
104 try (Scope scope = Debug.scope("StackSlotMappingLIR")) {
312cf5a0376e Remove FrameMapBuilder.requireMapping() (only LIR needs to be updated).
Josef Eisl <josef.eisl@jku.at>
parents: 18469
diff changeset
105 ValueProcedure updateProc = (value, mode, flags) -> {
312cf5a0376e Remove FrameMapBuilder.requireMapping() (only LIR needs to be updated).
Josef Eisl <josef.eisl@jku.at>
parents: 18469
diff changeset
106 if (isVirtualStackSlot(value)) {
312cf5a0376e Remove FrameMapBuilder.requireMapping() (only LIR needs to be updated).
Josef Eisl <josef.eisl@jku.at>
parents: 18469
diff changeset
107 StackSlot stackSlot = mapper.getStackSlot(asVirtualStackSlot(value));
312cf5a0376e Remove FrameMapBuilder.requireMapping() (only LIR needs to be updated).
Josef Eisl <josef.eisl@jku.at>
parents: 18469
diff changeset
108 Debug.log("map %s -> %s", value, stackSlot);
312cf5a0376e Remove FrameMapBuilder.requireMapping() (only LIR needs to be updated).
Josef Eisl <josef.eisl@jku.at>
parents: 18469
diff changeset
109 return stackSlot;
312cf5a0376e Remove FrameMapBuilder.requireMapping() (only LIR needs to be updated).
Josef Eisl <josef.eisl@jku.at>
parents: 18469
diff changeset
110 }
312cf5a0376e Remove FrameMapBuilder.requireMapping() (only LIR needs to be updated).
Josef Eisl <josef.eisl@jku.at>
parents: 18469
diff changeset
111 return value;
312cf5a0376e Remove FrameMapBuilder.requireMapping() (only LIR needs to be updated).
Josef Eisl <josef.eisl@jku.at>
parents: 18469
diff changeset
112 };
312cf5a0376e Remove FrameMapBuilder.requireMapping() (only LIR needs to be updated).
Josef Eisl <josef.eisl@jku.at>
parents: 18469
diff changeset
113 for (AbstractBlock<?> block : res.getLIR().getControlFlowGraph().getBlocks()) {
312cf5a0376e Remove FrameMapBuilder.requireMapping() (only LIR needs to be updated).
Josef Eisl <josef.eisl@jku.at>
parents: 18469
diff changeset
114 try (Indent indent0 = Debug.logAndIndent("block: %s", block)) {
312cf5a0376e Remove FrameMapBuilder.requireMapping() (only LIR needs to be updated).
Josef Eisl <josef.eisl@jku.at>
parents: 18469
diff changeset
115 for (LIRInstruction inst : res.getLIR().getLIRforBlock(block)) {
312cf5a0376e Remove FrameMapBuilder.requireMapping() (only LIR needs to be updated).
Josef Eisl <josef.eisl@jku.at>
parents: 18469
diff changeset
116 try (Indent indent1 = Debug.logAndIndent("Inst: %d: %s", inst.id(), inst)) {
312cf5a0376e Remove FrameMapBuilder.requireMapping() (only LIR needs to be updated).
Josef Eisl <josef.eisl@jku.at>
parents: 18469
diff changeset
117 inst.forEachAlive(updateProc);
312cf5a0376e Remove FrameMapBuilder.requireMapping() (only LIR needs to be updated).
Josef Eisl <josef.eisl@jku.at>
parents: 18469
diff changeset
118 inst.forEachInput(updateProc);
312cf5a0376e Remove FrameMapBuilder.requireMapping() (only LIR needs to be updated).
Josef Eisl <josef.eisl@jku.at>
parents: 18469
diff changeset
119 inst.forEachOutput(updateProc);
312cf5a0376e Remove FrameMapBuilder.requireMapping() (only LIR needs to be updated).
Josef Eisl <josef.eisl@jku.at>
parents: 18469
diff changeset
120 inst.forEachTemp(updateProc);
312cf5a0376e Remove FrameMapBuilder.requireMapping() (only LIR needs to be updated).
Josef Eisl <josef.eisl@jku.at>
parents: 18469
diff changeset
121 inst.forEachState(updateProc);
312cf5a0376e Remove FrameMapBuilder.requireMapping() (only LIR needs to be updated).
Josef Eisl <josef.eisl@jku.at>
parents: 18469
diff changeset
122 }
312cf5a0376e Remove FrameMapBuilder.requireMapping() (only LIR needs to be updated).
Josef Eisl <josef.eisl@jku.at>
parents: 18469
diff changeset
123 }
312cf5a0376e Remove FrameMapBuilder.requireMapping() (only LIR needs to be updated).
Josef Eisl <josef.eisl@jku.at>
parents: 18469
diff changeset
124 }
312cf5a0376e Remove FrameMapBuilder.requireMapping() (only LIR needs to be updated).
Josef Eisl <josef.eisl@jku.at>
parents: 18469
diff changeset
125 }
312cf5a0376e Remove FrameMapBuilder.requireMapping() (only LIR needs to be updated).
Josef Eisl <josef.eisl@jku.at>
parents: 18469
diff changeset
126 }
18442
758ecda76985 FrameMapBuilder: remove freeSpillSlot().
Josef Eisl <josef.eisl@jku.at>
parents: 18433
diff changeset
127
18155
115c9fac7542 Move FrameMapBuilderImpl to com.oracle.graal.lir.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
128 frameMap.finish();
115c9fac7542 Move FrameMapBuilderImpl to com.oracle.graal.lir.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
129 return frameMap;
115c9fac7542 Move FrameMapBuilderImpl to com.oracle.graal.lir.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
130 }
115c9fac7542 Move FrameMapBuilderImpl to com.oracle.graal.lir.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
131
18454
5af19da6fae5 DelayedFrameMapBuilder: remove TrackedVirtualStackSlot.
Josef Eisl <josef.eisl@jku.at>
parents: 18453
diff changeset
132 List<VirtualStackSlot> getStackSlots() {
18447
f933c2d7521b FrameBuilder: add FrameMappingToolImpl.
Josef Eisl <josef.eisl@jku.at>
parents: 18443
diff changeset
133 return stackSlots;
f933c2d7521b FrameBuilder: add FrameMappingToolImpl.
Josef Eisl <josef.eisl@jku.at>
parents: 18443
diff changeset
134 }
f933c2d7521b FrameBuilder: add FrameMappingToolImpl.
Josef Eisl <josef.eisl@jku.at>
parents: 18443
diff changeset
135
18163
c88ab4f1f04a re-enabled Checkstyle with the release of 6.0 that supports Java 8; fixed existing Checkstyle warnings
Doug Simon <doug.simon@oracle.com>
parents: 18155
diff changeset
136 }