hanchenye-llvm-project/llvm
Silviu Baranga d68ed85401 [SCEV] Change the SCEV Predicates interfaces for conversion to AddRecExpr to return SCEVAddRecExpr* instead of SCEV*
Summary:
This changes the conversion functions from SCEV * to SCEVAddRecExpr from
ScalarEvolution and PredicatedScalarEvolution to return a SCEVAddRecExpr*
instead of a SCEV* (which removes the need of most clients to do a
dyn_cast right after calling these functions).

We also don't add new predicates if the transformation was not successful.

This is not entirely a NFC (as it can theoretically remove some predicates
from LAA when we have an unknown dependece), but I couldn't find an obvious
regression test for it.

Reviewers: sanjoy

Subscribers: sanjoy, mzolotukhin, llvm-commits

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

llvm-svn: 264161
2016-03-23 15:29:30 +00:00
..
bindings bindings/go: reinstate TargetMachine.TargetData 2016-03-15 05:04:06 +00:00
cmake cmake: include what you use 2016-03-08 18:56:00 +00:00
docs FAQ: Remove the entire Build Problems section 2016-03-23 06:54:42 +00:00
examples [PM] Update Kaleidoscope with the new header file. 2016-03-11 12:10:15 +00:00
include [SCEV] Change the SCEV Predicates interfaces for conversion to AddRecExpr to return SCEVAddRecExpr* instead of SCEV* 2016-03-23 15:29:30 +00:00
lib [SCEV] Change the SCEV Predicates interfaces for conversion to AddRecExpr to return SCEVAddRecExpr* instead of SCEV* 2016-03-23 15:29:30 +00:00
projects Remove autoconf support 2016-01-26 21:29:08 +00:00
resources
test [X86] Regenerated WidenArith test 2016-03-23 14:00:28 +00:00
tools MC: Don't access the filesystem in MCContext's constructor 2016-03-22 22:24:29 +00:00
unittests [unittests] clang-format a line, NFC 2016-03-22 15:14:18 +00:00
utils Typesafe visualization of PointerIntPairs in Visual Studio 2016-03-18 20:06:16 +00:00
.arcconfig
.clang-format
.clang-tidy
.gitignore
CMakeLists.txt llvm-shlib: Remove the option to override __cxa_atexit 2016-03-14 21:54:45 +00:00
CODE_OWNERS.TXT Add self to CODE_OWNERS 2016-03-08 19:01:15 +00:00
CREDITS.TXT
LICENSE.TXT
LLVMBuild.txt
README.txt
configure Remove autoconf support 2016-01-26 21:29:08 +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 are writing a package for LLVM, see docs/Packaging.rst for our
suggestions.