[PATCH] D36247: [LVI] Constant-propagate a zero extension of the switch condition value through case edges

Hiroshi Yamauchi via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Aug 3 13:49:28 PDT 2017


yamauchi added inline comments.


================
Comment at: lib/Analysis/LazyValueInfo.cpp:1509
         // some cases. There is no need to perform difference for those cases.
-        if (Case.getCaseSuccessor() != BBTo)
+        // Also currently limit this to the Condition == Val case only though
+        // there are cases where this would make sense even for the
----------------
sanjoy wrote:
> I would be somewhat more explicit here:
> 
> ```
> We know Condition != EdgeVal in BBTo.  In some cases we can use this to infer Val == f(Condition) is != f(EdgeVal).  For now, we only do this when f is identity (i.e. Val == Condition), but we should be able to do this for any injective f.
> ```
> 
> The "There is no need to perform difference for those cases." comment is also somewhat misleading -- it is not just that there is no need, we //cannot// perform the difference in these cases.  Can you please update that comment since you're touching nearby code anyway?
Done. I assumed by EdgeVal you meant CaseValue where EdgeVal = f(CaseValue).


https://reviews.llvm.org/D36247





More information about the llvm-commits mailing list