diff options
| author | Peter Collingbourne <peter@pcc.me.uk> | 2016-11-16 23:40:26 +0000 |
|---|---|---|
| committer | Peter Collingbourne <peter@pcc.me.uk> | 2016-11-16 23:40:26 +0000 |
| commit | f72a8d4e08394a5b51a9ec07599b854dbd97f9a6 (patch) | |
| tree | f611520f1538ebcfb37ca706b0a63821120ab6c6 /llvm/include | |
| parent | ad425626d237c3746c8de8d02c04f0ee6334f7e0 (diff) | |
| download | bcm5719-llvm-f72a8d4e08394a5b51a9ec07599b854dbd97f9a6.tar.gz bcm5719-llvm-f72a8d4e08394a5b51a9ec07599b854dbd97f9a6.zip | |
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
Diffstat (limited to 'llvm/include')
| -rw-r--r-- | llvm/include/llvm/InitializePasses.h | 1 | ||||
| -rw-r--r-- | llvm/include/llvm/Transforms/IPO.h | 4 |
2 files changed, 5 insertions, 0 deletions
diff --git a/llvm/include/llvm/InitializePasses.h b/llvm/include/llvm/InitializePasses.h index 62d38ec6435..9dbe95a290a 100644 --- a/llvm/include/llvm/InitializePasses.h +++ b/llvm/include/llvm/InitializePasses.h @@ -145,6 +145,7 @@ void initializeGVNLegacyPassPass(PassRegistry&); void initializeGlobalDCELegacyPassPass(PassRegistry&); void initializeGlobalMergePass(PassRegistry&); void initializeGlobalOptLegacyPassPass(PassRegistry&); +void initializeGlobalSplitPass(PassRegistry&); void initializeGlobalsAAWrapperPassPass(PassRegistry&); void initializeGuardWideningLegacyPassPass(PassRegistry&); void initializeIPCPPass(PassRegistry&); diff --git a/llvm/include/llvm/Transforms/IPO.h b/llvm/include/llvm/Transforms/IPO.h index 0d9c1baf1b1..34cba185f9b 100644 --- a/llvm/include/llvm/Transforms/IPO.h +++ b/llvm/include/llvm/Transforms/IPO.h @@ -225,6 +225,10 @@ ModulePass *createCrossDSOCFIPass(); /// metadata. ModulePass *createWholeProgramDevirtPass(); +/// This pass splits globals into pieces for the benefit of whole-program +/// devirtualization and control-flow integrity. +ModulePass *createGlobalSplitPass(); + //===----------------------------------------------------------------------===// // SampleProfilePass - Loads sample profile data from disk and generates // IR metadata to reflect the profile. |

