| From 609816828a63399cdfee87b8147131e8e587d03b Mon Sep 17 00:00:00 2001 |
| From: Lai Wei-Chih <Robert.Lai@mediatek.com> |
| Date: Fri, 25 Oct 2013 09:41:25 +0800 |
| Subject: [PATCH] Compile against llvm-3.4 |
| |
| instead of against LLVM trunk@187732 |
| --- |
| include/mcld/CodeGen/TargetMachine.h | 15 ++++++++----- |
| lib/CodeGen/MCLDTargetMachine.cpp | 40 +++++++++++++++------------------- |
| test/lit.cfg | 35 ++++++++++++++++------------- |
| test/lit.site.cfg.in | 2 +- |
| 4 files changed, 47 insertions(+), 45 deletions(-) |
| |
| diff --git a/include/mcld/CodeGen/TargetMachine.h b/include/mcld/CodeGen/TargetMachine.h |
| index 829774f..b70a49e 100644 |
| --- a/include/mcld/CodeGen/TargetMachine.h |
| +++ b/include/mcld/CodeGen/TargetMachine.h |
| @@ -19,8 +19,11 @@ class TargetMachine; |
| class MCContext; |
| class raw_ostream; |
| class formatted_raw_ostream; |
| -class PassManagerBase; |
| |
| +// The old pass manager infrastructure is hidden in a legacy namespace now. |
| +namespace legacy { |
| +class PassManagerBase; |
| +} // namespace of legacy |
| } // namespace of llvm |
| |
| namespace mcld { |
| @@ -66,7 +69,7 @@ public: |
| |
| /// appPassesToEmitFile - The target function which we has to modify as |
| /// upstreaming. |
| - bool addPassesToEmitFile(llvm::PassManagerBase &, |
| + bool addPassesToEmitFile(llvm::legacy::PassManagerBase &, |
| mcld::ToolOutputFile& pOutput, |
| mcld::CodeGenFileType, |
| llvm::CodeGenOpt::Level, |
| @@ -77,21 +80,21 @@ public: |
| private: |
| /// addCommonCodeGenPasses - Add standard LLVM codegen passes used for |
| /// both emitting to assembly files or machine code output. |
| - bool addCommonCodeGenPasses(llvm::PassManagerBase &, |
| + bool addCommonCodeGenPasses(llvm::legacy::PassManagerBase &, |
| mcld::CodeGenFileType, |
| llvm::CodeGenOpt::Level, |
| bool DisableVerify, |
| llvm::MCContext *&OutCtx); |
| |
| - bool addCompilerPasses(llvm::PassManagerBase &pPM, |
| + bool addCompilerPasses(llvm::legacy::PassManagerBase &pPM, |
| llvm::formatted_raw_ostream &pOutput, |
| llvm::MCContext *&OutCtx); |
| |
| - bool addAssemblerPasses(llvm::PassManagerBase &pPM, |
| + bool addAssemblerPasses(llvm::legacy::PassManagerBase &pPM, |
| llvm::raw_ostream &pOutput, |
| llvm::MCContext *&OutCtx); |
| |
| - bool addLinkerPasses(llvm::PassManagerBase &pPM, |
| + bool addLinkerPasses(llvm::legacy::PassManagerBase &pPM, |
| mcld::LinkerConfig& pConfig, |
| mcld::Module& pModule, |
| mcld::MemoryArea& pOutput, |
| diff --git a/lib/CodeGen/MCLDTargetMachine.cpp b/lib/CodeGen/MCLDTargetMachine.cpp |
| index 964a5be..e95786c 100644 |
| --- a/lib/CodeGen/MCLDTargetMachine.cpp |
| +++ b/lib/CodeGen/MCLDTargetMachine.cpp |
| @@ -277,8 +277,7 @@ bool mcld::MCLDTargetMachine::addPassesToEmitFile(PassManagerBase &pPM, |
| } |
| |
| bool mcld::MCLDTargetMachine::addCompilerPasses(PassManagerBase &pPM, |
| - llvm::formatted_raw_ostream &pOutput, |
| - llvm::MCContext *&Context) |
| + llvm::formatted_raw_ostream &pOutput, llvm::MCContext *&Context) |
| { |
| const MCAsmInfo &MAI = *getTM().getMCAsmInfo(); |
| const MCInstrInfo &MII = *getTM().getInstrInfo(); |
| @@ -287,28 +286,27 @@ bool mcld::MCLDTargetMachine::addCompilerPasses(PassManagerBase &pPM, |
| |
| MCInstPrinter *InstPrinter = |
| m_pLLVMTarget->createMCInstPrinter(MAI.getAssemblerDialect(), MAI, |
| - MII, |
| - *Context->getRegisterInfo(), STI); |
| + MII, *Context->getRegisterInfo(), STI); |
| |
| MCCodeEmitter* MCE = 0; |
| MCAsmBackend *MAB = 0; |
| if (ArgShowMCEncoding) { |
| MCE = m_pLLVMTarget->createMCCodeEmitter(MII, MRI, STI, *Context); |
| - MAB = m_pLLVMTarget->createMCAsmBackend(m_Triple, |
| - getTM().getTargetCPU()); |
| + MAB = m_pLLVMTarget->createMCAsmBackend(MRI, m_Triple, |
| + getTM().getTargetCPU()); |
| } |
| |
| |
| // now, we have MCCodeEmitter and MCAsmBackend, we can create AsmStreamer. |
| OwningPtr<MCStreamer> AsmStreamer( |
| m_pLLVMTarget->createAsmStreamer(*Context, pOutput, |
| - getVerboseAsm(), |
| - getTM().hasMCUseLoc(), |
| - getTM().hasMCUseCFI(), |
| - getTM().hasMCUseDwarfDirectory(), |
| - InstPrinter, |
| - MCE, MAB, |
| - ArgShowMCInst)); |
| + getVerboseAsm(), |
| + getTM().hasMCUseLoc(), |
| + getTM().hasMCUseCFI(), |
| + getTM().hasMCUseDwarfDirectory(), |
| + InstPrinter, |
| + MCE, MAB, |
| + ArgShowMCInst)); |
| |
| llvm::MachineFunctionPass* funcPass = |
| m_pLLVMTarget->createAsmPrinter(getTM(), *AsmStreamer.get()); |
| @@ -334,22 +332,18 @@ bool mcld::MCLDTargetMachine::addAssemblerPasses(PassManagerBase &pPM, |
| |
| // MCAsmBackend |
| MCAsmBackend* MAB = |
| - m_pLLVMTarget->createMCAsmBackend(m_Triple,getTM().getTargetCPU()); |
| + m_pLLVMTarget->createMCAsmBackend(MRI, m_Triple, getTM().getTargetCPU()); |
| if (MCE == 0 || MAB == 0) |
| return true; |
| |
| // now, we have MCCodeEmitter and MCAsmBackend, we can create AsmStreamer. |
| OwningPtr<MCStreamer> AsmStreamer(m_pLLVMTarget->createMCObjectStreamer( |
| - m_Triple, |
| - *Context, |
| - *MAB, |
| - pOutput, |
| - MCE, |
| - getTM().hasMCRelaxAll(), |
| - getTM().hasMCNoExecStack())); |
| + m_Triple, *Context, *MAB, pOutput, MCE, getTM().hasMCRelaxAll(), |
| + getTM().hasMCNoExecStack())); |
| + |
| AsmStreamer.get()->InitSections(); |
| - MachineFunctionPass *funcPass = m_pLLVMTarget->createAsmPrinter(getTM(), |
| - *AsmStreamer.get()); |
| + MachineFunctionPass *funcPass = |
| + m_pLLVMTarget->createAsmPrinter(getTM(), *AsmStreamer.get()); |
| if (funcPass == 0) |
| return true; |
| // If successful, createAsmPrinter took ownership of AsmStreamer |
| diff --git a/test/lit.cfg b/test/lit.cfg |
| index 549d3ec..ebaacb8 100644 |
| --- a/test/lit.cfg |
| +++ b/test/lit.cfg |
| @@ -3,6 +3,11 @@ |
| |
| # Configuration file for the 'lit' test runner. |
| |
| +import os |
| + |
| +import lit.util |
| +import lit.formats |
| + |
| # name: The name of this test suite. |
| config.name = 'MCLinker' |
| |
| @@ -22,7 +27,7 @@ config.target_triple = 'foo' |
| # Get the bindir, and add to PATH. |
| llvm_config = config.llvm_config |
| if not llvm_config: |
| - lit.fatal('No llvm-config specific configuration available!') |
| + lit_config.fatal('No llvm-config specific configuration available!') |
| |
| llvm_bindir = lit.util.capture([llvm_config, '--bindir']).strip() |
| llvm_obj_root = lit.util.capture([llvm_config, '--obj-root']).strip() |
| @@ -39,36 +44,36 @@ config.test_exec_root = os.path.join(config.mclinker_obj_root, 'test') |
| |
| llc = config.llc |
| if not llc: |
| - lit.fatal('No MCLinker specific configuration available!') |
| -if not lit.quiet: |
| - lit.note('using LLC: %r' % llc) |
| + lit_config.fatal('No MCLinker specific configuration available!') |
| +if not lit_config.quiet: |
| + lit_config.note('using LLC: %r' % llc) |
| config.substitutions.append(('%LLC', llc)) |
| |
| mcld = config.mcld |
| if not mcld: |
| - lit.fatal('No MCLinker specific configuration available!') |
| -if not lit.quiet: |
| - lit.note('using MCLinker: %r' % mcld) |
| + lit_config.fatal('No MCLinker specific configuration available!') |
| +if not lit_config.quiet: |
| + lit_config.note('using MCLinker: %r' % mcld) |
| config.substitutions.append(('%MCLinker', mcld)) |
| |
| aloneld = config.aloneld |
| if not aloneld: |
| - lit.fatal('No MCLinker specific configuration available!') |
| -if not lit.quiet: |
| - lit.note('using Alone Linker: %r' % aloneld) |
| + lit_config.fatal('No MCLinker specific configuration available!') |
| +if not lit_config.quiet: |
| + lit_config.note('using Alone Linker: %r' % aloneld) |
| config.substitutions.append(('%AloneLinker', aloneld)) |
| |
| fakeld = config.fakeld |
| if not fakeld: |
| - lit.fatal('No MCLinker specific configuration available!') |
| -if not lit.quiet: |
| - lit.note('using Fake Linker: %r' % fakeld) |
| + lit_config.fatal('No MCLinker specific configuration available!') |
| +if not lit_config.quiet: |
| + lit_config.note('using Fake Linker: %r' % fakeld) |
| config.substitutions.append(('%FakeLinker', fakeld)) |
| |
| golden = config.golden_model_linker |
| if not golden: |
| golden = 'ld' |
| -if not lit.quiet: |
| - lit.note('golden model linker: %r' % golden) |
| +if not lit_config.quiet: |
| + lit_config.note('golden model linker: %r' % golden) |
| config.substitutions.append(('%GOLDLD', golden)) |
| |
| diff --git a/test/lit.site.cfg.in b/test/lit.site.cfg.in |
| index 0f50fa0..299a3d3 100644 |
| --- a/test/lit.site.cfg.in |
| +++ b/test/lit.site.cfg.in |
| @@ -16,4 +16,4 @@ config.fakeld = "@FAKELD@" |
| config.llvm_config = "@LLVM_CONFIG@" |
| |
| # Let the main config do the real work. |
| -lit.load_config(config, "@MCLINKER_SOURCE_ROOT@/test/lit.cfg") |
| +lit_config.load_config(config, "@MCLINKER_SOURCE_ROOT@/test/lit.cfg") |
| -- |
| 1.7.9.5 |
| |