Introduce @llvm.experimental.deoptimize

Description

Introduce @llvm.experimental.deoptimize

Summary:
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.

Note: this change does not address how @llvm.experimental_deoptimize
is lowered. That will be done in a later change.

Reviewers: chandlerc, rnk, atrick, reames

Subscribers: llvm-commits, kmod, mjacob, maksfb, mcrosier, JosephTremoulet

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

Details

Committed
sanjoyMar 11 2016, 11:08 AM
Differential Revision
D17732: Introduce @llvm.experimental.deoptimize
Parents
rL263280: Remove obsolete comment.
Branches
Unknown
Tags
Unknown