1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-22 10:42:39 +01:00
llvm-mirror/bindings/go/llvm
cynecx 729fe8041c Support unwinding from inline assembly
I've taken the following steps to add unwinding support from inline assembly:

1) Add a new `unwind` "attribute" (like `sideeffect`) to the asm syntax:

```
invoke void asm sideeffect unwind "call thrower", "~{dirflag},~{fpsr},~{flags}"()
    to label %exit unwind label %uexit
```

2.) Add Bitcode writing/reading support + LLVM-IR parsing.

3.) Emit EHLabels around inline assembly lowering (SelectionDAGBuilder + GlobalISel) when `InlineAsm::canThrow` is enabled.

4.) Tweak InstCombineCalls/InlineFunction pass to not mark inline assembly "calls" as nounwind.

5.) Add clang support by introducing a new clobber: "unwind", which lower to the `canThrow` being enabled.

6.) Don't allow unwinding callbr.

Reviewed By: Amanieu

Differential Revision: https://reviews.llvm.org/D95745
2021-05-13 19:13:03 +01:00
..
analysis.go Revert "Rework go bindings so that validation works fine" 2020-02-24 09:20:08 -08:00
bitreader.go Revert "Rework go bindings so that validation works fine" 2020-02-24 09:20:08 -08:00
bitwriter.go Revert "Rework go bindings so that validation works fine" 2020-02-24 09:20:08 -08:00
dibuilder.go Add an SDK attribute to DICompileUnit 2020-03-11 14:14:06 -07:00
executionengine_test.go [ConstProp] Remove ConstantPropagation 2020-08-26 15:51:30 -07:00
executionengine.go Revert "Rework go bindings so that validation works fine" 2020-02-24 09:20:08 -08:00
InstrumentationBindings.cpp [DFSan][NewPM] Port DataFlowSanitizer to NewPM 2020-07-29 10:19:15 -07:00
InstrumentationBindings.h Revert "Rework go bindings so that validation works fine" 2020-02-24 09:20:08 -08:00
ir_test.go Reapply "OpaquePtr: Turn inalloca into a type attribute" 2021-03-29 08:55:30 -04:00
ir.go Support unwinding from inline assembly 2021-05-13 19:13:03 +01:00
IRBindings.cpp [Go] Fix bindings/go/llvm/IRBindings.cpp 2020-12-16 10:09:58 -08:00
IRBindings.h Revert "Rework go bindings so that validation works fine" 2020-02-24 09:20:08 -08:00
linker.go Revert "Rework go bindings so that validation works fine" 2020-02-24 09:20:08 -08:00
llvm_config.go.in Revert "Rework go bindings so that validation works fine" 2020-02-24 09:20:08 -08:00
llvm_dep.go Revert "Rework go bindings so that validation works fine" 2020-02-24 09:20:08 -08:00
string_test.go Revert "Rework go bindings so that validation works fine" 2020-02-24 09:20:08 -08:00
string.go Fix go bindings after FixedVectorType -> VectorType change. 2020-05-15 16:37:57 -07:00
support.go Revert "Rework go bindings so that validation works fine" 2020-02-24 09:20:08 -08:00
SupportBindings.cpp Revert "Rework go bindings so that validation works fine" 2020-02-24 09:20:08 -08:00
SupportBindings.h Revert "Rework go bindings so that validation works fine" 2020-02-24 09:20:08 -08:00
target.go Revert "Rework go bindings so that validation works fine" 2020-02-24 09:20:08 -08:00
transforms_coroutines.go Revert "Rework go bindings so that validation works fine" 2020-02-24 09:20:08 -08:00
transforms_instrumentation.go Revert "Rework go bindings so that validation works fine" 2020-02-24 09:20:08 -08:00
transforms_ipo.go Recommit "[IPConstProp] Remove and move tests to SCCP." 2020-08-02 22:23:54 +01:00
transforms_pmbuilder.go [LLVM-C] Add bindings for addCoroutinePassesToExtensionPoints 2020-02-24 20:15:51 +01:00
transforms_scalar.go [ConstProp] Remove ConstantPropagation 2020-08-26 15:51:30 -07:00
version.go Revert "Rework go bindings so that validation works fine" 2020-02-24 09:20:08 -08:00