Skip to content
Snippets Groups Projects
Commit 16cc431b authored by Lukas Stadler's avatar Lukas Stadler
Browse files

additional profile in Vector

parent 79edf93b
No related branches found
No related tags found
No related merge requests found
......@@ -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);
}
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment