summaryrefslogtreecommitdiffstats
path: root/llvm/include
diff options
context:
space:
mode:
authorPeter Collingbourne <peter@pcc.me.uk>2016-11-16 23:40:26 +0000
committerPeter Collingbourne <peter@pcc.me.uk>2016-11-16 23:40:26 +0000
commitf72a8d4e08394a5b51a9ec07599b854dbd97f9a6 (patch)
treef611520f1538ebcfb37ca706b0a63821120ab6c6 /llvm/include
parentad425626d237c3746c8de8d02c04f0ee6334f7e0 (diff)
downloadbcm5719-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.h1
-rw-r--r--llvm/include/llvm/Transforms/IPO.h4
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.
OpenPOWER on IntegriCloud