LLVM backend for 6502
Go to file
Duncan P. N. Exon Smith c128f3b34c UseListOrder: Fix undefined behaviour
This commit fixes undefined behaviour that caused the revert in r214249.

The problem was two unsequenced operations on a `DenseMap<>`, giving
different behaviour in GCC and Clang.  This:

    DenseMap<T*, unsigned> DM;
    for (auto &X : ...)
      DM[&X] = DM.size() + 1;

should have been:

    DenseMap<T*, unsigned> DM;
    for (auto &X : ...) {
      unsigned Size = DM.size();
      DM[&X] = Size + 1;
    }

Until r214242, this difference between compilers didn't matter.  In
r214242, `OrderMap::LastGlobalValueID` was introduced and compared
against IDs, which in GCC were off-by-one my expectations.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@214270 91177308-0d34-0410-b5e6-96231b3b80d8
2014-07-30 01:20:26 +00:00
autoconf [autoconf] Fixup s/3.5/3.6/. Clang's ident was 3.5.0svn in autoconf build. 2014-07-29 08:35:03 +00:00
bindings [OCaml] Don't truncate constants over 32 bits in Llvm.const_int. 2014-07-22 13:55:20 +00:00
cmake Emit a warning if llvm_map_components_to_libraries() is used noting that its 2014-07-28 13:36:50 +00:00
docs Update LLVM version: 3.5 => 3.6 2014-07-28 22:10:52 +00:00
examples Added LLVM_ENABLE_RTTI and LLVM_ENABLE_EH options that allow RTTI and EH 2014-07-22 15:41:18 +00:00
include Revert "UseListOrder: Remove move assignment" 2014-07-30 00:25:33 +00:00
lib UseListOrder: Fix undefined behaviour 2014-07-30 01:20:26 +00:00
projects [cmake] Use the external project machinery for libcxxabi so that it can 2014-07-25 10:27:40 +00:00
test Add support for scalarizing ctlz_zero_undef 2014-07-30 00:44:03 +00:00
tools Use function pointers with just f(1,2) instead of (*f)(1,2). 2014-07-30 00:38:58 +00:00
unittests [Debug Info] add DISubroutineType and its creation takes DITypeArray. 2014-07-28 22:24:06 +00:00
utils Fix FileCheck crash when empty prefix is passed. 2014-07-29 20:30:53 +00:00
.arcconfig
.clang-format
.gitignore Add Polly to the ignored trees. 2014-06-25 13:13:36 +00:00
CMakeLists.txt Update LLVM version: 3.5 => 3.6 2014-07-28 22:10:52 +00:00
CODE_OWNERS.TXT Claim AA generally as code owner 2014-07-25 16:45:10 +00:00
configure [autoconf] Fixup s/3.5/3.6/. Clang's ident was 3.5.0svn in autoconf build. 2014-07-29 08:35:03 +00:00
CREDITS.TXT Update Credits. 2014-05-29 19:59:58 +00:00
LICENSE.TXT
llvm.spec.in
LLVMBuild.txt
Makefile
Makefile.common
Makefile.config.in Track clang r213171 2014-07-16 16:50:34 +00:00
Makefile.rules [Make] Fix dependencies for td.expanded 2014-06-20 19:00:41 +00:00
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 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.