[PATCH] D17732: Introduce @llvm.experimental.deoptimize
Sanjoy Das via llvm-commits
llvm-commits at lists.llvm.org
Mon Feb 29 13:43:48 PST 2016
sanjoy created this revision.
sanjoy added reviewers: atrick, chandlerc, rnk, reames.
sanjoy added subscribers: JosephTremoulet, maksfb, mjacob, kmod, llvm-commits.
Herald added a subscriber: mcrosier.
This intrinsic, together with deoptimization operand bundles, allow
frontends to express transfer of control and frame-local state from
one (typically more specialized, hence faster) version of a function
into another (typically more generic, hence slower) version.
In languages with a fully integrated managed runtime this intrinsic can
be used to implement "uncommon trap" like functionality. In unmanaged
languages like C and C++, this intrinsic can be used to represent the
slow paths of specialized functions.
This change specifically does not discuss lowering strategies, that will
come later.
http://reviews.llvm.org/D17732
Files:
docs/LangRef.rst
include/llvm/IR/BasicBlock.h
include/llvm/IR/CallSite.h
include/llvm/IR/Intrinsics.td
lib/IR/BasicBlock.cpp
lib/IR/Verifier.cpp
lib/Transforms/Utils/InlineFunction.cpp
test/Transforms/Inline/deoptimize-intrinsic.ll
test/Verifier/deoptimize-intrinsic.ll
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D17732.49412.patch
Type: text/x-patch
Size: 11337 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160229/4a6fcd4c/attachment.bin>
More information about the llvm-commits
mailing list