- May 16, 2005
-
-
Duraid Madina authored
llvm-svn: 22081
-
Duraid Madina authored
can't patch it up for c++ (works in C though) llvm-svn: 22079
-
- May 15, 2005
-
-
Reid Spencer authored
not reason to include it for other front ends. llvm-svn: 22070
-
Reid Spencer authored
ffs(x) -> (x == 0 ? 0 : 1+llvm.cttz(x)) llvm-svn: 22068
-
Chris Lattner authored
in the LLVM code generator sense (they are calls). Don't mark them as such, which fixes the regressions on the ppc tester last night llvm-svn: 22065
-
Chris Lattner authored
llvm-svn: 22064
-
Reid Spencer authored
for one of the values that it defines! llvm-svn: 22058
-
Reid Spencer authored
* Use C++ style casts, not C style casts * Abstract base classes should have virtual destructor. llvm-svn: 22057
-
Duraid Madina authored
llvm-svn: 22054
-
Duraid Madina authored
llvm-svn: 22053
-
Chris Lattner authored
llvm-svn: 22050
-
Chris Lattner authored
add %ESP, 20 jmp %EDX # TAIL CALL instead of: add %ESP, -8 add %ESP, 28 jmp %EDX # TAIL CALL llvm-svn: 22047
-
Chris Lattner authored
tail calls. llvm-svn: 22046
-
Chris Lattner authored
long %bar(long %X) { %Y = mul long %X, 4294967297 ret long %Y } to this: l1_bar: mov %EAX, DWORD PTR [%ESP + 4] mov %EDX, %EAX add %EDX, DWORD PTR [%ESP + 8] ret instead of: l1_bar: mov %ECX, DWORD PTR [%ESP + 4] mov %EDX, 1 mov %EAX, %ECX mul %EDX add %EDX, %ECX add %EDX, DWORD PTR [%ESP + 8] mov %EAX, %ECX ret llvm-svn: 22044
-
Chris Lattner authored
sorta-pseudo-instruction llvm-svn: 22042
-
Chris Lattner authored
terminator instructions before the 'ret' in case the target has a multi-instruction return sequence. llvm-svn: 22041
-
Chris Lattner authored
llvm-svn: 22040
-
Chris Lattner authored
adjustment. If so, we merge the adjustment into the existing one. This allows us to generate: caller2: sub %ESP, 12 mov DWORD PTR [%ESP], 0 mov %EAX, 1234567890 mov %EDX, 0 call func2 add %ESP, 8 ret 4 intead of: caller2: sub %ESP, 12 mov DWORD PTR [%ESP], 0 mov %EAX, 1234567890 mov %EDX, 0 call func2 sub %ESP, 4 add %ESP, 12 ret 4 for X86/fast-cc-merge-stack-adj.ll llvm-svn: 22038
-
Chris Lattner authored
llvm-svn: 22036
-
- May 14, 2005
-
-
Reid Spencer authored
* Check for availability of ffsll call in configure script * Support ffs, ffsl, and ffsll conversion to constant value if the argument is constant. llvm-svn: 22027
-
Chris Lattner authored
llvm-svn: 22026
-
Chris Lattner authored
llvm-svn: 22025
-
Chris Lattner authored
llvm-svn: 22024
-
Chris Lattner authored
a call. This fixes Prolangs-C++/deriv2, kimwitu++, and Misc-C++/bigfib on X86 with -enable-x86-fastcc. llvm-svn: 22023
-
Chris Lattner authored
This fixes fourinarow with -enable-x86-fastcc. llvm-svn: 22022
-
Chris Lattner authored
to do ugly hackery to avoid emitting code like this: call foo mov vreg, EAX adjcallstackup ... If foo is a fastcc call and if vreg gets spilled, we might end up with this: call foo mov [ESP+offset], EAX ;; Offset doesn't consider the 12! sub ESP, 12 Which is bad. The previous hacky code to deal with this was A) gross B) not good enough. In particular, it could miss cases and emit the bad code above. Now we always emit this: call foo adjcallstackup ... mov vreg, EAX directly. This makes fastcc with callees poping the stack work much better. Next stop (finally!) really is tail calls. llvm-svn: 22021
-
Chris Lattner authored
llvm-svn: 22020
-
Chris Lattner authored
codepath llvm-svn: 22019
-
Chris Lattner authored
llvm-svn: 22018
-
Chris Lattner authored
llvm-svn: 22016
-
Chris Lattner authored
llvm-svn: 22015
-
Chris Lattner authored
special case hacks. llvm-svn: 22014
-
Chris Lattner authored
This should fix some missing symbols problems on BSD and improve performance of programs that use that operation. llvm-svn: 22012
-
Chris Lattner authored
llvm-svn: 22011
-
Chris Lattner authored
llvm-svn: 22010
-
Chris Lattner authored
llvm-svn: 22009
-
Chris Lattner authored
llvm-svn: 22004
-
Chris Lattner authored
llvm-svn: 22002
-
Chris Lattner authored
llvm-svn: 22001
-
Chris Lattner authored
is always 8-byte aligned for fastcc llvm-svn: 21995
-