mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-10-19 11:02:59 +02:00
Recommit r239721: Replace string GNU Triples with llvm::Triple in InitMCObjectFileInfo. NFC.
Summary: This affects other tools so the previous C++ API has been retained as a deprecated function for the moment. Clang has been updated with a trivial patch (not covered by the pre-commit review) to avoid breaking -Werror builds. Other in-tree tools will be fixed with similar patches. This continues the patch series to eliminate StringRef forms of GNU triples from the internals of LLVM that began in r239036. The first time this was committed it accidentally fixed an inconsistency in triples in llvm-mc and this caused a failure. This inconsistency was fixed in r239808. Reviewers: rengolin Reviewed By: rengolin Subscribers: llvm-commits, rengolin Differential Revision: http://reviews.llvm.org/D10366 llvm-svn: 239812
This commit is contained in:
parent
3bbc325a64
commit
4f36d138c9
@ -20,7 +20,6 @@
|
|||||||
namespace llvm {
|
namespace llvm {
|
||||||
class MCContext;
|
class MCContext;
|
||||||
class MCSection;
|
class MCSection;
|
||||||
class StringRef;
|
|
||||||
|
|
||||||
class MCObjectFileInfo {
|
class MCObjectFileInfo {
|
||||||
protected:
|
protected:
|
||||||
@ -188,8 +187,12 @@ protected:
|
|||||||
MCSection *SXDataSection;
|
MCSection *SXDataSection;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
void InitMCObjectFileInfo(StringRef TT, Reloc::Model RM, CodeModel::Model CM,
|
void InitMCObjectFileInfo(const Triple &TT, Reloc::Model RM,
|
||||||
MCContext &ctx);
|
CodeModel::Model CM, MCContext &ctx);
|
||||||
|
LLVM_ATTRIBUTE_DEPRECATED(
|
||||||
|
void InitMCObjectFileInfo(StringRef TT, Reloc::Model RM,
|
||||||
|
CodeModel::Model CM, MCContext &ctx),
|
||||||
|
"StringRef GNU Triple argument replaced by a llvm::Triple object");
|
||||||
|
|
||||||
bool getSupportsWeakOmittedEHFrame() const {
|
bool getSupportsWeakOmittedEHFrame() const {
|
||||||
return SupportsWeakOmittedEHFrame;
|
return SupportsWeakOmittedEHFrame;
|
||||||
|
@ -735,7 +735,8 @@ void MCObjectFileInfo::initCOFFMCObjectFileInfo(Triple T) {
|
|||||||
SectionKind::getDataRel());
|
SectionKind::getDataRel());
|
||||||
}
|
}
|
||||||
|
|
||||||
void MCObjectFileInfo::InitMCObjectFileInfo(StringRef T, Reloc::Model relocm,
|
void MCObjectFileInfo::InitMCObjectFileInfo(const Triple &TheTriple,
|
||||||
|
Reloc::Model relocm,
|
||||||
CodeModel::Model cm,
|
CodeModel::Model cm,
|
||||||
MCContext &ctx) {
|
MCContext &ctx) {
|
||||||
RelocM = relocm;
|
RelocM = relocm;
|
||||||
@ -759,7 +760,7 @@ void MCObjectFileInfo::InitMCObjectFileInfo(StringRef T, Reloc::Model relocm,
|
|||||||
DwarfAccelNamespaceSection = nullptr; // Used only by selected targets.
|
DwarfAccelNamespaceSection = nullptr; // Used only by selected targets.
|
||||||
DwarfAccelTypesSection = nullptr; // Used only by selected targets.
|
DwarfAccelTypesSection = nullptr; // Used only by selected targets.
|
||||||
|
|
||||||
TT = Triple(T);
|
TT = TheTriple;
|
||||||
|
|
||||||
Triple::ArchType Arch = TT.getArch();
|
Triple::ArchType Arch = TT.getArch();
|
||||||
// FIXME: Checking for Arch here to filter out bogus triples such as
|
// FIXME: Checking for Arch here to filter out bogus triples such as
|
||||||
@ -783,6 +784,12 @@ void MCObjectFileInfo::InitMCObjectFileInfo(StringRef T, Reloc::Model relocm,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MCObjectFileInfo::InitMCObjectFileInfo(StringRef TT, Reloc::Model RM,
|
||||||
|
CodeModel::Model CM,
|
||||||
|
MCContext &ctx) {
|
||||||
|
InitMCObjectFileInfo(Triple(TT), RM, CM, ctx);
|
||||||
|
}
|
||||||
|
|
||||||
MCSection *MCObjectFileInfo::getDwarfTypesSection(uint64_t Hash) const {
|
MCSection *MCObjectFileInfo::getDwarfTypesSection(uint64_t Hash) const {
|
||||||
return Ctx->getELFSection(".debug_types", ELF::SHT_PROGBITS, ELF::SHF_GROUP,
|
return Ctx->getELFSection(".debug_types", ELF::SHT_PROGBITS, ELF::SHF_GROUP,
|
||||||
0, utostr(Hash));
|
0, utostr(Hash));
|
||||||
|
@ -45,22 +45,22 @@ IRObjectFile::IRObjectFile(MemoryBufferRef Object, std::unique_ptr<Module> Mod)
|
|||||||
if (InlineAsm.empty())
|
if (InlineAsm.empty())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
StringRef Triple = M->getTargetTriple();
|
Triple TT(M->getTargetTriple());
|
||||||
std::string Err;
|
std::string Err;
|
||||||
const Target *T = TargetRegistry::lookupTarget(Triple, Err);
|
const Target *T = TargetRegistry::lookupTarget(TT.str(), Err);
|
||||||
if (!T)
|
if (!T)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
std::unique_ptr<MCRegisterInfo> MRI(T->createMCRegInfo(Triple));
|
std::unique_ptr<MCRegisterInfo> MRI(T->createMCRegInfo(TT.str()));
|
||||||
if (!MRI)
|
if (!MRI)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
std::unique_ptr<MCAsmInfo> MAI(T->createMCAsmInfo(*MRI, Triple));
|
std::unique_ptr<MCAsmInfo> MAI(T->createMCAsmInfo(*MRI, TT.str()));
|
||||||
if (!MAI)
|
if (!MAI)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
std::unique_ptr<MCSubtargetInfo> STI(
|
std::unique_ptr<MCSubtargetInfo> STI(
|
||||||
T->createMCSubtargetInfo(Triple, "", ""));
|
T->createMCSubtargetInfo(TT.str(), "", ""));
|
||||||
if (!STI)
|
if (!STI)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@ -70,7 +70,7 @@ IRObjectFile::IRObjectFile(MemoryBufferRef Object, std::unique_ptr<Module> Mod)
|
|||||||
|
|
||||||
MCObjectFileInfo MOFI;
|
MCObjectFileInfo MOFI;
|
||||||
MCContext MCCtx(MAI.get(), MRI.get(), &MOFI);
|
MCContext MCCtx(MAI.get(), MRI.get(), &MOFI);
|
||||||
MOFI.InitMCObjectFileInfo(Triple, Reloc::Default, CodeModel::Default, MCCtx);
|
MOFI.InitMCObjectFileInfo(TT, Reloc::Default, CodeModel::Default, MCCtx);
|
||||||
std::unique_ptr<RecordStreamer> Streamer(new RecordStreamer(MCCtx));
|
std::unique_ptr<RecordStreamer> Streamer(new RecordStreamer(MCCtx));
|
||||||
T->createNullTargetStreamer(*Streamer);
|
T->createNullTargetStreamer(*Streamer);
|
||||||
|
|
||||||
|
@ -44,8 +44,8 @@ void TargetLoweringObjectFile::Initialize(MCContext &ctx,
|
|||||||
const TargetMachine &TM) {
|
const TargetMachine &TM) {
|
||||||
Ctx = &ctx;
|
Ctx = &ctx;
|
||||||
DL = TM.getDataLayout();
|
DL = TM.getDataLayout();
|
||||||
InitMCObjectFileInfo(TM.getTargetTriple(),
|
InitMCObjectFileInfo(Triple(TM.getTargetTriple()), TM.getRelocationModel(),
|
||||||
TM.getRelocationModel(), TM.getCodeModel(), *Ctx);
|
TM.getCodeModel(), *Ctx);
|
||||||
}
|
}
|
||||||
|
|
||||||
TargetLoweringObjectFile::~TargetLoweringObjectFile() {
|
TargetLoweringObjectFile::~TargetLoweringObjectFile() {
|
||||||
|
@ -527,7 +527,7 @@ bool DwarfStreamer::init(Triple TheTriple, StringRef OutputFilename) {
|
|||||||
|
|
||||||
MOFI.reset(new MCObjectFileInfo);
|
MOFI.reset(new MCObjectFileInfo);
|
||||||
MC.reset(new MCContext(MAI.get(), MRI.get(), MOFI.get()));
|
MC.reset(new MCContext(MAI.get(), MRI.get(), MOFI.get()));
|
||||||
MOFI->InitMCObjectFileInfo(TripleName, Reloc::Default, CodeModel::Default,
|
MOFI->InitMCObjectFileInfo(TheTriple, Reloc::Default, CodeModel::Default,
|
||||||
*MC);
|
*MC);
|
||||||
|
|
||||||
MAB = TheTarget->createMCAsmBackend(*MRI, TripleName, "");
|
MAB = TheTarget->createMCAsmBackend(*MRI, TripleName, "");
|
||||||
|
@ -431,7 +431,7 @@ int main(int argc, char **argv) {
|
|||||||
// MCObjectFileInfo needs a MCContext reference in order to initialize itself.
|
// MCObjectFileInfo needs a MCContext reference in order to initialize itself.
|
||||||
MCObjectFileInfo MOFI;
|
MCObjectFileInfo MOFI;
|
||||||
MCContext Ctx(MAI.get(), MRI.get(), &MOFI, &SrcMgr);
|
MCContext Ctx(MAI.get(), MRI.get(), &MOFI, &SrcMgr);
|
||||||
MOFI.InitMCObjectFileInfo(TripleName, RelocModel, CMModel, Ctx);
|
MOFI.InitMCObjectFileInfo(TheTriple, RelocModel, CMModel, Ctx);
|
||||||
|
|
||||||
if (SaveTempLabels)
|
if (SaveTempLabels)
|
||||||
Ctx.setAllowTemporaryLabels(false);
|
Ctx.setAllowTemporaryLabels(false);
|
||||||
|
Loading…
Reference in New Issue
Block a user