]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - opencl/llvm.git/commit
Re-apply r211399, "Generate native unwind info on Win64" with a fix to ignore SEH...
authorNAKAMURA Takumi <geek4civic@gmail.com>
Wed, 25 Jun 2014 12:41:52 +0000 (12:41 +0000)
committerNAKAMURA Takumi <geek4civic@gmail.com>
Wed, 25 Jun 2014 12:41:52 +0000 (12:41 +0000)
commitb720a3d15c0bcd9353237427e1da2e2fee1cb516
tree99c46b916e82d9c5f0be01510c8d368d331bbef6
parent2fc4d9923f951f331a84f7da0579ceb2cf42c472
Re-apply r211399, "Generate native unwind info on Win64" with a fix to ignore SEH pseudo ops in X86 JIT emitter.

--
This patch enables LLVM to emit Win64-native unwind info rather than
DWARF CFI.  It handles all corner cases (I hope), including stack
realignment.

Because the unwind info is not flexible enough to describe stack frames
with a gap of unknown size in the middle, such as the one caused by
stack realignment, I modified register spilling code to place all spills
into the fixed frame slots, so that they can be accessed relative to the
frame pointer.

Patch by Vadim Chugunov!

Reviewed By: rnk

Differential Revision: http://reviews.llvm.org/D4081

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211691 91177308-0d34-0410-b5e6-96231b3b80d8
20 files changed:
include/llvm/CodeGen/MachineFrameInfo.h
include/llvm/MC/MCAsmInfo.h
include/llvm/Target/TargetFrameLowering.h
lib/CodeGen/AsmPrinter/Win64Exception.cpp
lib/CodeGen/MachineFunction.cpp
lib/CodeGen/PrologEpilogInserter.cpp
lib/MC/MCObjectFileInfo.cpp
lib/MC/MCStreamer.cpp
lib/Target/X86/MCTargetDesc/X86MCAsmInfo.cpp
lib/Target/X86/X86CodeEmitter.cpp
lib/Target/X86/X86FrameLowering.cpp
lib/Target/X86/X86FrameLowering.h
lib/Target/X86/X86ISelLowering.cpp
lib/Target/X86/X86InstrCompiler.td
lib/Target/X86/X86MCInstLower.cpp
test/CodeGen/X86/2007-05-05-Personality.ll
test/CodeGen/X86/2009-06-03-Win64SpillXMM.ll
test/CodeGen/X86/avx-intel-ocl.ll
test/CodeGen/X86/gcc_except_table.ll
test/CodeGen/X86/win64_eh.ll [new file with mode: 0644]