llvm-project/llvm
Hideto Ueno f2b9dc4758 [Attributor] ValueSimplify Abstract Attribute
Summary:
This patch introduces initial `AAValueSimplify` which simplifies a value in a context.

example
- (for function returned) If all the return values are the same and constant, then we can replace callsite returned with the constant.
- If an internal function takes the same value(constant) as an argument in the callsite, then we can replace the argument with that constant.

Reviewers: jdoerfert, sstefan1

Reviewed By: jdoerfert

Subscribers: hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D66967

llvm-svn: 371291
2019-09-07 07:03:05 +00:00
..
benchmarks
bindings Bump llvm-go to C++14 2019-08-15 10:55:25 +00:00
cmake [CMake] LLVM_COMPILE_FLAGS also applies to C files 2019-09-06 07:12:36 +00:00
docs Docs: Update Community section on homepage 2019-09-05 21:24:47 +00:00
examples [ORCv2] - New Speculate Query Implementation 2019-08-27 18:23:36 +00:00
include [Attributor] ValueSimplify Abstract Attribute 2019-09-07 07:03:05 +00:00
lib [Attributor] ValueSimplify Abstract Attribute 2019-09-07 07:03:05 +00:00
projects
resources
runtimes
test [Attributor] ValueSimplify Abstract Attribute 2019-09-07 07:03:05 +00:00
tools [llvm-objcopy] Rename SHOffset (e_shoff) field to SHOff. NFC 2019-09-07 01:38:56 +00:00
unittests Change TargetLibraryInfo analysis passes to always require Function 2019-09-07 03:09:36 +00:00
utils [git-llvm] Do not reinvent `@{upstream}` 2019-09-07 06:44:52 +00:00
.arcconfig
.clang-format
.clang-tidy
.gitattributes
.gitignore
CMakeLists.txt Revert Autogenerate the shebang lines for tools/opt-viewer 2019-08-27 18:31:29 +00:00
CODE_OWNERS.TXT
CREDITS.TXT
LICENSE.TXT
LLVMBuild.txt
README.txt
RELEASE_TESTERS.TXT
configure
llvm.spec.in

README.txt

The LLVM Compiler Infrastructure
================================

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.