clarify: stub emission depends on the version of the linker you use, it has nothing

to do with the target.  Also, the stub elimination optimization *requires* making the
stub explicit.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74682 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2009-07-02 01:24:34 +00:00
parent af4550f826
commit c4b0b400b0

View File

@ -183,9 +183,10 @@ void bar() { struct foo R = { 1.0, 2.0 }; xxx(R); }
Darwin Stub removal: Darwin Stub removal:
We still generate calls to foo$stub, and stubs, on Darwin. This is not We still generate calls to foo$stub, and stubs, on Darwin. This is not
necessary on Leopard (10.5) or later, as stubs are generated by ld when necessary when building with the Leopard (10.5) or later linker, as stubs are
necessary. The choice should depend on the value of -mmacosx-version-min. generated by ld when necessary. Parameterizing this based on the deployment
x86-32 does this right, see its logic. target (-mmacosx-version-min) is probably enough. x86-32 does this right, see
its logic.
===-------------------------------------------------------------------------=== ===-------------------------------------------------------------------------===
@ -205,8 +206,6 @@ which only computes the address of bar once (instead of each time through the
stub). This is Darwin specific and would have to be done in the code generator. stub). This is Darwin specific and would have to be done in the code generator.
Probably not a win on x86. Probably not a win on x86.
Note that removing stubs altogether, as in the previous item, is better yet.
===-------------------------------------------------------------------------=== ===-------------------------------------------------------------------------===
Simple IPO for argument passing, change: Simple IPO for argument passing, change: