comparison graal/com.oracle.truffle.codegen.processor/src/com/oracle/truffle/codegen/processor/node/SpecializationData.java @ 7751:ef1b41ea0a90

Implemented an option to turn off generated generic generation using specializations in @Generic.
author Christian Humer <christian.humer@gmail.com>
date Fri, 08 Feb 2013 16:07:33 +0100
parents 6343a09b2ec1
children 06a7cd6aaf00
comparison
equal deleted inserted replaced
7750:bdcb3cc47e16 7751:ef1b41ea0a90
31 private final boolean generic; 31 private final boolean generic;
32 private final boolean uninitialized; 32 private final boolean uninitialized;
33 private final SpecializationThrowsData[] exceptions; 33 private final SpecializationThrowsData[] exceptions;
34 private SpecializationGuardData[] guards; 34 private SpecializationGuardData[] guards;
35 private ShortCircuitData[] shortCircuits; 35 private ShortCircuitData[] shortCircuits;
36 36 private boolean useSpecializationsForGeneric = true;
37 private NodeData node; 37 private NodeData node;
38 38
39 public SpecializationData(TemplateMethod template, int order, SpecializationThrowsData[] exceptions) { 39 public SpecializationData(TemplateMethod template, int order, SpecializationThrowsData[] exceptions) {
40 super(template); 40 super(template);
41 this.order = order; 41 this.order = order;
95 95
96 public ShortCircuitData[] getShortCircuits() { 96 public ShortCircuitData[] getShortCircuits() {
97 return shortCircuits; 97 return shortCircuits;
98 } 98 }
99 99
100 void setUseSpecializationsForGeneric(boolean useSpecializationsForGeneric) {
101 this.useSpecializationsForGeneric = useSpecializationsForGeneric;
102 }
103
104 public boolean isUseSpecializationsForGeneric() {
105 return useSpecializationsForGeneric;
106 }
107
100 public SpecializationData findNextSpecialization() { 108 public SpecializationData findNextSpecialization() {
101 SpecializationData[] specializations = node.getSpecializations(); 109 SpecializationData[] specializations = node.getSpecializations();
102 for (int i = 0; i < specializations.length - 1; i++) { 110 for (int i = 0; i < specializations.length - 1; i++) {
103 if (specializations[i] == this) { 111 if (specializations[i] == this) {
104 return specializations[i + 1]; 112 return specializations[i + 1];