This implements inalloca lowering in SelectionDAGBuilder, which is
target independent. The core idea is to move the frame adjustment from
the CALLSEQ_START node to a dominating DYNAMIC_STACKALLOC and let the
frontend emit stackrestore calls to clear the stack when necessary.
With the current rules for inalloca, the last inalloca argument must
dominate the rest. For simplicity, I emit code for all inalloca
arguments for a call at the site of the last inalloca alloca.
I added a new target hook, AnalyzeCallArgs, which is split from
LowerCallTo. It exposes the argument frame size and the locations of
all the arguments to the SD builder. With that, I can create an
appopriately sized DYNAMIC_STACKALLOC and set the virtual result
registers for the allocas to the appropriate stack offsets.
Depends On: D2449