Mercurial > hg > graal-jvmci-8
view ASSEMBLY_EXCEPTION @ 10769:395d34c10e26
HSAIL backend changes
Contributed-by: Tom Deneau <tom.deneau@amd.com>
* stackslot mapping was incorrect when combinations of 32-bit and
64-bit stores were generated. StackSlot alignment in
HSAILTargetDescription set to 8.
* compressedOops support in various heap size configurations (with or
without either of shift or heap base). So we don't need
XX:-UseCompressedOops anymore.
* some support for unsigned shifts, long shifts, logical ops for long
datatype.
* a new GraalOption, InlineEverything. Some HSAIL targets are not
able to handle HSAIL function calls yet, plus we are still working
on emitting HSAIL function calls in the compiler.
* hack for emitForeignCall special cases of createOutOfBoundsException
or createNullPointerException. (We just emit a comment. Real
exception handling still pending). These nodes came about when we
more aggressively inlined, although this has not been explained yet.
* support HSAILAddressValues as operands for arithmetic ops. Use
HSAIL lda instruction to get address into a register. Used in
particular for USHR for card-marking.
* Added some new junit tests. (some ported from their lambda versions)
* StaticNBodyCallTest which would fail with default inlining (since
we don't yet generate HSAIL calls). It uses junit.assumeTrue and
tests whether InlineEverything is set. It (and also some
lambda-based junit tests not part of this webrev) do pass nicely
when InlineEverything is set true.
* tests for storing an object, which test being able to handle the
card-marking logic, as well as the encoding and decoding of a
compressed oop.
* some 2D matrix tests that showed a problem before the stackslot
change above. (have a mixture of 32-bit and 64-bit stackslot
spills)
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Mon, 15 Jul 2013 18:22:25 +0200 |
parents | c18cbe5936b8 |
children |
line wrap: on
line source
OPENJDK ASSEMBLY EXCEPTION The OpenJDK source code made available by Oracle at openjdk.java.net and openjdk.dev.java.net ("OpenJDK Code") is distributed under the terms of the GNU General Public License <http://www.gnu.org/copyleft/gpl.html> version 2 only ("GPL2"), with the following clarification and special exception. Linking this OpenJDK Code statically or dynamically with other code is making a combined work based on this library. Thus, the terms and conditions of GPL2 cover the whole combination. As a special exception, Oracle gives you permission to link this OpenJDK Code with certain code licensed by Oracle as indicated at http://openjdk.java.net/legal/exception-modules-2007-05-08.html ("Designated Exception Modules") to produce an executable, regardless of the license terms of the Designated Exception Modules, and to copy and distribute the resulting executable under GPL2, provided that the Designated Exception Modules continue to be governed by the licenses under which they were offered by Oracle. As such, it allows licensees and sublicensees of Oracle's GPL2 OpenJDK Code to build an executable that includes those portions of necessary code that Oracle could not provide under GPL2 (or that Oracle has provided under GPL2 with the Classpath exception). If you modify or add to the OpenJDK code, that new GPL2 code may still be combined with Designated Exception Modules if the new code is made subject to this exception by its copyright holder.