llvm-project/llvm
Chris Lattner de87d146ab Implement Regression/CodeGen/X86/rotate.ll: emit rotate instructions (which
typically cost 1 cycle) instead of shld/shrd instruction (which are typically
6 or more cycles).  This also saves code space.

For example, instead of emitting:

rotr:
        mov %EAX, DWORD PTR [%ESP + 4]
        mov %CL, BYTE PTR [%ESP + 8]
        shrd %EAX, %EAX, %CL
        ret
rotli:
        mov %EAX, DWORD PTR [%ESP + 4]
        shrd %EAX, %EAX, 27
        ret

Emit:

rotr32:
        mov %CL, BYTE PTR [%ESP + 8]
        mov %EAX, DWORD PTR [%ESP + 4]
        ror %EAX, %CL
        ret
rotli32:
        mov %EAX, DWORD PTR [%ESP + 4]
        ror %EAX, 27
        ret

We also emit byte rotate instructions which do not have a sh[lr]d counterpart
at all.

llvm-svn: 19692
2005-01-19 08:07:05 +00:00
..
autoconf Fix llvm-java project autconfiguration. 2005-01-16 09:44:58 +00:00
docs Fix typos noticed by Gabor Greif, thanks Gabor! 2005-01-17 00:12:04 +00:00
examples Use LLVMLIBS=JIT to get JIT libraries 2004-11-29 07:17:18 +00:00
include/llvm Add a new method, described in the comment. 2005-01-19 06:53:02 +00:00
lib Implement Regression/CodeGen/X86/rotate.ll: emit rotate instructions (which 2005-01-19 08:07:05 +00:00
projects Update per new Makefile requirements for projects 2005-01-16 02:21:42 +00:00
runtime Turn on LOADABLE_MODULE so that profile.so can be loaded dynamically by 2005-01-13 16:53:05 +00:00
test New testcase for rotate instructions. Each function should codegen to a 2005-01-19 08:04:08 +00:00
tools sysconfdir -> PROJ_etcdir 2005-01-17 00:42:31 +00:00
utils Fix the path from ../lib/Debug to ../Debug/lib per changes to Makefiles. 2005-01-14 16:32:39 +00:00
win32 Add project llvm-ld to Visual Studio 2005-01-18 05:44:50 +00:00
.cvsignore Ignore the autom4te.cache directoy. 2004-12-24 15:11:23 +00:00
CREDITS.TXT Add MMC 2004-11-18 21:04:21 +00:00
LICENSE.TXT Another year, another copyright update. 2005-01-08 19:10:44 +00:00
Makefile Remove the check target. Its now in Makefile.rules 2004-12-06 05:35:00 +00:00
Makefile.common Make this file capable of being used by both LLVM and its projects 2005-01-16 02:20:30 +00:00
Makefile.config.in Don't confuse the LLVM_OBJ_DIR and the PROJ_OBJ_DIR because there might be 2005-01-16 06:53:48 +00:00
Makefile.rules Several changes: 2005-01-16 02:20:54 +00:00
README.txt Make the text of this file a little more useful. 2004-09-02 22:49:27 +00:00
configure Fix llvm-java project autconfiguration. 2005-01-16 09:44:58 +00:00
llvm.spec Updated for 1.3. 2004-08-16 15:17:40 +00:00

README.txt

Low Level Virtual Machine (LLVM)
================================

This directory and its subdirectories contain source code for the Low Level 
Virtual Machine, a toolkit for the construction of highly optimized compilers,
optimizers, and runtime environments. 

LLVM is open source software. You may freely distribute it under the terms of
the license agreement found in LICENSE.txt.

Please see the HTML documentation provided in docs/index.html for further
assistance with LLVM.