Fix pr14893.
authorRafael Espindola <rafael.espindola@gmail.com>
Tue, 28 Jan 2014 16:56:46 +0000 (16:56 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Tue, 28 Jan 2014 16:56:46 +0000 (16:56 +0000)
commitf611ae40fdd3815367dd8244fff037f68110fae0
tree800da7065a895621b41cb4b2d6124542bbb9bd72
parent7e82200a05d9f8f7d37f3078a40f31ab1be5bf67
Fix pr14893.

When simplifycfg moves an instruction, it must drop metadata it doesn't know
is still valid with the preconditions changes. In particular, it must drop
the range and tbaa metadata.

The patch implements this with an utility function to drop all metadata not
in a white list.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@200322 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/IR/Instruction.h
lib/IR/Metadata.cpp
lib/Transforms/Utils/SimplifyCFG.cpp
test/Transforms/SimplifyCFG/basictest.ll