From 08ba1de2d2d1a4a6a22e41f851fa1b88cef325cd Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Mon, 12 Feb 2007 20:26:34 +0000 Subject: [PATCH] add a note git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34202 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/X86/README.txt | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/lib/Target/X86/README.txt b/lib/Target/X86/README.txt index 46ef8b22250..2f8cb7e918a 100644 --- a/lib/Target/X86/README.txt +++ b/lib/Target/X86/README.txt @@ -868,3 +868,32 @@ _f2: //===---------------------------------------------------------------------===// +This code: + +void test(int X) { + if (X) abort(); +} + +is currently compiled to (with -static): + +_test: + subl $12, %esp + cmpl $0, 16(%esp) + jne LBB1_1 #cond_true + addl $12, %esp + ret +LBB1_1: #cond_true + call L_abort$stub + +It would be better to produce: + +_test: + subl $12, %esp + cmpl $0, 16(%esp) + jne L_abort$stub + addl $12, %esp + ret + +This can be applied to any no-return function call that takes no arguments etc. + +//===---------------------------------------------------------------------===//