[llvm-dev] RFC: Add "operand bundles" to calls and invokes
Sanjoy Das via llvm-dev
llvm-dev at lists.llvm.org
Wed Aug 19 18:09:09 PDT 2015
A high level summary of the proposal as it stands right now (from my
perspective), after
incorporating Philip's suggestions:
1. Operand bundles are a way to associate a set of SSA values with a
call or invoke.
2. Operand bundles are lowered in some arbitrary bundle-tag specific
manner.
3. The optimizer can optimize around operand bundles with (roughly)
the assumption that they're just extra arguments to the call /
invoke. In particular, the optimizer does not have to assume that
operand bundles imply any extra memory / IO effects than what is
apparent from the call.
4. Through the discussion we came up with a re-ordering
restriction we'll have to place on function calls / invokes that
may deoptimize their caller. This is orthogonal to the operand
bundles discussion, and will be implemented as a separate call
attribute.
Is everyone on the thread comfortable enough with the general idea
that I can start writing patches and sending them in for review?
-- Sanjoy
More information about the llvm-dev
mailing list