summaryrefslogtreecommitdiffstats
path: root/llvm/include
diff options
context:
space:
mode:
authorDuncan Sands <baldrick@free.fr>2008-12-31 16:14:43 +0000
committerDuncan Sands <baldrick@free.fr>2008-12-31 16:14:43 +0000
commit44c8cd97a508a7a12df769a1ffea29b1adb83fcc (patch)
treeeb3659c3409e778290353e261c6566fb04538c8c /llvm/include
parent2cc3ce000217a80509785b9ad6c866dc0b84e01e (diff)
downloadbcm5719-llvm-44c8cd97a508a7a12df769a1ffea29b1adb83fcc.tar.gz
bcm5719-llvm-44c8cd97a508a7a12df769a1ffea29b1adb83fcc.zip
Rename AddReadAttrs to FunctionAttrs, and teach it how
to work out (in a very simplistic way) which function arguments (pointer arguments only) are only dereferenced and so do not escape. Mark such arguments 'nocapture'. llvm-svn: 61525
Diffstat (limited to 'llvm/include')
-rw-r--r--llvm/include/llvm/LinkAllPasses.h2
-rw-r--r--llvm/include/llvm/Transforms/IPO.h6
2 files changed, 5 insertions, 3 deletions
diff --git a/llvm/include/llvm/LinkAllPasses.h b/llvm/include/llvm/LinkAllPasses.h
index bc77c086fdb..4113b16dfff 100644
--- a/llvm/include/llvm/LinkAllPasses.h
+++ b/llvm/include/llvm/LinkAllPasses.h
@@ -122,7 +122,7 @@ namespace {
(void) llvm::createPostDomFrontier();
(void) llvm::createInstructionNamerPass();
(void) llvm::createPartialSpecializationPass();
- (void) llvm::createAddReadAttrsPass();
+ (void) llvm::createFunctionAttrsPass();
(void) llvm::createMergeFunctionsPass();
(void) llvm::createPrintModulePass(0);
(void) llvm::createPrintFunctionPass("", 0);
diff --git a/llvm/include/llvm/Transforms/IPO.h b/llvm/include/llvm/Transforms/IPO.h
index 0d4e33af123..eeb2aa26e83 100644
--- a/llvm/include/llvm/Transforms/IPO.h
+++ b/llvm/include/llvm/Transforms/IPO.h
@@ -196,10 +196,12 @@ ModulePass *createStripDeadPrototypesPass();
ModulePass *createPartialSpecializationPass();
//===----------------------------------------------------------------------===//
-/// createAddReadAttrsPass - This pass discovers functions that do not access
+/// createFunctionAttrsPass - This pass discovers functions that do not access
/// memory, or only read memory, and gives them the readnone/readonly attribute.
+/// It also discovers function arguments that are not captured by the function
+/// and marks them with the nocapture attribute.
///
-Pass *createAddReadAttrsPass();
+Pass *createFunctionAttrsPass();
//===----------------------------------------------------------------------===//
/// createMergeFunctionsPass - This pass discovers identical functions and
OpenPOWER on IntegriCloud