llvm-project/llvm/lib/Transforms
David Majnemer 29130c5e8d IndVarSimplify: check if loop invariant expansion can trap
IndVarSimplify is willing to move divide instructions outside of their
loop bodies if they are invariant of the loop.  However, it may not be
safe to expand them if we do not know if they can trap.

Instead, check to see if it is not safe to expand the instruction and
skip the expansion.

This fixes PR16041.

Testcase by Rafael Ávila de Espíndola.

llvm-svn: 183239
2013-06-04 17:51:58 +00:00
..
Hello Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
IPO Move getRealLinkageName to a common place and remove all the duplicates of it. 2013-06-01 17:51:14 +00:00
InstCombine Delete dead safety check. 2013-06-03 23:15:20 +00:00
Instrumentation [asan] ASan Linux MIPS32 support (llvm part), patch by Jyun-Yan Y 2013-06-03 14:46:56 +00:00
ObjCARC [objc-arc] KnownSafe does not imply that it is safe to perform code motion across CFG edges since even if it is safe to remove RR pairs, we may still be able to move a retain/release into a loop. 2013-05-24 20:44:05 +00:00
Scalar IndVarSimplify: check if loop invariant expansion can trap 2013-06-04 17:51:58 +00:00
Utils Second part of pr16069 2013-06-04 14:11:59 +00:00
Vectorize LoopVectorize: Change API call to get the backedge taken count 2013-05-31 21:48:56 +00:00
CMakeLists.txt Extracted ObjCARC.cpp into its own library libLLVMObjCARCOpts in preparation for refactoring the ARC Optimizer. 2013-01-28 01:35:51 +00:00
LLVMBuild.txt Extracted ObjCARC.cpp into its own library libLLVMObjCARCOpts in preparation for refactoring the ARC Optimizer. 2013-01-28 01:35:51 +00:00
Makefile Extracted ObjCARC.cpp into its own library libLLVMObjCARCOpts in preparation for refactoring the ARC Optimizer. 2013-01-28 01:35:51 +00:00