llvm/test/CodeGen
Reid Kleckner 75771885f8 [WinEH] Add codegen support for cleanuppad and cleanupret
All of the complexity is in cleanupret, and it mostly follows the same
codepaths as catchret, except it doesn't take a return value in RAX.

This small example now compiles and executes successfully on win32:
  extern "C" int printf(const char *, ...) noexcept;
  struct Dtor {
    ~Dtor() { printf("~Dtor\n"); }
  };
  void has_cleanup() {
    Dtor o;
    throw 42;
  }
  int main() {
    try {
      has_cleanup();
    } catch (int) {
      printf("caught it\n");
    }
  }

Don't try to put the cleanup in the same function as the catch, or Bad
Things will happen.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@247219 91177308-0d34-0410-b5e6-96231b3b80d8
2015-09-10 00:25:23 +00:00
..
AArch64 Fix the testcase in r246790 2015-09-04 01:39:24 +00:00
AMDGPU AMDGPU/SI: Fold operands through REG_SEQUENCE instructions 2015-09-09 15:43:26 +00:00
ARM [SelectionDAG] Swap commutative binops before constant-based folding 2015-09-06 05:42:13 +00:00
BPF [bpf] rename triple names bpf_be -> bpfeb 2015-06-05 16:11:14 +00:00
CPP Fix CPP Backend for GEP API changes for opaque pointer types 2015-09-08 18:42:29 +00:00
Generic Distribute the weight on the edge from switch to default statement to edges generated in lowering switch. 2015-09-01 01:42:16 +00:00
Hexagon DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00
Inputs DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00
Mips Fix vector splitting for extract_vector_elt and vector elements of <8-bits. 2015-09-09 09:53:20 +00:00
MIR Fix PR 24633 - Handle undef values when parsing standalone constants. 2015-09-09 13:44:33 +00:00
MSP430 [opaque pointer type] Add textual IR support for explicit type parameter to gep operator 2015-03-13 18:20:45 +00:00
NVPTX [NVPTX] Let NVPTX backend detect integer min and max patterns. 2015-08-26 23:22:02 +00:00
PowerPC Fix the PPC CTR Loop pass to look for calls to the intrinsics that 2015-09-08 22:14:58 +00:00
SPARC Fix CHECK directives that weren't checking. 2015-08-31 21:10:35 +00:00
SystemZ Make MergeConsecutiveStores look at other stores on same chain 2015-08-28 17:31:28 +00:00
Thumb DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00
Thumb2 Distribute the weight on the edge from switch to default statement to edges generated in lowering switch. 2015-09-01 01:42:16 +00:00
WebAssembly [WebAssembly] Update target datalayout strings. 2015-09-09 20:54:31 +00:00
WinEH [WinEH] Add llvm.eh.exceptionpointer intrinsic 2015-09-03 09:15:32 +00:00
X86 [WinEH] Add codegen support for cleanuppad and cleanupret 2015-09-10 00:25:23 +00:00
XCore DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00