annotate src/os/bsd/dtrace/hotspot.d @ 15388:769fc3629f59

Add phase FlowSensitiveReductionPhase. It is possible to remove GuardingPiNodes, CheckCastNodes, and FixedGuards during HighTier under certain conditions (control-flow sensitive conditions). The phase added in this commit (FlowSensitiveReductionPhase) does that, and in addition replaces usages with "downcasting" PiNodes when possible thus resulting in more precise object stamps (e.g., non-null). Finally, usages of floating, side-effects free, expressions are also simplified (as per control-flow sensitive conditions). The newly added phase runs only during HighTier and can be deactivated using Graal option FlowSensitiveReduction (it is active by default).
author Miguel Garcia <miguel.m.garcia@oracle.com>
date Fri, 25 Apr 2014 16:50:52 +0200
parents 436b4a3231bf
children dbcb1dd0785b
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4006
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
1 /*
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
2 * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
4 *
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
5 * This code is free software; you can redistribute it and/or modify it
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
6 * under the terms of the GNU General Public License version 2 only, as
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
7 * published by the Free Software Foundation.
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
8 *
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
9 * This code is distributed in the hope that it will be useful, but WITHOUT
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
12 * version 2 for more details (a copy is included in the LICENSE file that
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
13 * accompanied this code).
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
14 *
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
15 * You should have received a copy of the GNU General Public License version
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
16 * 2 along with this work; if not, write to the Free Software Foundation,
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
18 *
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
20 * or visit www.oracle.com if you need additional information or have any
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
21 * questions.
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
22 *
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
23 */
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
24
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
25 provider hotspot {
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
26 probe class__loaded(char*, uintptr_t, void*, uintptr_t);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
27 probe class__unloaded(char*, uintptr_t, void*, uintptr_t);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
28 probe class__initialization__required(char*, uintptr_t, void*, intptr_t);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
29 probe class__initialization__recursive(char*, uintptr_t, void*, intptr_t,int);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
30 probe class__initialization__concurrent(char*, uintptr_t, void*, intptr_t,int);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
31 probe class__initialization__erroneous(char*, uintptr_t, void*, intptr_t, int);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
32 probe class__initialization__super__failed(char*, uintptr_t, void*, intptr_t,int);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
33 probe class__initialization__clinit(char*, uintptr_t, void*, intptr_t,int);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
34 probe class__initialization__error(char*, uintptr_t, void*, intptr_t,int);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
35 probe class__initialization__end(char*, uintptr_t, void*, intptr_t,int);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
36 probe vm__init__begin();
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
37 probe vm__init__end();
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
38 probe vm__shutdown();
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
39 probe vmops__request(char*, uintptr_t, int);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
40 probe vmops__begin(char*, uintptr_t, int);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
41 probe vmops__end(char*, uintptr_t, int);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
42 probe gc__begin(uintptr_t);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
43 probe gc__end();
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
44 probe mem__pool__gc__begin(
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
45 char*, uintptr_t, char*, uintptr_t,
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
46 uintptr_t, uintptr_t, uintptr_t, uintptr_t);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
47 probe mem__pool__gc__end(
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
48 char*, uintptr_t, char*, uintptr_t,
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
49 uintptr_t, uintptr_t, uintptr_t, uintptr_t);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
50 probe thread__probe__start(char*, uintptr_t, uintptr_t, uintptr_t, uintptr_t);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
51 probe thread__probe__stop(char*, uintptr_t, uintptr_t, uintptr_t, uintptr_t);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
52 probe thread__sleep__begin(long long);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
53 probe thread__sleep__end(int);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
54 probe thread__yield();
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
55 probe thread__park__begin(uintptr_t, int, long long);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
56 probe thread__park__end(uintptr_t);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
57 probe thread__unpark(uintptr_t);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
58 probe method__compile__begin(
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
59 const char*, uintptr_t, const char*, uintptr_t, const char*, uintptr_t, const char*, uintptr_t);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
60 probe method__compile__end(
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
61 char*, uintptr_t, char*, uintptr_t, char*, uintptr_t,
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
62 char*, uintptr_t, uintptr_t);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
63 probe compiled__method__load(
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
64 char*, uintptr_t, char*, uintptr_t, char*, uintptr_t, void*, uintptr_t);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
65 probe compiled__method__unload(
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
66 char*, uintptr_t, char*, uintptr_t, char*, uintptr_t);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
67 probe monitor__contended__enter(uintptr_t, uintptr_t, char*, uintptr_t);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
68 probe monitor__contended__entered(uintptr_t, uintptr_t, char*, uintptr_t);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
69 probe monitor__contended__exit(uintptr_t, uintptr_t, char*, uintptr_t);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
70 probe monitor__wait(uintptr_t, uintptr_t, char*, uintptr_t, uintptr_t);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
71 probe monitor__probe__waited(uintptr_t, uintptr_t, char*, uintptr_t);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
72 probe monitor__notify(uintptr_t, uintptr_t, char*, uintptr_t);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
73 probe monitor__notifyAll(uintptr_t, uintptr_t, char*, uintptr_t);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
74
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
75 probe object__alloc(int, char*, uintptr_t, uintptr_t);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
76 probe method__entry(
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
77 int, char*, int, char*, int, char*, int);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
78 probe method__return(
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
79 int, char*, int, char*, int, char*, int);
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
80 };
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
81
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
82 #pragma D attributes Evolving/Evolving/Common provider hotspot provider
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
83 #pragma D attributes Private/Private/Unknown provider hotspot module
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
84 #pragma D attributes Private/Private/Unknown provider hotspot function
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
85 #pragma D attributes Evolving/Evolving/Common provider hotspot name
436b4a3231bf 7098194: integrate macosx-port changes
dcubed
parents:
diff changeset
86 #pragma D attributes Evolving/Evolving/Common provider hotspot args