diff options
author | Dale Johannesen <dalej@apple.com> | 2008-04-08 00:10:24 +0000 |
---|---|---|
committer | Dale Johannesen <dalej@apple.com> | 2008-04-08 00:10:24 +0000 |
commit | 4e1b79459fcf72216cdc42a59953e172c60e15ca (patch) | |
tree | 6d330b1c9b9699f92a180db1468821d536b70cc8 /lib/Target | |
parent | 9b01cc0ede3bfef32ce46159670dedc3e9769a64 (diff) | |
download | external_llvm-4e1b79459fcf72216cdc42a59953e172c60e15ca.zip external_llvm-4e1b79459fcf72216cdc42a59953e172c60e15ca.tar.gz external_llvm-4e1b79459fcf72216cdc42a59953e172c60e15ca.tar.bz2 |
Implement new llc flag -disable-required-unwind-tables.
Corresponds to -fno-unwind-tables (usually default in gcc).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49361 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target')
-rw-r--r-- | lib/Target/PowerPC/PPCRegisterInfo.cpp | 3 | ||||
-rw-r--r-- | lib/Target/TargetMachine.cpp | 8 | ||||
-rw-r--r-- | lib/Target/X86/X86RegisterInfo.cpp | 4 |
3 files changed, 12 insertions, 3 deletions
diff --git a/lib/Target/PowerPC/PPCRegisterInfo.cpp b/lib/Target/PowerPC/PPCRegisterInfo.cpp index 8ef8b3f..8b4fb6a 100644 --- a/lib/Target/PowerPC/PPCRegisterInfo.cpp +++ b/lib/Target/PowerPC/PPCRegisterInfo.cpp @@ -948,7 +948,8 @@ PPCRegisterInfo::emitPrologue(MachineFunction &MF) const { MachineFrameInfo *MFI = MF.getFrameInfo(); MachineModuleInfo *MMI = MFI->getMachineModuleInfo(); bool needsFrameMoves = (MMI && MMI->hasDebugInfo()) || - !MF.getFunction()->doesNotThrow(); + !MF.getFunction()->doesNotThrow() || + !UnwindTablesOptional; // Prepare for frame info. unsigned FrameLabelId = 0; diff --git a/lib/Target/TargetMachine.cpp b/lib/Target/TargetMachine.cpp index e4f633f..e6f080d 100644 --- a/lib/Target/TargetMachine.cpp +++ b/lib/Target/TargetMachine.cpp @@ -31,6 +31,7 @@ namespace llvm { bool UseSoftFloat; bool NoZerosInBSS; bool ExceptionHandling; + bool UnwindTablesOptional; Reloc::Model RelocationModel; CodeModel::Model CMModel; bool PerformTailCallOpt; @@ -80,9 +81,14 @@ namespace { cl::init(false)); cl::opt<bool, true> EnableExceptionHandling("enable-eh", - cl::desc("Exception handling should be emitted."), + cl::desc("Emit DWARF exception handling (default if target supports)"), cl::location(ExceptionHandling), cl::init(false)); + cl::opt<bool, true> + DisableUnwindTables("disable-required-unwind-tables", + cl::desc("Do not require unwinding info for all functions"), + cl::location(UnwindTablesOptional), + cl::init(false)); cl::opt<llvm::Reloc::Model, true> DefRelocationModel( diff --git a/lib/Target/X86/X86RegisterInfo.cpp b/lib/Target/X86/X86RegisterInfo.cpp index 0a75560..2668582 100644 --- a/lib/Target/X86/X86RegisterInfo.cpp +++ b/lib/Target/X86/X86RegisterInfo.cpp @@ -504,7 +504,9 @@ void X86RegisterInfo::emitPrologue(MachineFunction &MF) const { MachineModuleInfo *MMI = MFI->getMachineModuleInfo(); X86MachineFunctionInfo *X86FI = MF.getInfo<X86MachineFunctionInfo>(); MachineBasicBlock::iterator MBBI = MBB.begin(); - bool needsFrameMoves = (MMI && MMI->hasDebugInfo()) || !Fn->doesNotThrow(); + bool needsFrameMoves = (MMI && MMI->hasDebugInfo()) || + !Fn->doesNotThrow() || + !UnwindTablesOptional; // Prepare for frame info. unsigned FrameLabelId = 0; |