[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