Displaying 2 results from an estimated 2 matches for "instsinthisblock".
2016 Feb 26
0
Is a PHI use of another PHI in the same block valid?
If we decide not to be legal, should we change the verify to reject
it? What happens to the test cases that currently test this very
situation (eg. Transforms/LoopVectorize/phi-hang.ll)?
The change as suggested by Philip is:
- Assert(InstsInThisBlock.count(Op) || DT.dominates(Op, U),
+ Assert((!isa<PHINode>(I) && InstsInThisBlock.count(Op)) ||
+ DT.dominates(Op, U),
+ "Instruction does not dominate all uses!", Op, &I);
Michael
2016-02-26 18:02 GMT+01:00 Philip Reames <listmail at philipreames.c...
2016 Feb 26
6
Is a PHI use of another PHI in the same block valid?
Over in pr26718, we ran across a case where input IR had one PHI within
a basic block using the value of another PHI within the same basic block
(without a backedge). There has been some disagreement as to whether
this is valid IR. I believe it is not.
The verifier currently accepts the following code without error:
define void @f() {
entry:
br label %next
next:
%y = phi i32 [ 0,