[OperandBundles] Treat "deopt" operand bundles specially
authorSanjoy Das <sanjoy@playingwithpointers.com>
Thu, 26 Nov 2015 01:16:05 +0000 (01:16 +0000)
committerSanjoy Das <sanjoy@playingwithpointers.com>
Thu, 26 Nov 2015 01:16:05 +0000 (01:16 +0000)
commiteecad07d0060f4554f0b5839985b64b3305a4683
treefd7fe887e9ebe064ada5144074f7fd6f227f5f73
parentaa23e0330d48ed41a552f13074e6b16e76c7c30c
[OperandBundles] Treat "deopt" operand bundles specially

Teach LLVM optimize to more precisely in the presence of "deopt" operand
bundles.  "deopt" operand bundles imply that the call they're attached
to is at least `readonly` (i.e. they don't imply clobber semantics), and
they don't capture their bundle operands.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@254118 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/IR/InstrTypes.h
test/Feature/OperandBundles/adce.ll
test/Feature/OperandBundles/basic-aa-argmemonly.ll
test/Feature/OperandBundles/dse.ll
test/Feature/OperandBundles/early-cse.ll
test/Feature/OperandBundles/function-attrs.ll