annotate agent/src/share/classes/sun/jvm/hotspot/oops/VirtualCallData.java @ 6972:bd7a7ce2e264

6830717: replay of compilations would help with debugging Summary: When java process crashed in compiler thread, repeat the compilation process will help finding root cause. This is done with using SA dump application class data and replay data from core dump, then use debug version of jvm to recompile the problematic java method. Reviewed-by: kvn, twisti, sspitsyn Contributed-by: yumin.qi@oracle.com
author minqi
date Mon, 12 Nov 2012 14:03:53 -0800
parents b9a9ed0f8eeb
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
3939
f6f3bb0ee072 7088955: add C2 IR support to the SA
never
parents:
diff changeset
1 /*
6842
b9a9ed0f8eeb 7197424: update copyright year to match last edit in jdk8 hotspot repository
mikael
parents: 5981
diff changeset
2 * Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
5981
4bec1b1f7b33 7156960: Incorrect copyright headers in parts of the Serviceability agent
minqi
parents: 3939
diff changeset
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
3939
f6f3bb0ee072 7088955: add C2 IR support to the SA
never
parents:
diff changeset
4 *
5981
4bec1b1f7b33 7156960: Incorrect copyright headers in parts of the Serviceability agent
minqi
parents: 3939
diff changeset
5 * This code is free software; you can redistribute it and/or modify it
4bec1b1f7b33 7156960: Incorrect copyright headers in parts of the Serviceability agent
minqi
parents: 3939
diff changeset
6 * under the terms of the GNU General Public License version 2 only, as
4bec1b1f7b33 7156960: Incorrect copyright headers in parts of the Serviceability agent
minqi
parents: 3939
diff changeset
7 * published by the Free Software Foundation.
3939
f6f3bb0ee072 7088955: add C2 IR support to the SA
never
parents:
diff changeset
8 *
5981
4bec1b1f7b33 7156960: Incorrect copyright headers in parts of the Serviceability agent
minqi
parents: 3939
diff changeset
9 * This code is distributed in the hope that it will be useful, but WITHOUT
4bec1b1f7b33 7156960: Incorrect copyright headers in parts of the Serviceability agent
minqi
parents: 3939
diff changeset
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
4bec1b1f7b33 7156960: Incorrect copyright headers in parts of the Serviceability agent
minqi
parents: 3939
diff changeset
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
4bec1b1f7b33 7156960: Incorrect copyright headers in parts of the Serviceability agent
minqi
parents: 3939
diff changeset
12 * version 2 for more details (a copy is included in the LICENSE file that
4bec1b1f7b33 7156960: Incorrect copyright headers in parts of the Serviceability agent
minqi
parents: 3939
diff changeset
13 * accompanied this code).
3939
f6f3bb0ee072 7088955: add C2 IR support to the SA
never
parents:
diff changeset
14 *
5981
4bec1b1f7b33 7156960: Incorrect copyright headers in parts of the Serviceability agent
minqi
parents: 3939
diff changeset
15 * You should have received a copy of the GNU General Public License version
4bec1b1f7b33 7156960: Incorrect copyright headers in parts of the Serviceability agent
minqi
parents: 3939
diff changeset
16 * 2 along with this work; if not, write to the Free Software Foundation,
4bec1b1f7b33 7156960: Incorrect copyright headers in parts of the Serviceability agent
minqi
parents: 3939
diff changeset
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
3939
f6f3bb0ee072 7088955: add C2 IR support to the SA
never
parents:
diff changeset
18 *
5981
4bec1b1f7b33 7156960: Incorrect copyright headers in parts of the Serviceability agent
minqi
parents: 3939
diff changeset
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
4bec1b1f7b33 7156960: Incorrect copyright headers in parts of the Serviceability agent
minqi
parents: 3939
diff changeset
20 * or visit www.oracle.com if you need additional information or have any
4bec1b1f7b33 7156960: Incorrect copyright headers in parts of the Serviceability agent
minqi
parents: 3939
diff changeset
21 * questions.
3939
f6f3bb0ee072 7088955: add C2 IR support to the SA
never
parents:
diff changeset
22 *
f6f3bb0ee072 7088955: add C2 IR support to the SA
never
parents:
diff changeset
23 */
f6f3bb0ee072 7088955: add C2 IR support to the SA
never
parents:
diff changeset
24
f6f3bb0ee072 7088955: add C2 IR support to the SA
never
parents:
diff changeset
25 package sun.jvm.hotspot.oops;
f6f3bb0ee072 7088955: add C2 IR support to the SA
never
parents:
diff changeset
26
f6f3bb0ee072 7088955: add C2 IR support to the SA
never
parents:
diff changeset
27 import java.io.*;
f6f3bb0ee072 7088955: add C2 IR support to the SA
never
parents:
diff changeset
28 import java.util.*;
f6f3bb0ee072 7088955: add C2 IR support to the SA
never
parents:
diff changeset
29 import sun.jvm.hotspot.debugger.*;
f6f3bb0ee072 7088955: add C2 IR support to the SA
never
parents:
diff changeset
30 import sun.jvm.hotspot.runtime.*;
f6f3bb0ee072 7088955: add C2 IR support to the SA
never
parents:
diff changeset
31 import sun.jvm.hotspot.types.*;
f6f3bb0ee072 7088955: add C2 IR support to the SA
never
parents:
diff changeset
32 import sun.jvm.hotspot.utilities.*;
f6f3bb0ee072 7088955: add C2 IR support to the SA
never
parents:
diff changeset
33
f6f3bb0ee072 7088955: add C2 IR support to the SA
never
parents:
diff changeset
34 // VirtualCallData
f6f3bb0ee072 7088955: add C2 IR support to the SA
never
parents:
diff changeset
35 //
f6f3bb0ee072 7088955: add C2 IR support to the SA
never
parents:
diff changeset
36 // A VirtualCallData is used to access profiling information about a
f6f3bb0ee072 7088955: add C2 IR support to the SA
never
parents:
diff changeset
37 // call. For now, it has nothing more than a ReceiverTypeData.
f6f3bb0ee072 7088955: add C2 IR support to the SA
never
parents:
diff changeset
38 public class VirtualCallData extends ReceiverTypeData {
f6f3bb0ee072 7088955: add C2 IR support to the SA
never
parents:
diff changeset
39 public VirtualCallData(DataLayout layout) {
f6f3bb0ee072 7088955: add C2 IR support to the SA
never
parents:
diff changeset
40 super(layout);
f6f3bb0ee072 7088955: add C2 IR support to the SA
never
parents:
diff changeset
41 //assert(layout.tag() == DataLayout.virtualCallDataTag, "wrong type");
f6f3bb0ee072 7088955: add C2 IR support to the SA
never
parents:
diff changeset
42 }
f6f3bb0ee072 7088955: add C2 IR support to the SA
never
parents:
diff changeset
43
f6f3bb0ee072 7088955: add C2 IR support to the SA
never
parents:
diff changeset
44 static int staticCellCount() {
f6f3bb0ee072 7088955: add C2 IR support to the SA
never
parents:
diff changeset
45 // At this point we could add more profile state, e.g., for arguments.
f6f3bb0ee072 7088955: add C2 IR support to the SA
never
parents:
diff changeset
46 // But for now it's the same size as the base record type.
f6f3bb0ee072 7088955: add C2 IR support to the SA
never
parents:
diff changeset
47 return ReceiverTypeData.staticCellCount();
f6f3bb0ee072 7088955: add C2 IR support to the SA
never
parents:
diff changeset
48 }
f6f3bb0ee072 7088955: add C2 IR support to the SA
never
parents:
diff changeset
49
f6f3bb0ee072 7088955: add C2 IR support to the SA
never
parents:
diff changeset
50 public int cellCount() {
f6f3bb0ee072 7088955: add C2 IR support to the SA
never
parents:
diff changeset
51 return staticCellCount();
f6f3bb0ee072 7088955: add C2 IR support to the SA
never
parents:
diff changeset
52 }
f6f3bb0ee072 7088955: add C2 IR support to the SA
never
parents:
diff changeset
53
f6f3bb0ee072 7088955: add C2 IR support to the SA
never
parents:
diff changeset
54 // Direct accessors
f6f3bb0ee072 7088955: add C2 IR support to the SA
never
parents:
diff changeset
55 static int virtualCallDataSize() {
f6f3bb0ee072 7088955: add C2 IR support to the SA
never
parents:
diff changeset
56 return cellOffset(staticCellCount());
f6f3bb0ee072 7088955: add C2 IR support to the SA
never
parents:
diff changeset
57 }
f6f3bb0ee072 7088955: add C2 IR support to the SA
never
parents:
diff changeset
58
f6f3bb0ee072 7088955: add C2 IR support to the SA
never
parents:
diff changeset
59 public void printDataOn(PrintStream st) {
f6f3bb0ee072 7088955: add C2 IR support to the SA
never
parents:
diff changeset
60 printShared(st, "VirtualCallData");
f6f3bb0ee072 7088955: add C2 IR support to the SA
never
parents:
diff changeset
61 printReceiverDataOn(st);
f6f3bb0ee072 7088955: add C2 IR support to the SA
never
parents:
diff changeset
62 }
f6f3bb0ee072 7088955: add C2 IR support to the SA
never
parents:
diff changeset
63 }