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