LLVM backend for 6502
Go to file
Jakob Stoklund Olesen d0bec3e62c Store (priority,regnum) pairs in the priority queue instead of providing an
abstract priority queue interface in subclasses that want to override the
priority calculations.

Subclasses must provide a getPriority() implementation instead.

This approach requires less code as long as priorities are expressable as simple
floats, and it avoids the dangers of defining potentially expensive priority
comparison functions.

It also should speed up priority_queue operations since they no longer have to
chase pointers when comparing registers. This is not measurable, though.

Preferably, we shouldn't use floats to guide code generation. The use of floats
here is derived from the use of floats for spill weights. Spill weights have a
dynamic range that doesn't lend itself easily to a fixpoint implementation.

When someone invents a stable spill weight representation, it can be reused for
allocation priorities.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121294 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-08 22:22:41 +00:00
autoconf autoconf: Stop lying to me. 2010-12-08 01:48:03 +00:00
bindings Try to fix ocaml bindings. 2010-10-08 00:36:21 +00:00
cmake Disable C++ exception handling on MSVC. 2010-12-04 14:30:22 +00:00
docs Fix newlines. 2010-12-08 02:46:25 +00:00
examples Fix missing includes of "llvm/Analysis/Passes.h" in the tutorials. Thanks 2010-11-16 17:28:22 +00:00
include Fixed some dependencies in RegAllocPBQP.h . Thanks to Borja Ferrer for pointing out this issue. 2010-12-08 22:15:32 +00:00
lib Store (priority,regnum) pairs in the priority queue instead of providing an 2010-12-08 22:22:41 +00:00
projects I swear I did a make clean and make before committing all this... 2010-11-29 18:47:54 +00:00
runtime
test Fix a bad prologue / epilogue codegen bug where the compiler would emit illegal 2010-12-07 23:08:38 +00:00
tools Add a simple breakpoint location printer. This will be used by upcoming "debug info in optimized code" quality test harness to set breakpoints at "interesting" locations. 2010-12-07 00:33:43 +00:00
unittests Support/PathV2: Change most functions in the path namespace to return their work 2010-12-07 17:04:04 +00:00
utils Add operators for vabdl and vabal so they can be implemented without builtins. 2010-12-08 21:39:04 +00:00
website
build-for-llvm-top.sh
CMakeLists.txt Promote "enumerator in switch of enum is not handled" to level 1 warning on MSVC. It was disabled by default. 2010-12-07 01:25:06 +00:00
configure Regenerate this for Daniel. 2010-12-08 02:02:14 +00:00
CREDITS.TXT
LICENSE.TXT
llvm.spec.in
Makefile Merge System into Support. 2010-11-29 18:16:10 +00:00
Makefile.common
Makefile.config.in It seems inconsistent to have LLVMCC_EMITIR_FLAG and 2010-11-25 17:57:43 +00:00
Makefile.rules build: Shared libraries shouldn't used RPATH on Darwin, only main executables 2010-12-08 02:29:26 +00:00
ModuleInfo.txt
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.

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