Skip to main content

[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,

I am still stuck with this problem and would appreciate any help.

Below is the smallest snippet I was able to create that fails.
The code below was generated with OP code icmpeq - although in the
dump it appears to be icmpne - I do not understand why.
If I use the icmpne OP code or other comparison op codes the code compiles.

The error I am getting is:

*** VALIDATION ERROR ***
Node: BBEnd n1n
Method: file:line:comp
Node cannot live across block boundary at n13n

Here is IL from the trace log.

n2n       BBStart <block_2>
                       [0x000001C89DD53900] bci=[-1,0,-] rc=0 vc=0
vn=- li=- udi=- nc=0
n9n       istorei  <array-shadow>[#480  Shadow] [flags 0x80000603 0x0
]                       [0x000001C89DD53AC0] bci=[-1,0,-] rc=0 vc=0
vn=- li=- udi=- nc=2
n8n         aladd
                       [0x000001C89DD53A80] bci=[-1,0,-] rc=1 vc=0
vn=- li=- udi=- nc=2
n5n           loadaddr  <temp slot 3>[#592  Auto] [flags 0x6001000e
0x0 ]                     [0x000001C89DD539C0] bci=[-1,0,-] rc=1 vc=0
vn=- li=- udi=- nc=0
n7n           lconst 0
                       [0x000001C89DD53A40] bci=[-1,0,-] rc=1 vc=0
vn=- li=- udi=- nc=0
n6n         iload  Parm  0<parm 0 I>[#590  Parm] [flags 0x40000103 0x0
]                      [0x000001C89DD53A00] bci=[-1,0,-] rc=1 vc=0
vn=- li=- udi=- nc=0
n17n      istore  <temp slot 2>[#591  Auto] [flags 0x10003 0x0 ]
                       [0x000001C89DD53CC0] bci=[-1,0,-] rc=0 vc=0
vn=- li=- udi=- nc=1
n16n        icmpne
                       [0x000001C89DD53C80] bci=[-1,0,-] rc=1 vc=0
vn=- li=- udi=- nc=2
n13n          iloadi  <array-shadow>[#480  Shadow] [flags 0x80000603
0x0 ]                    [0x000001C89DD53BC0] bci=[-1,0,-] rc=2 vc=0
vn=- li=- udi=- nc=1
n12n            aladd
                       [0x000001C89DD53B80] bci=[-1,0,-] rc=1 vc=0
vn=- li=- udi=- nc=2
n10n              loadaddr  <temp slot 3>[#592  Auto] [flags
0x6001000e 0x0 ]                 [0x000001C89DD53B00] bci=[-1,0,-]
rc=1 vc=0 vn=- li=- udi=- nc=0
n11n              lconst 0
                       [0x000001C89DD53B40] bci=[-1,0,-] rc=1 vc=0
vn=- li=- udi=- nc=0
n14n          iconst 0
                       [0x000001C89DD53C00] bci=[-1,0,-] rc=2 vc=0
vn=- li=- udi=- nc=0
n18n      goto --> block_3 BBStart at n4n
                       [0x000001C89DD53D00] bci=[-1,0,-] rc=0 vc=0
vn=- li=- udi=- nc=0
n1n       BBEnd </block_2> =====
                       [0x000001C89DD538C0] bci=[-1,0,-] rc=0 vc=0
vn=- li=- udi=- nc=0

n4n       BBStart <block_3>
                       [0x000001C89DD53980] bci=[-1,0,-] rc=0 vc=0
vn=- li=- udi=- nc=0
n20n      ireturn
                       [0x000001C89DD53D80] bci=[-1,0,-] rc=0 vc=0
vn=- li=- udi=- nc=1
n19n        iload  <temp slot 2>[#591  Auto] [flags 0x10003 0x0 ]
                       [0x000001C89DD53D40] bci=[-1,0,-] rc=1 vc=0
vn=- li=- udi=- nc=0
n3n       BBEnd </block_3>
                       [0x000001C89DD53940] 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 ]
[0x000001C89DD767B0] (Int32)
#590:  Parm  0<parm 0 I>[ Parm] [flags 0x40000103 0x0 ]
[0x000001C89DD54AB0] (Int32)
#591:  <temp slot 2>[ Auto] [flags 0x10003 0x0 ] [0x000001C89DD76610] (Int32)
#592:  <temp slot 3>[ Auto] [flags 0x6001000e 0x0 ]
[0x000001C89DD766E0] (Aggregate)


Back to the top