mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2026-04-25 05:22:04 +00:00
Goodbye TargetAsmInfo. This eliminate last bit of CodeGen and Target in llvm-mc.
There is still a bit more refactoring left to do in Targets. But we are now very close to fixing all the layering issues in MC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135611 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -28,10 +28,6 @@
|
||||
#include "llvm/Target/TargetAsmParser.h"
|
||||
#include "llvm/Target/TargetData.h"
|
||||
#include "llvm/Target/TargetRegistry.h"
|
||||
#include "llvm/Target/TargetAsmInfo.h" // FIXME.
|
||||
#include "llvm/Target/TargetLowering.h" // FIXME.
|
||||
#include "llvm/Target/TargetLoweringObjectFile.h" // FIXME.
|
||||
#include "llvm/Target/TargetMachine.h" // FIXME.
|
||||
#include "llvm/Target/TargetSelect.h"
|
||||
#include "llvm/ADT/OwningPtr.h"
|
||||
#include "llvm/Support/CommandLine.h"
|
||||
@@ -348,28 +344,11 @@ static int AssembleInput(const char *ProgName) {
|
||||
// Package up features to be passed to target/subtarget
|
||||
std::string FeaturesStr;
|
||||
|
||||
// FIXME: We shouldn't need to do this (and link in codegen).
|
||||
// When we split this out, we should do it in a way that makes
|
||||
// it straightforward to switch subtargets on the fly (.e.g,
|
||||
// the .cpu and .code16 directives).
|
||||
OwningPtr<TargetMachine> TM(TheTarget->createTargetMachine(TripleName,
|
||||
MCPU,
|
||||
FeaturesStr,
|
||||
RelocModel,
|
||||
CMModel));
|
||||
|
||||
if (!TM) {
|
||||
errs() << ProgName << ": error: could not create target for triple '"
|
||||
<< TripleName << "'.\n";
|
||||
return 1;
|
||||
}
|
||||
|
||||
const TargetAsmInfo *tai = new TargetAsmInfo(*TM);
|
||||
// FIXME: This is not pretty. MCContext has a ptr to MCObjectFileInfo and
|
||||
// MCObjectFileInfo needs a MCContext reference in order to initialize itself.
|
||||
OwningPtr<MCObjectFileInfo> MOFI(new MCObjectFileInfo());
|
||||
MCContext Ctx(*MAI, *MRI, MOFI.get(), tai);
|
||||
MOFI->InitMCObjectFileInfo(TripleName, RelocModel, Ctx);
|
||||
MCContext Ctx(*MAI, *MRI, MOFI.get());
|
||||
MOFI->InitMCObjectFileInfo(TripleName, RelocModel, CMModel, Ctx);
|
||||
|
||||
if (SaveTempLabels)
|
||||
Ctx.setAllowTemporaryLabels(false);
|
||||
@@ -381,10 +360,6 @@ static int AssembleInput(const char *ProgName) {
|
||||
formatted_raw_ostream FOS(Out->os());
|
||||
OwningPtr<MCStreamer> Str;
|
||||
|
||||
const TargetLoweringObjectFile &TLOF =
|
||||
TM->getTargetLowering()->getObjFileLowering();
|
||||
const_cast<TargetLoweringObjectFile&>(TLOF).Initialize(Ctx, *TM);
|
||||
|
||||
OwningPtr<MCInstrInfo> MCII(TheTarget->createMCInstrInfo());
|
||||
OwningPtr<MCSubtargetInfo>
|
||||
STI(TheTarget->createMCSubtargetInfo(TripleName, MCPU, FeaturesStr));
|
||||
|
||||
@@ -313,8 +313,7 @@ void LTOCodeGenerator::applyScopeRestrictions() {
|
||||
passes.add(createVerifierPass());
|
||||
|
||||
// mark which symbols can not be internalized
|
||||
MCContext Context(*_target->getMCAsmInfo(), *_target->getRegisterInfo(),
|
||||
NULL, NULL);
|
||||
MCContext Context(*_target->getMCAsmInfo(), *_target->getRegisterInfo(), NULL);
|
||||
Mangler mangler(Context, *_target->getTargetData());
|
||||
std::vector<const char*> mustPreserveList;
|
||||
SmallPtrSet<GlobalValue*, 8> asmUsed;
|
||||
|
||||
@@ -664,8 +664,7 @@ static bool isAliasToDeclaration(const GlobalAlias &V) {
|
||||
|
||||
bool LTOModule::ParseSymbols() {
|
||||
// Use mangler to add GlobalPrefix to names to match linker names.
|
||||
MCContext Context(*_target->getMCAsmInfo(), *_target->getRegisterInfo(),
|
||||
NULL, NULL);
|
||||
MCContext Context(*_target->getMCAsmInfo(), *_target->getRegisterInfo(),NULL);
|
||||
Mangler mangler(Context, *_target->getTargetData());
|
||||
|
||||
// add functions
|
||||
|
||||
Reference in New Issue
Block a user