| Commit message (Collapse) | Author | Age | Files | Lines | |
|---|---|---|---|---|---|
| * | Revert r195318 as it causes miscompilation (PR18029) | Kostya Serebryany | 2013-11-22 | 1 | -2/+4 |
| | | | | | llvm-svn: 195439 | ||||
| * | The basic problem is that some mainstream programs cannot deal with the way | Bill Wendling | 2013-11-21 | 1 | -4/+2 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | clang optimizes tail calls, as in this example: int foo(void); int bar(void) { return foo(); } where the call is transformed to: calll .L0$pb .L0$pb: popl %eax .Ltmp0: addl $_GLOBAL_OFFSET_TABLE_+(.Ltmp0-.L0$pb), %eax movl foo@GOT(%eax), %eax popl %ebp jmpl *%eax # TAILCALL However, the GOT references must all be resolved at dlopen() time, and so this approach cannot be used with lazy dynamic linking (e.g. using RTLD_LAZY), which usually populates the PLT with stubs that perform the actual resolving. This patch changes X86TargetLowering::LowerCall() to skip tail call optimization, if the called function is a global or external symbol. Patch by Dimitry Andric! PR15086 llvm-svn: 195318 | ||||
| * | Convert CodeGen/*/*.ll tests to use the new CHECK-LABEL for easier ↵ | Stephen Lin | 2013-07-13 | 1 | -2/+2 |
| | | | | | | | | | | | debugging. No functionality change and all tests pass after conversion. This was done with the following sed invocation to catch label lines demarking function boundaries: sed -i '' "s/^;\( *\)\([A-Z0-9_]*\):\( *\)test\([A-Za-z0-9_-]*\):\( *\)$/;\1\2-LABEL:\3test\4:\5/g" test/CodeGen/*/*.ll which was written conservatively to avoid false positives rather than false negatives. I scanned through all the changes and everything looks correct. llvm-svn: 186258 | ||||
| * | This test requires sse, otherwise x87 ops will block tailcall optimization | Benjamin Kramer | 2011-08-31 | 1 | -1/+1 |
| | | | | | llvm-svn: 138859 | ||||
| * | Fix X86TargetLowering::LowerExternalSymbol so that it actually works in ↵ | Eli Friedman | 2011-08-11 | 1 | -0/+24 |
| non-trivial cases. This hasn't been an issue before because the function isn't normally called (but apparently is used to generate a tail-call to sin() on ELF x86-32 with PIC and SSE2). Fixes PR9693. llvm-svn: 137292 | |||||

