[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [omr-dev] Help needed - what is wrong with this IL?
|
Hi Dibyendu,
In this example I believe the bad node is n14n with rc=2 - it is only referenced once and should have rc=1.
Cheers,
Andrew Craik Testarossa JIT Common Optimizer and x86 Code Generation Team Lead JIT Compiler Development and Performance IBM Canada Lab |
|
Phone: 1-905-413-3620 E-mail: ajcraik@xxxxxxxxxx Find me on: |
8200 Warden Ave Markham, ON L6G 1C7 Canada |
Dibyendu Majumdar ---23-06-2018 09:05:12---Here is a smaller example that fails validation. Pre IlGenOpt Trees: for file:line:notFrom: Dibyendu Majumdar <mobile@xxxxxxxxxxxxxxx>To: omr developer discussions <omr-dev@xxxxxxxxxxx>Date: 23-06-18 09:05Subject: Re: [omr-dev] Help needed - what is wrong with this IL?Sent by: omr-dev-bounces@xxxxxxxxxxx
Here is a smaller example that fails validation.
Pre IlGenOpt Trees: for file:line:not
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
n2n BBStart <block_2>
[0x0000024DAD4B3900] bci=[-1,0,-] rc=0 vc=0
vn=- li=- udi=- nc=0
n9n istorei <array-shadow>[#480 Shadow] [flags 0x80000603 0x0
] [0x0000024DAD4B3AC0] bci=[-1,0,-] rc=0 vc=0
vn=- li=- udi=- nc=2
n8n aladd
[0x0000024DAD4B3A80] bci=[-1,0,-] rc=1 vc=0
vn=- li=- udi=- nc=2
n5n loadaddr <temp slot 3>[#592 Auto] [flags 0x6001000e
0x0 ] [0x0000024DAD4B39C0] bci=[-1,0,-] rc=1 vc=0
vn=- li=- udi=- nc=0
n7n lconst 0
[0x0000024DAD4B3A40] bci=[-1,0,-] rc=1 vc=0
vn=- li=- udi=- nc=0
n6n iload Parm 0<parm 0 I>[#590 Parm] [flags 0x40000103 0x0
] [0x0000024DAD4B3A00] bci=[-1,0,-] rc=1 vc=0
vn=- li=- udi=- nc=0
n20n istorei <array-shadow>[#480 Shadow] [flags 0x80000603 0x0
] [0x0000024DAD4B3D80] bci=[-1,0,-] rc=0 vc=0
vn=- li=- udi=- nc=2
n19n aladd
[0x0000024DAD4B3D40] bci=[-1,0,-] rc=1 vc=0
vn=- li=- udi=- nc=2
n18n loadaddr <temp slot 2>[#591 Auto] [flags 0x6001000e
0x0 ] [0x0000024DAD4B3D00] bci=[-1,0,-] rc=1 vc=0
vn=- li=- udi=- nc=0
n17n lconst 0
[0x0000024DAD4B3CC0] bci=[-1,0,-] rc=1 vc=0
vn=- li=- udi=- nc=0
n16n icmpne
[0x0000024DAD4B3C80] bci=[-1,0,-] rc=1 vc=0
vn=- li=- udi=- nc=2
n13n iloadi <array-shadow>[#480 Shadow] [flags 0x80000603
0x0 ] [0x0000024DAD4B3BC0] bci=[-1,0,-] rc=2 vc=0
vn=- li=- udi=- nc=1
n12n aladd
[0x0000024DAD4B3B80] bci=[-1,0,-] rc=1 vc=0
vn=- li=- udi=- nc=2
n10n loadaddr <temp slot 3>[#592 Auto] [flags
0x6001000e 0x0 ] [0x0000024DAD4B3B00] bci=[-1,0,-]
rc=1 vc=0 vn=- li=- udi=- nc=0
n11n lconst 0
[0x0000024DAD4B3B40] bci=[-1,0,-] rc=1 vc=0
vn=- li=- udi=- nc=0
n14n iconst 0
[0x0000024DAD4B3C00] bci=[-1,0,-] rc=2 vc=0
vn=- li=- udi=- nc=0
n21n goto --> block_3 BBStart at n4n
[0x0000024DAD4B3DC0] bci=[-1,0,-] rc=0 vc=0
vn=- li=- udi=- nc=0
n1n BBEnd </block_2> =====
[0x0000024DAD4B38C0] bci=[-1,0,-] rc=0 vc=0
vn=- li=- udi=- nc=0
n4n BBStart <block_3>
[0x0000024DAD4B3980] bci=[-1,0,-] rc=0 vc=0
vn=- li=- udi=- nc=0
n26n ireturn
[0x0000024DAD4B3F00] bci=[-1,0,-] rc=0 vc=0
vn=- li=- udi=- nc=1
n25n iloadi <array-shadow>[#480 Shadow] [flags 0x80000603 0x0
] [0x0000024DAD4B3EC0] bci=[-1,0,-] rc=1 vc=0
vn=- li=- udi=- nc=1
n24n aladd
[0x0000024DAD4B3E80] bci=[-1,0,-] rc=1 vc=0
vn=- li=- udi=- nc=2
n23n loadaddr <temp slot 2>[#591 Auto] [flags 0x6001000e
0x0 ] [0x0000024DAD4B3E40] bci=[-1,0,-] rc=1 vc=0
vn=- li=- udi=- nc=0
n22n lconst 0
[0x0000024DAD4B3E00] bci=[-1,0,-] rc=1 vc=0
vn=- li=- udi=- nc=0
n3n BBEnd </block_3>
[0x0000024DAD4B3940] bci=[-1,0,-] rc=0 vc=0
vn=- li=- udi=- nc=0
index: node global index
bci=[x,y,z]: byte-code-info [callee-index, bytecode-index, line-number]
rc: reference count
vc: visit count
vn: value number
li: local index
udi: use/def index
nc: number of children
addr: address size in bytes
flg: node flags
Symbol References (incremental):
--------------------------------
#480: <array-shadow>[ Shadow] [flags 0x80000603 0x0 ]
[0x0000024DAD4D67B0] (Int32)
#590: Parm 0<parm 0 I>[ Parm] [flags 0x40000103 0x0 ]
[0x0000024DAD4B4AB0] (Int32)
#591: <temp slot 2>[ Auto] [flags 0x6001000e 0x0 ]
[0x0000024DAD4D6610] (Aggregate)
#592: <temp slot 3>[ Auto] [flags 0x6001000e 0x0 ]
[0x0000024DAD4D66E0] (Aggregate)
Number of nodes = 25, symRefCount = 593
</trees>
<cfg>
0 [0x0000024DAD4D6230] entry
in = []
out = [2(0) ]
exception in = []
exception out = []
1 [0x0000024DAD4D6130] exit
in = [3(0) ]
out = []
exception in = []
exception out = []
2 [0x0000024DAD4D6340] BBStart at 0x0000024DAD4B3900
in = [0(0) ]
out = [3(0) ]
exception in = []
exception out = []
3 [0x0000024DAD4D6480] BBStart at 0x0000024DAD4B3980
in = [2(0) ]
out = [1(0) ]
exception in = []
exception out = []
</cfg>
On 23 June 2018 at 00:12, Dibyendu Majumdar <mobile@xxxxxxxxxxxxxxx> wrote:
> Hi,
>
> I am getting an error:
>
> *** VALIDATION ERROR ***
> Node: BBEnd n5n
> Method: file:line:sets3
> Node cannot live across block boundary at n161n
>
> But I can't see what is wrong with attached IL. Any help appreciated.
>
> Thanks and Regards
> Dibyendu
_______________________________________________
omr-dev mailing list
omr-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/omr-dev