Mercurial > hg > graal-jvmci-8
changeset 20896:d689979bf956
Avoid creating a new lambda object for every FloatConvertNode
author | Christian Wimmer <christian.wimmer@oracle.com> |
---|---|
date | Sat, 11 Apr 2015 00:14:29 -0700 |
parents | 2818f2862a0d |
children | 231597f3bbbe |
files | graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/FloatConvertNode.java |
diffstat | 1 files changed, 11 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/FloatConvertNode.java Sat Apr 11 00:12:10 2015 -0700 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/FloatConvertNode.java Sat Apr 11 00:14:29 2015 -0700 @@ -22,6 +22,8 @@ */ package com.oracle.graal.nodes.calc; +import java.util.*; + import com.oracle.graal.api.meta.*; import com.oracle.graal.compiler.common.calc.*; import com.oracle.graal.compiler.common.type.*; @@ -43,8 +45,16 @@ protected final FloatConvert op; + private static final EnumMap<FloatConvert, SerializableUnaryFunction<FloatConvertOp>> getOps; + static { + getOps = new EnumMap<>(FloatConvert.class); + for (FloatConvert op : FloatConvert.values()) { + getOps.put(op, table -> table.getFloatConvert(op)); + } + } + public FloatConvertNode(FloatConvert op, ValueNode input) { - super(TYPE, table -> table.getFloatConvert(op), input); + super(TYPE, getOps.get(op), input); this.op = op; }