Mercurial > hg > truffle
comparison truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/generator/NodeGenFactory.java @ 22157:dc83cc1f94f2
Using fully qualified imports
author | Jaroslav Tulach <jaroslav.tulach@oracle.com> |
---|---|
date | Wed, 16 Sep 2015 11:33:22 +0200 |
parents | 5bc7f7b867ab |
children | a619835e6709 |
comparison
equal
deleted
inserted
replaced
22156:50056a161d7f | 22157:dc83cc1f94f2 |
---|---|
20 * or visit www.oracle.com if you need additional information or have any | 20 * or visit www.oracle.com if you need additional information or have any |
21 * questions. | 21 * questions. |
22 */ | 22 */ |
23 package com.oracle.truffle.dsl.processor.generator; | 23 package com.oracle.truffle.dsl.processor.generator; |
24 | 24 |
25 import static com.oracle.truffle.dsl.processor.generator.GeneratorUtils.*; | 25 import com.oracle.truffle.api.CompilerDirectives; |
26 import static com.oracle.truffle.dsl.processor.java.ElementUtils.*; | |
27 import static javax.lang.model.element.Modifier.*; | |
28 | |
29 import java.util.*; | |
30 | |
31 import javax.lang.model.element.*; | |
32 import javax.lang.model.type.*; | |
33 import javax.lang.model.util.*; | |
34 | |
35 import com.oracle.truffle.api.*; | |
36 import com.oracle.truffle.api.CompilerDirectives.CompilationFinal; | 26 import com.oracle.truffle.api.CompilerDirectives.CompilationFinal; |
37 import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary; | 27 import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary; |
38 import com.oracle.truffle.api.dsl.*; | 28 import com.oracle.truffle.api.dsl.Cached; |
39 import com.oracle.truffle.api.dsl.internal.*; | 29 import com.oracle.truffle.api.dsl.UnsupportedSpecializationException; |
30 import com.oracle.truffle.api.dsl.internal.DSLOptions; | |
40 import com.oracle.truffle.api.dsl.internal.DSLOptions.ImplicitCastOptimization; | 31 import com.oracle.truffle.api.dsl.internal.DSLOptions.ImplicitCastOptimization; |
41 import com.oracle.truffle.api.dsl.internal.DSLOptions.TypeBoxingOptimization; | 32 import com.oracle.truffle.api.dsl.internal.DSLOptions.TypeBoxingOptimization; |
42 import com.oracle.truffle.api.frame.*; | 33 import com.oracle.truffle.api.dsl.internal.SpecializationNode; |
43 import com.oracle.truffle.api.nodes.*; | 34 import com.oracle.truffle.api.dsl.internal.SpecializedNode; |
35 import com.oracle.truffle.api.dsl.internal.SuppressFBWarnings; | |
36 import com.oracle.truffle.api.frame.Frame; | |
37 import com.oracle.truffle.api.nodes.InvalidAssumptionException; | |
38 import com.oracle.truffle.api.nodes.Node; | |
44 import com.oracle.truffle.api.nodes.Node.Child; | 39 import com.oracle.truffle.api.nodes.Node.Child; |
45 import com.oracle.truffle.api.nodes.Node.Children; | 40 import com.oracle.truffle.api.nodes.Node.Children; |
46 import com.oracle.truffle.dsl.processor.*; | 41 import com.oracle.truffle.api.nodes.NodeCost; |
47 import com.oracle.truffle.dsl.processor.expression.*; | 42 import com.oracle.truffle.api.nodes.UnexpectedResultException; |
43 import com.oracle.truffle.dsl.processor.ProcessorContext; | |
44 import com.oracle.truffle.dsl.processor.expression.DSLExpression; | |
48 import com.oracle.truffle.dsl.processor.expression.DSLExpression.Variable; | 45 import com.oracle.truffle.dsl.processor.expression.DSLExpression.Variable; |
49 import com.oracle.truffle.dsl.processor.java.*; | 46 import static com.oracle.truffle.dsl.processor.generator.GeneratorUtils.createClass; |
50 import com.oracle.truffle.dsl.processor.java.model.*; | 47 import static com.oracle.truffle.dsl.processor.generator.GeneratorUtils.createTransferToInterpreterAndInvalidate; |
48 import static com.oracle.truffle.dsl.processor.generator.GeneratorUtils.isTypeBoxingOptimized; | |
49 import com.oracle.truffle.dsl.processor.java.ElementUtils; | |
50 import static com.oracle.truffle.dsl.processor.java.ElementUtils.compareType; | |
51 import static com.oracle.truffle.dsl.processor.java.ElementUtils.fromTypeMirror; | |
52 import static com.oracle.truffle.dsl.processor.java.ElementUtils.getTypeId; | |
53 import static com.oracle.truffle.dsl.processor.java.ElementUtils.isObject; | |
54 import static com.oracle.truffle.dsl.processor.java.ElementUtils.isSubtypeBoxed; | |
55 import static com.oracle.truffle.dsl.processor.java.ElementUtils.isVoid; | |
56 import static com.oracle.truffle.dsl.processor.java.ElementUtils.modifiers; | |
57 import static com.oracle.truffle.dsl.processor.java.ElementUtils.needsCastTo; | |
58 import static com.oracle.truffle.dsl.processor.java.ElementUtils.setVisibility; | |
59 import static com.oracle.truffle.dsl.processor.java.ElementUtils.typeEquals; | |
60 import com.oracle.truffle.dsl.processor.java.model.CodeAnnotationMirror; | |
61 import com.oracle.truffle.dsl.processor.java.model.CodeAnnotationValue; | |
62 import com.oracle.truffle.dsl.processor.java.model.CodeExecutableElement; | |
63 import com.oracle.truffle.dsl.processor.java.model.CodeNames; | |
64 import com.oracle.truffle.dsl.processor.java.model.CodeTree; | |
65 import com.oracle.truffle.dsl.processor.java.model.CodeTreeBuilder; | |
66 import com.oracle.truffle.dsl.processor.java.model.CodeTypeElement; | |
51 import com.oracle.truffle.dsl.processor.java.model.CodeTypeMirror.ArrayCodeTypeMirror; | 67 import com.oracle.truffle.dsl.processor.java.model.CodeTypeMirror.ArrayCodeTypeMirror; |
52 import com.oracle.truffle.dsl.processor.model.*; | 68 import com.oracle.truffle.dsl.processor.java.model.CodeVariableElement; |
53 import com.oracle.truffle.dsl.processor.parser.*; | 69 import com.oracle.truffle.dsl.processor.java.model.GeneratedTypeMirror; |
70 import com.oracle.truffle.dsl.processor.model.AssumptionExpression; | |
71 import com.oracle.truffle.dsl.processor.model.CacheExpression; | |
72 import com.oracle.truffle.dsl.processor.model.CreateCastData; | |
73 import com.oracle.truffle.dsl.processor.model.ExecutableTypeData; | |
74 import com.oracle.truffle.dsl.processor.model.GuardExpression; | |
75 import com.oracle.truffle.dsl.processor.model.ImplicitCastData; | |
76 import com.oracle.truffle.dsl.processor.model.NodeChildData; | |
77 import com.oracle.truffle.dsl.processor.model.NodeData; | |
78 import com.oracle.truffle.dsl.processor.model.NodeExecutionData; | |
79 import com.oracle.truffle.dsl.processor.model.NodeFieldData; | |
80 import com.oracle.truffle.dsl.processor.model.Parameter; | |
81 import com.oracle.truffle.dsl.processor.model.ShortCircuitData; | |
82 import com.oracle.truffle.dsl.processor.model.SpecializationData; | |
83 import com.oracle.truffle.dsl.processor.model.TemplateMethod; | |
84 import com.oracle.truffle.dsl.processor.model.TypeSystemData; | |
85 import com.oracle.truffle.dsl.processor.parser.SpecializationGroup; | |
54 import com.oracle.truffle.dsl.processor.parser.SpecializationGroup.TypeGuard; | 86 import com.oracle.truffle.dsl.processor.parser.SpecializationGroup.TypeGuard; |
87 import java.util.ArrayList; | |
88 import java.util.Arrays; | |
89 import java.util.Collection; | |
90 import java.util.Collections; | |
91 import java.util.Comparator; | |
92 import java.util.HashMap; | |
93 import java.util.HashSet; | |
94 import java.util.LinkedHashMap; | |
95 import java.util.List; | |
96 import java.util.ListIterator; | |
97 import java.util.Map; | |
98 import java.util.Objects; | |
99 import java.util.Set; | |
100 import javax.lang.model.element.Element; | |
101 import javax.lang.model.element.ExecutableElement; | |
102 import javax.lang.model.element.Modifier; | |
103 import static javax.lang.model.element.Modifier.ABSTRACT; | |
104 import static javax.lang.model.element.Modifier.FINAL; | |
105 import static javax.lang.model.element.Modifier.PRIVATE; | |
106 import static javax.lang.model.element.Modifier.PROTECTED; | |
107 import static javax.lang.model.element.Modifier.PUBLIC; | |
108 import static javax.lang.model.element.Modifier.STATIC; | |
109 import javax.lang.model.element.TypeElement; | |
110 import javax.lang.model.element.VariableElement; | |
111 import javax.lang.model.type.ArrayType; | |
112 import javax.lang.model.type.DeclaredType; | |
113 import javax.lang.model.type.TypeMirror; | |
114 import javax.lang.model.util.ElementFilter; | |
55 | 115 |
56 public class NodeGenFactory { | 116 public class NodeGenFactory { |
57 | 117 |
58 private static final String FRAME_VALUE = TemplateMethod.FRAME_NAME; | 118 private static final String FRAME_VALUE = TemplateMethod.FRAME_NAME; |
59 private static final String NAME_SUFFIX = "_"; | 119 private static final String NAME_SUFFIX = "_"; |