hg: valhalla/valhalla/langtools: Enhanced support for BytecodeMapping attribute
Maurizio Cimadamore
maurizio.cimadamore at oracle.com
Fri Aug 8 21:09:58 UTC 2014
On 08/08/14 21:49, Remi Forax wrote:
> Hi Maurizio,
> why invokestatic (and invokedynamic) are not supported ?
For now the implementation tags the invokeXYZ opcodes that could point
to 'stale' descriptors in the CP - i.e. method descriptors whose 'owner'
is bound to change after class specialization. Under this assumption, I
believe that calling a static method should not require any mangling -
i.e. class statics should probably continue to live in the main
unspecialized class (handwaving).
A bit of the same holds for indy - the descriptor generated for an indy
does not have a direct correspondence with the source code - i.e. it is
a synthetic descriptor that is only used for the purpose of describing
the types of the dynamic arguments. It is possible that, if we decide to
implement specialized generic methods with indy, that might change in
the future.
Maurizio
>
> Rémi
>
> On 08/08/2014 06:20 PM, maurizio.cimadamore at oracle.com wrote:
>> Changeset: 7904f37d7d98
>> Author: mcimadamore
>> Date: 2014-08-08 17:16 +0100
>> URL:
>> http://hg.openjdk.java.net/valhalla/valhalla/langtools/rev/7904f37d7d98
>>
>> Enhanced support for BytecodeMapping attribute
>> *) new opcodes supported:
>> putfield/getfield/invokespecial/invokevirtual/invokeinterface
>> *) Add test harness to check correctness of BytecodeMapping attributes
>> *) Add javap support for BytecodeMapping and TypeVariablesMap
>> *) Fix bug in SpecializeTypes where super symbol was not being
>> replaced correctly
>> *) Fix missing call to 'synthetizeIfMissing' in SymTab (for VarHandle
>> related classes)
>>
>> ! src/share/classes/com/sun/tools/classfile/Attribute.java
>> +
>> src/share/classes/com/sun/tools/classfile/BytecodeMapping_attribute.java
>> ! src/share/classes/com/sun/tools/classfile/ClassWriter.java
>> +
>> src/share/classes/com/sun/tools/classfile/TypeVariablesMap_attribute.java
>> ! src/share/classes/com/sun/tools/javac/code/Symtab.java
>> ! src/share/classes/com/sun/tools/javac/comp/SpecializeTypes.java
>> ! src/share/classes/com/sun/tools/javac/jvm/Gen.java
>> ! src/share/classes/com/sun/tools/javac/jvm/Items.java
>> ! src/share/classes/com/sun/tools/javap/AttributeWriter.java
>> ! test/tools/javac/MethodParameters/AttributeVisitor.java
>> + test/tools/javac/valhalla/typespec/items/BytecodeMapping.java
>> + test/tools/javac/valhalla/typespec/items/BytecodeMappingHarness.java
>> + test/tools/javac/valhalla/typespec/items/Opcodes.java
>> + test/tools/javac/valhalla/typespec/items/tests/TestAnyMembers.java
>> +
>> test/tools/javac/valhalla/typespec/items/tests/TestArrayLoadAndStore.java
>> + test/tools/javac/valhalla/typespec/items/tests/TestCmp.java
>> + test/tools/javac/valhalla/typespec/items/tests/TestDup.java
>> + test/tools/javac/valhalla/typespec/items/tests/TestLoadAndStore.java
>> + test/tools/javac/valhalla/typespec/items/tests/TestPop.java
>> + test/tools/javac/valhalla/typespec/items/tests/TestSuper.java
>>
>
More information about the valhalla-dev
mailing list