From 3541af73b6b8a083cf2d7784438d60e8bcce3883 Mon Sep 17 00:00:00 2001 From: Dale Johannesen Date: Mon, 14 Apr 2008 17:54:17 +0000 Subject: [PATCH] Reverse sense of unwind-tables option. This means stack tracebacks on Darwin x86-64 won't work by default; nevertheless, everybody but me thinks this is a good idea. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49663 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/Target/TargetOptions.h | 7 +++---- lib/CodeGen/DwarfWriter.cpp | 6 +++--- lib/Target/PowerPC/PPCRegisterInfo.cpp | 2 +- lib/Target/TargetMachine.cpp | 8 ++++---- lib/Target/X86/X86RegisterInfo.cpp | 2 +- 5 files changed, 12 insertions(+), 13 deletions(-) diff --git a/include/llvm/Target/TargetOptions.h b/include/llvm/Target/TargetOptions.h index 881ec21a0a2..890263f0431 100644 --- a/include/llvm/Target/TargetOptions.h +++ b/include/llvm/Target/TargetOptions.h @@ -74,10 +74,9 @@ namespace llvm { /// be emitted. extern bool ExceptionHandling; - /// UnwindTablesOptional - This flag indicates that unwind tables need not - /// be emitted for all functions. Exception handling may still require them - /// for some functions. - extern bool UnwindTablesOptional; + /// UnwindTablesMandatory - This flag indicates that unwind tables should + /// be emitted for all functions. + extern bool UnwindTablesMandatory; /// PerformTailCallOpt - This flag is enabled when -tailcallopt is specified /// on the commandline. When the flag is on, the target will perform tail call diff --git a/lib/CodeGen/DwarfWriter.cpp b/lib/CodeGen/DwarfWriter.cpp index 6cdc91e1f72..3a3a04d2fa0 100644 --- a/lib/CodeGen/DwarfWriter.cpp +++ b/lib/CodeGen/DwarfWriter.cpp @@ -2906,10 +2906,10 @@ private: // If there are no calls then you can't unwind. This may mean we can // omit the EH Frame, but some environments do not handle weak absolute // symbols. - // If UnwindTablesOptional is not set we cannot do this optimization; the + // If UnwindTablesMandatory is set we cannot do this optimization; the // unwind info is to be available for non-EH uses. if (!EHFrameInfo.hasCalls && - UnwindTablesOptional && + !UnwindTablesMandatory && ((linkage != Function::WeakLinkage && linkage != Function::LinkOnceLinkage) || !TAI->getWeakDefDirective() || @@ -3432,7 +3432,7 @@ public: // See if we need frame move info. if (MMI->hasDebugInfo() || !MF->getFunction()->doesNotThrow() || - !UnwindTablesOptional) + UnwindTablesMandatory) shouldEmitMoves = true; if (shouldEmitMoves || shouldEmitTable) diff --git a/lib/Target/PowerPC/PPCRegisterInfo.cpp b/lib/Target/PowerPC/PPCRegisterInfo.cpp index 8b4fb6a356a..984021068b2 100644 --- a/lib/Target/PowerPC/PPCRegisterInfo.cpp +++ b/lib/Target/PowerPC/PPCRegisterInfo.cpp @@ -949,7 +949,7 @@ PPCRegisterInfo::emitPrologue(MachineFunction &MF) const { MachineModuleInfo *MMI = MFI->getMachineModuleInfo(); bool needsFrameMoves = (MMI && MMI->hasDebugInfo()) || !MF.getFunction()->doesNotThrow() || - !UnwindTablesOptional; + UnwindTablesMandatory; // Prepare for frame info. unsigned FrameLabelId = 0; diff --git a/lib/Target/TargetMachine.cpp b/lib/Target/TargetMachine.cpp index 6f2f1235d7a..c252368b1a3 100644 --- a/lib/Target/TargetMachine.cpp +++ b/lib/Target/TargetMachine.cpp @@ -31,7 +31,7 @@ namespace llvm { bool UseSoftFloat; bool NoZerosInBSS; bool ExceptionHandling; - bool UnwindTablesOptional; + bool UnwindTablesMandatory; Reloc::Model RelocationModel; CodeModel::Model CMModel; bool PerformTailCallOpt; @@ -85,9 +85,9 @@ namespace { cl::location(ExceptionHandling), cl::init(false)); cl::opt - DisableUnwindTables("unwind-tables-optional", - cl::desc("Generate unwinding tables only for functions that require them"), - cl::location(UnwindTablesOptional), + EnableUnwindTables("unwind-tables", + cl::desc("Generate unwinding tables for all functions"), + cl::location(UnwindTablesMandatory), cl::init(false)); cl::opt diff --git a/lib/Target/X86/X86RegisterInfo.cpp b/lib/Target/X86/X86RegisterInfo.cpp index 2668582aefa..6d9183ecc7d 100644 --- a/lib/Target/X86/X86RegisterInfo.cpp +++ b/lib/Target/X86/X86RegisterInfo.cpp @@ -506,7 +506,7 @@ void X86RegisterInfo::emitPrologue(MachineFunction &MF) const { MachineBasicBlock::iterator MBBI = MBB.begin(); bool needsFrameMoves = (MMI && MMI->hasDebugInfo()) || !Fn->doesNotThrow() || - !UnwindTablesOptional; + UnwindTablesMandatory; // Prepare for frame info. unsigned FrameLabelId = 0;