[LLVMdev] [INCOMPLETE] [GC] Support wrapping vararg functions in statepoint
Ramkumar Ramachandra
artagnon at gmail.com
Tue Jan 20 11:28:19 PST 2015
Philip Reames wrote:
> I think I'm missing something here. What leads you to believe that
> visitCall doesn't handle vararg functions?
>
> Also, I see calls in both visitInvoke and visitCall. I would assume these
> are the primary entry points...
I'm probably more confused about this than you are.
The callchain is approximately SelectionDAGBuilder::LowerCallTo ->
SelectionDAGBuilder::lowerInvokable -> TargetLowering::LowerCallTo ->
X86TargetLowering::LowerCall. Now, the isVarArg information needs to
be conveyed to LowerCall, and that happens via CLI.IsVarArg, which
TargetLowering::LowerCallTo accepts as a parameter.
SelectionDAGBuilder::LowerCallTo isn't passed that information, and
doesn't compute it to send to lowerInvokable (which builds the CLI for
TargetLowering::LowerCallTo).
How could SelectionDAGBuilder::LowerCallTo possibly handle vararg?
More information about the llvm-dev
mailing list