From 1bd47865080394ed9ae84ac37f64a08f6e63878d Mon Sep 17 00:00:00 2001 From: Lukas Stadler <lukas.stadler@oracle.com> Date: Tue, 11 Nov 2014 14:42:00 +0100 Subject: [PATCH] direct array access in UnaryArithmeticReduceNode --- .../truffle/r/nodes/unary/UnaryArithmeticReduceNode.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/UnaryArithmeticReduceNode.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/UnaryArithmeticReduceNode.java index bc46cceb08..3caa924bf4 100644 --- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/UnaryArithmeticReduceNode.java +++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/UnaryArithmeticReduceNode.java @@ -188,8 +188,9 @@ public abstract class UnaryArithmeticReduceNode extends UnaryNode { int result = semantics.getIntStart(); na.enable(operand); int opCount = 0; + int[] data = operand.getDataWithoutCopying(); for (int i = 0; i < operand.getLength(); i++) { - int d = operand.getDataAt(i); + int d = data[i]; if (na.check(d)) { if (profiledNaRm) { continue; @@ -213,8 +214,9 @@ public abstract class UnaryArithmeticReduceNode extends UnaryNode { double result = semantics.getDoubleStart(); na.enable(operand); int opCount = 0; + double[] data = operand.getDataWithoutCopying(); for (int i = 0; i < operand.getLength(); i++) { - double d = operand.getDataAt(i); + double d = data[i]; if (na.check(d)) { if (profiledNaRm) { continue; @@ -238,8 +240,9 @@ public abstract class UnaryArithmeticReduceNode extends UnaryNode { int result = semantics.getIntStart(); na.enable(operand); int opCount = 0; + byte[] data = operand.getDataWithoutCopying(); for (int i = 0; i < operand.getLength(); i++) { - byte d = operand.getDataAt(i); + byte d = data[i]; if (na.check(d)) { if (profiledNaRm) { continue; -- GitLab