annotate graal/com.oracle.graal.truffle.test/sl/TestIsCompilationConstant1.sl @ 19960:999430bcc941

Small fix for memory schedule verification. The begin node is not always the first node in the block if it is at the same time also the end node.
author Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
date Thu, 19 Mar 2015 15:38:33 +0100
parents 2834b4432586
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
17444
2834b4432586 Truffle: introduce CompilerDirectives.isCompilationConstant.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
1
2834b4432586 Truffle: introduce CompilerDirectives.isCompilationConstant.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
2
2834b4432586 Truffle: introduce CompilerDirectives.isCompilationConstant.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
3 function testConstantValue1() {
2834b4432586 Truffle: introduce CompilerDirectives.isCompilationConstant.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
4 return isCompilationConstant(42);
2834b4432586 Truffle: introduce CompilerDirectives.isCompilationConstant.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
5 }
2834b4432586 Truffle: introduce CompilerDirectives.isCompilationConstant.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
6
2834b4432586 Truffle: introduce CompilerDirectives.isCompilationConstant.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
7 function testConstantValue2() {
2834b4432586 Truffle: introduce CompilerDirectives.isCompilationConstant.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
8 return isCompilationConstant(21 + 21);
2834b4432586 Truffle: introduce CompilerDirectives.isCompilationConstant.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
9 }
2834b4432586 Truffle: introduce CompilerDirectives.isCompilationConstant.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
10
2834b4432586 Truffle: introduce CompilerDirectives.isCompilationConstant.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
11 function testConstantSequence() {
2834b4432586 Truffle: introduce CompilerDirectives.isCompilationConstant.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
12 40;
2834b4432586 Truffle: introduce CompilerDirectives.isCompilationConstant.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
13 return isCompilationConstant(42);
2834b4432586 Truffle: introduce CompilerDirectives.isCompilationConstant.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
14 }
2834b4432586 Truffle: introduce CompilerDirectives.isCompilationConstant.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
15
2834b4432586 Truffle: introduce CompilerDirectives.isCompilationConstant.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
16 function testConstantLocalVariable() {
2834b4432586 Truffle: introduce CompilerDirectives.isCompilationConstant.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
17 x = 42;
2834b4432586 Truffle: introduce CompilerDirectives.isCompilationConstant.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
18 return isCompilationConstant(x);
2834b4432586 Truffle: introduce CompilerDirectives.isCompilationConstant.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
19 }
2834b4432586 Truffle: introduce CompilerDirectives.isCompilationConstant.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
20
2834b4432586 Truffle: introduce CompilerDirectives.isCompilationConstant.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
21 function testNonConstantAdd() {
2834b4432586 Truffle: introduce CompilerDirectives.isCompilationConstant.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
22 return isCompilationConstant(42 + "42");
2834b4432586 Truffle: introduce CompilerDirectives.isCompilationConstant.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
23 }
2834b4432586 Truffle: introduce CompilerDirectives.isCompilationConstant.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
24
2834b4432586 Truffle: introduce CompilerDirectives.isCompilationConstant.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
25
2834b4432586 Truffle: introduce CompilerDirectives.isCompilationConstant.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
26 function main() {
2834b4432586 Truffle: introduce CompilerDirectives.isCompilationConstant.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
27 callFunctionsWith("testConstant", harnessTrue);
2834b4432586 Truffle: introduce CompilerDirectives.isCompilationConstant.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
28 callFunctionsWith("testNonConstant", harnessFalse);
2834b4432586 Truffle: introduce CompilerDirectives.isCompilationConstant.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
29 }
2834b4432586 Truffle: introduce CompilerDirectives.isCompilationConstant.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
30
2834b4432586 Truffle: introduce CompilerDirectives.isCompilationConstant.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
31 function harnessTrue(testFunction) {
2834b4432586 Truffle: introduce CompilerDirectives.isCompilationConstant.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
32 callUntilOptimized(testFunction);
2834b4432586 Truffle: introduce CompilerDirectives.isCompilationConstant.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
33 assertTrue(testFunction(), "test function " + testFunction + " is not constant");
2834b4432586 Truffle: introduce CompilerDirectives.isCompilationConstant.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
34 }
2834b4432586 Truffle: introduce CompilerDirectives.isCompilationConstant.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
35
2834b4432586 Truffle: introduce CompilerDirectives.isCompilationConstant.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
36
2834b4432586 Truffle: introduce CompilerDirectives.isCompilationConstant.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
37 function harnessFalse(testFunction) {
2834b4432586 Truffle: introduce CompilerDirectives.isCompilationConstant.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
38 callUntilOptimized(testFunction);
2834b4432586 Truffle: introduce CompilerDirectives.isCompilationConstant.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
39 assertFalse(testFunction(), "test function " + testFunction + " is constant");
2834b4432586 Truffle: introduce CompilerDirectives.isCompilationConstant.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
40 }