|
|
| Bugzilla Link |
4816 |
| Version |
unspecified |
| OS |
Linux |
| Attachments |
x.bc |
Extended Description
Disabling lazy compilation fails on PPC:
Release/bin/lli -disable-lazy-compilation ~/x.bc
Assertion failed: (0 && "This target doesn't implement emitFunctionStubAtAddr!"), function emitFunctionStubAtAddr, file /Users/acab/clamav-devel/libclamav/llvm/llvm/include/llvm/Target/TargetJITInfo.h, line 65.
0 lli 0x0065d50c llvm::sys::RWMutexImpl::writer_release() + 476
1 lli 0x0065dddc llvm::sys::RemoveFileOnSignal(llvm::sys::Path const&, std::string*) + 1244
2 libSystem.B.dylib 0x92f639fc _sigtramp + 68
Stack dump:
0. Program arguments: Release/bin/lli -disable-lazy-compilation /Users/acab/x.bc
Abort trap
It seems that X86 is the only target that implements that method.
In this case it is simply a matter of ordering the functions bottom-up according to the callgraph, and then non-lazy compilation should succeeed on the Mac too in this case, BUT it would fail for mutually recursive functions.
Is there a workaround that doesn't need emitFunctinStubAtAddr, or should I just always use lazy compilation on Mac/PPC? (rather anything non-X86?)
Extended Description
Disabling lazy compilation fails on PPC:
Release/bin/lli -disable-lazy-compilation ~/x.bc
Assertion failed: (0 && "This target doesn't implement emitFunctionStubAtAddr!"), function emitFunctionStubAtAddr, file /Users/acab/clamav-devel/libclamav/llvm/llvm/include/llvm/Target/TargetJITInfo.h, line 65.
0 lli 0x0065d50c llvm::sys::RWMutexImpl::writer_release() + 476
1 lli 0x0065dddc llvm::sys::RemoveFileOnSignal(llvm::sys::Path const&, std::string*) + 1244
2 libSystem.B.dylib 0x92f639fc _sigtramp + 68
Stack dump:
0. Program arguments: Release/bin/lli -disable-lazy-compilation /Users/acab/x.bc
Abort trap
It seems that X86 is the only target that implements that method.
In this case it is simply a matter of ordering the functions bottom-up according to the callgraph, and then non-lazy compilation should succeeed on the Mac too in this case, BUT it would fail for mutually recursive functions.
Is there a workaround that doesn't need emitFunctinStubAtAddr, or should I just always use lazy compilation on Mac/PPC? (rather anything non-X86?)