C++/C#: Sync

This commit is contained in:
Robert Marsh
2020-01-16 07:16:57 -08:00
parent 1b5d33023e
commit c942da524c
2 changed files with 16 additions and 4 deletions

View File

@@ -573,13 +573,19 @@ module DefUse {
// An odd offset corresponds to the `Chi` instruction. // An odd offset corresponds to the `Chi` instruction.
defOffset = oldOffset * 2 + 1 and defOffset = oldOffset * 2 + 1 and
result = Chi(oldInstr) and result = Chi(oldInstr) and
hasNonPhiDefinition(_, defLocation, defBlock, defOffset) and (
defLocation = Alias::getResultMemoryLocation(oldInstr) or
defLocation = Alias::getResultMemoryLocation(oldInstr).getVirtualVariable()
) and
actualDefLocation = defLocation.getVirtualVariable() actualDefLocation = defLocation.getVirtualVariable()
or or
// An even offset corresponds to the original instruction. // An even offset corresponds to the original instruction.
defOffset = oldOffset * 2 and defOffset = oldOffset * 2 and
result = getNewInstruction(oldInstr) and result = getNewInstruction(oldInstr) and
hasNonPhiDefinition(_, defLocation, defBlock, defOffset) and (
defLocation = Alias::getResultMemoryLocation(oldInstr) or
defLocation = Alias::getResultMemoryLocation(oldInstr).getVirtualVariable()
) and
actualDefLocation = defLocation actualDefLocation = defLocation
) )
or or

View File

@@ -573,13 +573,19 @@ module DefUse {
// An odd offset corresponds to the `Chi` instruction. // An odd offset corresponds to the `Chi` instruction.
defOffset = oldOffset * 2 + 1 and defOffset = oldOffset * 2 + 1 and
result = Chi(oldInstr) and result = Chi(oldInstr) and
hasNonPhiDefinition(_, defLocation, defBlock, defOffset) and (
defLocation = Alias::getResultMemoryLocation(oldInstr) or
defLocation = Alias::getResultMemoryLocation(oldInstr).getVirtualVariable()
) and
actualDefLocation = defLocation.getVirtualVariable() actualDefLocation = defLocation.getVirtualVariable()
or or
// An even offset corresponds to the original instruction. // An even offset corresponds to the original instruction.
defOffset = oldOffset * 2 and defOffset = oldOffset * 2 and
result = getNewInstruction(oldInstr) and result = getNewInstruction(oldInstr) and
hasNonPhiDefinition(_, defLocation, defBlock, defOffset) and (
defLocation = Alias::getResultMemoryLocation(oldInstr) or
defLocation = Alias::getResultMemoryLocation(oldInstr).getVirtualVariable()
) and
actualDefLocation = defLocation actualDefLocation = defLocation
) )
or or