Introduce GlobalSplit pass.
authorPeter Collingbourne <peter@pcc.me.uk>
Wed, 16 Nov 2016 23:40:26 +0000 (23:40 +0000)
committerPeter Collingbourne <peter@pcc.me.uk>
Wed, 16 Nov 2016 23:40:26 +0000 (23:40 +0000)
commitf72a8d4e08394a5b51a9ec07599b854dbd97f9a6
treef611520f1538ebcfb37ca706b0a63821120ab6c6
parentad425626d237c3746c8de8d02c04f0ee6334f7e0
Introduce GlobalSplit pass.

This pass splits globals into elements using inrange annotations on
getelementptr indices.

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

llvm-svn: 287178
llvm/include/llvm/InitializePasses.h
llvm/include/llvm/Transforms/IPO.h
llvm/lib/Transforms/IPO/CMakeLists.txt
llvm/lib/Transforms/IPO/GlobalSplit.cpp [new file with mode: 0644]
llvm/lib/Transforms/IPO/IPO.cpp
llvm/lib/Transforms/IPO/PassManagerBuilder.cpp
llvm/test/Transforms/GlobalSplit/basic.ll [new file with mode: 0644]
llvm/test/Transforms/GlobalSplit/non-beneficial.ll [new file with mode: 0644]
llvm/test/Transforms/GlobalSplit/nonlocal.ll [new file with mode: 0644]