LLVM backend for 6502
Go to file
Vincent Lejeune 62f38ca141 R600: initial scheduler code
This is a skeleton for a pre-RA MachineInstr scheduler strategy. Currently
it only tries to expose more parallelism for ALU instructions (this also
makes the distribution of GPR channels more uniform and increases the
chances of ALU instructions to be packed together in a single VLIW group).
Also it tries to reduce clause switching by grouping instruction of the
same kind (ALU/FETCH/CF) together.

Vincent Lejeune:
 - Support for VLIW4 Slot assignement
 - Recomputation of ScheduleDAG to get more parallelism opportunities

Tom Stellard:
 - Fix assertion failure when trying to determine an instruction's slot
   based on its destination register's class
 - Fix some compiler warnings

Vincent Lejeune: [v2]
 - Remove recomputation of ScheduleDAG (will be provided in a later patch)
 - Improve estimation of an ALU clause size so that heuristic does not emit cf
 instructions at the wrong position.
 - Make schedule heuristic smarter using SUnit Depth
 - Take constant read limitations into account

Vincent Lejeune: [v3]
 - Fix some uninitialized values in ConstPair
 - Add asserts to ensure an ALU slot is always populated

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176498 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-05 18:41:32 +00:00
autoconf configure: remove workaround for gcc's -Wno-maybe-uninitialized 2013-02-13 21:19:39 +00:00
bindings
cmake CMake: Always include the CheckCXXCompilerFlag in HandleLLVMOptions.cmake. 2013-03-02 01:00:40 +00:00
docs Docs for llvm-symbolizer command-line tool 2013-03-01 07:58:27 +00:00
examples
include Clarify comment for function getObjectSize 2013-03-05 16:53:24 +00:00
lib R600: initial scheduler code 2013-03-05 18:41:32 +00:00
projects Print a warning message if compiler-rt can't be built because of old CMake version to make this requirement more visible to users 2013-03-05 14:43:07 +00:00
runtime Forgot that this file needs to be C89 not C99 thanks to MSVC. No functionality 2013-02-27 08:28:35 +00:00
test Add a test that .align directives on capable processors use long NOPs. 2013-03-05 16:46:54 +00:00
tools Connect LLVM CMake build scripts to LLDB's CMake scripts: 2013-02-28 23:15:15 +00:00
unittests [Support][ErrorOr] Add support for implicit conversion from error code/condition enums. 2013-02-28 01:44:26 +00:00
utils MIsched machine model: tablegen subtarget emitter improvement. 2013-03-01 23:31:26 +00:00
.arcconfig
.gitignore
CMakeLists.txt Revert CMake version bump since we don't actually need 2.8.6 any more. 2013-02-18 11:53:37 +00:00
CODE_OWNERS.TXT
configure configure: remove workaround for gcc's -Wno-maybe-uninitialized 2013-02-13 21:19:39 +00:00
CREDITS.TXT Fix my email address in CREDITS.TXT. 2013-03-01 22:20:03 +00:00
LICENSE.TXT
llvm.spec.in
LLVMBuild.txt
Makefile
Makefile.common
Makefile.config.in
Makefile.rules Use 'RC_XBS' instead of 'RC_BUILDIT' to catch all times when it's built in the Apple way. 2013-02-13 19:44:08 +00:00
README.txt Revert "Test commit" 2013-02-22 19:19:41 +00:00

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 documentation provided in docs/ for further
assistance with LLVM, and in particular docs/GettingStarted.rst for getting
started with LLVM and docs/README.txt for an overview of LLVM's
documentation setup.

If you're writing a package for LLVM, see docs/Packaging.rst for our
suggestions.