src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir/src/org/graalvm/compiler/lir/LIRIntrospection.java
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File
*** old/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir/src/org/graalvm/compiler/lir/LIRIntrospection.java Mon Mar 20 17:39:43 2017
--- new/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir/src/org/graalvm/compiler/lir/LIRIntrospection.java Mon Mar 20 17:39:43 2017
*** 30,48 ****
--- 30,48 ----
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.EnumSet;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import org.graalvm.compiler.core.common.FieldIntrospection;
import org.graalvm.compiler.core.common.Fields;
import org.graalvm.compiler.core.common.FieldsScanner;
import org.graalvm.compiler.lir.LIRInstruction.OperandFlag;
import org.graalvm.compiler.lir.LIRInstruction.OperandMode;
+ import org.graalvm.util.Equivalence;
+ import org.graalvm.util.EconomicMap;
+ import org.graalvm.util.MapCursor;
import jdk.vm.ci.code.RegisterValue;
import jdk.vm.ci.code.StackSlot;
import jdk.vm.ci.meta.Value;
*** 149,173 ****
--- 149,174 ----
public final ArrayList<ValueFieldInfo> values = new ArrayList<>();
}
protected abstract static class LIRFieldsScanner extends FieldsScanner {
! public final EconomicMap<Class<? extends Annotation>, OperandModeAnnotation> valueAnnotations;
public final ArrayList<FieldsScanner.FieldInfo> states = new ArrayList<>();
public LIRFieldsScanner(FieldsScanner.CalcOffset calc) {
super(calc);
! valueAnnotations = new HashMap<>();
! valueAnnotations = EconomicMap.create(Equivalence.DEFAULT);
}
protected OperandModeAnnotation getOperandModeAnnotation(Field field) {
OperandModeAnnotation result = null;
for (Entry<Class<? extends Annotation>, OperandModeAnnotation> entry : valueAnnotations.entrySet()) {
Annotation annotation = field.getAnnotation(entry.getKey());
+ MapCursor<Class<? extends Annotation>, OperandModeAnnotation> cursor = valueAnnotations.getEntries();
+ while (cursor.advance()) {
+ Annotation annotation = field.getAnnotation(cursor.getKey());
if (annotation != null) {
assert result == null : "Field has two operand mode annotations: " + field;
! result = entry.getValue();
! result = cursor.getValue();
}
}
return result;
}
src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir/src/org/graalvm/compiler/lir/LIRIntrospection.java
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File