1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 03:02:36 +01:00

Revert r239721 - Replace string GNU Triples with llvm::Triple in InitMCObjectFileInfo. NFC.

It appears to cause sparc-little-endian.s to assert on Windows and Darwin.

llvm-svn: 239724
This commit is contained in:
Daniel Sanders 2015-06-15 10:34:38 +00:00
parent 15d01ae3f0
commit 52648be0df
6 changed files with 16 additions and 28 deletions

View File

@ -20,6 +20,7 @@
namespace llvm {
class MCContext;
class MCSection;
class StringRef;
class MCObjectFileInfo {
protected:
@ -184,12 +185,8 @@ protected:
MCSection *SXDataSection;
public:
void InitMCObjectFileInfo(const Triple &TT, Reloc::Model RM,
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");
void InitMCObjectFileInfo(StringRef TT, Reloc::Model RM, CodeModel::Model CM,
MCContext &ctx);
bool getSupportsWeakOmittedEHFrame() const {
return SupportsWeakOmittedEHFrame;

View File

@ -729,8 +729,7 @@ void MCObjectFileInfo::initCOFFMCObjectFileInfo(Triple T) {
SectionKind::getDataRel());
}
void MCObjectFileInfo::InitMCObjectFileInfo(const Triple &TheTriple,
Reloc::Model relocm,
void MCObjectFileInfo::InitMCObjectFileInfo(StringRef T, Reloc::Model relocm,
CodeModel::Model cm,
MCContext &ctx) {
RelocM = relocm;
@ -754,7 +753,7 @@ void MCObjectFileInfo::InitMCObjectFileInfo(const Triple &TheTriple,
DwarfAccelNamespaceSection = nullptr; // Used only by selected targets.
DwarfAccelTypesSection = nullptr; // Used only by selected targets.
TT = TheTriple;
TT = Triple(T);
Triple::ArchType Arch = TT.getArch();
// FIXME: Checking for Arch here to filter out bogus triples such as
@ -778,12 +777,6 @@ void MCObjectFileInfo::InitMCObjectFileInfo(const Triple &TheTriple,
}
}
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 {
return Ctx->getELFSection(".debug_types", ELF::SHT_PROGBITS, ELF::SHF_GROUP,
0, utostr(Hash));

View File

@ -45,22 +45,22 @@ IRObjectFile::IRObjectFile(MemoryBufferRef Object, std::unique_ptr<Module> Mod)
if (InlineAsm.empty())
return;
Triple TT(M->getTargetTriple());
StringRef Triple = M->getTargetTriple();
std::string Err;
const Target *T = TargetRegistry::lookupTarget(TT.str(), Err);
const Target *T = TargetRegistry::lookupTarget(Triple, Err);
if (!T)
return;
std::unique_ptr<MCRegisterInfo> MRI(T->createMCRegInfo(TT.str()));
std::unique_ptr<MCRegisterInfo> MRI(T->createMCRegInfo(Triple));
if (!MRI)
return;
std::unique_ptr<MCAsmInfo> MAI(T->createMCAsmInfo(*MRI, TT.str()));
std::unique_ptr<MCAsmInfo> MAI(T->createMCAsmInfo(*MRI, Triple));
if (!MAI)
return;
std::unique_ptr<MCSubtargetInfo> STI(
T->createMCSubtargetInfo(TT.str(), "", ""));
T->createMCSubtargetInfo(Triple, "", ""));
if (!STI)
return;
@ -70,7 +70,7 @@ IRObjectFile::IRObjectFile(MemoryBufferRef Object, std::unique_ptr<Module> Mod)
MCObjectFileInfo MOFI;
MCContext MCCtx(MAI.get(), MRI.get(), &MOFI);
MOFI.InitMCObjectFileInfo(TT, Reloc::Default, CodeModel::Default, MCCtx);
MOFI.InitMCObjectFileInfo(Triple, Reloc::Default, CodeModel::Default, MCCtx);
std::unique_ptr<RecordStreamer> Streamer(new RecordStreamer(MCCtx));
T->createNullTargetStreamer(*Streamer);

View File

@ -44,8 +44,8 @@ void TargetLoweringObjectFile::Initialize(MCContext &ctx,
const TargetMachine &TM) {
Ctx = &ctx;
DL = TM.getDataLayout();
InitMCObjectFileInfo(Triple(TM.getTargetTriple()), TM.getRelocationModel(),
TM.getCodeModel(), *Ctx);
InitMCObjectFileInfo(TM.getTargetTriple(),
TM.getRelocationModel(), TM.getCodeModel(), *Ctx);
}
TargetLoweringObjectFile::~TargetLoweringObjectFile() {

View File

@ -527,7 +527,7 @@ bool DwarfStreamer::init(Triple TheTriple, StringRef OutputFilename) {
MOFI.reset(new MCObjectFileInfo);
MC.reset(new MCContext(MAI.get(), MRI.get(), MOFI.get()));
MOFI->InitMCObjectFileInfo(TheTriple, Reloc::Default, CodeModel::Default,
MOFI->InitMCObjectFileInfo(TripleName, Reloc::Default, CodeModel::Default,
*MC);
MAB = TheTarget->createMCAsmBackend(*MRI, TripleName, "");

View File

@ -383,6 +383,7 @@ int main(int argc, char **argv) {
cl::ParseCommandLineOptions(argc, argv, "llvm machine code playground\n");
MCTargetOptions MCOptions = InitMCTargetOptionsFromFlags();
TripleName = Triple::normalize(TripleName);
Triple TheTriple(TripleName);
setDwarfDebugFlags(argc, argv);
setDwarfDebugProducer();
@ -391,9 +392,6 @@ int main(int argc, char **argv) {
const Target *TheTarget = GetTarget(ProgName);
if (!TheTarget)
return 1;
// Now that GetTarget() has (potentially) replaced TripleName, it's safe to
// construct the Triple object.
Triple TheTriple(TripleName);
ErrorOr<std::unique_ptr<MemoryBuffer>> BufferPtr =
MemoryBuffer::getFileOrSTDIN(InputFilename);
@ -431,7 +429,7 @@ int main(int argc, char **argv) {
// MCObjectFileInfo needs a MCContext reference in order to initialize itself.
MCObjectFileInfo MOFI;
MCContext Ctx(MAI.get(), MRI.get(), &MOFI, &SrcMgr);
MOFI.InitMCObjectFileInfo(TheTriple, RelocModel, CMModel, Ctx);
MOFI.InitMCObjectFileInfo(TripleName, RelocModel, CMModel, Ctx);
if (SaveTempLabels)
Ctx.setAllowTemporaryLabels(false);