llvm/lib/Transforms
Igor Laevsky a277dc299e Strip metadata when speculatively hoisting instructions
This is fix for PR24059.

When we are hoisting instruction above some condition it may turn out
that metadata on this instruction was control dependant on the condition.
This metadata becomes invalid and we need to drop it.

This patch should cover most obvious places of speculative execution (which
I have found by greping isSafeToSpeculativelyExecute). I think there are more
cases but at least this change covers the severe ones.

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



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252604 91177308-0d34-0410-b5e6-96231b3b80d8
2015-11-10 14:10:31 +00:00
..
Hello Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
InstCombine [InstCombine] Teach FoldPHIArgZextsIntoPHI about EHPads 2015-11-07 00:52:53 +00:00
Instrumentation [sanitizer] Use same shadow offset for ASAN on aarch64 2015-11-09 18:03:48 +00:00
IPO GlobalOpt should maintain externally_initialized when splitting aggregates 2015-11-09 16:47:16 +00:00
ObjCARC ObjCARC: Remove implicit ilist iterator conversions, NFC 2015-10-19 23:20:14 +00:00
Scalar Strip metadata when speculatively hoisting instructions 2015-11-10 14:10:31 +00:00
Utils Strip metadata when speculatively hoisting instructions 2015-11-10 14:10:31 +00:00
Vectorize [LoopVectorize] Address post-commit feedback on r250032 2015-11-09 14:32:05 +00:00
CMakeLists.txt
LLVMBuild.txt
Makefile