src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/AOTGraalHotSpotVMConfig.java
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File
*** old/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/AOTGraalHotSpotVMConfig.java Mon Mar 20 17:38:26 2017
--- new/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/AOTGraalHotSpotVMConfig.java Mon Mar 20 17:38:26 2017
*** 20,42 ****
--- 20,48 ----
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
package org.graalvm.compiler.hotspot;
+ import org.graalvm.compiler.core.common.CompressEncoding;
+
import jdk.vm.ci.hotspot.HotSpotVMConfigStore;
public class AOTGraalHotSpotVMConfig extends GraalHotSpotVMConfig {
private final CompressEncoding aotOopEncoding;
private final CompressEncoding aotKlassEncoding;
public AOTGraalHotSpotVMConfig(HotSpotVMConfigStore store) {
super(store);
// In AOT, force the shift to be always equal to alignment therefore avoiding zero-shift.
+ // AOT captures VM settings during compilation. For compressed oops this
+ // presents a problem for the case when the VM selects a zero-shift mode
+ // (i.e., when the heap is less than 4G). Compiling an AOT binary with
+ // zero-shift limits its usability. As such we force the shift to be
+ // always equal to alignment to avoid emitting zero-shift AOT code.
CompressEncoding vmOopEncoding = super.getOopEncoding();
! aotOopEncoding = new CompressEncoding(vmOopEncoding.base, vmOopEncoding.alignment, vmOopEncoding.alignment);
! aotOopEncoding = new CompressEncoding(vmOopEncoding.getBase(), logMinObjAlignment());
CompressEncoding vmKlassEncoding = super.getKlassEncoding();
! aotKlassEncoding = new CompressEncoding(vmKlassEncoding.base, vmKlassEncoding.alignment, vmKlassEncoding.alignment);
! aotKlassEncoding = new CompressEncoding(vmKlassEncoding.getBase(), logKlassAlignment);
assert check();
}
@Override
public CompressEncoding getOopEncoding() {
src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/AOTGraalHotSpotVMConfig.java
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File