Testing and compiling hotspot

Radek rsmogura at gmail.com
Thu May 26 23:03:18 UTC 2016


Vladimir,

Thank you for your help.

Right now I’m able to change file writing directly to Java array :D

BR,
Radel

PS. I’m drunk
> On 27 May 2016, at 00:03, Vladimir Kozlov <vladimir.kozlov at oracle.com> wrote:
> 
> Hi Radek,
> 
> Disclaimer: I am not very familiar with C1, I am specializing on C2.
> 
> On 5/26/16 1:25 PM, Radek wrote:
>> Thank you Vladimir,
>> 
>> I have few other, descriptive questions, and I apologises for less strict questions.
>> 
>> I work on sharing memory in JVM, I have modified C1 and G1 (it works, but maybe I did something which I do not understand). Hotspot is pretty complicated, and there is a lot of ideas which are hard to be understand by code analyse.
>> 
>> I have two concerns: one is “state”, 2nd one is XHandlers.
>> 
>> I wonder for what purposes the “state” is used? I’ve seen that there is few places where state_for, and copy_state_* is used in LIR_Generator. My understanding is that this represents the state of VM before and after the given instruction. This state is expressed as “instructions” used to obtain given value. Than, I suppose, the state is transformed to registers which can be used by instructions, so last stack value can represent REG_X in state before, and REG_Y in state after (ie. state before field is loaded and after)? Am I right? Please free to correct me.
> 
> As I understand 'state' is referring the JVM state when Interpreter executes this bytecode.
> JIT compiler have to track such states to be able "deoptimize" a compiled code and continue execution of this method in Interpreter. The state consist of BCI and mapping between locals, expressions, monitores and corresponding registers and stack slots in compiled code.
> 
>> 
>> My 2nd question is about XHandlers. What XHandler actually is? Is this catch block? I’ve seen looking for XHandlers in signal block used to capture null references.
> 
> "// An XHandler is a C1 internal description for an exception handler"
> 
> Yes, in simple term it is a class which associated with bytecode corresponding to java 'catch' block.
> But it covers not only exception clearly expressed in java but also exceptions generated by VM - like NULL pointer exceptions and others.
> 
> Regards,
> Vladimir
> 
>> 
>> Thanks in advance,
>> Radek
>> 
>> 
>>> On 25 May 2016, at 18:48, Vladimir Kozlov <vladimir.kozlov at oracle.com> wrote:
>>> 
>>> Your command line looks correct. You don't need 'hotspot', just 'jdk' is enough - it will build hotspot too and put libjvm.so into built jdk.
>>> It takes time only for first build. If you change only hotspot after that the same command should be faster since only hotspot will be rebuilt.
>>> 
>>> Vladimir
>>> 
>>> On 5/25/16 7:40 AM, Radek wrote:
>>>> Dear all,
>>>> 
>>>> Please don’t kill me for asking less hotspot related question.
>>>> 
>>>> I working on hotspot code (memory management). In order to build and debug it I firstly build JDK with following command:
>>>> 
>>>> make CONF=linux-x86_64-normal-server-slowdebug JOBS=10 LOG=info hotspot jdk
>>>> 
>>>> This takes a bit of time. I tried to analyse make files to answer my question, but ….
>>>> 
>>>> I wonder if you know some magical combination of commands so,
>>>> - I can execute particular test,
>>>> - I can start JVM without building JDK.
>>>> 
>>>> Thanks in advance,
>>>> Radek
>>>> 
>> 



More information about the hotspot-compiler-dev mailing list