harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Naveen Neelakantam <neela...@uiuc.edu>
Subject Re: [jitrino]HIR instructions
Date Fri, 02 Mar 2007 02:20:12 GMT
There are various forms of logging available.  See:
http://harmony.apache.org/subcomponents/drlvm/JIT.html#JIT_logging

And for a sample use try uncommenting these lines in opt.emconf:
-XDjit.CS_OPT.arg.log.irdump.file=log/%jit%/%log%/%seqnb%_%class%.% 
method%.log
-XDjit.CS_OPT.arg.log=ct,ir,irdump,all

Then use the modified emconf file to see the generated logs (suppose  
the modified emconf is modified_opt.emconf in the current directory):
 >jit -Xem:./modified_opt.emconf HelloWorld

You should see a log directory containing various logs, but you might  
want to start by looking at the files in log/CS_OPT/irdump/

Naveen

On Mar 1, 2007, at 7:57 PM, Estelle Liu wrote:

> Thanks,
> and does there anything I can do to dump the HIR instructions of a  
> method
> body?
>
>
> 01 Mar 2007 14:46:24 +0300, Egor Pasko <egor.pasko@gmail.com>:
>>
>> On the 0x28C day of Apache Harmony Estelle Liu wrote:
>> > hi,
>> > there are some tau instructions of HIR such as Op_TauDiv and
>> Op_TauLdInd,
>> > what do they stand for?
>> > How can I get descriptions about HIR instructions?
>>
>> Estelle,
>>
>> there is no complete reference guide for HIR instructions yet. How do
>> we tell what operations' semantics are?  The
>> jitrino/src/optimizer/Opcode.cpp file helps. For example:
>>
>> description:
>>    { Op_TauDiv,                false, MB::Movable,
>> MK::Signed_and_Strict,                     "div   ",        "div% 
>> m   %0,%1
>> ((%2)) -) %l",             }, // (opnds must already be checked for
>> 0/overflow)
>>
>> "div" says it is division. On printing it tells about 3 source
>> operands (%0, %1, %2) and one destination operand (%l). Operand ((% 
>> 2))
>> is a "tau-operand" (because in double-brachets) that comes from
>> instruction performing a zero-check (with this tau-operand we ensure
>> that zero-check is performed before the actual division).
>>
>> description2:
>>    { Op_TauLdInd,              false,
>> MB::Load,          MK::AutoCompress_Speculative,               
>> "ldind",
>> "ldind%m:%t [%0] ((%1,%2)) -) %l",          },
>>
>> This is an indirect load from memory :)
>> Checked with two tau operands (null-check and bounds-check, AFAIR)
>>
>> --
>> Egor Pasko
>>
>>
>
>
> -- 
> Estelle


Mime
View raw message