OSDN Git Service

Implement strip.invariant.group
authorPiotr Padlewski <piotr.padlewski@gmail.com>
Mon, 2 Jul 2018 04:49:30 +0000 (04:49 +0000)
committerPiotr Padlewski <piotr.padlewski@gmail.com>
Mon, 2 Jul 2018 04:49:30 +0000 (04:49 +0000)
commitc2f24d9ea8736515030b8900d43b74a452d528a7
tree84939a45ca15b4d5deef1fad80ab815660876b7b
parent49451db6ac0272548d0591518ce95d6657a368a6
Implement strip.invariant.group

Summary:
This patch introduce new intrinsic -
strip.invariant.group that was described in the
RFC: Devirtualization v2

Reviewers: rsmith, hfinkel, nlopes, sanjoy, amharc, kuhar

Subscribers: arsenm, nhaehnle, JDevlieghere, hiraditya, xbolva00, llvm-commits

Differential Revision: https://reviews.llvm.org/D47103

Co-authored-by: Krzysztof Pszeniczny <krzysztof.pszeniczny@gmail.com>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@336073 91177308-0d34-0410-b5e6-96231b3b80d8
21 files changed:
docs/LangRef.rst
include/llvm/IR/IRBuilder.h
include/llvm/IR/Intrinsics.td
lib/Analysis/BasicAliasAnalysis.cpp
lib/Analysis/ConstantFolding.cpp
lib/Analysis/ValueTracking.cpp
lib/CodeGen/CodeGenPrepare.cpp
lib/CodeGen/SelectionDAG/FastISel.cpp
lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
lib/IR/Value.cpp
lib/Target/AMDGPU/AMDGPUPromoteAlloca.cpp
test/Analysis/ValueTracking/invariant.group.ll
test/CodeGen/Generic/intrinsics.ll
test/Other/invariant.group.ll [moved from test/Other/launder.invariant.group.ll with 89% similarity]
test/Transforms/CodeGenPrepare/invariant.group.ll
test/Transforms/DeadStoreElimination/launder.invariant.group.ll
test/Transforms/FunctionAttrs/nocapture.ll
test/Transforms/GVN/invariant.group.ll
test/Transforms/GlobalOpt/invariant.group.ll [moved from test/Transforms/GlobalOpt/invariant.group.barrier.ll with 95% similarity]
test/Transforms/InstCombine/invariant.group.ll
test/Transforms/NewGVN/invariant.group.ll