You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Here, PHI takes four possible variables but has only one predecessor. This already confuses me as it is not at a join node (which means it can't be a dominance frontier). But let's move on and look at its predecessor, which is an empty block with three incoming edges.
Begin block 0x739B0x210
prev=[0x715B0x210, 0x71bB0x210, 0x723B0x210], succ=[0x73aB0x210]
=================================
I have no clue of why this block is empty, but given three incoming edges, there is no enough information to decode the PHI operation.
The strongest evidence shows that there is something wrong with the PHI insertion is that two of the variables in the PHI operation v218, v21d are actually defined in the same block:
I tried to perform some kind of out-of-SSA translation on the output TAC representation.
I found some of the PHI operations seem to be ill-formed.
Take
long_running.hex
as an example, in the TAC output, the functionfunction getTransactionCount(bool,bool)() public
contains a block:Here, PHI takes four possible variables but has only one predecessor. This already confuses me as it is not at a join node (which means it can't be a dominance frontier). But let's move on and look at its predecessor, which is an empty block with three incoming edges.
I have no clue of why this block is empty, but given three incoming edges, there is no enough information to decode the PHI operation.
The strongest evidence shows that there is something wrong with the PHI insertion is that two of the variables in the PHI operation
v218, v21d
are actually defined in the same block:Any help would be appreciated!
The text was updated successfully, but these errors were encountered: