aboutsummaryrefslogtreecommitdiff
path: root/include/llvm/Transforms
diff options
context:
space:
mode:
authorDerek Schuff <dschuff@chromium.org>2012-11-14 16:47:45 -0800
committerDerek Schuff <dschuff@chromium.org>2012-11-15 10:12:39 -0800
commit923f52fb3f6670e843ffe0b8da2f2bad898d752c (patch)
treea279587ac525162817217dbbe0f01a91893a9d0b /include/llvm/Transforms
parentf4099a3c92570a80cd9a3850cda598c5ea446b96 (diff)
parent08e9cb46feb0c8e08e3d309a0f9fd75a04ca54fb (diff)
Merge commit '08e9cb46feb0c8e08e3d309a0f9fd75a04ca54fb'
(svn r167699, also the 3.2 branch point) Conflicts: lib/Target/X86/X86Subtarget.cpp
Diffstat (limited to 'include/llvm/Transforms')
-rw-r--r--include/llvm/Transforms/Utils/SimplifyLibCalls.h11
1 files changed, 10 insertions, 1 deletions
diff --git a/include/llvm/Transforms/Utils/SimplifyLibCalls.h b/include/llvm/Transforms/Utils/SimplifyLibCalls.h
index 5db2d00181..fde452bca2 100644
--- a/include/llvm/Transforms/Utils/SimplifyLibCalls.h
+++ b/include/llvm/Transforms/Utils/SimplifyLibCalls.h
@@ -19,6 +19,7 @@ namespace llvm {
class Value;
class CallInst;
class DataLayout;
+ class Instruction;
class TargetLibraryInfo;
class LibCallSimplifierImpl;
@@ -35,8 +36,16 @@ namespace llvm {
/// optimizeCall - Take the given call instruction and return a more
/// optimal value to replace the instruction with or 0 if a more
- /// optimal form can't be found.
+ /// optimal form can't be found. Note that the returned value may
+ /// be equal to the instruction being optimized. In this case all
+ /// other instructions that use the given instruction were modified
+ /// and the given instruction is dead.
Value *optimizeCall(CallInst *CI);
+
+ /// replaceAllUsesWith - This method is used when the library call
+ /// simplifier needs to replace instructions other than the library
+ /// call being modified.
+ virtual void replaceAllUsesWith(Instruction *I, Value *With) const;
};
} // End llvm namespace