Refactor a lot of patchpoint/stackmap related code to simplify and make it
authorLang Hames <lhames@gmail.com>
Fri, 29 Nov 2013 03:07:54 +0000 (03:07 +0000)
committerLang Hames <lhames@gmail.com>
Fri, 29 Nov 2013 03:07:54 +0000 (03:07 +0000)
commit1cbca515b6804a24d778fc0cab04ea0c53900141
tree4373adbf32f0dd251035a76616dcfcd68b49c6a7
parent7fd70e7b0c9c12183d9a3b084e5789622d0414fa
Refactor a lot of patchpoint/stackmap related code to simplify and make it
target independent.

Most of the x86 specific stackmap/patchpoint handling was necessitated by the
use of the native address-mode format for frame index operands. PEI has now
been modified to treat stackmap/patchpoint similarly to DEBUG_INFO, allowing
us to use a simple, platform independent register/offset pair for frame
indexes on stackmap/patchpoints.

Notes:
  - Folding is now platform independent and automatically supported.
  - Emiting patchpoints with direct memory references now just involves calling
    the TargetLoweringBase::emitPatchPoint utility method from the target's
    XXXTargetLowering::EmitInstrWithCustomInserter method. (See
    X86TargetLowering for an example).
  - No more ugly platform-specific operand parsers.

This patch shouldn't change the generated output for X86.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@195944 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/CodeGen/StackMaps.h
include/llvm/Target/TargetLowering.h
lib/CodeGen/PrologEpilogInserter.cpp
lib/CodeGen/StackMaps.cpp
lib/CodeGen/TargetInstrInfo.cpp
lib/CodeGen/TargetLoweringBase.cpp
lib/Target/X86/X86AsmPrinter.h
lib/Target/X86/X86ISelLowering.cpp
lib/Target/X86/X86ISelLowering.h
lib/Target/X86/X86InstrInfo.cpp
lib/Target/X86/X86MCInstLower.cpp