mirror of
https://github.com/RPCS3/llvm.git
synced 2026-07-19 23:23:38 -04:00
dd854ba81b
Summary: After the staack is unwound due to a thrown exxception, `__stack_pointer` global can point to an invalid address. So a `global.set` to restore `__stack_pointer` should be inserted right after `catch` instruction. But after r352598 the `global.set` instruction is inserted not right after `catch` but after `block` - `br-on-exn` - `end_block` - `extract_exception` sequence. This CL fixes it. While doing that, we can actually move ReplacePhysRegs pass after LateEHPrepare and merge EHRestoreStackPointer pass into LateEHPrepare, and now placing `global.set` to `__stack_pointer` right after `catch` is much easier. Otherwise it is hard to guarantee that `global.set` is still right after `catch` and not touched with other transformations, in which case we have to do something to hoist it. Reviewers: dschuff Subscribers: mgorny, sbc100, jgravelle-google, sunfish, llvm-commits Differential Revision: https://reviews.llvm.org/D57421 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352681 91177308-0d34-0410-b5e6-96231b3b80d8
66 lines
2.1 KiB
CMake
66 lines
2.1 KiB
CMake
set(LLVM_TARGET_DEFINITIONS WebAssembly.td)
|
|
|
|
tablegen(LLVM WebAssemblyGenAsmMatcher.inc -gen-asm-matcher)
|
|
tablegen(LLVM WebAssemblyGenAsmWriter.inc -gen-asm-writer)
|
|
tablegen(LLVM WebAssemblyGenDAGISel.inc -gen-dag-isel)
|
|
tablegen(LLVM WebAssemblyGenDisassemblerTables.inc -gen-disassembler)
|
|
tablegen(LLVM WebAssemblyGenFastISel.inc -gen-fast-isel)
|
|
tablegen(LLVM WebAssemblyGenInstrInfo.inc -gen-instr-info)
|
|
tablegen(LLVM WebAssemblyGenMCCodeEmitter.inc -gen-emitter)
|
|
tablegen(LLVM WebAssemblyGenRegisterInfo.inc -gen-register-info)
|
|
tablegen(LLVM WebAssemblyGenSubtargetInfo.inc -gen-subtarget)
|
|
|
|
add_public_tablegen_target(WebAssemblyCommonTableGen)
|
|
|
|
add_llvm_target(WebAssemblyCodeGen
|
|
WebAssemblyAddMissingPrototypes.cpp
|
|
WebAssemblyArgumentMove.cpp
|
|
WebAssemblyAsmPrinter.cpp
|
|
WebAssemblyCallIndirectFixup.cpp
|
|
WebAssemblyCFGStackify.cpp
|
|
WebAssemblyCFGSort.cpp
|
|
WebAssemblyDebugValueManager.cpp
|
|
WebAssemblyLateEHPrepare.cpp
|
|
WebAssemblyExceptionInfo.cpp
|
|
WebAssemblyExplicitLocals.cpp
|
|
WebAssemblyFastISel.cpp
|
|
WebAssemblyFixIrreducibleControlFlow.cpp
|
|
WebAssemblyFixFunctionBitcasts.cpp
|
|
WebAssemblyFrameLowering.cpp
|
|
WebAssemblyISelDAGToDAG.cpp
|
|
WebAssemblyISelLowering.cpp
|
|
WebAssemblyInstrInfo.cpp
|
|
WebAssemblyLowerBrUnless.cpp
|
|
WebAssemblyLowerEmscriptenEHSjLj.cpp
|
|
WebAssemblyLowerGlobalDtors.cpp
|
|
WebAssemblyMachineFunctionInfo.cpp
|
|
WebAssemblyMCInstLower.cpp
|
|
WebAssemblyOptimizeLiveIntervals.cpp
|
|
WebAssemblyOptimizeReturned.cpp
|
|
WebAssemblyPeephole.cpp
|
|
WebAssemblyPrepareForLiveIntervals.cpp
|
|
WebAssemblyRegisterInfo.cpp
|
|
WebAssemblyRegColoring.cpp
|
|
WebAssemblyRegNumbering.cpp
|
|
WebAssemblyRegStackify.cpp
|
|
WebAssemblyReplacePhysRegs.cpp
|
|
WebAssemblyRuntimeLibcallSignatures.cpp
|
|
WebAssemblySelectionDAGInfo.cpp
|
|
WebAssemblySetP2AlignOperands.cpp
|
|
WebAssemblyMemIntrinsicResults.cpp
|
|
WebAssemblySubtarget.cpp
|
|
WebAssemblyTargetMachine.cpp
|
|
WebAssemblyTargetObjectFile.cpp
|
|
WebAssemblyTargetTransformInfo.cpp
|
|
WebAssemblyUtilities.cpp
|
|
|
|
DEPENDS
|
|
intrinsics_gen
|
|
)
|
|
|
|
add_subdirectory(AsmParser)
|
|
add_subdirectory(Disassembler)
|
|
add_subdirectory(InstPrinter)
|
|
add_subdirectory(MCTargetDesc)
|
|
add_subdirectory(TargetInfo)
|