summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/X86/shrink-wrap-chkstk.ll
diff options
context:
space:
mode:
authorDavid Majnemer <david.majnemer@gmail.com>2016-03-01 19:20:23 +0000
committerDavid Majnemer <david.majnemer@gmail.com>2016-03-01 19:20:23 +0000
commit791b88b6da79b9d296fd31f20529efb20d23af63 (patch)
treea8be75f286397cb104f80659c7c9e9f6822a804d /llvm/test/CodeGen/X86/shrink-wrap-chkstk.ll
parent2abc587c1ef126850cd230e44deca6e93fab0b9b (diff)
downloadbcm5719-llvm-791b88b6da79b9d296fd31f20529efb20d23af63.tar.gz
bcm5719-llvm-791b88b6da79b9d296fd31f20529efb20d23af63.zip
[X86] Elide references to _chkstk for dynamic allocas
The _chkstk function is called by the compiler to probe the stack in an order consistent with Windows' expectations. However, it is possible to elide the call to _chkstk and manually adjust the stack pointer if we can prove that the allocation is fixed size and smaller than the probe size. This shrinks chrome.dll, chrome_child.dll and chrome.exe by a cummulative ~133 KB. Differential Revision: http://reviews.llvm.org/D17679 llvm-svn: 262370
Diffstat (limited to 'llvm/test/CodeGen/X86/shrink-wrap-chkstk.ll')
-rw-r--r--llvm/test/CodeGen/X86/shrink-wrap-chkstk.ll2
1 files changed, 1 insertions, 1 deletions
diff --git a/llvm/test/CodeGen/X86/shrink-wrap-chkstk.ll b/llvm/test/CodeGen/X86/shrink-wrap-chkstk.ll
index aecae89aee5..42f47bbe008 100644
--- a/llvm/test/CodeGen/X86/shrink-wrap-chkstk.ll
+++ b/llvm/test/CodeGen/X86/shrink-wrap-chkstk.ll
@@ -9,7 +9,7 @@ target triple = "i686-pc-windows-msvc18.0.0"
%struct.S = type { [12 x i8] }
-define x86_thiscallcc void @call_inalloca(i1 %x) {
+define x86_thiscallcc void @call_inalloca(i1 %x) "stack-probe-size"="12" {
entry:
%argmem = alloca inalloca <{ %struct.S }>, align 4
%argidx1 = getelementptr inbounds <{ %struct.S }>, <{ %struct.S }>* %argmem, i32 0, i32 0, i32 0, i32 0
OpenPOWER on IntegriCloud