hanchenye-llvm-project/llvm
Kuba Brecka 37a5ffaca0 [asan] Fix invalid debug info for promotable allocas
Since r230724 ("Skip promotable allocas to improve performance at -O0"), there is a regression in the generated debug info for those non-instrumented variables. When inspecting such a variable's value in LLDB, you often get garbage instead of the actual value. ASan instrumentation is inserted before the creation of the non-instrumented alloca. The only allocas that are considered standard stack variables are the ones declared in the first basic-block, but the initial instrumentation setup in the function breaks that invariant.

This patch makes sure uninstrumented allocas stay in the first BB.

Differential Revision: http://reviews.llvm.org/D11179

llvm-svn: 242510
2015-07-17 06:29:57 +00:00
..
autoconf Update the trunk version to 3.8.0svn. 2015-07-14 22:35:57 +00:00
bindings Revert "Update LLVM bindings after r239940. ..." 2015-07-16 01:16:39 +00:00
cmake [CMake] Unbreak add_llvm_external_project when external projects are specified. 2015-07-14 05:12:53 +00:00
docs List supported architectures for StackMap section and related intrinsics 2015-07-16 21:10:46 +00:00
examples Fix Kaleidoscope tuto: ExecutionEngine->getDataLayout() returns a ref 2015-07-16 16:47:18 +00:00
include ARM: Enable MachineScheduler and disable PostRAScheduler for swift. 2015-07-17 01:44:31 +00:00
lib [asan] Fix invalid debug info for promotable allocas 2015-07-17 06:29:57 +00:00
projects
resources In MSVC builds embed a VERSIONINFO resource in our exe and DLL files. 2015-06-12 15:58:29 +00:00
test [asan] Fix invalid debug info for promotable allocas 2015-07-17 06:29:57 +00:00
tools [llvm-cxxdump] Don't rely on global state 2015-07-17 06:18:36 +00:00
unittests [ExecutionEngine] Re-apply r241962 with fixes for ARM. 2015-07-14 22:11:10 +00:00
utils Move most user of TargetMachine::getDataLayout to the Module one 2015-07-16 06:11:10 +00:00
.arcconfig
.clang-format
.clang-tidy
.gitignore Minor updates to gitignore so that symlinks are ignored in the projects dir. 2015-07-07 20:24:58 +00:00
CMakeLists.txt Update the trunk version to 3.8.0svn. 2015-07-14 22:35:57 +00:00
CODE_OWNERS.TXT [WebAssembly] Initial WebAssembly backend 2015-06-29 23:51:55 +00:00
CREDITS.TXT [WebAssembly] Initial WebAssembly backend 2015-06-29 23:51:55 +00:00
LICENSE.TXT
LLVMBuild.txt
Makefile
Makefile.common
Makefile.config.in Disallow in-source builds (as we already do for the cmake build). 2015-07-01 18:09:21 +00:00
Makefile.rules
README.txt
configure Update the trunk version to 3.8.0svn. 2015-07-14 22:35:57 +00:00
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're writing a package for LLVM, see docs/Packaging.rst for our
suggestions.