This is an archive of the discontinued LLVM Phabricator instance.

[ORC][C-API] Fix orc on platforms without indirection support.
ClosedPublic

Authored by anarazel on Mar 26 2018, 11:16 AM.

Details

Reviewers
lhames
dblaikie
Summary

Previously this crashed because a nullptr (returned by
createLocalIndirectStubsManagerBuilder() on platforms without
indirection support) functor was unconditionally invoked.

Fix the tests so JIT and indirection support are treated as separate
capabilities. This should add coverage of basic ORC C-API JIT on a lot
of platforms, and also adds coverage for lazy JIT on AArch64. AArch64
was added in r310938, but the tests separate architecture filter
wasn't adjusted.

https://bugs.llvm.org/show_bug.cgi?id=36896

Diff Detail

Event Timeline

anarazel created this revision.Mar 26 2018, 11:16 AM

Thanks for working on this! Your patch looks good to me. Do you have commit
access? If so, please go ahead and commit. If not I can commit on your
behalf.

I'm working on some updates to ORC that will eliminate a lot of the
template types, so in the future we can do this a cleaner way and just have
createIndirectStubsManager() return null on platforms where indirection is
not supported.

  • Lang.
lhames accepted this revision.Mar 27 2018, 8:44 PM
This revision is now accepted and ready to land.Mar 27 2018, 8:44 PM
lhames closed this revision.Mar 27 2018, 8:45 PM

Patch applied in r328687.