Predicate isInCycle
Holds if instr
is part of a cycle in the operand graph that doesn’t go
through a phi instruction and therefore should be impossible.
If such cycles are present, either due to a programming error in the IR generation or due to a malformed database, it can cause infinite loops in analyses that assume a cycle-free graph of non-phi operands. Therefore it’s better to remove these operands than to leave cycles in the operand graph.
Import path
import semmle.code.cpp.ir.implementation.raw.internal.IRConstruction
predicate isInCycle(Instruction instr)