LLVM backend for 6502
Go to file
Hal Finkel d7a3425f06 Fix the largest offender of determinism in BBVectorize
Iterating over the children of each node in the potential vectorization
plan must happen in a deterministic order (because it affects which children
are erased when two children conflict). There was no need for this data
structure to be a map in the first place, so replacing it with a vector
is a small change.

I believe that this was the last remaining instance if iterating over the
elements of a Dense* container where the iteration order could matter.
There are some remaining iterations over std::*map containers where the order
might matter, but so long as the Value* for instructions in a block increase
with the order of the instructions in the block (or decrease) monotonically,
then this will appear to be deterministic.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167942 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-14 18:38:11 +00:00
autoconf Add mips64-* and mips64el-* triples to configure scripts 2012-10-29 19:49:45 +00:00
bindings
cmake
docs docs: Fix Sphinx toctree warning. 2012-11-14 01:49:23 +00:00
examples
include Revert some redundant parts of r142605. 2012-11-14 09:04:56 +00:00
lib Fix the largest offender of determinism in BBVectorize 2012-11-14 18:38:11 +00:00
projects Add --enable-werror and --enable-cxx11 to projects/sample/ 2012-11-12 06:11:12 +00:00
runtime libprofile/CommonProfiling.c: Fix according to C89. 2012-11-02 01:32:02 +00:00
test X86: Better diagnostics for 32-bit vs. 64-bit mode mismatches. 2012-11-14 18:04:47 +00:00
tools llvm-nm: Make sort more stable when symbol names are equal. 2012-11-13 19:39:55 +00:00
unittests do not play preprocessor tricks with 'private', use public interfaces instead; this appeases the VC++ buildbots 2012-11-12 13:34:59 +00:00
utils Simplify the SmallVector pretty printer for LLDB a bit and make it work with reference types. 2012-11-10 09:45:32 +00:00
.gitignore
CMakeLists.txt
CODE_OWNERS.TXT Sort the code owner list alphabetically. Add myself as lib/DebugInfo owner. 2012-11-14 18:17:45 +00:00
configure Add mips64-* and mips64el-* triples to configure scripts 2012-10-29 19:49:45 +00:00
CREDITS.TXT
LICENSE.TXT
llvm.spec.in
LLVMBuild.txt
Makefile [c-index-test] When building with BUILD_CLANG_ONLY=YES, include c-index-test. 2012-11-06 19:54:46 +00:00
Makefile.common
Makefile.config.in
Makefile.rules
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.