[LLVMdev] [INCOMPLETE] [GC] Support wrapping vararg functions in statepoint

Ramkumar Ramachandra artagnon at gmail.com
Tue Jan 20 10:11:57 PST 2015


Philip Reames wrote:
> Any change outside of statepoint lowering is highly suspect.

Notice that SelectionDAGBuilder::LowerCallTo (the one I'm modifying)
has exactly one other caller: visitCall, which doesn't match vararg
functions. Every other codepath directly calls
TargetLowering::LowerCallTo, supplying CallLoweringInfo information
explicity (it's a structure with a vararg field).

I suspect I'm not overloading SelectionDAGBuilder enough.

> I'm pretty sure that calling a vararg function through a statepoint already
> works without code change (other than the verifier).  (Or at least simple
> cases work.)  Figuring out which work and which don't would give some
> insight.

AFAICT, extracting the result from a statepoint wrapping a vararg
function is the problem. If it's a void function, there's no problem.



More information about the llvm-dev mailing list