llvm-project/llvm
Michael Zolotukhin 4fbb93003b [SSAUpdaterBulk] Fix linux bootstrap/sanitizer failures: explicitly specify order of evaluation.
The standard says that the order of evaluation of an expression
  s[x] = foo()
is unspecified. In our case, we first create an empty entry in the map,
then call foo(), then store its return value to the created entry. The
problem is that foo uses the map as a cache, so if it finds that there
is an entry in the map, it stops computation. This change explicitly
sets the order, thus fixing this heisenbug.

llvm-svn: 329864
2018-04-11 23:37:37 +00:00
..
bindings [llgo] Move SetSubprogram 2018-04-07 16:26:59 +00:00
cmake [Build][NFC] Split off libpfm detection to a separate module. 2018-04-11 07:39:00 +00:00
docs [llvm-mca] Renamed BackendStatistics to RetireControlUnitStatistics. 2018-04-11 12:12:53 +00:00
examples [ORC] Create a new SymbolStringPool by default in ExecutionSession constructor. 2018-04-02 20:57:56 +00:00
include Add missing vtable anchors 2018-04-11 23:09:20 +00:00
lib [SSAUpdaterBulk] Fix linux bootstrap/sanitizer failures: explicitly specify order of evaluation. 2018-04-11 23:37:37 +00:00
projects
resources
runtimes [CMake][runtimes] Process common options in runtimes build 2018-04-11 05:18:03 +00:00
test [llvm-objcopy] Switch over to using TableGen for parsing arguments 2018-04-11 23:37:03 +00:00
tools [llvm-objcopy] Switch over to using TableGen for parsing arguments 2018-04-11 23:37:03 +00:00
unittests Rename *CommandFlags.def to *CommandFlags.inc 2018-04-11 18:49:37 +00:00
utils X86FoldTableEntry - avoid unnecessary std::string creation. NFCI. 2018-04-11 23:08:30 +00:00
.arcconfig
.clang-format
.clang-tidy
.gitattributes
.gitignore
CMakeLists.txt [llvm-exegesis] Add a flag to disable libpfm even if present. 2018-04-11 07:32:43 +00:00
CODE_OWNERS.TXT
CREDITS.TXT
LICENSE.TXT
LLVMBuild.txt
README.txt
RELEASE_TESTERS.TXT
configure
llvm.spec.in

README.txt

Low Level Virtual Machine (LLVM)
================================

This directory and its subdirectories contain source code for LLVM,
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 are writing a package for LLVM, see docs/Packaging.rst for our
suggestions.