mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-12-29 06:53:53 +00:00
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:
parent
237a69b49c
commit
edcba1161f
@ -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
|
||||
|
@ -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)
|
||||
|
@ -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;
|
||||
|
@ -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>
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user