# HG changeset patch # User Christian Wimmer # Date 1365807956 25200 # Node ID ed81c74f92ff3622283c93094f8cad3c19934b50 # Parent d766fd8eede09e4fede9e0a020d728c574ecce13 Cache boolean flags instead of full Annotation objects diff -r d766fd8eede0 -r ed81c74f92ff graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/SnippetTemplate.java --- a/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/SnippetTemplate.java Fri Apr 12 22:34:29 2013 +0200 +++ b/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/SnippetTemplate.java Fri Apr 12 16:05:56 2013 -0700 @@ -60,8 +60,8 @@ public static class SnippetInfo { protected final ResolvedJavaMethod method; - protected final ConstantParameter[] constantParameters; - protected final VarargsParameter[] varargsParameters; + protected final boolean[] constantParameters; + protected final boolean[] varargsParameters; /** * The parameter names, taken from the local variables table. Only used for assertion @@ -74,11 +74,11 @@ assert Modifier.isStatic(method.getModifiers()) : "snippet method must be static: " + MetaUtil.format("%H.%n", method); int count = method.getSignature().getParameterCount(false); - constantParameters = new ConstantParameter[count]; - varargsParameters = new VarargsParameter[count]; + constantParameters = new boolean[count]; + varargsParameters = new boolean[count]; for (int i = 0; i < count; i++) { - constantParameters[i] = MetaUtil.getParameterAnnotation(ConstantParameter.class, i, method); - varargsParameters[i] = MetaUtil.getParameterAnnotation(VarargsParameter.class, i, method); + constantParameters[i] = MetaUtil.getParameterAnnotation(ConstantParameter.class, i, method) != null; + varargsParameters[i] = MetaUtil.getParameterAnnotation(VarargsParameter.class, i, method) != null; assert !isConstantParameter(i) || !isVarargsParameter(i) : "Parameter cannot be annotated with both @" + ConstantParameter.class.getSimpleName() + " and @" + VarargsParameter.class.getSimpleName(); @@ -109,11 +109,11 @@ } public boolean isConstantParameter(int paramIdx) { - return constantParameters[paramIdx] != null; + return constantParameters[paramIdx]; } public boolean isVarargsParameter(int paramIdx) { - return varargsParameters[paramIdx] != null; + return varargsParameters[paramIdx]; } }