From 16cc431be0d1b2a08982b9e429b20d1ac313c61a Mon Sep 17 00:00:00 2001 From: Lukas Stadler <lukas.stadler@oracle.com> Date: Wed, 5 Nov 2014 18:18:40 +0100 Subject: [PATCH] additional profile in Vector --- .../src/com/oracle/truffle/r/nodes/builtin/base/Vector.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Vector.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Vector.java index a86cc41c07..3496b68623 100644 --- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Vector.java +++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Vector.java @@ -27,6 +27,7 @@ import static com.oracle.truffle.r.runtime.RBuiltinKind.*; import java.util.*; import com.oracle.truffle.api.dsl.*; +import com.oracle.truffle.api.utilities.*; import com.oracle.truffle.r.nodes.*; import com.oracle.truffle.r.nodes.access.*; import com.oracle.truffle.r.nodes.builtin.*; @@ -38,6 +39,8 @@ import com.oracle.truffle.r.runtime.data.model.*; @RBuiltin(name = "vector", kind = INTERNAL, parameterNames = {"mode", "length"}) public abstract class Vector extends RBuiltinNode { + private final ValueProfile modeProfile = ValueProfile.createIdentityProfile(); + @Override public RNode[] getParameterValues() { // mode = "logical", length = 0 @@ -54,7 +57,7 @@ public abstract class Vector extends RBuiltinNode { @Specialization protected RAbstractVector vector(String mode, int length) { controlVisibility(); - switch (mode) { + switch (modeProfile.profile(mode)) { case "character": return RDataFactory.createStringVector(length); case "logical": @@ -72,5 +75,4 @@ public abstract class Vector extends RBuiltinNode { throw RError.error(getEncapsulatingSourceSection(), RError.Message.CANNOT_MAKE_VECTOR_OF_MODE, mode); } } - } -- GitLab