LLVM backend for 6502
Go to file
Michael Ilseman afe77f33b2 Introduce a new data structure, the SparseMultiSet, and changes to the MI scheduler to use it.
A SparseMultiSet adds multiset behavior to SparseSet, while retaining SparseSet's desirable properties. Essentially, SparseMultiSet provides multiset behavior by storing its dense data in doubly linked lists that are inlined into the dense vector. This allows it to provide good data locality as well as vector-like constant-time clear() and fast constant time find(), insert(), and erase(). It also allows SparseMultiSet to have a builtin recycler rather than keeping SparseSet's behavior of always swapping upon removal, which allows it to preserve more iterators. It's often a better alternative to a SparseSet of a growable container or vector-of-vector.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173064 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-21 18:18:53 +00:00
autoconf Disable Uninitialized Use Warnings for Broken gcc Versions 2013-01-15 18:21:15 +00:00
bindings
cmake Add time getters to the process interface for requesting the elapsed 2013-01-04 23:19:55 +00:00
docs [docs] Update IRC information. 2013-01-20 09:38:14 +00:00
examples Update links to "Itanium C++ ABI: Exception Handling" document 2013-01-13 15:53:09 +00:00
include Introduce a new data structure, the SparseMultiSet, and changes to the MI scheduler to use it. 2013-01-21 18:18:53 +00:00
lib Introduce a new data structure, the SparseMultiSet, and changes to the MI scheduler to use it. 2013-01-21 18:18:53 +00:00
projects Clean up the sample include orderings, not that it really matters... 2012-12-04 10:46:21 +00:00
runtime
test Add instruction encodings / disassembly support for l2rus instructions. 2013-01-20 18:51:15 +00:00
tools switch llvm-bcanalyzer onto the new cursor APIs, allowing deletion of 2013-01-20 02:50:32 +00:00
unittests Introduce a new data structure, the SparseMultiSet, and changes to the MI scheduler to use it. 2013-01-21 18:18:53 +00:00
utils llvm/utils/valgrind/x86_64-pc-linux-gnu.supp: Add /usr/bin/cmp. 2013-01-20 15:30:29 +00:00
.arcconfig
.gitignore
CMakeLists.txt Fix spelling 2012-12-13 15:25:07 +00:00
CODE_OWNERS.TXT Update CODE_OWNERS.TXT. 2013-01-15 09:37:45 +00:00
configure Disable Uninitialized Use Warnings for Broken gcc Versions 2013-01-15 18:21:15 +00:00
CREDITS.TXT
LICENSE.TXT Add LICENSE.TXT covering contributions made by ARM. 2013-01-07 10:04:49 +00:00
llvm.spec.in
LLVMBuild.txt
Makefile Update the root Makefile for VMCore -> IR. Missed by my original search 2013-01-02 09:27:25 +00:00
Makefile.common Makefile.common: Update a description, s/Source/SOURCES/ , according to MakefileGuide.html#control-variables . 2012-12-07 01:43:23 +00:00
Makefile.config.in Introduce llvm::sys::getProcessTriple() function. 2013-01-16 17:27:22 +00:00
Makefile.rules Pass NO_MISSING_FIELD_INITIALIZERS to Compiler Flags 2013-01-18 23:22:52 +00:00
README.txt Update README.txt to more accurately reflect reality. 2013-01-08 02:35:15 +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.