diff options
author | Gordon Henriksen <gordonhenriksen@mac.com> | 2008-05-08 17:46:35 +0000 |
---|---|---|
committer | Gordon Henriksen <gordonhenriksen@mac.com> | 2008-05-08 17:46:35 +0000 |
commit | a8a118b68fa3ca1632e7280cd6994aa0f8f1eec1 (patch) | |
tree | dfddd3293b9fa7128bad1510c579c83bfa325305 /lib/Transforms/IPO | |
parent | 2539e3389361115f5e75e4134bdd123171688ddc (diff) | |
download | external_llvm-a8a118b68fa3ca1632e7280cd6994aa0f8f1eec1.zip external_llvm-a8a118b68fa3ca1632e7280cd6994aa0f8f1eec1.tar.gz external_llvm-a8a118b68fa3ca1632e7280cd6994aa0f8f1eec1.tar.bz2 |
Improve pass documentation and comments.
Patch by Matthijs Kooijman!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50861 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Transforms/IPO')
-rw-r--r-- | lib/Transforms/IPO/StripDeadPrototypes.cpp | 6 | ||||
-rw-r--r-- | lib/Transforms/IPO/StructRetPromotion.cpp | 13 |
2 files changed, 15 insertions, 4 deletions
diff --git a/lib/Transforms/IPO/StripDeadPrototypes.cpp b/lib/Transforms/IPO/StripDeadPrototypes.cpp index fd22fdb..ca8a436 100644 --- a/lib/Transforms/IPO/StripDeadPrototypes.cpp +++ b/lib/Transforms/IPO/StripDeadPrototypes.cpp @@ -1,4 +1,4 @@ -//===-- StripDeadPrototypes.cpp - Removed unused function declarations ----===// +//===-- StripDeadPrototypes.cpp - Remove unused function declarations ----===// // // The LLVM Compiler Infrastructure // @@ -8,7 +8,9 @@ //===----------------------------------------------------------------------===// // // This pass loops over all of the functions in the input module, looking for -// dead declarations and removes them. +// dead declarations and removes them. Dead declarations are declarations of +// functions for which no implementation is available (i.e., declarations for +// unused library functions). // //===----------------------------------------------------------------------===// diff --git a/lib/Transforms/IPO/StructRetPromotion.cpp b/lib/Transforms/IPO/StructRetPromotion.cpp index 77a35b4..83ceb0d 100644 --- a/lib/Transforms/IPO/StructRetPromotion.cpp +++ b/lib/Transforms/IPO/StructRetPromotion.cpp @@ -1,4 +1,4 @@ -//===-- StructRetPromotion.cpp - Promote sret arguments -000000------------===// +//===-- StructRetPromotion.cpp - Promote sret arguments ------------------===// // // The LLVM Compiler Infrastructure // @@ -7,7 +7,16 @@ // //===----------------------------------------------------------------------===// // -// TODO : Describe this pass. +// This pass finds functions that return a struct (using a pointer to the struct +// as the first argument of the function, marked with the 'sret' attribute) and +// replaces them with a new function that simply returns each of the elements of +// that struct (using multiple return values). +// +// This pass works under a number of conditions: +// 1. The returned struct must not contain other structs +// 2. The returned struct must only be used to load values from +// 3. The placeholder struct passed in is the result of an alloca +// //===----------------------------------------------------------------------===// #define DEBUG_TYPE "sretpromotion" |