mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-08-18 12:29:21 +00:00
LLVM backend for 6502
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9284 91177308-0d34-0410-b5e6-96231b3b80d8 |
||
---|---|---|
autoconf | ||
docs | ||
examples/ModuleMaker | ||
include | ||
lib | ||
projects | ||
runtime | ||
test | ||
tools | ||
utils | ||
.cvsignore | ||
configure | ||
CREDITS.TXT | ||
LICENSE.TXT | ||
Makefile | ||
Makefile.common | ||
Makefile.config.in | ||
Makefile.rules | ||
README.txt |
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.