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 <[EMAIL PROTECTED]>:
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