mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-14 14:24:05 +00: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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@239724 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -20,6 +20,7 @@
|
|||||||
namespace llvm {
|
namespace llvm {
|
||||||
class MCContext;
|
class MCContext;
|
||||||
class MCSection;
|
class MCSection;
|
||||||
|
class StringRef;
|
||||||
|
|
||||||
class MCObjectFileInfo {
|
class MCObjectFileInfo {
|
||||||
protected:
|
protected:
|
||||||
@ -184,12 +185,8 @@ protected:
|
|||||||
MCSection *SXDataSection;
|
MCSection *SXDataSection;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
void InitMCObjectFileInfo(const Triple &TT, Reloc::Model RM,
|
void InitMCObjectFileInfo(StringRef TT, Reloc::Model RM, CodeModel::Model CM,
|
||||||
CodeModel::Model CM, MCContext &ctx);
|
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;
|
||||||
|
@ -729,8 +729,7 @@ void MCObjectFileInfo::initCOFFMCObjectFileInfo(Triple T) {
|
|||||||
SectionKind::getDataRel());
|
SectionKind::getDataRel());
|
||||||
}
|
}
|
||||||
|
|
||||||
void MCObjectFileInfo::InitMCObjectFileInfo(const Triple &TheTriple,
|
void MCObjectFileInfo::InitMCObjectFileInfo(StringRef T, Reloc::Model relocm,
|
||||||
Reloc::Model relocm,
|
|
||||||
CodeModel::Model cm,
|
CodeModel::Model cm,
|
||||||
MCContext &ctx) {
|
MCContext &ctx) {
|
||||||
RelocM = relocm;
|
RelocM = relocm;
|
||||||
@ -754,7 +753,7 @@ void MCObjectFileInfo::InitMCObjectFileInfo(const Triple &TheTriple,
|
|||||||
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 = TheTriple;
|
TT = Triple(T);
|
||||||
|
|
||||||
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
|
||||||
@ -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 {
|
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;
|
||||||
|
|
||||||
Triple TT(M->getTargetTriple());
|
StringRef Triple = M->getTargetTriple();
|
||||||
std::string Err;
|
std::string Err;
|
||||||
const Target *T = TargetRegistry::lookupTarget(TT.str(), Err);
|
const Target *T = TargetRegistry::lookupTarget(Triple, Err);
|
||||||
if (!T)
|
if (!T)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
std::unique_ptr<MCRegisterInfo> MRI(T->createMCRegInfo(TT.str()));
|
std::unique_ptr<MCRegisterInfo> MRI(T->createMCRegInfo(Triple));
|
||||||
if (!MRI)
|
if (!MRI)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
std::unique_ptr<MCAsmInfo> MAI(T->createMCAsmInfo(*MRI, TT.str()));
|
std::unique_ptr<MCAsmInfo> MAI(T->createMCAsmInfo(*MRI, Triple));
|
||||||
if (!MAI)
|
if (!MAI)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
std::unique_ptr<MCSubtargetInfo> STI(
|
std::unique_ptr<MCSubtargetInfo> STI(
|
||||||
T->createMCSubtargetInfo(TT.str(), "", ""));
|
T->createMCSubtargetInfo(Triple, "", ""));
|
||||||
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(TT, Reloc::Default, CodeModel::Default, MCCtx);
|
MOFI.InitMCObjectFileInfo(Triple, 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(Triple(TM.getTargetTriple()), TM.getRelocationModel(),
|
InitMCObjectFileInfo(TM.getTargetTriple(),
|
||||||
TM.getCodeModel(), *Ctx);
|
TM.getRelocationModel(), 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(TheTriple, Reloc::Default, CodeModel::Default,
|
MOFI->InitMCObjectFileInfo(TripleName, Reloc::Default, CodeModel::Default,
|
||||||
*MC);
|
*MC);
|
||||||
|
|
||||||
MAB = TheTarget->createMCAsmBackend(*MRI, TripleName, "");
|
MAB = TheTarget->createMCAsmBackend(*MRI, TripleName, "");
|
||||||
|
@ -383,6 +383,7 @@ int main(int argc, char **argv) {
|
|||||||
cl::ParseCommandLineOptions(argc, argv, "llvm machine code playground\n");
|
cl::ParseCommandLineOptions(argc, argv, "llvm machine code playground\n");
|
||||||
MCTargetOptions MCOptions = InitMCTargetOptionsFromFlags();
|
MCTargetOptions MCOptions = InitMCTargetOptionsFromFlags();
|
||||||
TripleName = Triple::normalize(TripleName);
|
TripleName = Triple::normalize(TripleName);
|
||||||
|
Triple TheTriple(TripleName);
|
||||||
setDwarfDebugFlags(argc, argv);
|
setDwarfDebugFlags(argc, argv);
|
||||||
|
|
||||||
setDwarfDebugProducer();
|
setDwarfDebugProducer();
|
||||||
@ -391,9 +392,6 @@ int main(int argc, char **argv) {
|
|||||||
const Target *TheTarget = GetTarget(ProgName);
|
const Target *TheTarget = GetTarget(ProgName);
|
||||||
if (!TheTarget)
|
if (!TheTarget)
|
||||||
return 1;
|
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 =
|
ErrorOr<std::unique_ptr<MemoryBuffer>> BufferPtr =
|
||||||
MemoryBuffer::getFileOrSTDIN(InputFilename);
|
MemoryBuffer::getFileOrSTDIN(InputFilename);
|
||||||
@ -431,7 +429,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(TheTriple, RelocModel, CMModel, Ctx);
|
MOFI.InitMCObjectFileInfo(TripleName, RelocModel, CMModel, Ctx);
|
||||||
|
|
||||||
if (SaveTempLabels)
|
if (SaveTempLabels)
|
||||||
Ctx.setAllowTemporaryLabels(false);
|
Ctx.setAllowTemporaryLabels(false);
|
||||||
|
Reference in New Issue
Block a user