[PATCH] D20003: X86CallFrameOpt: a first step towards optimizing inalloca calls (PR27076)

Hans Wennborg via llvm-commits llvm-commits at lists.llvm.org
Tue May 10 17:35:06 PDT 2016


hans abandoned this revision.
hans added a comment.

Thanks for the input everyone!

I'll start looking into introducing a pseudo-instruction for the dynamic alloca so we can lower it at a point where we have all the information needed to elide the _chkstk call.


================
Comment at: lib/Target/X86/X86CallFrameOptimization.cpp:56
@@ +55,3 @@
+  // Information about the setup for an inalloca call.
+  struct InAllocaInfo {
+    // Frame setup for the _chkstk call.
----------------
rnk wrote:
> This makes me feel like we should model argument allocation as a single operation instead of five or so. What do you think about changing X86TargetLowering::LowerDYNAMIC_STACKALLOC to emit a new DAG node which selects to a single MI?
X86TargetLowering::LowerDYNAMIC_STACKALLOC already emits a X86ISD::WIN_ALLOCA, but instead of expanding that in X86TargetLowering::EmitLoweredWinAlloca, we could have a pseudo-instruction that gets expanded later -- when we know the size of the stack frame and can elide it.


http://reviews.llvm.org/D20003





More information about the llvm-commits mailing list