Some targets support allocas in non-default address spaces. These
allocas may be used as "byval" parameters for functions.
When inlining functions, the inliner needs to create an alloca to
hold each inlinee's local copy of those arguments. Before this
patch, those allocas would always be in the target's "alloca
address space". However, if the type of the byval parameter is a
pointer to some other address space, then the address space of the
new alloca will not match its user's in the function's body.
This change makes the byval alloca's address space match the
address space of the respective parameter's argument.