annotate test/compiler/6636138/Test1.java @ 3011:f00918f35c7f

inlining and runtime interface related changes: added codeSize() and compilerStorage() to RiMethod HotSpotMethodResolved uses reflective methods instead of vmIds and survives compilations HotSpotResolvedType.isInitialized not represented as field (can change) inlining stores graphs into method objects and reuses them
author Lukas Stadler <lukas.stadler@jku.at>
date Thu, 16 Jun 2011 20:36:17 +0200
parents c18cbe5936b8
children 7369298bec7e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
667
78af5ae8e731 6636138: UseSuperWord enabled failure
cfang
parents:
diff changeset
1 /*
1552
c18cbe5936b8 6941466: Oracle rebranding changes for Hotspot repositories
trims
parents: 952
diff changeset
2 * Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved.
667
78af5ae8e731 6636138: UseSuperWord enabled failure
cfang
parents:
diff changeset
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
78af5ae8e731 6636138: UseSuperWord enabled failure
cfang
parents:
diff changeset
4 *
78af5ae8e731 6636138: UseSuperWord enabled failure
cfang
parents:
diff changeset
5 * This code is free software; you can redistribute it and/or modify it
78af5ae8e731 6636138: UseSuperWord enabled failure
cfang
parents:
diff changeset
6 * under the terms of the GNU General Public License version 2 only, as
78af5ae8e731 6636138: UseSuperWord enabled failure
cfang
parents:
diff changeset
7 * published by the Free Software Foundation.
78af5ae8e731 6636138: UseSuperWord enabled failure
cfang
parents:
diff changeset
8 *
78af5ae8e731 6636138: UseSuperWord enabled failure
cfang
parents:
diff changeset
9 * This code is distributed in the hope that it will be useful, but WITHOUT
78af5ae8e731 6636138: UseSuperWord enabled failure
cfang
parents:
diff changeset
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
78af5ae8e731 6636138: UseSuperWord enabled failure
cfang
parents:
diff changeset
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
78af5ae8e731 6636138: UseSuperWord enabled failure
cfang
parents:
diff changeset
12 * version 2 for more details (a copy is included in the LICENSE file that
78af5ae8e731 6636138: UseSuperWord enabled failure
cfang
parents:
diff changeset
13 * accompanied this code).
78af5ae8e731 6636138: UseSuperWord enabled failure
cfang
parents:
diff changeset
14 *
78af5ae8e731 6636138: UseSuperWord enabled failure
cfang
parents:
diff changeset
15 * You should have received a copy of the GNU General Public License version
78af5ae8e731 6636138: UseSuperWord enabled failure
cfang
parents:
diff changeset
16 * 2 along with this work; if not, write to the Free Software Foundation,
78af5ae8e731 6636138: UseSuperWord enabled failure
cfang
parents:
diff changeset
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
78af5ae8e731 6636138: UseSuperWord enabled failure
cfang
parents:
diff changeset
18 *
1552
c18cbe5936b8 6941466: Oracle rebranding changes for Hotspot repositories
trims
parents: 952
diff changeset
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
c18cbe5936b8 6941466: Oracle rebranding changes for Hotspot repositories
trims
parents: 952
diff changeset
20 * or visit www.oracle.com if you need additional information or have any
c18cbe5936b8 6941466: Oracle rebranding changes for Hotspot repositories
trims
parents: 952
diff changeset
21 * questions.
667
78af5ae8e731 6636138: UseSuperWord enabled failure
cfang
parents:
diff changeset
22 */
78af5ae8e731 6636138: UseSuperWord enabled failure
cfang
parents:
diff changeset
23
78af5ae8e731 6636138: UseSuperWord enabled failure
cfang
parents:
diff changeset
24 /**
78af5ae8e731 6636138: UseSuperWord enabled failure
cfang
parents:
diff changeset
25 * @test
78af5ae8e731 6636138: UseSuperWord enabled failure
cfang
parents:
diff changeset
26 * @bug 6636138
78af5ae8e731 6636138: UseSuperWord enabled failure
cfang
parents:
diff changeset
27 * @summary SuperWord::co_locate_pack(Node_List* p) generates memory graph that leads to memory order violation.
78af5ae8e731 6636138: UseSuperWord enabled failure
cfang
parents:
diff changeset
28 *
711
9610b2a8ab4e 6829021: tests for 6636138 use UseSuperword instead of UseSuperWord
cfang
parents: 667
diff changeset
29 * @run main/othervm -server -Xbatch -XX:CompileOnly=Test1.init Test1
667
78af5ae8e731 6636138: UseSuperWord enabled failure
cfang
parents:
diff changeset
30 */
78af5ae8e731 6636138: UseSuperWord enabled failure
cfang
parents:
diff changeset
31
777
f53b154d959d 6837906: compiler tests of 6636138 fail with IllegalAccessException
twisti
parents: 711
diff changeset
32 public class Test1 {
667
78af5ae8e731 6636138: UseSuperWord enabled failure
cfang
parents:
diff changeset
33
78af5ae8e731 6636138: UseSuperWord enabled failure
cfang
parents:
diff changeset
34 public static void init(int src[], int [] dst, int[] ref) {
78af5ae8e731 6636138: UseSuperWord enabled failure
cfang
parents:
diff changeset
35 // initialize the arrays
78af5ae8e731 6636138: UseSuperWord enabled failure
cfang
parents:
diff changeset
36 for (int i =0; i<src.length; i++) {
78af5ae8e731 6636138: UseSuperWord enabled failure
cfang
parents:
diff changeset
37 src[i] = i;
78af5ae8e731 6636138: UseSuperWord enabled failure
cfang
parents:
diff changeset
38 dst[i] = 2; // yes, dst[i] needed(otherwise src[i] will be replaced with i)
78af5ae8e731 6636138: UseSuperWord enabled failure
cfang
parents:
diff changeset
39 ref[i] = src[i]; // src[i] depends on the store src[i]
78af5ae8e731 6636138: UseSuperWord enabled failure
cfang
parents:
diff changeset
40 }
78af5ae8e731 6636138: UseSuperWord enabled failure
cfang
parents:
diff changeset
41 }
78af5ae8e731 6636138: UseSuperWord enabled failure
cfang
parents:
diff changeset
42
78af5ae8e731 6636138: UseSuperWord enabled failure
cfang
parents:
diff changeset
43 public static void verify(int src[], int[] ref) {
78af5ae8e731 6636138: UseSuperWord enabled failure
cfang
parents:
diff changeset
44 // check whether src and ref are equal
78af5ae8e731 6636138: UseSuperWord enabled failure
cfang
parents:
diff changeset
45 for (int i = 0; i < src.length; i++) {
78af5ae8e731 6636138: UseSuperWord enabled failure
cfang
parents:
diff changeset
46 if (src[i] != ref[i]) {
78af5ae8e731 6636138: UseSuperWord enabled failure
cfang
parents:
diff changeset
47 System.out.println("Error: src and ref don't match at " + i);
952
ace8397c8563 6876276: assert(!is_visited,"visit only once")
cfang
parents: 777
diff changeset
48 System.exit(97);
667
78af5ae8e731 6636138: UseSuperWord enabled failure
cfang
parents:
diff changeset
49 }
78af5ae8e731 6636138: UseSuperWord enabled failure
cfang
parents:
diff changeset
50 }
78af5ae8e731 6636138: UseSuperWord enabled failure
cfang
parents:
diff changeset
51 }
78af5ae8e731 6636138: UseSuperWord enabled failure
cfang
parents:
diff changeset
52
78af5ae8e731 6636138: UseSuperWord enabled failure
cfang
parents:
diff changeset
53 public static void test() {
78af5ae8e731 6636138: UseSuperWord enabled failure
cfang
parents:
diff changeset
54 int[] src = new int[34];
78af5ae8e731 6636138: UseSuperWord enabled failure
cfang
parents:
diff changeset
55 int[] dst = new int[34];
78af5ae8e731 6636138: UseSuperWord enabled failure
cfang
parents:
diff changeset
56 int[] ref = new int[34];
78af5ae8e731 6636138: UseSuperWord enabled failure
cfang
parents:
diff changeset
57
78af5ae8e731 6636138: UseSuperWord enabled failure
cfang
parents:
diff changeset
58 init(src, dst, ref);
78af5ae8e731 6636138: UseSuperWord enabled failure
cfang
parents:
diff changeset
59 verify(src, ref);
78af5ae8e731 6636138: UseSuperWord enabled failure
cfang
parents:
diff changeset
60 }
78af5ae8e731 6636138: UseSuperWord enabled failure
cfang
parents:
diff changeset
61
78af5ae8e731 6636138: UseSuperWord enabled failure
cfang
parents:
diff changeset
62 public static void main(String[] args) {
78af5ae8e731 6636138: UseSuperWord enabled failure
cfang
parents:
diff changeset
63 for (int i=0; i< 2000; i++) {
78af5ae8e731 6636138: UseSuperWord enabled failure
cfang
parents:
diff changeset
64 test();
78af5ae8e731 6636138: UseSuperWord enabled failure
cfang
parents:
diff changeset
65 }
78af5ae8e731 6636138: UseSuperWord enabled failure
cfang
parents:
diff changeset
66 }
78af5ae8e731 6636138: UseSuperWord enabled failure
cfang
parents:
diff changeset
67 }