MemDepPrinter currently fails an assertion when it tries to print a NonLocal MemDepResult. This commit adds support for printing NonLocal results, but as there are now five DepTypes it can print I had to change the std::pair of PointerIntPair and basic block pointer it used into a std::tuple.
(lldb) f 5 frame #5: 0x000000010182744b opt`(anonymous namespace)::MemDepPrinter::getInstTypePair(dep=MemDepResult at 0x00007fff5fbfd510) + 267 at MemDepPrinter.cpp:70 67 return InstTypePair(dep.getInst(), Def); 68 if (dep.isNonFuncLocal()) 69 return InstTypePair(dep.getInst(), NonFuncLocal); -> 70 assert(dep.isUnknown() && "unexpected dependence type"); 71 return InstTypePair(dep.getInst(), Unknown); 72 } 73 static InstTypePair getInstTypePair(const Instruction* inst, DepType type) { (lldb) p dep (llvm::MemDepResult) $0 = { Value = (Value = 7) }