Fork of llvm with experimental commits and workarounds for RPCS3
Go to file
Chris Lattner c4f8226aaf Emit x86 instructions for: A = B op C, where A and B are 16-bit registers,
C is a constant which can be sign-extended from 8 bits without value loss,
and op is one of: add, sub, imul, and, or, xor.

This allows the JIT to emit the one byte version of the constant instead of
the two or 4 byte version.  Because these instructions are very common, this
can save a LOT of code space.  For example, I sampled two benchmarks, 176.gcc
and 254.gap.

BM        Old     New    Reduction
176.gcc 2673621 2548962  4.89%
254.gap  498261  475104  4.87%

Note that while the percentage is not spectacular, this did eliminate
124.6 _KILOBYTES_ of codespace from gcc.  Not bad.

Note that this doesn't effect the llc version at all, because the assembler
already does this optimization.

llvm-svn: 9284
2003-10-20 05:53:31 +00:00
autoconf Added an entry for `llvm-nm'. 2003-10-16 16:12:04 +00:00
docs Change it to match llvmgcc.html ... why do we have separate pages for these two? 2003-10-19 18:23:05 +00:00
include Change the Opcode enum for PHI nodes from "Instruction::PHINode" to "Instruction::PHI" to be more consistent with the other instructions. 2003-10-19 21:34:28 +00:00
lib Emit x86 instructions for: A = B op C, where A and B are 16-bit registers, 2003-10-20 05:53:31 +00:00
projects Adding license information for the sample project. 2003-10-17 21:37:26 +00:00
runtime Adding additional license information to these files. 2003-10-13 20:34:27 +00:00
test New testcase, distilled from 176.gcc codegen failure 2003-10-18 23:54:45 +00:00
tools Don't bother forwarding function references which are external to the program entirely 2003-10-19 23:32:50 +00:00
utils DeHTMLify the email so that it only gets sent out if something changes. 2003-10-19 16:54:00 +00:00
.cvsignore Ok, try #2, this time I'll not be stupid 2003-08-03 18:33:24 +00:00
configure Someone forgot to commit an updated configure after adding tools/llvm-nm to configure.ac :-) 2003-10-17 00:50:38 +00:00
CREDITS.TXT * Fixed grammar in header 2003-10-20 03:59:05 +00:00
LICENSE.TXT Add prerelease license to cvs 2003-06-04 19:46:36 +00:00
Makefile I really meant to use that AUTOHEADER variable I put in there. 2003-10-08 21:38:35 +00:00
Makefile.common Checkin of autoconf-style object root. 2003-09-06 14:44:17 +00:00
Makefile.config.in Fixed SPEC so that it would run correctly with the new autoconf-style object 2003-09-11 18:03:50 +00:00
Makefile.rules Added autoconf support for the sample project. 2003-10-16 01:49:00 +00:00
README.txt Updated the README so that it catagorizes the docs similar to the web page. 2003-10-17 21:10:57 +00:00

Welcome to LLVM!

This file provides the location of all important LLVM documentation.  In
particular, you should read the license information and the installation
directions before you begin using LLVM.

After that, there are several technical references that will help you use LLVM.
Consult them as necessary.

Finally, you can find information on how to communicate with the LLVM
developers and LLVM community.  This is of primary interest if you wish to
submit a bug, supply a patch, or just keep current with what's going on with
LLVM.

Introductory Literature:

	LLVM Home Page:
		http://llvm.cs.uiuc.edu

	License Information:
		llvm/LICENSE.txt

	Release Notes:
		llvm/docs/ReleaseNotes.html

LLVM Design:

	 The LLVM Instruction Set and Compilation Strategy:
		http://llvm.cs.uiuc.edu/pubs/2002-08-09-LLVMCompilationStrategy.html

LLVM User Guides:

	Download and Installation Instructions:
		llvm/docs/GettingStarted.html

	LLVM Command Guide:
		llvm/docs/CommandGuide/CommandGuide.html

	LLVM Assembly Language:
		llvm/docs/LangRef.html

	LLVM Test Suite Guide:
		llvm/docs/TestingGuide.html

LLVM Programming Documentation:

	LLVM Programmers Manual:
		llvm/docs/ProgrammersManual.html

	Writing an LLVM Pass:
		llvm/docs/WritingAnLLVMPass.html

	Alias Analysis in LLVM:
		llvm/docs/AliasAnalysis.html

	Command Line Library:
		llvm/docs/CommandLine.html

	Coding Standards:
		llvm/docs/CodingStandards.html

LLVM Community:

	Submitting a Bug:
		http://llvm.cs.uiuc.edu/docs/HowToSubmitABug.html

	Open Projects:
		llvm/docs/OpenProjects.html

	Creating a new LLVM Project:
		llvm/docs/Projects.html

	Mailing Lists:
		There are several mailing lists providing LLVM users with
		information:

			o LLVM Announcements List:
			http://mail.cs.uiuc.edu/mailman/listinfo/llvm-announce

				This is a low volume list that provides
				important announcements regarding LLVM.  It is
				primarily intended to announce new releases,
				major updates to the software, etc.  This list
				is highly recommended for anyone that uses LLVM.


			o LLVM Developers List:
			http://mail.cs.uiuc.edu/mailman/listinfo/llvmdev

				This list is for people who want to be included
				in technical discussions of LLVM.  People post
				to this list when they have questions about
				writing code for or using the LLVM tools.  It
				is low volume.

			o LLVM Commits List
			http://mail.cs.uiuc.edu/mailman/listinfo/llvm-commits

				This list contains all commit messages that are
				made when LLVM developers commit code changes
				to the CVS archive.  It is useful for those who
				want to stay on the bleeding edge of LLVM
				development.

				This list is very high volume.