llvm/unittests/Analysis
Sebastian Pop b226b5d5c0 [SCEVExpand] do not hoist divisions by zero (PR30935)
SCEVExpand computes the insertion point for the components of a SCEV to be code
generated.  When it comes to generating code for a division, SCEVexpand would
not be able to check (at compilation time) all the conditions necessary to avoid
a division by zero.  The patch disables hoisting of expressions containing
divisions by anything other than non-zero constants in order to avoid hoisting
these expressions past conditions that should hold before doing the division.

The patch passes check-all on x86_64-linux.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@289412 91177308-0d34-0410-b5e6-96231b3b80d8
2016-12-12 02:52:51 +00:00
..
AliasAnalysisTest.cpp [NFC] Header cleanup 2016-04-18 09:17:29 +00:00
BlockFrequencyInfoTest.cpp Revert r272891 "[JumpThreading] Prevent dangling pointer problems in BranchProbabilityInfo" 2016-06-16 16:25:53 +00:00
CallGraphTest.cpp [GraphTraits] Replace all NodeType usage with NodeRef 2016-08-22 21:09:30 +00:00
CFGTest.cpp Remove every uses of getGlobalContext() in LLVM (but the C API) 2016-04-14 21:59:01 +00:00
CGSCCPassManagerTest.cpp [PM] Support invalidation of inner analysis managers from a pass over the outer IR unit. 2016-12-10 06:34:44 +00:00
CMakeLists.txt [TBAA] Drop support for "old style" scalar TBAA tags 2016-11-08 20:46:01 +00:00
LazyCallGraphTest.cpp [LCG] Start using SCC relationship predicates in the unittest. 2016-11-22 20:35:32 +00:00
LoopPassManagerTest.cpp [PM] Change the static object whose address is used to uniquely identify 2016-11-23 17:53:26 +00:00
ScalarEvolutionTest.cpp [SCEVExpand] do not hoist divisions by zero (PR30935) 2016-12-12 02:52:51 +00:00
TBAATest.cpp [TBAA] Don't generate invalid TBAA when merging nodes 2016-12-11 20:07:25 +00:00
UnrollAnalyzer.cpp Revert "Revert "[Unroll] Implement a conservative and monotonically increasing cost tracking system during the full unroll heuristic analysis that avoids counting any instruction cost until that instruction becomes "live" through a side-effect or use outside the..."" 2016-05-13 21:23:25 +00:00
ValueTrackingTest.cpp Remove every uses of getGlobalContext() in LLVM (but the C API) 2016-04-14 21:59:01 +00:00