# HG changeset patch # User Christian Wimmer # Date 1428736469 25200 # Node ID d689979bf9567bc89d49dc158a68e03b1709c766 # Parent 2818f2862a0d036fdf3e54af5f21952d43047a7b Avoid creating a new lambda object for every FloatConvertNode diff -r 2818f2862a0d -r d689979bf956 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/FloatConvertNode.java --- 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> 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; }