diff options
author | Evan Cheng <evan.cheng@apple.com> | 2011-07-20 19:50:42 +0000 |
---|---|---|
committer | Evan Cheng <evan.cheng@apple.com> | 2011-07-20 19:50:42 +0000 |
commit | 203576aa0cb9d8bf2d2e4d910ebab4b7a63262ae (patch) | |
tree | a16f407717874ac406be0e520508b944a77a22b0 /include/llvm | |
parent | 8eda1310dbbbb747c0e8646dbdfc7a2c33f7a6b6 (diff) | |
download | external_llvm-203576aa0cb9d8bf2d2e4d910ebab4b7a63262ae.zip external_llvm-203576aa0cb9d8bf2d2e4d910ebab4b7a63262ae.tar.gz external_llvm-203576aa0cb9d8bf2d2e4d910ebab4b7a63262ae.tar.bz2 |
Goodbye TargetAsmInfo. This eliminate last bit of CodeGen and Target in llvm-mc.
There is still a bit more refactoring left to do in Targets. But we are now very
close to fixing all the layering issues in MC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135611 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm')
-rw-r--r-- | include/llvm/CodeGen/MachineModuleInfo.h | 3 | ||||
-rw-r--r-- | include/llvm/CodeGen/TargetLoweringObjectFileImpl.h | 5 | ||||
-rw-r--r-- | include/llvm/MC/MCContext.h | 7 | ||||
-rw-r--r-- | include/llvm/MC/MCObjectFileInfo.h | 18 | ||||
-rw-r--r-- | include/llvm/Target/TargetAsmInfo.h | 35 | ||||
-rw-r--r-- | include/llvm/Target/TargetLoweringObjectFile.h | 5 |
6 files changed, 19 insertions, 54 deletions
diff --git a/include/llvm/CodeGen/MachineModuleInfo.h b/include/llvm/CodeGen/MachineModuleInfo.h index 38f1742..1828bcf 100644 --- a/include/llvm/CodeGen/MachineModuleInfo.h +++ b/include/llvm/CodeGen/MachineModuleInfo.h @@ -175,8 +175,7 @@ public: MachineModuleInfo(); // DUMMY CONSTRUCTOR, DO NOT CALL. // Real constructor. MachineModuleInfo(const MCAsmInfo &MAI, const MCRegisterInfo &MRI, - const MCObjectFileInfo *MOFI, - const TargetAsmInfo *TAI); + const MCObjectFileInfo *MOFI); ~MachineModuleInfo(); bool doInitialization(); diff --git a/include/llvm/CodeGen/TargetLoweringObjectFileImpl.h b/include/llvm/CodeGen/TargetLoweringObjectFileImpl.h index a42aa64..ca40ccf 100644 --- a/include/llvm/CodeGen/TargetLoweringObjectFileImpl.h +++ b/include/llvm/CodeGen/TargetLoweringObjectFileImpl.h @@ -100,11 +100,6 @@ public: virtual MCSymbol * getCFIPersonalitySymbol(const GlobalValue *GV, Mangler *Mang, MachineModuleInfo *MMI) const; - - virtual unsigned getPersonalityEncoding() const; - virtual unsigned getLSDAEncoding() const; - virtual unsigned getFDEEncoding(bool CFI) const; - virtual unsigned getTTypeEncoding() const; }; diff --git a/include/llvm/MC/MCContext.h b/include/llvm/MC/MCContext.h index 9de89fe..a49a35c 100644 --- a/include/llvm/MC/MCContext.h +++ b/include/llvm/MC/MCContext.h @@ -31,7 +31,6 @@ namespace llvm { class MCLineSection; class StringRef; class Twine; - class TargetAsmInfo; class MCSectionMachO; class MCSectionELF; @@ -54,8 +53,6 @@ namespace llvm { /// The MCObjectFileInfo for this target. const MCObjectFileInfo *MOFI; - const TargetAsmInfo *TAI; - /// Allocator - Allocator object used for creating machine code objects. /// /// We use a bump pointer allocator to avoid the need to track all allocated @@ -119,7 +116,7 @@ namespace llvm { public: explicit MCContext(const MCAsmInfo &MAI, const MCRegisterInfo &MRI, - const MCObjectFileInfo *MOFI, const TargetAsmInfo *TAI); + const MCObjectFileInfo *MOFI); ~MCContext(); const MCAsmInfo &getAsmInfo() const { return MAI; } @@ -128,8 +125,6 @@ namespace llvm { const MCObjectFileInfo *getObjectFileInfo() const { return MOFI; } - const TargetAsmInfo &getTargetAsmInfo() const { return *TAI; } - void setAllowTemporaryLabels(bool Value) { AllowTemporaryLabels = Value; } /// @name Symbol Management diff --git a/include/llvm/MC/MCObjectFileInfo.h b/include/llvm/MC/MCObjectFileInfo.h index b507c0c..060d508 100644 --- a/include/llvm/MC/MCObjectFileInfo.h +++ b/include/llvm/MC/MCObjectFileInfo.h @@ -40,6 +40,13 @@ protected: /// non-.globl label. This defaults to true. bool IsFunctionEHFrameSymbolPrivate; + /// PersonalityEncoding, LSDAEncoding, FDEEncoding, TTypeEncoding - Some + /// encoding values for EH. + unsigned PersonalityEncoding; + unsigned LSDAEncoding; + unsigned FDEEncoding; + unsigned FDECFIEncoding; + unsigned TTypeEncoding; /// TextSection - Section directive for standard text. /// @@ -151,7 +158,8 @@ protected: const MCSection *XDataSection; public: - void InitMCObjectFileInfo(StringRef TT, Reloc::Model RM, MCContext &ctx); + void InitMCObjectFileInfo(StringRef TT, Reloc::Model RM, CodeModel::Model CM, + MCContext &ctx); bool isFunctionEHFrameSymbolPrivate() const { return IsFunctionEHFrameSymbolPrivate; @@ -163,6 +171,13 @@ public: return CommDirectiveSupportsAlignment; } + unsigned getPersonalityEncoding() const { return PersonalityEncoding; } + unsigned getLSDAEncoding() const { return LSDAEncoding; } + unsigned getFDEEncoding(bool CFI) const { + return CFI ? FDECFIEncoding : FDEEncoding; + } + unsigned getTTypeEncoding() const { return TTypeEncoding; } + const MCSection *getTextSection() const { return TextSection; } const MCSection *getDataSection() const { return DataSection; } const MCSection *getBSSSection() const { return BSSSection; } @@ -262,6 +277,7 @@ private: enum Environment { IsMachO, IsELF, IsCOFF }; Environment Env; Reloc::Model RelocM; + CodeModel::Model CMModel; MCContext *Ctx; void InitMachOMCObjectFileInfo(Triple T); diff --git a/include/llvm/Target/TargetAsmInfo.h b/include/llvm/Target/TargetAsmInfo.h deleted file mode 100644 index 38bbab4..0000000 --- a/include/llvm/Target/TargetAsmInfo.h +++ /dev/null @@ -1,35 +0,0 @@ -//===-- llvm/Target/TargetAsmInfo.h -----------------------------*- C++ -*-===// -// -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// -// -// Interface to provide the information necessary for producing assembly files. -// -//===----------------------------------------------------------------------===// - -#ifndef LLVM_TARGET_TARGETASMINFO_H -#define LLVM_TARGET_TARGETASMINFO_H - -#include "llvm/Target/TargetLoweringObjectFile.h" - -namespace llvm { - class TargetMachine; - class TargetLoweringObjectFile; - -class TargetAsmInfo { - const TargetLoweringObjectFile *TLOF; - -public: - explicit TargetAsmInfo(const TargetMachine &TM); - - unsigned getFDEEncoding(bool CFI) const { - return TLOF->getFDEEncoding(CFI); - } -}; - -} -#endif diff --git a/include/llvm/Target/TargetLoweringObjectFile.h b/include/llvm/Target/TargetLoweringObjectFile.h index d6428ff..7d06cec 100644 --- a/include/llvm/Target/TargetLoweringObjectFile.h +++ b/include/llvm/Target/TargetLoweringObjectFile.h @@ -122,11 +122,6 @@ public: getExprForDwarfReference(const MCSymbol *Sym, unsigned Encoding, MCStreamer &Streamer) const; - virtual unsigned getPersonalityEncoding() const; - virtual unsigned getLSDAEncoding() const; - virtual unsigned getFDEEncoding(bool CFI) const; - virtual unsigned getTTypeEncoding() const; - protected: virtual const MCSection * SelectSectionForGlobal(const GlobalValue *GV, SectionKind Kind, |