Remove the -enable-sjlj-eh option, which doesn't do anything.

Remove the -enable-eh option which is only used by the JIT,
and replace it with -jit-enable-eh.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102865 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Duncan Sands 2010-05-02 15:36:26 +00:00
parent 241d3fea7a
commit 57b6e9eb6c
18 changed files with 21 additions and 61 deletions

View File

@ -145,9 +145,9 @@ Disable fusing of spill code into instructions.
Make the -lowerinvoke pass insert expensive, but correct, EH code.
=item B<-enable-eh>
=item B<-jit-enable-eh>
Exception handling should be emitted.
Exception handling should be enabled in the just-in-time compiler.
=item B<-join-liveintervals>

View File

@ -186,9 +186,6 @@ foo.bc, one of the following commands should fail:</p>
<li><tt><b>llc</b> foo.bc</tt></li>
<li><tt><b>llc</b> foo.bc -relocation-model=pic</tt></li>
<li><tt><b>llc</b> foo.bc -relocation-model=static</tt></li>
<li><tt><b>llc</b> foo.bc -enable-eh</tt></li>
<li><tt><b>llc</b> foo.bc -relocation-model=pic -enable-eh</tt></li>
<li><tt><b>llc</b> foo.bc -relocation-model=static -enable-eh</tt></li>
</ol>
<p>If none of these crash, please follow the instructions for a
@ -202,11 +199,6 @@ the one corresponding to the command above that failed):</p>
-relocation-model=pic</tt></li>
<li><tt><b>bugpoint</b> -run-llc foo.bc --tool-args
-relocation-model=static</tt></li>
<li><tt><b>bugpoint</b> -run-llc foo.bc --tool-args -enable-eh</tt></li>
<li><tt><b>bugpoint</b> -run-llc foo.bc --tool-args
-relocation-model=pic -enable-eh</tt></li>
<li><tt><b>bugpoint</b> -run-llc foo.bc --tool-args
-relocation-model=static -enable-eh</tt></li>
</ol>
<p>Please run this, then file a bug with the instructions and reduced .bc file

View File

@ -1948,7 +1948,7 @@ int main(int argc, char* argv[]) {
}
// If not set, exception handling will not be turned on
llvm::DwarfExceptionHandling = true;
llvm::JITExceptionHandling = true;
llvm::InitializeNativeTarget();
llvm::LLVMContext& context = llvm::getGlobalContext();

View File

@ -107,13 +107,9 @@ namespace llvm {
/// crt*.o compiling).
extern bool NoZerosInBSS;
/// DwarfExceptionHandling - This flag indicates that Dwarf exception
/// information should be emitted.
extern bool DwarfExceptionHandling;
/// SjLjExceptionHandling - This flag indicates that SJLJ exception
/// information should be emitted.
extern bool SjLjExceptionHandling;
/// JITExceptionHandling - This flag indicates that the JIT should emit
/// exception handling information.
extern bool JITExceptionHandling;
/// JITEmitDebugInfo - This flag indicates that the JIT should try to emit
/// debug information and notify a debugger about it.

View File

@ -384,7 +384,7 @@ namespace {
DEBUG(dbgs() << "JIT is managing a GOT\n");
}
if (DwarfExceptionHandling || JITEmitDebugInfo) {
if (JITExceptionHandling || JITEmitDebugInfo) {
DE.reset(new JITDwarfEmitter(jit));
}
if (JITEmitDebugInfo) {
@ -1259,7 +1259,7 @@ bool JITEmitter::finishFunction(MachineFunction &F) {
}
});
if (DwarfExceptionHandling || JITEmitDebugInfo) {
if (JITExceptionHandling || JITEmitDebugInfo) {
uintptr_t ActualSize = 0;
SavedBufferBegin = BufferBegin;
SavedBufferEnd = BufferEnd;
@ -1282,7 +1282,7 @@ bool JITEmitter::finishFunction(MachineFunction &F) {
BufferEnd = SavedBufferEnd;
CurBufferPtr = SavedCurBufferPtr;
if (DwarfExceptionHandling) {
if (JITExceptionHandling) {
TheJIT->RegisterTable(FrameRegister);
}

View File

@ -36,8 +36,7 @@ namespace llvm {
FloatABI::ABIType FloatABIType;
bool NoImplicitFloat;
bool NoZerosInBSS;
bool DwarfExceptionHandling;
bool SjLjExceptionHandling;
bool JITExceptionHandling;
bool JITEmitDebugInfo;
bool JITEmitDebugInfoToDisk;
bool UnwindTablesMandatory;
@ -115,14 +114,9 @@ DontPlaceZerosInBSS("nozero-initialized-in-bss",
cl::location(NoZerosInBSS),
cl::init(false));
static cl::opt<bool, true>
EnableDwarfExceptionHandling("enable-eh",
cl::desc("Emit DWARF exception handling (default if target supports)"),
cl::location(DwarfExceptionHandling),
cl::init(false));
static cl::opt<bool, true>
EnableSjLjExceptionHandling("enable-sjlj-eh",
cl::desc("Emit SJLJ exception handling (default if target supports)"),
cl::location(SjLjExceptionHandling),
EnableJITExceptionHandling("jit-enable-eh",
cl::desc("Emit exception handling information"),
cl::location(JITExceptionHandling),
cl::init(false));
// In debug builds, make this default to true.
#ifdef NDEBUG

View File

@ -1,7 +1,5 @@
; RUN: llc < %s -march=arm -enable-tail-merge | grep bl.*baz | count 1
; RUN: llc < %s -march=arm -enable-tail-merge | grep bl.*quux | count 1
; RUN: llc < %s -march=arm -enable-tail-merge -enable-eh | grep bl.*baz | count 1
; RUN: llc < %s -march=arm -enable-tail-merge -enable-eh | grep bl.*quux | count 1
; Check that calls to baz and quux are tail-merged.
; PR1628

View File

@ -1,7 +1,5 @@
; RUN: llc < %s -march=arm -enable-tail-merge | grep bl.*baz | count 1
; RUN: llc < %s -march=arm -enable-tail-merge | grep bl.*quux | count 1
; RUN: llc < %s -march=arm -enable-tail-merge -enable-eh | grep bl.*baz | count 1
; RUN: llc < %s -march=arm -enable-tail-merge -enable-eh | grep bl.*quux | count 1
; Check that calls to baz and quux are tail-merged.
; PR1628

View File

@ -2,10 +2,6 @@
; RUN: llc < %s -march=arm | grep bl.*quux | count 1
; RUN: llc < %s -march=arm -enable-tail-merge=0 | grep bl.*baz | count 2
; RUN: llc < %s -march=arm -enable-tail-merge=0 | grep bl.*quux | count 2
; RUN: llc < %s -march=arm -enable-eh | grep bl.*baz | count 1
; RUN: llc < %s -march=arm -enable-eh | grep bl.*quux | count 1
; RUN: llc < %s -march=arm -enable-tail-merge=0 -enable-eh | grep bl.*baz | count 2
; RUN: llc < %s -march=arm -enable-tail-merge=0 -enable-eh | grep bl.*quux | count 2
; Check that tail merging is the default on ARM, and that -enable-tail-merge=0 works.
; PR1628

View File

@ -1,4 +1,4 @@
; RUN: llc < %s -enable-eh
; RUN: llc < %s
%struct.exception = type { i8, i8, i32, i8*, i8*, i32, i8* }
@program_error = external global %struct.exception ; <%struct.exception*> [#uses=1]

View File

@ -1,4 +1,4 @@
; RUN: llc < %s -enable-eh
; RUN: llc < %s
define fastcc void @bc__support__high_resolution_time__initialize_clock_rate() {
entry:

View File

@ -1,4 +1,4 @@
; RUN: llc < %s -enable-eh
; RUN: llc < %s
; PR1833
%struct.__class_type_info_pseudo = type { %struct.__type_info_pseudo }

View File

@ -1,4 +1,4 @@
; RUN: llc < %s -enable-eh
; RUN: llc < %s
;; Formerly crashed, see PR 1508
target datalayout = "E-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f128:64:128"
target triple = "powerpc64-apple-darwin8"

View File

@ -1,4 +1,4 @@
; RUN: llc < %s -mtriple=i686-pc-linux-gnu -enable-eh -o - | grep zPL
; RUN: llc < %s -mtriple=i686-pc-linux-gnu -o - | grep zPL
@error = external global i8 ; <i8*> [#uses=2]

View File

@ -1,4 +1,4 @@
; RUN: llc < %s -mtriple=i686-pc-linux-gnu -enable-eh -disable-fp-elim | not grep {addl .12, %esp}
; RUN: llc < %s -mtriple=i686-pc-linux-gnu -disable-fp-elim | not grep {addl .12, %esp}
; PR1398
%struct.S = type { i32, i32 }

View File

@ -1,4 +1,4 @@
; RUN: llc < %s -enable-eh -asm-verbose | grep invcont131
; RUN: llc < %s -asm-verbose | grep invcont131
; PR 1496: tail merge was incorrectly removing this block
; ModuleID = 'report.1.bc'

View File

@ -1,4 +1,4 @@
; RUN: llc < %s -march=x86 -mtriple=i686-apple-darwin -enable-eh | grep {isNullOrNil].eh"} | count 2
; RUN: llc < %s -march=x86 -mtriple=i686-apple-darwin | grep {isNullOrNil].eh"} | count 2
%struct.NSString = type { }
%struct._objc__method_prototype_list = type opaque

View File

@ -353,20 +353,6 @@ bool LTOCodeGenerator::generateAssemblyCode(formatted_raw_ostream& out,
Module* mergedModule = _linker.getModule();
// If target supports exception handling then enable it now.
switch (_target->getMCAsmInfo()->getExceptionHandlingType()) {
case ExceptionHandling::Dwarf:
llvm::DwarfExceptionHandling = true;
break;
case ExceptionHandling::SjLj:
llvm::SjLjExceptionHandling = true;
break;
case ExceptionHandling::None:
break;
default:
assert (0 && "Unknown exception handling model!");
}
// if options were requested, set them
if ( !_codegenOptions.empty() )
cl::ParseCommandLineOptions(_codegenOptions.size(),