Mercurial > hg > CbC > CbC_llvm
diff unittests/CodeGen/MachineInstrTest.cpp @ 134:3a76565eade5 LLVM5.0.1
update 5.0.1
author | mir3636 |
---|---|
date | Sat, 17 Feb 2018 09:57:20 +0900 |
parents | 803732b1fca8 |
children | c2174574ed3a |
line wrap: on
line diff
--- a/unittests/CodeGen/MachineInstrTest.cpp Fri Feb 16 19:10:49 2018 +0900 +++ b/unittests/CodeGen/MachineInstrTest.cpp Sat Feb 17 09:57:20 2018 +0900 @@ -10,14 +10,16 @@ #include "llvm/CodeGen/MachineInstr.h" #include "llvm/CodeGen/MachineFunction.h" #include "llvm/CodeGen/MachineModuleInfo.h" +#include "llvm/CodeGen/TargetFrameLowering.h" +#include "llvm/CodeGen/TargetInstrInfo.h" +#include "llvm/CodeGen/TargetLowering.h" +#include "llvm/CodeGen/TargetSubtargetInfo.h" +#include "llvm/IR/DebugInfoMetadata.h" +#include "llvm/IR/ModuleSlotTracker.h" #include "llvm/Support/TargetRegistry.h" #include "llvm/Support/TargetSelect.h" -#include "llvm/Target/TargetFrameLowering.h" -#include "llvm/Target/TargetInstrInfo.h" -#include "llvm/Target/TargetLowering.h" #include "llvm/Target/TargetMachine.h" #include "llvm/Target/TargetOptions.h" -#include "llvm/Target/TargetSubtargetInfo.h" #include "gtest/gtest.h" using namespace llvm; @@ -91,8 +93,9 @@ auto TM = createTargetMachine(); unsigned FunctionNum = 42; MachineModuleInfo MMI(TM.get()); + const TargetSubtargetInfo &STI = *TM->getSubtargetImpl(*F); - return llvm::make_unique<MachineFunction>(F, *TM, FunctionNum, MMI); + return llvm::make_unique<MachineFunction>(*F, *TM, STI, FunctionNum, MMI); } // This test makes sure that MachineInstr::isIdenticalTo handles Defs correctly @@ -243,4 +246,25 @@ checkHashAndIsEqualMatch(VD2PU, VD2PD); } + +TEST(MachineInstrPrintingTest, DebugLocPrinting) { + auto MF = createMachineFunction(); + + MCOperandInfo OpInfo{0, 0, MCOI::OPERAND_REGISTER, 0}; + MCInstrDesc MCID = {0, 1, 1, 0, 0, 0, + 0, nullptr, nullptr, &OpInfo, 0, nullptr}; + + LLVMContext Ctx; + DILocation *DIL = DILocation::get(Ctx, 1, 5, (Metadata *)nullptr, nullptr); + DebugLoc DL(DIL); + MachineInstr *MI = MF->CreateMachineInstr(MCID, DL); + MI->addOperand(*MF, MachineOperand::CreateReg(0, /*isDef*/ true)); + + std::string str; + raw_string_ostream OS(str); + MI->print(OS); + ASSERT_TRUE( + StringRef(OS.str()).startswith("$noreg = UNKNOWN debug-location ")); +} + } // end namespace