aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2009-08-13 00:37:15 +0000
committerChris Lattner <sabre@nondot.org>2009-08-13 00:37:15 +0000
commit38cff389af1d78bd80df0479ef258493e0c5897e (patch)
tree7bbbecb058efb77eaf4ab59aac1f6c8a8e168e72 /include
parentf991ecf7231436437f6de1a22e93d0a1b380e078 (diff)
sink uniquing of sections out of MCContext into the ELF and PECOFF TLOF implementations.
MCContext no longer maintains a string -> section map. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78874 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r--include/llvm/MC/MCContext.h10
-rw-r--r--include/llvm/MC/MCSection.h10
-rw-r--r--include/llvm/Target/TargetLoweringObjectFile.h10
3 files changed, 15 insertions, 15 deletions
diff --git a/include/llvm/MC/MCContext.h b/include/llvm/MC/MCContext.h
index adf380472a..082b515a2e 100644
--- a/include/llvm/MC/MCContext.h
+++ b/include/llvm/MC/MCContext.h
@@ -46,16 +46,6 @@ namespace llvm {
public:
MCContext();
~MCContext();
-
- /// GetSection - Look up a section with the given @param Name, returning
- /// null if it doesn't exist.
- MCSection *GetSection(const StringRef &Name) const;
-
- void SetSection(const StringRef &Name, MCSection *S) {
- MCSection *&Entry = Sections[Name];
- assert(Entry == 0 && "Multiple sections with the same name created");
- Entry = S;
- }
/// CreateSymbol - Create a new symbol with the specified @param Name.
///
diff --git a/include/llvm/MC/MCSection.h b/include/llvm/MC/MCSection.h
index aa40386bfd..b33e8c9b42 100644
--- a/include/llvm/MC/MCSection.h
+++ b/include/llvm/MC/MCSection.h
@@ -52,8 +52,9 @@ namespace llvm {
/// of a syntactic one.
bool IsDirective;
- MCSectionELF(const StringRef &Name, bool IsDirective, SectionKind K,
- MCContext &Ctx);
+ MCSectionELF(const StringRef &name, bool isDirective, SectionKind K)
+ : MCSection(K), Name(name), IsDirective(isDirective) {
+ }
public:
static MCSectionELF *Create(const StringRef &Name, bool IsDirective,
@@ -77,8 +78,9 @@ namespace llvm {
/// of a syntactic one.
bool IsDirective;
- MCSectionCOFF(const StringRef &Name, bool IsDirective, SectionKind K,
- MCContext &Ctx);
+ MCSectionCOFF(const StringRef &name, bool isDirective, SectionKind K)
+ : MCSection(K), Name(name), IsDirective(isDirective) {
+ }
public:
static MCSectionCOFF *Create(const StringRef &Name, bool IsDirective,
diff --git a/include/llvm/Target/TargetLoweringObjectFile.h b/include/llvm/Target/TargetLoweringObjectFile.h
index 7f74c6b055..102928b659 100644
--- a/include/llvm/Target/TargetLoweringObjectFile.h
+++ b/include/llvm/Target/TargetLoweringObjectFile.h
@@ -183,6 +183,7 @@ protected:
class TargetLoweringObjectFileELF : public TargetLoweringObjectFile {
bool HasCrazyBSS;
+ mutable void *UniquingMap;
protected:
/// TLSDataSection - Section directive for Thread Local data.
///
@@ -208,7 +209,10 @@ protected:
public:
TargetLoweringObjectFileELF(// FIXME: REMOVE AFTER UNIQUING IS FIXED.
bool hasCrazyBSS = false)
- : HasCrazyBSS(hasCrazyBSS) {}
+ : HasCrazyBSS(hasCrazyBSS), UniquingMap(0) {}
+
+ ~TargetLoweringObjectFileELF();
+
virtual void Initialize(MCContext &Ctx, const TargetMachine &TM);
@@ -302,7 +306,11 @@ public:
class TargetLoweringObjectFileCOFF : public TargetLoweringObjectFile {
+ mutable void *UniquingMap;
public:
+ TargetLoweringObjectFileCOFF() : UniquingMap(0) {}
+ ~TargetLoweringObjectFileCOFF();
+
virtual void Initialize(MCContext &Ctx, const TargetMachine &TM);
virtual const MCSection *