diff options
Diffstat (limited to 'lib/Target/Lanai')
-rw-r--r-- | lib/Target/Lanai/AsmParser/LanaiAsmParser.cpp | 8 | ||||
-rw-r--r-- | lib/Target/Lanai/CMakeLists.txt | 7 | ||||
-rw-r--r-- | lib/Target/Lanai/LanaiDelaySlotFiller.cpp | 2 | ||||
-rw-r--r-- | lib/Target/Lanai/LanaiISelDAGToDAG.cpp | 7 | ||||
-rw-r--r-- | lib/Target/Lanai/LanaiISelLowering.cpp | 22 | ||||
-rw-r--r-- | lib/Target/Lanai/LanaiISelLowering.h | 1 | ||||
-rw-r--r-- | lib/Target/Lanai/LanaiInstrFormats.td | 2 | ||||
-rw-r--r-- | lib/Target/Lanai/LanaiInstrInfo.cpp | 6 | ||||
-rw-r--r-- | lib/Target/Lanai/LanaiInstrInfo.h | 1 | ||||
-rw-r--r-- | lib/Target/Lanai/LanaiInstrInfo.td | 4 | ||||
-rw-r--r-- | lib/Target/Lanai/LanaiMemAluCombiner.cpp | 2 | ||||
-rw-r--r-- | lib/Target/Lanai/LanaiTargetObjectFile.cpp | 12 | ||||
-rw-r--r-- | lib/Target/Lanai/MCTargetDesc/LanaiAsmBackend.cpp | 31 | ||||
-rw-r--r-- | lib/Target/Lanai/MCTargetDesc/LanaiELFObjectWriter.cpp | 7 | ||||
-rw-r--r-- | lib/Target/Lanai/MCTargetDesc/LanaiMCCodeEmitter.cpp | 1 | ||||
-rw-r--r-- | lib/Target/Lanai/MCTargetDesc/LanaiMCTargetDesc.cpp | 6 | ||||
-rw-r--r-- | lib/Target/Lanai/MCTargetDesc/LanaiMCTargetDesc.h | 9 | ||||
-rw-r--r-- | lib/Target/Lanai/TargetInfo/LanaiTargetInfo.cpp | 1 |
18 files changed, 56 insertions, 73 deletions
diff --git a/lib/Target/Lanai/AsmParser/LanaiAsmParser.cpp b/lib/Target/Lanai/AsmParser/LanaiAsmParser.cpp index 3f24c3ef3902..a77b2b8f15ca 100644 --- a/lib/Target/Lanai/AsmParser/LanaiAsmParser.cpp +++ b/lib/Target/Lanai/AsmParser/LanaiAsmParser.cpp @@ -475,8 +475,8 @@ public: } else if (isa<MCBinaryExpr>(getImm())) { #ifndef NDEBUG const MCBinaryExpr *BinaryExpr = dyn_cast<MCBinaryExpr>(getImm()); - assert(dyn_cast<LanaiMCExpr>(BinaryExpr->getLHS()) && - dyn_cast<LanaiMCExpr>(BinaryExpr->getLHS())->getKind() == + assert(isa<LanaiMCExpr>(BinaryExpr->getLHS()) && + cast<LanaiMCExpr>(BinaryExpr->getLHS())->getKind() == LanaiMCExpr::VK_Lanai_ABS_LO); #endif Inst.addOperand(MCOperand::createExpr(getImm())); @@ -505,8 +505,8 @@ public: } else if (isa<MCBinaryExpr>(getImm())) { #ifndef NDEBUG const MCBinaryExpr *BinaryExpr = dyn_cast<MCBinaryExpr>(getImm()); - assert(dyn_cast<LanaiMCExpr>(BinaryExpr->getLHS()) && - dyn_cast<LanaiMCExpr>(BinaryExpr->getLHS())->getKind() == + assert(isa<LanaiMCExpr>(BinaryExpr->getLHS()) && + cast<LanaiMCExpr>(BinaryExpr->getLHS())->getKind() == LanaiMCExpr::VK_Lanai_ABS_HI); #endif Inst.addOperand(MCOperand::createExpr(getImm())); diff --git a/lib/Target/Lanai/CMakeLists.txt b/lib/Target/Lanai/CMakeLists.txt index 867f6165c253..c3ad807b312b 100644 --- a/lib/Target/Lanai/CMakeLists.txt +++ b/lib/Target/Lanai/CMakeLists.txt @@ -9,6 +9,7 @@ tablegen(LLVM LanaiGenInstrInfo.inc -gen-instr-info) tablegen(LLVM LanaiGenMCCodeEmitter.inc -gen-emitter) tablegen(LLVM LanaiGenRegisterInfo.inc -gen-register-info) tablegen(LLVM LanaiGenSubtargetInfo.inc -gen-subtarget) + add_public_tablegen_target(LanaiCommonTableGen) add_llvm_target(LanaiCodeGen @@ -29,7 +30,7 @@ add_llvm_target(LanaiCodeGen ) add_subdirectory(AsmParser) -add_subdirectory(TargetInfo) -add_subdirectory(MCTargetDesc) -add_subdirectory(InstPrinter) add_subdirectory(Disassembler) +add_subdirectory(InstPrinter) +add_subdirectory(MCTargetDesc) +add_subdirectory(TargetInfo) diff --git a/lib/Target/Lanai/LanaiDelaySlotFiller.cpp b/lib/Target/Lanai/LanaiDelaySlotFiller.cpp index 6b4fa7771783..ea76a1128373 100644 --- a/lib/Target/Lanai/LanaiDelaySlotFiller.cpp +++ b/lib/Target/Lanai/LanaiDelaySlotFiller.cpp @@ -156,7 +156,7 @@ bool Filler::findDelayInstr(MachineBasicBlock &MBB, for (MachineBasicBlock::reverse_instr_iterator I = ++Slot.getReverse(); I != MBB.instr_rend(); ++I) { // skip debug value - if (I->isDebugValue()) + if (I->isDebugInstr()) continue; // Convert to forward iterator. diff --git a/lib/Target/Lanai/LanaiISelDAGToDAG.cpp b/lib/Target/Lanai/LanaiISelDAGToDAG.cpp index ed0c99a76ce4..5081cfbe4922 100644 --- a/lib/Target/Lanai/LanaiISelDAGToDAG.cpp +++ b/lib/Target/Lanai/LanaiISelDAGToDAG.cpp @@ -273,12 +273,9 @@ bool LanaiDAGToDAGISel::SelectInlineAsmMemoryOperand( void LanaiDAGToDAGISel::Select(SDNode *Node) { unsigned Opcode = Node->getOpcode(); - // Dump information about the Node being selected - DEBUG(errs() << "Selecting: "; Node->dump(CurDAG); errs() << "\n"); - // If we have a custom node, we already have selected! if (Node->isMachineOpcode()) { - DEBUG(errs() << "== "; Node->dump(CurDAG); errs() << "\n"); + LLVM_DEBUG(errs() << "== "; Node->dump(CurDAG); errs() << "\n"); return; } @@ -319,7 +316,7 @@ void LanaiDAGToDAGISel::Select(SDNode *Node) { void LanaiDAGToDAGISel::selectFrameIndex(SDNode *Node) { SDLoc DL(Node); SDValue Imm = CurDAG->getTargetConstant(0, DL, MVT::i32); - int FI = dyn_cast<FrameIndexSDNode>(Node)->getIndex(); + int FI = cast<FrameIndexSDNode>(Node)->getIndex(); EVT VT = Node->getValueType(0); SDValue TFI = CurDAG->getTargetFrameIndex(FI, VT); unsigned Opc = Lanai::ADD_I_LO; diff --git a/lib/Target/Lanai/LanaiISelLowering.cpp b/lib/Target/Lanai/LanaiISelLowering.cpp index 17567436384e..045a897c4126 100644 --- a/lib/Target/Lanai/LanaiISelLowering.cpp +++ b/lib/Target/Lanai/LanaiISelLowering.cpp @@ -28,7 +28,6 @@ #include "llvm/CodeGen/MachineFunction.h" #include "llvm/CodeGen/MachineMemOperand.h" #include "llvm/CodeGen/MachineRegisterInfo.h" -#include "llvm/CodeGen/MachineValueType.h" #include "llvm/CodeGen/RuntimeLibcalls.h" #include "llvm/CodeGen/SelectionDAG.h" #include "llvm/CodeGen/SelectionDAGNodes.h" @@ -44,6 +43,7 @@ #include "llvm/Support/Debug.h" #include "llvm/Support/ErrorHandling.h" #include "llvm/Support/KnownBits.h" +#include "llvm/Support/MachineValueType.h" #include "llvm/Support/MathExtras.h" #include "llvm/Support/raw_ostream.h" #include "llvm/Target/TargetMachine.h" @@ -87,7 +87,6 @@ LanaiTargetLowering::LanaiTargetLowering(const TargetMachine &TM, setOperationAction(ISD::BR_JT, MVT::Other, Expand); setOperationAction(ISD::BRCOND, MVT::Other, Expand); setOperationAction(ISD::SETCC, MVT::i32, Custom); - setOperationAction(ISD::SETCCE, MVT::i32, Custom); setOperationAction(ISD::SELECT, MVT::i32, Expand); setOperationAction(ISD::SELECT_CC, MVT::i32, Custom); @@ -193,8 +192,6 @@ SDValue LanaiTargetLowering::LowerOperation(SDValue Op, return LowerSELECT_CC(Op, DAG); case ISD::SETCC: return LowerSETCC(Op, DAG); - case ISD::SETCCE: - return LowerSETCCE(Op, DAG); case ISD::SHL_PARTS: return LowerSHL_PARTS(Op, DAG); case ISD::SRL_PARTS: @@ -484,8 +481,8 @@ SDValue LanaiTargetLowering::LowerCCCArguments( break; } default: - DEBUG(dbgs() << "LowerFormalArguments Unhandled argument type: " - << RegVT.getEVTString() << "\n"); + LLVM_DEBUG(dbgs() << "LowerFormalArguments Unhandled argument type: " + << RegVT.getEVTString() << "\n"); llvm_unreachable("unhandled argument type"); } } else { @@ -969,19 +966,6 @@ SDValue LanaiTargetLowering::LowerMUL(SDValue Op, SelectionDAG &DAG) const { return Res; } -SDValue LanaiTargetLowering::LowerSETCCE(SDValue Op, SelectionDAG &DAG) const { - SDValue LHS = Op.getOperand(0); - SDValue RHS = Op.getOperand(1); - SDValue Carry = Op.getOperand(2); - SDValue Cond = Op.getOperand(3); - SDLoc DL(Op); - - LPCC::CondCode CC = IntCondCCodeToICC(Cond, DL, RHS, DAG); - SDValue TargetCC = DAG.getConstant(CC, DL, MVT::i32); - SDValue Flag = DAG.getNode(LanaiISD::SUBBF, DL, MVT::Glue, LHS, RHS, Carry); - return DAG.getNode(LanaiISD::SETCC, DL, Op.getValueType(), TargetCC, Flag); -} - SDValue LanaiTargetLowering::LowerSETCC(SDValue Op, SelectionDAG &DAG) const { SDValue LHS = Op.getOperand(0); SDValue RHS = Op.getOperand(1); diff --git a/lib/Target/Lanai/LanaiISelLowering.h b/lib/Target/Lanai/LanaiISelLowering.h index 46024e6fd508..0cde633cb41a 100644 --- a/lib/Target/Lanai/LanaiISelLowering.h +++ b/lib/Target/Lanai/LanaiISelLowering.h @@ -87,7 +87,6 @@ public: SDValue LowerRETURNADDR(SDValue Op, SelectionDAG &DAG) const; SDValue LowerSELECT_CC(SDValue Op, SelectionDAG &DAG) const; SDValue LowerSETCC(SDValue Op, SelectionDAG &DAG) const; - SDValue LowerSETCCE(SDValue Op, SelectionDAG &DAG) const; SDValue LowerSHL_PARTS(SDValue Op, SelectionDAG &DAG) const; SDValue LowerSRL_PARTS(SDValue Op, SelectionDAG &DAG) const; SDValue LowerVASTART(SDValue Op, SelectionDAG &DAG) const; diff --git a/lib/Target/Lanai/LanaiInstrFormats.td b/lib/Target/Lanai/LanaiInstrFormats.td index 30289ea4ac0b..1bb6b3d26a49 100644 --- a/lib/Target/Lanai/LanaiInstrFormats.td +++ b/lib/Target/Lanai/LanaiInstrFormats.td @@ -482,7 +482,7 @@ class InstSLI<dag outs, dag ins, string asmstr, list<dag> pattern> // Memory(ea) <- (least significant half-word of Rr) // If `YS' = 10 (bYte load): Rr <- Memory(ea) // If `YS' = 00 (halfword load): Rr <- Memory(ea) -// [Note: here ea is determined as in the the RM instruction. ] +// [Note: here ea is determined as in the RM instruction. ] // If `SE' = 01 then the value is zEro extended // before being loaded into Rd. // If `SE' = 00 then the value is sign extended diff --git a/lib/Target/Lanai/LanaiInstrInfo.cpp b/lib/Target/Lanai/LanaiInstrInfo.cpp index a7c9a7a7f280..493d02bef37c 100644 --- a/lib/Target/Lanai/LanaiInstrInfo.cpp +++ b/lib/Target/Lanai/LanaiInstrInfo.cpp @@ -573,8 +573,8 @@ bool LanaiInstrInfo::analyzeBranch(MachineBasicBlock &MBB, while (Instruction != MBB.begin()) { --Instruction; - // Skip over debug values. - if (Instruction->isDebugValue()) + // Skip over debug instructions. + if (Instruction->isDebugInstr()) continue; // Working from the bottom, when we see a non-terminator @@ -699,7 +699,7 @@ unsigned LanaiInstrInfo::removeBranch(MachineBasicBlock &MBB, while (Instruction != MBB.begin()) { --Instruction; - if (Instruction->isDebugValue()) + if (Instruction->isDebugInstr()) continue; if (Instruction->getOpcode() != Lanai::BT && Instruction->getOpcode() != Lanai::BRCC) { diff --git a/lib/Target/Lanai/LanaiInstrInfo.h b/lib/Target/Lanai/LanaiInstrInfo.h index f07fede67a41..fe22fde2470b 100644 --- a/lib/Target/Lanai/LanaiInstrInfo.h +++ b/lib/Target/Lanai/LanaiInstrInfo.h @@ -15,6 +15,7 @@ #define LLVM_LIB_TARGET_LANAI_LANAIINSTRINFO_H #include "LanaiRegisterInfo.h" +#include "MCTargetDesc/LanaiMCTargetDesc.h" #include "llvm/CodeGen/TargetInstrInfo.h" #define GET_INSTRINFO_HEADER diff --git a/lib/Target/Lanai/LanaiInstrInfo.td b/lib/Target/Lanai/LanaiInstrInfo.td index 776fee101dfe..66192b4a4704 100644 --- a/lib/Target/Lanai/LanaiInstrInfo.td +++ b/lib/Target/Lanai/LanaiInstrInfo.td @@ -842,6 +842,10 @@ def : Pat<(Call texternalsym:$dst), (CALL texternalsym:$dst)>; // Loads def : Pat<(extloadi8 ADDRspls:$src), (i32 (LDBz_RI ADDRspls:$src))>; def : Pat<(extloadi16 ADDRspls:$src), (i32 (LDHz_RI ADDRspls:$src))>; +// Loads up to 32-bits are already atomic. +// TODO: This is a workaround for a particular failing case and should be +// handled more generally. +def : Pat<(atomic_load_8 ADDRspls:$src), (i32 (LDBz_RI ADDRspls:$src))>; // GlobalAddress, ExternalSymbol, Jumptable, ConstantPool def : Pat<(LanaiHi tglobaladdr:$dst), (MOVHI tglobaladdr:$dst)>; diff --git a/lib/Target/Lanai/LanaiMemAluCombiner.cpp b/lib/Target/Lanai/LanaiMemAluCombiner.cpp index c29c933db747..35e2542dfb13 100644 --- a/lib/Target/Lanai/LanaiMemAluCombiner.cpp +++ b/lib/Target/Lanai/LanaiMemAluCombiner.cpp @@ -343,7 +343,7 @@ MbbIterator LanaiMemAluCombiner::findClosestSuitableAluInstr( break; // Skip over debug instructions - if (First->isDebugValue()) + if (First->isDebugInstr()) continue; if (isSuitableAluInstr(IsSpls, First, *Base, *Offset)) { diff --git a/lib/Target/Lanai/LanaiTargetObjectFile.cpp b/lib/Target/Lanai/LanaiTargetObjectFile.cpp index 38e75108ba16..7d165e9c5f8c 100644 --- a/lib/Target/Lanai/LanaiTargetObjectFile.cpp +++ b/lib/Target/Lanai/LanaiTargetObjectFile.cpp @@ -50,8 +50,7 @@ static bool isInSmallSection(uint64_t Size) { // section. bool LanaiTargetObjectFile::isGlobalInSmallSection( const GlobalObject *GO, const TargetMachine &TM) const { - if (GO == nullptr) - return false; + if (GO == nullptr) return TM.getCodeModel() == CodeModel::Small; // We first check the case where global is a declaration, because finding // section kind using getKindForGlobal() is only allowed for global @@ -67,8 +66,7 @@ bool LanaiTargetObjectFile::isGlobalInSmallSection( bool LanaiTargetObjectFile::isGlobalInSmallSection(const GlobalObject *GO, const TargetMachine &TM, SectionKind Kind) const { - return (isGlobalInSmallSectionImpl(GO, TM) && - (Kind.isData() || Kind.isBSS() || Kind.isCommon())); + return isGlobalInSmallSectionImpl(GO, TM); } // Return true if this global address should be placed into small data/bss @@ -76,10 +74,10 @@ bool LanaiTargetObjectFile::isGlobalInSmallSection(const GlobalObject *GO, // kind. bool LanaiTargetObjectFile::isGlobalInSmallSectionImpl( const GlobalObject *GO, const TargetMachine &TM) const { - // Only global variables, not functions. const auto *GVA = dyn_cast<GlobalVariable>(GO); - if (!GVA) - return false; + + // If not a GlobalVariable, only consider the code model. + if (!GVA) return TM.getCodeModel() == CodeModel::Small; // Global values placed in sections starting with .ldata do not fit in // 21-bits, so always use large memory access for them. FIXME: This is a diff --git a/lib/Target/Lanai/MCTargetDesc/LanaiAsmBackend.cpp b/lib/Target/Lanai/MCTargetDesc/LanaiAsmBackend.cpp index c4935746f5ad..82fa93ea5e5e 100644 --- a/lib/Target/Lanai/MCTargetDesc/LanaiAsmBackend.cpp +++ b/lib/Target/Lanai/MCTargetDesc/LanaiAsmBackend.cpp @@ -47,14 +47,15 @@ class LanaiAsmBackend : public MCAsmBackend { public: LanaiAsmBackend(const Target &T, Triple::OSType OST) - : MCAsmBackend(), OSType(OST) {} + : MCAsmBackend(support::big), OSType(OST) {} void applyFixup(const MCAssembler &Asm, const MCFixup &Fixup, const MCValue &Target, MutableArrayRef<char> Data, - uint64_t Value, bool IsResolved) const override; + uint64_t Value, bool IsResolved, + const MCSubtargetInfo *STI) const override; - std::unique_ptr<MCObjectWriter> - createObjectWriter(raw_pwrite_stream &OS) const override; + std::unique_ptr<MCObjectTargetWriter> + createObjectTargetWriter() const override; // No instruction requires relaxation bool fixupNeedsRelaxation(const MCFixup & /*Fixup*/, uint64_t /*Value*/, @@ -69,7 +70,8 @@ public: return Lanai::NumTargetFixupKinds; } - bool mayNeedRelaxation(const MCInst & /*Inst*/) const override { + bool mayNeedRelaxation(const MCInst & /*Inst*/, + const MCSubtargetInfo &STI) const override { return false; } @@ -77,15 +79,15 @@ public: const MCSubtargetInfo & /*STI*/, MCInst & /*Res*/) const override {} - bool writeNopData(uint64_t Count, MCObjectWriter *OW) const override; + bool writeNopData(raw_ostream &OS, uint64_t Count) const override; }; -bool LanaiAsmBackend::writeNopData(uint64_t Count, MCObjectWriter *OW) const { +bool LanaiAsmBackend::writeNopData(raw_ostream &OS, uint64_t Count) const { if ((Count % 4) != 0) return false; for (uint64_t i = 0; i < Count; i += 4) - OW->write32(0x15000000); + OS.write("\x15\0\0\0", 4); return true; } @@ -93,7 +95,8 @@ bool LanaiAsmBackend::writeNopData(uint64_t Count, MCObjectWriter *OW) const { void LanaiAsmBackend::applyFixup(const MCAssembler &Asm, const MCFixup &Fixup, const MCValue &Target, MutableArrayRef<char> Data, uint64_t Value, - bool /*IsResolved*/) const { + bool /*IsResolved*/, + const MCSubtargetInfo * /*STI*/) const { MCFixupKind Kind = Fixup.getKind(); Value = adjustFixupValue(static_cast<unsigned>(Kind), Value); @@ -127,10 +130,9 @@ void LanaiAsmBackend::applyFixup(const MCAssembler &Asm, const MCFixup &Fixup, } } -std::unique_ptr<MCObjectWriter> -LanaiAsmBackend::createObjectWriter(raw_pwrite_stream &OS) const { - return createLanaiELFObjectWriter(OS, - MCELFObjectTargetWriter::getOSABI(OSType)); +std::unique_ptr<MCObjectTargetWriter> +LanaiAsmBackend::createObjectTargetWriter() const { + return createLanaiELFObjectWriter(MCELFObjectTargetWriter::getOSABI(OSType)); } const MCFixupKindInfo & @@ -165,9 +167,10 @@ LanaiAsmBackend::getFixupKindInfo(MCFixupKind Kind) const { } // namespace MCAsmBackend *llvm::createLanaiAsmBackend(const Target &T, + const MCSubtargetInfo &STI, const MCRegisterInfo & /*MRI*/, - const Triple &TT, StringRef /*CPU*/, const MCTargetOptions & /*Options*/) { + const Triple &TT = STI.getTargetTriple(); if (!TT.isOSBinFormatELF()) llvm_unreachable("OS not supported"); diff --git a/lib/Target/Lanai/MCTargetDesc/LanaiELFObjectWriter.cpp b/lib/Target/Lanai/MCTargetDesc/LanaiELFObjectWriter.cpp index 3c40176d2f60..7676891ef981 100644 --- a/lib/Target/Lanai/MCTargetDesc/LanaiELFObjectWriter.cpp +++ b/lib/Target/Lanai/MCTargetDesc/LanaiELFObjectWriter.cpp @@ -87,8 +87,7 @@ bool LanaiELFObjectWriter::needsRelocateWithSymbol(const MCSymbol & /*SD*/, } } -std::unique_ptr<MCObjectWriter> -llvm::createLanaiELFObjectWriter(raw_pwrite_stream &OS, uint8_t OSABI) { - return createELFObjectWriter(llvm::make_unique<LanaiELFObjectWriter>(OSABI), - OS, /*IsLittleEndian=*/false); +std::unique_ptr<MCObjectTargetWriter> +llvm::createLanaiELFObjectWriter(uint8_t OSABI) { + return llvm::make_unique<LanaiELFObjectWriter>(OSABI); } diff --git a/lib/Target/Lanai/MCTargetDesc/LanaiMCCodeEmitter.cpp b/lib/Target/Lanai/MCTargetDesc/LanaiMCCodeEmitter.cpp index c3727416ecb9..21f4005aaf83 100644 --- a/lib/Target/Lanai/MCTargetDesc/LanaiMCCodeEmitter.cpp +++ b/lib/Target/Lanai/MCTargetDesc/LanaiMCCodeEmitter.cpp @@ -12,7 +12,6 @@ //===----------------------------------------------------------------------===// #include "Lanai.h" -#include "LanaiAluCode.h" #include "MCTargetDesc/LanaiBaseInfo.h" #include "MCTargetDesc/LanaiFixupKinds.h" #include "MCTargetDesc/LanaiMCExpr.h" diff --git a/lib/Target/Lanai/MCTargetDesc/LanaiMCTargetDesc.cpp b/lib/Target/Lanai/MCTargetDesc/LanaiMCTargetDesc.cpp index 74d929450ed2..ddb01cdd2d8f 100644 --- a/lib/Target/Lanai/MCTargetDesc/LanaiMCTargetDesc.cpp +++ b/lib/Target/Lanai/MCTargetDesc/LanaiMCTargetDesc.cpp @@ -61,14 +61,14 @@ createLanaiMCSubtargetInfo(const Triple &TT, StringRef CPU, StringRef FS) { static MCStreamer *createMCStreamer(const Triple &T, MCContext &Context, std::unique_ptr<MCAsmBackend> &&MAB, - raw_pwrite_stream &OS, + std::unique_ptr<MCObjectWriter> &&OW, std::unique_ptr<MCCodeEmitter> &&Emitter, bool RelaxAll) { if (!T.isOSBinFormatELF()) llvm_unreachable("OS not supported"); - return createELFStreamer(Context, std::move(MAB), OS, std::move(Emitter), - RelaxAll); + return createELFStreamer(Context, std::move(MAB), std::move(OW), + std::move(Emitter), RelaxAll); } static MCInstPrinter *createLanaiMCInstPrinter(const Triple & /*T*/, diff --git a/lib/Target/Lanai/MCTargetDesc/LanaiMCTargetDesc.h b/lib/Target/Lanai/MCTargetDesc/LanaiMCTargetDesc.h index 5bc84ad83870..2d8828ea4fa9 100644 --- a/lib/Target/Lanai/MCTargetDesc/LanaiMCTargetDesc.h +++ b/lib/Target/Lanai/MCTargetDesc/LanaiMCTargetDesc.h @@ -24,7 +24,7 @@ class MCCodeEmitter; class MCContext; class MCInstrInfo; class MCInstrAnalysis; -class MCObjectWriter; +class MCObjectTargetWriter; class MCRelocationInfo; class MCSubtargetInfo; class Target; @@ -38,12 +38,11 @@ MCCodeEmitter *createLanaiMCCodeEmitter(const MCInstrInfo &MCII, const MCRegisterInfo &MRI, MCContext &Ctx); -MCAsmBackend *createLanaiAsmBackend(const Target &T, const MCRegisterInfo &MRI, - const Triple &TheTriple, StringRef CPU, +MCAsmBackend *createLanaiAsmBackend(const Target &T, const MCSubtargetInfo &STI, + const MCRegisterInfo &MRI, const MCTargetOptions &Options); -std::unique_ptr<MCObjectWriter> -createLanaiELFObjectWriter(raw_pwrite_stream &OS, uint8_t OSABI); +std::unique_ptr<MCObjectTargetWriter> createLanaiELFObjectWriter(uint8_t OSABI); } // namespace llvm // Defines symbolic names for Lanai registers. This defines a mapping from diff --git a/lib/Target/Lanai/TargetInfo/LanaiTargetInfo.cpp b/lib/Target/Lanai/TargetInfo/LanaiTargetInfo.cpp index 5eed0cb28361..ccf47b08fcff 100644 --- a/lib/Target/Lanai/TargetInfo/LanaiTargetInfo.cpp +++ b/lib/Target/Lanai/TargetInfo/LanaiTargetInfo.cpp @@ -7,7 +7,6 @@ // //===----------------------------------------------------------------------===// -#include "Lanai.h" #include "llvm/IR/Module.h" #include "llvm/Support/TargetRegistry.h" |