HomePhabricator

[IR] Add operand bundles to CallInst and InvokeInst.

Authored by sanjoy on Sep 24 2015, 12:14 PM.

Description

[IR] Add operand bundles to CallInst and InvokeInst.

Summary:
This change teaches CallInsts and InvokeInsts to maintain a set of
operand bundles as part of its operands. CallInsts and InvokeInsts
with operand bundles co-allocate some space before their Use array to
hold meta information about which of its operands are part of an operand
bundle.

The strings corresponding to the bundle tags are interned into
LLVMContextImpl::BundleTagCache

This change does not include any parsing / bitcode support. That's the
next change.

Depends on D12455.

Reviewers: reames, chandlerc, majnemer, dexonsmith, kmod, JosephTremoulet, rnk, bogner

Subscribers: MatzeB, sanjoy, llvm-commits

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

llvm-svn: 248527

Details