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)
}