forked from OSchip/llvm-project
0312f614b1
This intrinsic safely loads a function pointer from a virtual table pointer using type metadata. This intrinsic is used to implement control flow integrity in conjunction with virtual call optimization. The virtual call optimization pass will optimize away llvm.type.checked.load intrinsics associated with devirtualized calls, thereby removing the type check in cases where it is not needed to enforce the control flow integrity constraint. This patch also introduces the capability to copy type metadata between global variables, and teaches the virtual call optimization pass to do so. Differential Revision: http://reviews.llvm.org/D21121 llvm-svn: 273756 |
||
---|---|---|
.. | ||
bad-read-from-vtable.ll | ||
constant-arg.ll | ||
devirt-single-impl-check.ll | ||
devirt-single-impl.ll | ||
expand-check.ll | ||
non-array-vtable.ll | ||
non-constant-vtable.ll | ||
uniform-retval-invoke.ll | ||
uniform-retval.ll | ||
unique-retval.ll | ||
vcp-accesses-memory.ll | ||
vcp-no-this.ll | ||
vcp-non-constant-arg.ll | ||
vcp-too-wide-ints.ll | ||
vcp-type-mismatch.ll | ||
vcp-uses-this.ll | ||
virtual-const-prop-begin.ll | ||
virtual-const-prop-check.ll | ||
virtual-const-prop-end.ll |