Mercurial > hg > truffle
annotate graal/com.oracle.graal.lir/src/com/oracle/graal/lir/phases/LIRSuites.java @ 19270:292442bed972
Rename LowLevelSuites to LIRSuites.
author | Josef Eisl <josef.eisl@jku.at> |
---|---|
date | Wed, 11 Feb 2015 15:22:53 +0100 |
parents | graal/com.oracle.graal.lir/src/com/oracle/graal/lir/phases/LowLevelSuites.java@08d6cbe5821a |
children | 421a2bf6dc44 |
rev | line source |
---|---|
19230 | 1 /* |
2 * Copyright (c) 2015, 2015, Oracle and/or its affiliates. All rights reserved. | |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. | |
4 * | |
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 | |
7 * published by the Free Software Foundation. | |
8 * | |
9 * This code is distributed in the hope that it will be useful, but WITHOUT | |
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | |
12 * version 2 for more details (a copy is included in the LICENSE file that | |
13 * accompanied this code). | |
14 * | |
15 * You should have received a copy of the GNU General Public License version | |
16 * 2 along with this work; if not, write to the Free Software Foundation, | |
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. | |
18 * | |
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA | |
20 * or visit www.oracle.com if you need additional information or have any | |
21 * questions. | |
22 */ | |
23 package com.oracle.graal.lir.phases; | |
24 | |
19268
08d6cbe5821a
LowLevelSuites: document the capabilities of the different tiers.
Josef Eisl <josef.eisl@jku.at>
parents:
19230
diff
changeset
|
25 import com.oracle.graal.api.code.*; |
08d6cbe5821a
LowLevelSuites: document the capabilities of the different tiers.
Josef Eisl <josef.eisl@jku.at>
parents:
19230
diff
changeset
|
26 import com.oracle.graal.lir.*; |
08d6cbe5821a
LowLevelSuites: document the capabilities of the different tiers.
Josef Eisl <josef.eisl@jku.at>
parents:
19230
diff
changeset
|
27 import com.oracle.graal.lir.gen.*; |
19230 | 28 import com.oracle.graal.lir.phases.LowLevelHighTierPhase.LowLevelHighTierContext; |
29 import com.oracle.graal.lir.phases.LowLevelLowTierPhase.LowLevelLowTierContext; | |
30 import com.oracle.graal.lir.phases.LowLevelMidTierPhase.LowLevelMidTierContext; | |
31 | |
19270
292442bed972
Rename LowLevelSuites to LIRSuites.
Josef Eisl <josef.eisl@jku.at>
parents:
19268
diff
changeset
|
32 public class LIRSuites { |
19230 | 33 |
34 private final LowLevelPhaseSuite<LowLevelHighTierContext> highTier; | |
35 private final LowLevelPhaseSuite<LowLevelMidTierContext> midTier; | |
36 private final LowLevelPhaseSuite<LowLevelLowTierContext> lowTier; | |
37 | |
19270
292442bed972
Rename LowLevelSuites to LIRSuites.
Josef Eisl <josef.eisl@jku.at>
parents:
19268
diff
changeset
|
38 public LIRSuites(LowLevelPhaseSuite<LowLevelHighTierContext> highTier, LowLevelPhaseSuite<LowLevelMidTierContext> midTier, LowLevelPhaseSuite<LowLevelLowTierContext> lowTier) { |
19230 | 39 this.highTier = highTier; |
40 this.midTier = midTier; | |
41 this.lowTier = lowTier; | |
42 } | |
43 | |
19268
08d6cbe5821a
LowLevelSuites: document the capabilities of the different tiers.
Josef Eisl <josef.eisl@jku.at>
parents:
19230
diff
changeset
|
44 /** |
08d6cbe5821a
LowLevelSuites: document the capabilities of the different tiers.
Josef Eisl <josef.eisl@jku.at>
parents:
19230
diff
changeset
|
45 * {@link LowLevelHighTierPhase}s are executed between {@link LIR} generation and register |
08d6cbe5821a
LowLevelSuites: document the capabilities of the different tiers.
Josef Eisl <josef.eisl@jku.at>
parents:
19230
diff
changeset
|
46 * allocation. |
08d6cbe5821a
LowLevelSuites: document the capabilities of the different tiers.
Josef Eisl <josef.eisl@jku.at>
parents:
19230
diff
changeset
|
47 * <p> |
08d6cbe5821a
LowLevelSuites: document the capabilities of the different tiers.
Josef Eisl <josef.eisl@jku.at>
parents:
19230
diff
changeset
|
48 * {@link LowLevelHighTierPhase Implementers} can create new |
08d6cbe5821a
LowLevelSuites: document the capabilities of the different tiers.
Josef Eisl <josef.eisl@jku.at>
parents:
19230
diff
changeset
|
49 * {@link LIRGeneratorTool#newVariable variables}, {@link LIRGenerationResult#getFrameMap stack |
08d6cbe5821a
LowLevelSuites: document the capabilities of the different tiers.
Josef Eisl <josef.eisl@jku.at>
parents:
19230
diff
changeset
|
50 * slots} and {@link LIRGenerationResult#getFrameMapBuilder virtual stack slots}. |
08d6cbe5821a
LowLevelSuites: document the capabilities of the different tiers.
Josef Eisl <josef.eisl@jku.at>
parents:
19230
diff
changeset
|
51 */ |
19230 | 52 public LowLevelPhaseSuite<LowLevelHighTierContext> getHighTier() { |
53 return highTier; | |
54 } | |
55 | |
19268
08d6cbe5821a
LowLevelSuites: document the capabilities of the different tiers.
Josef Eisl <josef.eisl@jku.at>
parents:
19230
diff
changeset
|
56 /** |
08d6cbe5821a
LowLevelSuites: document the capabilities of the different tiers.
Josef Eisl <josef.eisl@jku.at>
parents:
19230
diff
changeset
|
57 * {@link LowLevelMidTierPhase}s are responsible for register allocation and translating |
08d6cbe5821a
LowLevelSuites: document the capabilities of the different tiers.
Josef Eisl <josef.eisl@jku.at>
parents:
19230
diff
changeset
|
58 * {@link VirtualStackSlot}s into {@link StackSlot}s. |
08d6cbe5821a
LowLevelSuites: document the capabilities of the different tiers.
Josef Eisl <josef.eisl@jku.at>
parents:
19230
diff
changeset
|
59 * <p> |
08d6cbe5821a
LowLevelSuites: document the capabilities of the different tiers.
Josef Eisl <josef.eisl@jku.at>
parents:
19230
diff
changeset
|
60 * After the {@link LowLevelMidTier} there should be no more {@link Variable}s and |
08d6cbe5821a
LowLevelSuites: document the capabilities of the different tiers.
Josef Eisl <josef.eisl@jku.at>
parents:
19230
diff
changeset
|
61 * {@link VirtualStackSlot}s. |
08d6cbe5821a
LowLevelSuites: document the capabilities of the different tiers.
Josef Eisl <josef.eisl@jku.at>
parents:
19230
diff
changeset
|
62 */ |
19230 | 63 public LowLevelPhaseSuite<LowLevelMidTierContext> getMidTier() { |
64 return midTier; | |
65 } | |
66 | |
19268
08d6cbe5821a
LowLevelSuites: document the capabilities of the different tiers.
Josef Eisl <josef.eisl@jku.at>
parents:
19230
diff
changeset
|
67 /** |
08d6cbe5821a
LowLevelSuites: document the capabilities of the different tiers.
Josef Eisl <josef.eisl@jku.at>
parents:
19230
diff
changeset
|
68 * {@link LowLevelLowTierPhase}s are executed after register allocation and before machine code |
08d6cbe5821a
LowLevelSuites: document the capabilities of the different tiers.
Josef Eisl <josef.eisl@jku.at>
parents:
19230
diff
changeset
|
69 * generation. |
08d6cbe5821a
LowLevelSuites: document the capabilities of the different tiers.
Josef Eisl <josef.eisl@jku.at>
parents:
19230
diff
changeset
|
70 * <p> |
08d6cbe5821a
LowLevelSuites: document the capabilities of the different tiers.
Josef Eisl <josef.eisl@jku.at>
parents:
19230
diff
changeset
|
71 * A {@link LowLevelLowTierPhase} must not introduce new {@link Variable}s, |
08d6cbe5821a
LowLevelSuites: document the capabilities of the different tiers.
Josef Eisl <josef.eisl@jku.at>
parents:
19230
diff
changeset
|
72 * {@link VirtualStackSlot}s or {@link StackSlot}s. |
08d6cbe5821a
LowLevelSuites: document the capabilities of the different tiers.
Josef Eisl <josef.eisl@jku.at>
parents:
19230
diff
changeset
|
73 */ |
19230 | 74 public LowLevelPhaseSuite<LowLevelLowTierContext> getLowTier() { |
75 return lowTier; | |
76 } | |
77 | |
78 } |