Kill off SwitchToDataSection and SwitchToTextSection, woo.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78015 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2009-08-03 23:10:34 +00:00
parent 7b59e2493d
commit c6fdced3db
2 changed files with 3 additions and 85 deletions

View File

@ -143,34 +143,6 @@ namespace llvm {
///
bool isVerbose() const { return VerboseAsm; }
/// SwitchToTextSection - Switch to the specified section of the executable
/// if we are not already in it! If GV is non-null and if the global has an
/// explicitly requested section, we switch to the section indicated for the
/// global instead of NewSection.
///
/// If the new section is an empty string, this method forgets what the
/// current section is, but does not emit a .section directive.
///
/// This method is used when about to emit executable code.
///
void SwitchToTextSection(const char *NewSection,
const GlobalValue *GV = NULL);
/// SwitchToDataSection - Switch to the specified section of the executable
/// if we are not already in it! If GV is non-null and if the global has an
/// explicitly requested section, we switch to the section indicated for the
/// global instead of NewSection.
///
/// If the new section is an empty string, this method forgets what the
/// current section is, but does not emit a .section directive.
///
/// This method is used when about to emit data. For most assemblers, this
/// is the same as the SwitchToTextSection method, but not all assemblers
/// are the same.
///
void SwitchToDataSection(const char *NewSection,
const GlobalValue *GV = NULL);
/// SwitchToSection - Switch to the specified section of the executable if
/// we are not already in it!
void SwitchToSection(const MCSection *NS);

View File

@ -78,59 +78,6 @@ TargetLoweringObjectFile &AsmPrinter::getObjFileLowering() const {
return TM.getTargetLowering()->getObjFileLowering();
}
/// SwitchToTextSection - Switch to the specified text section of the executable
/// if we are not already in it!
///
void AsmPrinter::SwitchToTextSection(const char *NewSection,
const GlobalValue *GV) {
std::string NS;
if (GV && GV->hasSection())
NS = TAI->getSwitchToSectionDirective() + GV->getSection();
else
NS = NewSection;
// If we're already in this section, we're done.
if (CurrentSection == NS) return;
// Close the current section, if applicable.
if (TAI->getSectionEndDirectiveSuffix() && !CurrentSection.empty())
O << CurrentSection << TAI->getSectionEndDirectiveSuffix() << '\n';
CurrentSection = NS;
if (!CurrentSection.empty())
O << CurrentSection << TAI->getTextSectionStartSuffix() << '\n';
IsInTextSection = true;
}
/// SwitchToDataSection - Switch to the specified data section of the executable
/// if we are not already in it!
///
void AsmPrinter::SwitchToDataSection(const char *NewSection,
const GlobalValue *GV) {
std::string NS;
if (GV && GV->hasSection())
NS = TAI->getSwitchToSectionDirective() + GV->getSection();
else
NS = NewSection;
// If we're already in this section, we're done.
if (CurrentSection == NS) return;
// Close the current section, if applicable.
if (TAI->getSectionEndDirectiveSuffix() && !CurrentSection.empty())
O << CurrentSection << TAI->getSectionEndDirectiveSuffix() << '\n';
CurrentSection = NS;
if (!CurrentSection.empty())
O << CurrentSection << TAI->getDataSectionStartSuffix() << '\n';
IsInTextSection = false;
}
/// SwitchToSection - Switch to the specified section of the executable if we
/// are not already in it! If "NS" is null, then this causes us to exit the
/// current section and not reenter another one. This is generally used for
@ -210,7 +157,7 @@ bool AsmPrinter::doInitialization(Module &M) {
<< '\n' << TAI->getCommentString()
<< " End of file scope inline assembly\n";
SwitchToDataSection(""); // Reset back to no section.
SwitchToSection(0); // Reset back to no section to close off sections.
if (TAI->doesSupportDebugInformation() ||
TAI->doesSupportExceptionHandling()) {
@ -241,7 +188,7 @@ bool AsmPrinter::doFinalization(Module &M) {
// to stuff that is actually used. Note that doing so would require targets
// to notice uses in operands (due to constant exprs etc). This should
// happen with the MC stuff eventually.
SwitchToDataSection("");
SwitchToSection(0);
// Print out module-level global variables here.
for (Module::const_global_iterator I = M.global_begin(), E = M.global_end();
@ -250,8 +197,7 @@ bool AsmPrinter::doFinalization(Module &M) {
O << TAI->getWeakRefDirective() << Mang->getMangledName(I) << '\n';
}
for (Module::const_iterator I = M.begin(), E = M.end();
I != E; ++I) {
for (Module::const_iterator I = M.begin(), E = M.end(); I != E; ++I) {
if (I->hasExternalWeakLinkage())
O << TAI->getWeakRefDirective() << Mang->getMangledName(I) << '\n';
}