commit | 857efb0880dbfbb0f52f401f18f9c3717f6cc276 | [log] [tgz] |
---|---|---|
author | Richard Smith <richard-llvm@metafoo.co.uk> | Mon Nov 07 16:47:20 2016 +0000 |
committer | Richard Smith <richard-llvm@metafoo.co.uk> | Mon Nov 07 16:47:20 2016 +0000 |
tree | 92b07cd2cc0fa9c8eadf213431fe1fe59e40a68f | |
parent | 314cbf7a3bc173921756d540e84802f585bbf1de [diff] |
Add -O0 support for @llvm.invariant.group.barrier by discarding it if it gets to ISel. Differential Revision: https://reviews.llvm.org/D26292 llvm-svn: 286119
diff --git a/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp b/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp index 4ca2249..452bb05 100644 --- a/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp +++ b/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
@@ -1216,6 +1216,7 @@ updateValueMap(II, ResultReg); return true; } + case Intrinsic::invariant_group_barrier: case Intrinsic::expect: { unsigned ResultReg = getRegForValue(II->getArgOperand(0)); if (!ResultReg)
diff --git a/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp index eea5dcc..b588d9b 100644 --- a/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp +++ b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
@@ -5460,6 +5460,7 @@ } case Intrinsic::annotation: case Intrinsic::ptr_annotation: + case Intrinsic::invariant_group_barrier: // Drop the intrinsic, but forward the value setValue(&I, getValue(I.getOperand(0))); return nullptr;