aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2009-07-21 23:47:11 +0000
committerChris Lattner <sabre@nondot.org>2009-07-21 23:47:11 +0000
commit97d2cae44bb012b51d7781fd24fdbb4e73553b61 (patch)
treec34a63dff5cc71f365d81f4bb6455fc5efe7b2ae
parent248f80d4880ef949686ecbd76b5f5b7c2a88d8db (diff)
Now that RelocBehaviour() is never overloaded, it doesn't need to be
virtual. Just inline it into its two current call sites in preparation for simplifying the code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76686 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--include/llvm/Target/TargetAsmInfo.h7
-rw-r--r--lib/Target/ELFTargetAsmInfo.cpp8
-rw-r--r--lib/Target/TargetAsmInfo.cpp12
3 files changed, 10 insertions, 17 deletions
diff --git a/include/llvm/Target/TargetAsmInfo.h b/include/llvm/Target/TargetAsmInfo.h
index a8da6cb78a..e59b12a7cd 100644
--- a/include/llvm/Target/TargetAsmInfo.h
+++ b/include/llvm/Target/TargetAsmInfo.h
@@ -601,13 +601,6 @@ namespace llvm {
virtual SectionKind::Kind
SectionKindForGlobal(const GlobalValue *GV) const;
- /// RelocBehaviour - Describes how relocations should be treated when
- /// selecting sections. Reloc::Global bit should be set if global
- /// relocations should force object to be placed in read-write
- /// sections. Reloc::Local bit should be set if local relocations should
- /// force object to be placed in read-write sections.
- virtual unsigned RelocBehaviour() const;
-
/// SectionFlagsForGlobal - This hook allows the target to select proper
/// section flags either for given global or for section.
// FIXME: Eliminate this.
diff --git a/lib/Target/ELFTargetAsmInfo.cpp b/lib/Target/ELFTargetAsmInfo.cpp
index bd2dd0a064..8ace00abd9 100644
--- a/lib/Target/ELFTargetAsmInfo.cpp
+++ b/lib/Target/ELFTargetAsmInfo.cpp
@@ -57,7 +57,13 @@ ELFTargetAsmInfo::SectionKindForGlobal(const GlobalValue *GV) const {
if (GVar->hasInitializer()) {
Constant *C = GVar->getInitializer();
bool isConstant = GVar->isConstant();
- unsigned Reloc = RelocBehaviour();
+
+
+ // By default - all relocations in PIC mode would force symbol to be
+ // placed in r/w section.
+ unsigned Reloc = (TM.getRelocationModel() != Reloc::Static ?
+ Reloc::LocalOrGlobal : Reloc::None);
+
if (Reloc != Reloc::None && C->ContainsRelocations(Reloc))
return (C->ContainsRelocations(Reloc::Global) ?
(isConstant ?
diff --git a/lib/Target/TargetAsmInfo.cpp b/lib/Target/TargetAsmInfo.cpp
index 2cdaa74843..e60855d3dd 100644
--- a/lib/Target/TargetAsmInfo.cpp
+++ b/lib/Target/TargetAsmInfo.cpp
@@ -190,13 +190,6 @@ static bool isConstantString(const Constant *C) {
return false;
}
-unsigned TargetAsmInfo::RelocBehaviour() const {
- // By default - all relocations in PIC mode would force symbol to be
- // placed in r/w section.
- return (TM.getRelocationModel() != Reloc::Static ?
- Reloc::LocalOrGlobal : Reloc::None);
-}
-
SectionKind::Kind
TargetAsmInfo::SectionKindForGlobal(const GlobalValue *GV) const {
// Early exit - functions should be always in text sections.
@@ -211,13 +204,14 @@ TargetAsmInfo::SectionKindForGlobal(const GlobalValue *GV) const {
// Variable can be easily put to BSS section.
return (isThreadLocal ? SectionKind::ThreadBSS : SectionKind::BSS);
} else if (GVar->isConstant() && !isThreadLocal) {
- // Now we know, that varible has initializer and it is constant. We need to
+ // Now we know, that variable has initializer and it is constant. We need to
// check its initializer to decide, which section to output it into. Also
// note, there is no thread-local r/o section.
Constant *C = GVar->getInitializer();
if (C->ContainsRelocations(Reloc::LocalOrGlobal)) {
// Decide, whether it is still possible to put symbol into r/o section.
- unsigned Reloc = RelocBehaviour();
+ unsigned Reloc = (TM.getRelocationModel() != Reloc::Static ?
+ Reloc::LocalOrGlobal : Reloc::None);
// We already did a query for 'all' relocs, thus - early exits.
if (Reloc == Reloc::LocalOrGlobal)