Introduce deoptimization operand bundles
authorSanjoy Das <sanjoy@playingwithpointers.com>
Wed, 11 Nov 2015 21:38:02 +0000 (21:38 +0000)
committerSanjoy Das <sanjoy@playingwithpointers.com>
Wed, 11 Nov 2015 21:38:02 +0000 (21:38 +0000)
commitb4b58babf8095a7a22eb8d878501189a8c31ed48
treed92dc3d8e2e605537c071b8c849744d106eca49f
parent4683dafb938414db0bf92c95b429d4598c472ca7
Introduce deoptimization operand bundles

Summary:
This change introduces the notion of "deoptimization" operand bundles.
LLVM can recognize and optimize these in more precise ways than it can a
generic "unknown" operand bundles.

The current form of this special recognition / optimization is an enum
entry in LLVMContext, a LangRef blurb and a verifier rule.  Over time we
will teach LLVM to do more aggressive optimization around deoptimization
operand bundles, exploiting known facts about kinds of state
deoptimization operand bundles are allowed to track.

Reviewers: reames, majnemer, chandlerc, dexonsmith

Subscribers: llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252806 91177308-0d34-0410-b5e6-96231b3b80d8
docs/LangRef.rst
include/llvm/IR/LLVMContext.h
lib/IR/LLVMContext.cpp
lib/IR/Verifier.cpp
test/Verifier/operand-bundles.ll