view README.html @ 13953:d587baa55dd7

Add shouldBeInlined method to ResolvedJavaMethod, implement it for HotSpot and use it in the inlining phase
author Gilles Duboscq <duboscq@ssw.jku.at>
date Thu, 13 Feb 2014 18:46:15 +0100
parents 64b9375246e4
children
line wrap: on
line source

<h2>Building Graal</h2>
<p>There is a Python script in mxtool/mx.py that simplifies working with the code
base. It requires Python 2.7. While you can run this script by using an absolute path,
it's more convenient to add graal/mxtool to your PATH environment variable so that the
'mx' helper script can be used. The following instructions in this file assume this
setup.</p>

<p>Building both the Java and C++ source code comprising the Graal VM
can be done with the following simple command.</p>

<pre>
% mx build
</pre>

<p>There are a number of VM configurations supported by mx which can
be explicitly specified using the --vm option. However, you'll typically
want one of these VM configurations:</p>

<ol>
<li> The 'server' configuration is a standard HotSpot VM that includes the
   runtime support for Graal but uses the existing compilers for normal
   compilation (e.g., when the interpreter threshold is hit for a method).
   Compilation with Graal is only done by explicit requests to the
   Graal API. This is how Truffle uses Graal.</li>
   
<li> The 'graal' configuration is a VM where all compilation is performed
   by Graal and no other compilers are built into the VM binary. This
   VM will bootstrap Graal itself at startup unless the -XX:-BootstrapGraal
   VM option is given.   </li>
</ol>

<p>Unless you use the --vm option with the build command, you will be presented
with a dialogue to choose one of the above VM configurations for the build
as well as have the option to make it your default for subsequent commands
that need a VM specified.</p>

<p>To build the debug or fastdebug builds:</p>

<pre>
% mx --vmbuild debug build
% mx --vmbuild fastdebug build
</pre>

<h2>Running Graal</h2>

<p>To run the VM, use 'mx vm' in place of the standard 'java' command:</p>

<pre>
% mx vm ...
</pre>

<p>To select the fastdebug or debug builds of the VM:</p>

<pre>
% mx --vmbuild fastdebug vm ...
% mx --vmbuild debug vm ...
</pre>

<h2>Other VM Configurations</h2>

<p>In addition to the VM configurations described above, there are
VM configurations that omit all VM support for Graal:</p>

<pre>
% mx --vm server-nograal build
% mx --vm server-nograal vm -version
java version "1.7.0_25"
Java(TM) SE Runtime Environment (build 1.7.0_25-b15)
OpenJDK 64-Bit Server VM (build 25.0-b43-internal, mixed mode)
</pre>

<pre>
% mx --vm client-nograal build
% mx --vm client-nograal vm -version
java version "1.7.0_25"
Java(TM) SE Runtime Environment (build 1.7.0_25-b15)
OpenJDK 64-Bit Cleint VM (build 25.0-b43-internal, mixed mode)
</pre>

<p>These configurations aim to match as closely as possible the
VM(s) included in the OpenJDK binaries one can download.</p>