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 = "_";