Index: lib/Transforms/Utils/MemorySSA.cpp =================================================================== --- lib/Transforms/Utils/MemorySSA.cpp +++ lib/Transforms/Utils/MemorySSA.cpp @@ -257,8 +257,13 @@ // Return true when MD may alias MU, return false otherwise. bool defClobbersUseOrDef(MemoryDef *MD, const MemoryUseOrDef *MU, AliasAnalysis &AA) { - Instruction *Insn = MU->getMemoryInst(); - return instructionClobbersQuery(MD, MemoryLocation::get(Insn), Insn, AA); + Instruction *UseInst = MU->getMemoryInst(); + MemoryLocation UseLoc; + if (ImmutableCallSite(UseInst)) + UseLoc = MemoryLocation(); + else + UseLoc = MemoryLocation::get(UseInst); + return instructionClobbersQuery(MD, UseLoc, UseInst, AA); } }