[CodeGen] Introduce a FAULTING_LOAD_OP pseudo-op.
authorSanjoy Das <sanjoy@playingwithpointers.com>
Mon, 15 Jun 2015 18:44:08 +0000 (18:44 +0000)
committerSanjoy Das <sanjoy@playingwithpointers.com>
Mon, 15 Jun 2015 18:44:08 +0000 (18:44 +0000)
commit1991e2a4dfc771c1e8d944cbbd8ac44d0592cedd
tree126071c20b899d6a8baa1fb195ad42f1bb70ca91
parent36395e75985b389dacbcf41254f87c2e960473cb
[CodeGen] Introduce a FAULTING_LOAD_OP pseudo-op.

Summary:
This instruction encodes a loading operation that may fault, and a label
to branch to if the load page-faults.  The locations of potentially
faulting loads and their "handler" destinations are recorded in a
FaultMap section, meant to be consumed by LLVM's clients.

Nothing generates FAULTING_LOAD_OP instructions yet, but they will be
used in a future change.

The documentation (FaultMaps.rst) needs improvement and I will update
this diff with a more expanded version shortly.

Depends on D10196

Reviewers: rnk, reames, AndyAyers, ab, atrick, pgavlin

Reviewed By: atrick, pgavlin

Subscribers: llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@239740 91177308-0d34-0410-b5e6-96231b3b80d8
12 files changed:
docs/FaultMaps.rst [new file with mode: 0644]
include/llvm/CodeGen/FaultMaps.h [new file with mode: 0644]
include/llvm/MC/MCObjectFileInfo.h
include/llvm/Target/Target.td
include/llvm/Target/TargetOpcodes.h
lib/CodeGen/CMakeLists.txt
lib/CodeGen/FaultMaps.cpp [new file with mode: 0644]
lib/MC/MCObjectFileInfo.cpp
lib/Target/X86/X86AsmPrinter.cpp
lib/Target/X86/X86AsmPrinter.h
lib/Target/X86/X86MCInstLower.cpp
utils/TableGen/CodeGenTarget.cpp