diff --git a/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp b/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp --- a/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp +++ b/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp @@ -516,7 +516,7 @@ CodeViewLineTablesGroupDescription); } if (!EmitCodeView || M.getDwarfVersion()) { - if (MMI->hasDebugInfo()) { + if (MMI && MMI->hasDebugInfo()) { DD = new DwarfDebug(this); Handlers.emplace_back(std::unique_ptr(DD), DbgTimerName, DbgTimerDescription, DWARFGroupName, @@ -573,7 +573,8 @@ break; case WinEH::EncodingType::X86: case WinEH::EncodingType::Itanium: - ES = new WinException(this); + if (MMI) + ES = new WinException(this); break; } break; diff --git a/llvm/lib/Target/X86/X86LowerAMXType.cpp b/llvm/lib/Target/X86/X86LowerAMXType.cpp --- a/llvm/lib/Target/X86/X86LowerAMXType.cpp +++ b/llvm/lib/Target/X86/X86LowerAMXType.cpp @@ -494,7 +494,7 @@ Value *Row = II->getOperand(0); Value *Col = II->getOperand(1); - Instruction *UserI = dyn_cast(U.getUser()); + Instruction *UserI = cast(U.getUser()); IRBuilder<> Builder(UserI); Value *Stride = Builder.getInt64(64); std::array Args = {Row, Col, Ptr, Stride};