annotate test/compiler/6636138/Test1.java @ 20218:828056cf311f

8040792: G1: Memory usage calculation uses sizeof(this) instead of sizeof(classname) Summary: A few locations in the code use sizeof(this) which returns the size of the pointer instead of sizeof(classname) which returns the size of the sum of its members. This change fixes these errors and adds a few tests. Reviewed-by: mgerdin, brutisso
author tschatzl
date Mon, 21 Jul 2014 09:40:19 +0200
parents 55fb97c4c58d
children 4ca6dc0799b6
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
667
78af5ae8e731 6636138: UseSuperWord enabled failure
cfang
parents:
diff changeset
1 /*
17467
55fb97c4c58d 8029233: Update copyright year to match last edit in jdk8 hotspot repository for 2013
mikael
parents: 8684
diff changeset
2 * Copyright (c) 2009, 2013, 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 *
8684
7369298bec7e 7115383: TEST_BUG: some jtreg tests fail because they explicitly specify -server option
collins
parents: 1552
diff changeset
29 * @run main/othervm -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 }