diff options
| author | Duncan Sands <baldrick@free.fr> | 2008-12-31 16:14:43 +0000 |
|---|---|---|
| committer | Duncan Sands <baldrick@free.fr> | 2008-12-31 16:14:43 +0000 |
| commit | 44c8cd97a508a7a12df769a1ffea29b1adb83fcc (patch) | |
| tree | eb3659c3409e778290353e261c6566fb04538c8c /llvm/include | |
| parent | 2cc3ce000217a80509785b9ad6c866dc0b84e01e (diff) | |
| download | bcm5719-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.h | 2 | ||||
| -rw-r--r-- | llvm/include/llvm/Transforms/IPO.h | 6 |
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 |

