LoopRotate doesn't create a faithful clone of an instruction, it may
simplify it beforehand. Hence the clone of an instruction that has a
MemoryDef associated may not be a definition, but a use or not a memory
alternig instruction.
Don't rely on the template when the clone may be simplified.
Details
Details
Diff Detail
Diff Detail
- Repository
- rL LLVM
Event Timeline
Comment Actions
just two stylistic nits; lgtm afterward. thanks for this!
include/llvm/Analysis/MemorySSAUpdater.h | ||
---|---|---|
292 ↗ | (On Diff #204828) | I think that we need to spell out very clearly in the comment what this new parameter allows. I assume it's something along the lines of "If true, the clone was exact. Otherwise, assume that the clone involved simplifications that may have:
No other cases are supported." In which case, I'd probably spell this bool something like CloneWasSimplified or simialar; useTemplateMUD is inscrutable for those who don't know how this is implemented IMO |
lib/Analysis/MemorySSAUpdater.cpp | ||
659 ↗ | (On Diff #204828) | please use /*paramName=*/false |