1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-20 11:33:24 +02:00
llvm-mirror/lib/ExecutionEngine
Philip Reames 4f3ea7d288 Allow invokable sub-classes of IntrinsicInst
It used to be that all of our intrinsics were call instructions, but over time, we've added more and more invokable intrinsics. According to the verifier, we're up to 8 right now. As IntrinsicInst is a sub-class of CallInst, this puts us in an awkward spot where the idiomatic means to check for intrinsic has a false negative if the intrinsic is invoked.

This change switches IntrinsicInst from being a sub-class of CallInst to being a subclass of CallBase. This allows invoked intrinsics to be instances of IntrinsicInst, at the cost of requiring a few more casts to CallInst in places where the intrinsic really is known to be a call, not an invoke.

After this lands and has baked for a couple days, planned cleanups:
    Make GCStatepointInst a IntrinsicInst subclass.
    Merge intrinsic handling in InstCombine and use idiomatic visitIntrinsicInst entry point for InstVisitor.
    Do the same in SelectionDAG.
    Do the same in FastISEL.

Differential Revision: https://reviews.llvm.org/D99976
2021-04-20 15:03:49 -07:00
..
IntelJITEvents Fix an error about implicit fallthrough during self build - new tag for ittapi. 2021-01-27 08:55:52 +03:00
Interpreter Allow invokable sub-classes of IntrinsicInst 2021-04-20 15:03:49 -07:00
JITLink [JITLink] Switch from StringRef to ArrayRef<char>, add some generic x86-64 utils 2021-03-30 21:07:24 -07:00
MCJIT [llvm] Use *Set::contains (NFC) 2021-01-13 19:14:41 -08:00
OProfileJIT llvmbuildectomy - replace llvm-build by plain cmake 2020-11-13 10:35:24 +01:00
Orc [lli] Add option -lljit-platform=Inactive to disable platform support explicitly 2021-03-30 09:29:45 +02:00
PerfJITEvents llvmbuildectomy - replace llvm-build by plain cmake 2020-11-13 10:35:24 +01:00
RuntimeDyld [JITLink] Switch from StringRef to ArrayRef<char>, add some generic x86-64 utils 2021-03-30 21:07:24 -07:00
CMakeLists.txt [lli] Add JITLink in-process debug support 2021-03-02 15:07:36 +01:00
ExecutionEngine.cpp [ORC] Remove OrcV1 APIs. 2020-10-18 21:02:44 -07:00
ExecutionEngineBindings.cpp [MCJIT] Check for RuntimeDyld errors in MCJIT::finalizeLoadedModules. 2020-03-13 13:58:41 -07:00
GDBRegistrationListener.cpp [lli] Add JITLink in-process debug support 2021-03-02 15:07:36 +01:00
SectionMemoryManager.cpp [ExecutionEngine, Linker] Use erase_if (NFC) 2020-12-23 21:44:39 -08:00
TargetSelect.cpp [ExecutionEngine] Re-enable FastISel for non-iOS arm targets. 2020-01-11 10:49:59 -08:00