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.

llvm-svn: 49663
This commit is contained in:
Dale Johannesen 2008-04-14 17:54:17 +00:00
parent 237a69b49c
commit edcba1161f
5 changed files with 12 additions and 13 deletions

View File

@ -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

View File

@ -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)

View File

@ -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;

View File

@ -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<bool, true>
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<llvm::Reloc::Model, true>

View File

@ -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;