MC: Add TargetMachine support for setting the value of MCRelaxAll with

-filetype=obj.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104747 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Daniel Dunbar 2010-05-26 21:48:55 +00:00
parent 160a3bf74d
commit cb8326dc09
3 changed files with 17 additions and 4 deletions

View File

@ -101,7 +101,9 @@ protected: // Can only create subclasses.
/// AsmInfo - Contains target specific asm information. /// AsmInfo - Contains target specific asm information.
/// ///
const MCAsmInfo *AsmInfo; const MCAsmInfo *AsmInfo;
unsigned MCRelaxAll : 1;
public: public:
virtual ~TargetMachine(); virtual ~TargetMachine();
@ -158,6 +160,14 @@ public:
/// ///
virtual const TargetELFWriterInfo *getELFWriterInfo() const { return 0; } virtual const TargetELFWriterInfo *getELFWriterInfo() const { return 0; }
/// hasMCRelaxAll - Check whether all machine code instructions should be
/// relaxed.
bool hasMCRelaxAll() const { return MCRelaxAll; }
/// setMCRelaxAll - Set whether all machine code instructions should be
/// relaxed.
void setMCRelaxAll(bool Value) { MCRelaxAll = Value; }
/// getRelocationModel - Returns the code generation relocation model. The /// getRelocationModel - Returns the code generation relocation model. The
/// choices are static, PIC, and dynamic-no-pic, and target default. /// choices are static, PIC, and dynamic-no-pic, and target default.
static Reloc::Model getRelocationModel(); static Reloc::Model getRelocationModel();

View File

@ -160,8 +160,10 @@ bool LLVMTargetMachine::addPassesToEmitFile(PassManagerBase &PM,
TargetAsmBackend *TAB = getTarget().createAsmBackend(TargetTriple); TargetAsmBackend *TAB = getTarget().createAsmBackend(TargetTriple);
if (MCE == 0 || TAB == 0) if (MCE == 0 || TAB == 0)
return true; return true;
AsmStreamer.reset(createMachOStreamer(*Context, *TAB, Out, MCE)); AsmStreamer.reset(getTarget().createObjectStreamer(TargetTriple, *Context,
*TAB, Out, MCE,
hasMCRelaxAll()));
break; break;
} }
case CGFT_Null: case CGFT_Null:

View File

@ -212,7 +212,8 @@ FunctionSections("ffunction-sections",
// //
TargetMachine::TargetMachine(const Target &T) TargetMachine::TargetMachine(const Target &T)
: TheTarget(T), AsmInfo(0) { : TheTarget(T), AsmInfo(0),
MCRelaxAll(false) {
// Typically it will be subtargets that will adjust FloatABIType from Default // Typically it will be subtargets that will adjust FloatABIType from Default
// to Soft or Hard. // to Soft or Hard.
if (UseSoftFloat) if (UseSoftFloat)