annotate jvmci/jdk.vm.ci.code/src/jdk/vm/ci/code/CodeCacheProvider.java @ 24218:719853999215 jvmci-0.32

Merge with jdk8u141-b15
author Doug Simon <doug.simon@oracle.com>
date Mon, 14 Aug 2017 23:20:38 +0200
parents 9273bb6ba33e
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
3733
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
1 /*
22772
f16c1266b0de Remove unused method.
Roland Schatz <roland.schatz@oracle.com>
parents: 22672
diff changeset
2 * Copyright (c) 2009, 2016, Oracle and/or its affiliates. All rights reserved.
3733
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
4 *
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
5 * This code is free software; you can redistribute it and/or modify it
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
6 * under the terms of the GNU General Public License version 2 only, as
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
7 * published by the Free Software Foundation.
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
8 *
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
9 * This code is distributed in the hope that it will be useful, but WITHOUT
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
12 * version 2 for more details (a copy is included in the LICENSE file that
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
13 * accompanied this code).
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
14 *
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
15 * You should have received a copy of the GNU General Public License version
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
16 * 2 along with this work; if not, write to the Free Software Foundation,
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
18 *
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
20 * or visit www.oracle.com if you need additional information or have any
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
21 * questions.
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
22 */
22672
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22631
diff changeset
23 package jdk.vm.ci.code;
3733
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
24
22773
9273bb6ba33e Simplify code installation interface: Use CompiledCode class instead of CompilationResult and DataSection.
Roland Schatz <roland.schatz@oracle.com>
parents: 22772
diff changeset
25 import jdk.vm.ci.code.site.Call;
9273bb6ba33e Simplify code installation interface: Use CompiledCode class instead of CompilationResult and DataSection.
Roland Schatz <roland.schatz@oracle.com>
parents: 22772
diff changeset
26 import jdk.vm.ci.code.site.Mark;
22672
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22631
diff changeset
27 import jdk.vm.ci.meta.ResolvedJavaMethod;
1bbd4a7c274b Rename jdk.internal.jvmci to jdk.vm.ci
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22631
diff changeset
28 import jdk.vm.ci.meta.SpeculationLog;
3733
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
29
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
30 /**
12045
0fc653a9e019 made GraalCodeCacheProvider independent of CodeCacheProvider and renamed the former to LoweringProvider (GRAAL-511)
Doug Simon <doug.simon@oracle.com>
parents: 11959
diff changeset
31 * Access to code cache related details and requirements.
6539
2463eb24b644 Cleanup of Graal API: Rename methods so that it follows the getXxx naming convention and so that they are similar to the names of the java.lang.reflect classes. Remove unused methods.
Christian Wimmer <christian.wimmer@oracle.com>
parents: 6521
diff changeset
32 */
11959
23ccaa863eda made CodeCacheProvider independent of MetaAccessProvider (GRAAL-511)
Doug Simon <doug.simon@oracle.com>
parents: 11839
diff changeset
33 public interface CodeCacheProvider {
3733
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
34
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
35 /**
22625
545590b1ab83 expanded CodeCacheProvider so that it supports all forms of code installation and made CompilerToVM.installCode package-private
Doug Simon <doug.simon@oracle.com>
parents: 22569
diff changeset
36 * Installs code for a given method based on a given compilation result without making it the
545590b1ab83 expanded CodeCacheProvider so that it supports all forms of code installation and made CompilerToVM.installCode package-private
Doug Simon <doug.simon@oracle.com>
parents: 22569
diff changeset
37 * default implementation of the method.
15358
c17d593ccafb Add createSpeculationLog to CodeCacheProvider.
Roland Schatz <roland.schatz@oracle.com>
parents: 15018
diff changeset
38 *
22625
545590b1ab83 expanded CodeCacheProvider so that it supports all forms of code installation and made CompilerToVM.installCode package-private
Doug Simon <doug.simon@oracle.com>
parents: 22569
diff changeset
39 * @param method a method implemented by the installed code
22773
9273bb6ba33e Simplify code installation interface: Use CompiledCode class instead of CompilationResult and DataSection.
Roland Schatz <roland.schatz@oracle.com>
parents: 22772
diff changeset
40 * @param compiledCode the compiled code to be added
22625
545590b1ab83 expanded CodeCacheProvider so that it supports all forms of code installation and made CompilerToVM.installCode package-private
Doug Simon <doug.simon@oracle.com>
parents: 22569
diff changeset
41 * @param log the speculation log to be used
545590b1ab83 expanded CodeCacheProvider so that it supports all forms of code installation and made CompilerToVM.installCode package-private
Doug Simon <doug.simon@oracle.com>
parents: 22569
diff changeset
42 * @param installedCode a predefined {@link InstalledCode} object to use as a reference to the
545590b1ab83 expanded CodeCacheProvider so that it supports all forms of code installation and made CompilerToVM.installCode package-private
Doug Simon <doug.simon@oracle.com>
parents: 22569
diff changeset
43 * installed code. If {@code null}, a new {@link InstalledCode} object will be
545590b1ab83 expanded CodeCacheProvider so that it supports all forms of code installation and made CompilerToVM.installCode package-private
Doug Simon <doug.simon@oracle.com>
parents: 22569
diff changeset
44 * created.
545590b1ab83 expanded CodeCacheProvider so that it supports all forms of code installation and made CompilerToVM.installCode package-private
Doug Simon <doug.simon@oracle.com>
parents: 22569
diff changeset
45 * @return a reference to the ready-to-run code
545590b1ab83 expanded CodeCacheProvider so that it supports all forms of code installation and made CompilerToVM.installCode package-private
Doug Simon <doug.simon@oracle.com>
parents: 22569
diff changeset
46 * @throws BailoutException if the code installation failed
6329
92bc58dc5b5e More clean up and documentation in api.code and api.meta.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 5780
diff changeset
47 */
22773
9273bb6ba33e Simplify code installation interface: Use CompiledCode class instead of CompilationResult and DataSection.
Roland Schatz <roland.schatz@oracle.com>
parents: 22772
diff changeset
48 default InstalledCode addCode(ResolvedJavaMethod method, CompiledCode compiledCode, SpeculationLog log, InstalledCode installedCode) {
9273bb6ba33e Simplify code installation interface: Use CompiledCode class instead of CompilationResult and DataSection.
Roland Schatz <roland.schatz@oracle.com>
parents: 22772
diff changeset
49 return installCode(method, compiledCode, installedCode, log, false);
22625
545590b1ab83 expanded CodeCacheProvider so that it supports all forms of code installation and made CompilerToVM.installCode package-private
Doug Simon <doug.simon@oracle.com>
parents: 22569
diff changeset
50 }
6329
92bc58dc5b5e More clean up and documentation in api.code and api.meta.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 5780
diff changeset
51
92bc58dc5b5e More clean up and documentation in api.code and api.meta.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 5780
diff changeset
52 /**
22625
545590b1ab83 expanded CodeCacheProvider so that it supports all forms of code installation and made CompilerToVM.installCode package-private
Doug Simon <doug.simon@oracle.com>
parents: 22569
diff changeset
53 * Installs code for a given method based on a given compilation result and makes it the default
545590b1ab83 expanded CodeCacheProvider so that it supports all forms of code installation and made CompilerToVM.installCode package-private
Doug Simon <doug.simon@oracle.com>
parents: 22569
diff changeset
54 * implementation of the method.
15358
c17d593ccafb Add createSpeculationLog to CodeCacheProvider.
Roland Schatz <roland.schatz@oracle.com>
parents: 15018
diff changeset
55 *
22625
545590b1ab83 expanded CodeCacheProvider so that it supports all forms of code installation and made CompilerToVM.installCode package-private
Doug Simon <doug.simon@oracle.com>
parents: 22569
diff changeset
56 * @param method a method implemented by the installed code and for which the installed code
545590b1ab83 expanded CodeCacheProvider so that it supports all forms of code installation and made CompilerToVM.installCode package-private
Doug Simon <doug.simon@oracle.com>
parents: 22569
diff changeset
57 * becomes the default implementation
22773
9273bb6ba33e Simplify code installation interface: Use CompiledCode class instead of CompilationResult and DataSection.
Roland Schatz <roland.schatz@oracle.com>
parents: 22772
diff changeset
58 * @param compiledCode the compiled code to be added
22625
545590b1ab83 expanded CodeCacheProvider so that it supports all forms of code installation and made CompilerToVM.installCode package-private
Doug Simon <doug.simon@oracle.com>
parents: 22569
diff changeset
59 * @return a reference to the ready-to-run code
545590b1ab83 expanded CodeCacheProvider so that it supports all forms of code installation and made CompilerToVM.installCode package-private
Doug Simon <doug.simon@oracle.com>
parents: 22569
diff changeset
60 * @throws BailoutException if the code installation failed
12526
04671d59e93b Allow CodeCacheProvider to install default methods
Matthias Grimmer <grimmer@ssw.jku.at>
parents: 12363
diff changeset
61 */
22773
9273bb6ba33e Simplify code installation interface: Use CompiledCode class instead of CompilationResult and DataSection.
Roland Schatz <roland.schatz@oracle.com>
parents: 22772
diff changeset
62 default InstalledCode setDefaultCode(ResolvedJavaMethod method, CompiledCode compiledCode) {
9273bb6ba33e Simplify code installation interface: Use CompiledCode class instead of CompilationResult and DataSection.
Roland Schatz <roland.schatz@oracle.com>
parents: 22772
diff changeset
63 return installCode(method, compiledCode, null, null, true);
22625
545590b1ab83 expanded CodeCacheProvider so that it supports all forms of code installation and made CompilerToVM.installCode package-private
Doug Simon <doug.simon@oracle.com>
parents: 22569
diff changeset
64 }
545590b1ab83 expanded CodeCacheProvider so that it supports all forms of code installation and made CompilerToVM.installCode package-private
Doug Simon <doug.simon@oracle.com>
parents: 22569
diff changeset
65
545590b1ab83 expanded CodeCacheProvider so that it supports all forms of code installation and made CompilerToVM.installCode package-private
Doug Simon <doug.simon@oracle.com>
parents: 22569
diff changeset
66 /**
545590b1ab83 expanded CodeCacheProvider so that it supports all forms of code installation and made CompilerToVM.installCode package-private
Doug Simon <doug.simon@oracle.com>
parents: 22569
diff changeset
67 * Installs code based on a given compilation result.
545590b1ab83 expanded CodeCacheProvider so that it supports all forms of code installation and made CompilerToVM.installCode package-private
Doug Simon <doug.simon@oracle.com>
parents: 22569
diff changeset
68 *
22773
9273bb6ba33e Simplify code installation interface: Use CompiledCode class instead of CompilationResult and DataSection.
Roland Schatz <roland.schatz@oracle.com>
parents: 22772
diff changeset
69 * @param method the method compiled to produce {@code compiledCode} or {@code null} if the
9273bb6ba33e Simplify code installation interface: Use CompiledCode class instead of CompilationResult and DataSection.
Roland Schatz <roland.schatz@oracle.com>
parents: 22772
diff changeset
70 * input to {@code compResult} was not a {@link ResolvedJavaMethod}
9273bb6ba33e Simplify code installation interface: Use CompiledCode class instead of CompilationResult and DataSection.
Roland Schatz <roland.schatz@oracle.com>
parents: 22772
diff changeset
71 * @param compiledCode the compiled code to be added
22625
545590b1ab83 expanded CodeCacheProvider so that it supports all forms of code installation and made CompilerToVM.installCode package-private
Doug Simon <doug.simon@oracle.com>
parents: 22569
diff changeset
72 * @param installedCode a pre-allocated {@link InstalledCode} object to use as a reference to
545590b1ab83 expanded CodeCacheProvider so that it supports all forms of code installation and made CompilerToVM.installCode package-private
Doug Simon <doug.simon@oracle.com>
parents: 22569
diff changeset
73 * the installed code. If {@code null}, a new {@link InstalledCode} object will be
545590b1ab83 expanded CodeCacheProvider so that it supports all forms of code installation and made CompilerToVM.installCode package-private
Doug Simon <doug.simon@oracle.com>
parents: 22569
diff changeset
74 * created.
545590b1ab83 expanded CodeCacheProvider so that it supports all forms of code installation and made CompilerToVM.installCode package-private
Doug Simon <doug.simon@oracle.com>
parents: 22569
diff changeset
75 * @param log the speculation log to be used
545590b1ab83 expanded CodeCacheProvider so that it supports all forms of code installation and made CompilerToVM.installCode package-private
Doug Simon <doug.simon@oracle.com>
parents: 22569
diff changeset
76 * @param isDefault specifies if the installed code should be made the default implementation of
545590b1ab83 expanded CodeCacheProvider so that it supports all forms of code installation and made CompilerToVM.installCode package-private
Doug Simon <doug.simon@oracle.com>
parents: 22569
diff changeset
77 * {@code compRequest.getMethod()}. The default implementation for a method is the
545590b1ab83 expanded CodeCacheProvider so that it supports all forms of code installation and made CompilerToVM.installCode package-private
Doug Simon <doug.simon@oracle.com>
parents: 22569
diff changeset
78 * code executed for standard calls to the method. This argument is ignored if
545590b1ab83 expanded CodeCacheProvider so that it supports all forms of code installation and made CompilerToVM.installCode package-private
Doug Simon <doug.simon@oracle.com>
parents: 22569
diff changeset
79 * {@code compRequest == null}.
545590b1ab83 expanded CodeCacheProvider so that it supports all forms of code installation and made CompilerToVM.installCode package-private
Doug Simon <doug.simon@oracle.com>
parents: 22569
diff changeset
80 * @return a reference to the compiled and ready-to-run installed code
545590b1ab83 expanded CodeCacheProvider so that it supports all forms of code installation and made CompilerToVM.installCode package-private
Doug Simon <doug.simon@oracle.com>
parents: 22569
diff changeset
81 * @throws BailoutException if the code installation failed
545590b1ab83 expanded CodeCacheProvider so that it supports all forms of code installation and made CompilerToVM.installCode package-private
Doug Simon <doug.simon@oracle.com>
parents: 22569
diff changeset
82 */
22773
9273bb6ba33e Simplify code installation interface: Use CompiledCode class instead of CompilationResult and DataSection.
Roland Schatz <roland.schatz@oracle.com>
parents: 22772
diff changeset
83 InstalledCode installCode(ResolvedJavaMethod method, CompiledCode compiledCode, InstalledCode installedCode, SpeculationLog log, boolean isDefault);
12526
04671d59e93b Allow CodeCacheProvider to install default methods
Matthias Grimmer <grimmer@ssw.jku.at>
parents: 12363
diff changeset
84
04671d59e93b Allow CodeCacheProvider to install default methods
Matthias Grimmer <grimmer@ssw.jku.at>
parents: 12363
diff changeset
85 /**
22629
f53dfbf08c71 added CodeCacheProvider.invalidateInstalledCode and made CompilerToVM.invalidateInstalledCode package-private
Doug Simon <doug.simon@oracle.com>
parents: 22628
diff changeset
86 * Invalidates {@code installedCode} such that {@link InvalidInstalledCodeException} will be
f53dfbf08c71 added CodeCacheProvider.invalidateInstalledCode and made CompilerToVM.invalidateInstalledCode package-private
Doug Simon <doug.simon@oracle.com>
parents: 22628
diff changeset
87 * raised the next time {@code installedCode} is
f53dfbf08c71 added CodeCacheProvider.invalidateInstalledCode and made CompilerToVM.invalidateInstalledCode package-private
Doug Simon <doug.simon@oracle.com>
parents: 22628
diff changeset
88 * {@linkplain InstalledCode#executeVarargs(Object...) executed}.
f53dfbf08c71 added CodeCacheProvider.invalidateInstalledCode and made CompilerToVM.invalidateInstalledCode package-private
Doug Simon <doug.simon@oracle.com>
parents: 22628
diff changeset
89 */
f53dfbf08c71 added CodeCacheProvider.invalidateInstalledCode and made CompilerToVM.invalidateInstalledCode package-private
Doug Simon <doug.simon@oracle.com>
parents: 22628
diff changeset
90 void invalidateInstalledCode(InstalledCode installedCode);
f53dfbf08c71 added CodeCacheProvider.invalidateInstalledCode and made CompilerToVM.invalidateInstalledCode package-private
Doug Simon <doug.simon@oracle.com>
parents: 22628
diff changeset
91
f53dfbf08c71 added CodeCacheProvider.invalidateInstalledCode and made CompilerToVM.invalidateInstalledCode package-private
Doug Simon <doug.simon@oracle.com>
parents: 22628
diff changeset
92 /**
21706
4c00096fc415 moved CodeCacheProvider.disassemble(...) from API to CFGPrinterObserver
Doug Simon <doug.simon@oracle.com>
parents: 21629
diff changeset
93 * Gets a name for a {@link Mark} mark.
3733
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
94 */
21706
4c00096fc415 moved CodeCacheProvider.disassemble(...) from API to CFGPrinterObserver
Doug Simon <doug.simon@oracle.com>
parents: 21629
diff changeset
95 default String getMarkName(Mark mark) {
4c00096fc415 moved CodeCacheProvider.disassemble(...) from API to CFGPrinterObserver
Doug Simon <doug.simon@oracle.com>
parents: 21629
diff changeset
96 return String.valueOf(mark.id);
4c00096fc415 moved CodeCacheProvider.disassemble(...) from API to CFGPrinterObserver
Doug Simon <doug.simon@oracle.com>
parents: 21629
diff changeset
97 }
4c00096fc415 moved CodeCacheProvider.disassemble(...) from API to CFGPrinterObserver
Doug Simon <doug.simon@oracle.com>
parents: 21629
diff changeset
98
4c00096fc415 moved CodeCacheProvider.disassemble(...) from API to CFGPrinterObserver
Doug Simon <doug.simon@oracle.com>
parents: 21629
diff changeset
99 /**
4c00096fc415 moved CodeCacheProvider.disassemble(...) from API to CFGPrinterObserver
Doug Simon <doug.simon@oracle.com>
parents: 21629
diff changeset
100 * Gets a name for the {@linkplain Call#target target} of a {@link Call}.
4c00096fc415 moved CodeCacheProvider.disassemble(...) from API to CFGPrinterObserver
Doug Simon <doug.simon@oracle.com>
parents: 21629
diff changeset
101 */
4c00096fc415 moved CodeCacheProvider.disassemble(...) from API to CFGPrinterObserver
Doug Simon <doug.simon@oracle.com>
parents: 21629
diff changeset
102 default String getTargetName(Call call) {
4c00096fc415 moved CodeCacheProvider.disassemble(...) from API to CFGPrinterObserver
Doug Simon <doug.simon@oracle.com>
parents: 21629
diff changeset
103 return String.valueOf(call.target);
4c00096fc415 moved CodeCacheProvider.disassemble(...) from API to CFGPrinterObserver
Doug Simon <doug.simon@oracle.com>
parents: 21629
diff changeset
104 }
3733
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
105
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
106 /**
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
107 * Gets the register configuration to use when compiling a given method.
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
108 */
12050
9584d08f56db rename: lookupRegisterConfig -> getRegisterConfig
Doug Simon <doug.simon@oracle.com>
parents: 12045
diff changeset
109 RegisterConfig getRegisterConfig();
3733
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
110
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
111 /**
7530
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7144
diff changeset
112 * Minimum size of the stack area reserved for outgoing parameters. This area is reserved in all
5e3d1a68664e applied mx eclipseformat to all Java files
Doug Simon <doug.simon@oracle.com>
parents: 7144
diff changeset
113 * cases, even when the compiled method has no regular call instructions.
15358
c17d593ccafb Add createSpeculationLog to CodeCacheProvider.
Roland Schatz <roland.schatz@oracle.com>
parents: 15018
diff changeset
114 *
4181
319860ae697a Simplify FrameMap: make offsets of spill slots and outgoing parameters independent so that they can be allocated at the same time, eliminating the separate phases. This makes the separate StackBlock unnecesary. Change CiStackSlot to use byte offsets instead of spill slot index. This makes CiTarget.spillSlotSize unnecessary.
Christian Wimmer <Christian.Wimmer@Oracle.com>
parents: 4139
diff changeset
115 * @return the minimum size of the outgoing parameter area in bytes
319860ae697a Simplify FrameMap: make offsets of spill slots and outgoing parameters independent so that they can be allocated at the same time, eliminating the separate phases. This makes the separate StackBlock unnecesary. Change CiStackSlot to use byte offsets instead of spill slot index. This makes CiTarget.spillSlotSize unnecessary.
Christian Wimmer <Christian.Wimmer@Oracle.com>
parents: 4139
diff changeset
116 */
319860ae697a Simplify FrameMap: make offsets of spill slots and outgoing parameters independent so that they can be allocated at the same time, eliminating the separate phases. This makes the separate StackBlock unnecesary. Change CiStackSlot to use byte offsets instead of spill slot index. This makes CiTarget.spillSlotSize unnecessary.
Christian Wimmer <Christian.Wimmer@Oracle.com>
parents: 4139
diff changeset
117 int getMinimumOutgoingSize();
319860ae697a Simplify FrameMap: make offsets of spill slots and outgoing parameters independent so that they can be allocated at the same time, eliminating the separate phases. This makes the separate StackBlock unnecesary. Change CiStackSlot to use byte offsets instead of spill slot index. This makes CiTarget.spillSlotSize unnecessary.
Christian Wimmer <Christian.Wimmer@Oracle.com>
parents: 4139
diff changeset
118
319860ae697a Simplify FrameMap: make offsets of spill slots and outgoing parameters independent so that they can be allocated at the same time, eliminating the separate phases. This makes the separate StackBlock unnecesary. Change CiStackSlot to use byte offsets instead of spill slot index. This makes CiTarget.spillSlotSize unnecessary.
Christian Wimmer <Christian.Wimmer@Oracle.com>
parents: 4139
diff changeset
119 /**
7715
ab7a97237115 expose TargetDescription through CodeCacheProvider API
Roland Schatz <roland.schatz@oracle.com>
parents: 7530
diff changeset
120 * Gets a description of the target architecture.
ab7a97237115 expose TargetDescription through CodeCacheProvider API
Roland Schatz <roland.schatz@oracle.com>
parents: 7530
diff changeset
121 */
ab7a97237115 expose TargetDescription through CodeCacheProvider API
Roland Schatz <roland.schatz@oracle.com>
parents: 7530
diff changeset
122 TargetDescription getTarget();
15358
c17d593ccafb Add createSpeculationLog to CodeCacheProvider.
Roland Schatz <roland.schatz@oracle.com>
parents: 15018
diff changeset
123
c17d593ccafb Add createSpeculationLog to CodeCacheProvider.
Roland Schatz <roland.schatz@oracle.com>
parents: 15018
diff changeset
124 /**
c17d593ccafb Add createSpeculationLog to CodeCacheProvider.
Roland Schatz <roland.schatz@oracle.com>
parents: 15018
diff changeset
125 * Create a new speculation log for the target runtime.
c17d593ccafb Add createSpeculationLog to CodeCacheProvider.
Roland Schatz <roland.schatz@oracle.com>
parents: 15018
diff changeset
126 */
c17d593ccafb Add createSpeculationLog to CodeCacheProvider.
Roland Schatz <roland.schatz@oracle.com>
parents: 15018
diff changeset
127 SpeculationLog createSpeculationLog();
22628
2e71226319da added CodeCacheProvider.getMaxCallTargetOffset and made CompilerToVM.getMaxCallTargetOffset package-private
Doug Simon <doug.simon@oracle.com>
parents: 22625
diff changeset
128
2e71226319da added CodeCacheProvider.getMaxCallTargetOffset and made CompilerToVM.getMaxCallTargetOffset package-private
Doug Simon <doug.simon@oracle.com>
parents: 22625
diff changeset
129 /**
2e71226319da added CodeCacheProvider.getMaxCallTargetOffset and made CompilerToVM.getMaxCallTargetOffset package-private
Doug Simon <doug.simon@oracle.com>
parents: 22625
diff changeset
130 * Returns the maximum absolute offset of a PC relative call to a given address from any
2e71226319da added CodeCacheProvider.getMaxCallTargetOffset and made CompilerToVM.getMaxCallTargetOffset package-private
Doug Simon <doug.simon@oracle.com>
parents: 22625
diff changeset
131 * position in the code cache or -1 when not applicable. Intended for determining the required
2e71226319da added CodeCacheProvider.getMaxCallTargetOffset and made CompilerToVM.getMaxCallTargetOffset package-private
Doug Simon <doug.simon@oracle.com>
parents: 22625
diff changeset
132 * size of address/offset fields.
2e71226319da added CodeCacheProvider.getMaxCallTargetOffset and made CompilerToVM.getMaxCallTargetOffset package-private
Doug Simon <doug.simon@oracle.com>
parents: 22625
diff changeset
133 */
2e71226319da added CodeCacheProvider.getMaxCallTargetOffset and made CompilerToVM.getMaxCallTargetOffset package-private
Doug Simon <doug.simon@oracle.com>
parents: 22625
diff changeset
134 long getMaxCallTargetOffset(long address);
22631
19ce432d854d added CodeCacheProvider.shouldDebugNonSafepoints and made CompilerToVM.shouldDebugNonSafepoints package-private
Doug Simon <doug.simon@oracle.com>
parents: 22629
diff changeset
135
19ce432d854d added CodeCacheProvider.shouldDebugNonSafepoints and made CompilerToVM.shouldDebugNonSafepoints package-private
Doug Simon <doug.simon@oracle.com>
parents: 22629
diff changeset
136 /**
19ce432d854d added CodeCacheProvider.shouldDebugNonSafepoints and made CompilerToVM.shouldDebugNonSafepoints package-private
Doug Simon <doug.simon@oracle.com>
parents: 22629
diff changeset
137 * Determines if debug info should also be emitted at non-safepoint locations.
19ce432d854d added CodeCacheProvider.shouldDebugNonSafepoints and made CompilerToVM.shouldDebugNonSafepoints package-private
Doug Simon <doug.simon@oracle.com>
parents: 22629
diff changeset
138 */
19ce432d854d added CodeCacheProvider.shouldDebugNonSafepoints and made CompilerToVM.shouldDebugNonSafepoints package-private
Doug Simon <doug.simon@oracle.com>
parents: 22629
diff changeset
139 boolean shouldDebugNonSafepoints();
3733
e233f5660da4 Added Java files from Maxine project.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
140 }