llvm-project/llvm
Philip Reames a88caeab6c [FunctionAttr] Infer nonnull attributes on returns
Teach FunctionAttr to infer the nonnull attribute on return values of functions which never return a potentially null value. This is done both via a conservative local analysis for the function itself and a optimistic per-SCC analysis. If no function in the SCC returns anything which could be null (other than values from other functions in the SCC), we can conclude no function returned a null pointer. Even if some function within the SCC returns a null pointer, we may be able to locally conclude that some don't.

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

llvm-svn: 246476
2015-08-31 19:44:38 +00:00
..
autoconf Add an exposed variable for which c++ compiler we're using for our 2015-08-17 22:46:26 +00:00
bindings [PM/AA] Remove the last relics of the separate IPA library from LLVM, 2015-08-18 17:51:53 +00:00
cmake [CMake] Fix build on MSVC in r246156. 2015-08-28 00:36:58 +00:00
docs [libFuzzer] update the docs to mention llvm-as-fuzzer 2015-08-31 18:57:24 +00:00
examples Kaleidoscope: Prune __attribute__((used)). Some compilers wouldn't accept one. 2015-08-28 03:34:33 +00:00
include Undo reversion on commit: Revert "Revert "Repress sanitization on User dtor. 2015-08-31 18:49:31 +00:00
lib [FunctionAttr] Infer nonnull attributes on returns 2015-08-31 19:44:38 +00:00
projects
resources
test [FunctionAttr] Infer nonnull attributes on returns 2015-08-31 19:44:38 +00:00
tools [llvm-readobj] Dump MachO Dysymtab command. 2015-08-31 19:32:31 +00:00
unittests Teach the target parsing framework to directly compute the length of all 2015-08-30 07:51:04 +00:00
utils lit: Match UNSUPPORTED against target triple as we do for XFAIL. 2015-08-28 22:17:28 +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 [lit] Don't disable the lit progress bar by default with MSVC 2015-08-11 21:24:59 +00:00
CODE_OWNERS.TXT Add myself as the InstCombine owner. 2015-08-12 22:30:45 +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 We're actually -Wmissing-field-initializers clean thanks to the cmake 2015-08-07 16:44:47 +00:00
Makefile.rules We're actually -Wmissing-field-initializers clean thanks to the cmake 2015-08-07 16:44:47 +00:00
README.txt
configure Add an exposed variable for which c++ compiler we're using for our 2015-08-17 22:46:26 +00:00
llvm.spec.in [Sparc] Implement i64 load/store support for 32-bit sparc. 2015-08-10 19:11:39 +00:00

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.