Building function parameter AttributeSets quickly

Hi all,

Is there an efficient way to construct an AttributeSet for the purpose of constructing a Function?

The only (public) way I've found to designate the parameter index of attributes is via the addAttribute methods of the Function class or the AttributeSet. This is quite inefficient as a new AttributeSet is constructed every time. In fact, it takes the bulk of the time my codegen consumes when dealing with large parameter sets.

"HowToUseAttributes" suggests that AttrBuilder can be used as a mutable helper for this purpose. However, it seems to me that this can build the set of attributes that describe a single parameter, rather than a full set with indices.

I'm essentially looking for something like:
static AttributeSet get(LLVMContext &C, ArrayRef<std::pair<unsigned,

> Attrs);

But it is marked private.

Am I just missing the right way to do this?