Skip to content

PPC doesn't support non-lazy JIT compilation #5188

Description

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    backend:PowerPCbugzillaIssues migrated from bugzillaobsoleteIssues with old (unsupported) versions of LLVM

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions