[patchpoint] Add support for symbolic patchpoint targets to SelectionDAG and the
authorLang Hames <lhames@gmail.com>
Wed, 22 Apr 2015 06:02:31 +0000 (06:02 +0000)
committerLang Hames <lhames@gmail.com>
Wed, 22 Apr 2015 06:02:31 +0000 (06:02 +0000)
commita1c0ce85180dd1c96ebc1ed48eb693c87a07aa7d
treef7991ca07022a690f48851e98d407a9cd4eca489
parent3aaf26d335cf0c70cc3c057ffce518a1cfa0e346
[patchpoint] Add support for symbolic patchpoint targets to SelectionDAG and the
X86 backend.

The code generated for symbolic targets is identical to the code generated for
constant targets, except that a relocation is emitted to fix up the actual
target address at link-time. This allows IR and object files containing
patchpoints to be cached across JIT-invocations where the target address may
change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@235483 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/MC/MCInstBuilder.h
lib/CodeGen/SelectionDAG/FastISel.cpp
lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
lib/Target/X86/X86AsmPrinter.h
lib/Target/X86/X86MCInstLower.cpp
test/CodeGen/X86/patchpoint.ll