[PATCH] D63338: [NFC] PHINode: introduce setIncomingValueForBlock() function, and use it.

Florian Hahn via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Jun 14 09:44:28 PDT 2019


fhahn added inline comments.


================
Comment at: llvm/include/llvm/IR/Instructions.h:2729
+  void setIncomingValueForBlock(const BasicBlock *BB, Value *V) {
+    assert(BB && "PHI node got a null basic block!");
+    for (unsigned Op = 0, NumOps = getNumOperands(); Op != NumOps; ++Op)
----------------
Whitney wrote:
> fhahn wrote:
> > can this just be 
> > ```
> >     int Idx = getBasicBlockIndex(BB);
> >     assert(Idx >= 0 && "Invalid basic block argument!");
> >     return setIncomingValue(Idx, V);
> > ```
> > 
> > similar to getIncomingValueForBlock above?
> I thought of doing that, but sometimes a phi node may have multiple operands of the same incoming block (not sure why). I am using a similar code pattern as in replaceIncomingBlockWith().
Ah right. I think it is worth mentioning in the doc comment that it will replace all values coming from BB? 

For the places that use getbasicBlockIndex, this is not a NFC I think, as they would only replace the incoming value of the first occurrence.


Repository:
  rL LLVM

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D63338/new/

https://reviews.llvm.org/D63338





More information about the llvm-commits mailing list