aboutsummaryrefslogtreecommitdiff
path: root/lib/Bitcode/NaCl/Writer/NaClValueEnumerator.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Bitcode/NaCl/Writer/NaClValueEnumerator.h')
-rw-r--r--lib/Bitcode/NaCl/Writer/NaClValueEnumerator.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/lib/Bitcode/NaCl/Writer/NaClValueEnumerator.h b/lib/Bitcode/NaCl/Writer/NaClValueEnumerator.h
index 3e71740f92..22de263c4b 100644
--- a/lib/Bitcode/NaCl/Writer/NaClValueEnumerator.h
+++ b/lib/Bitcode/NaCl/Writer/NaClValueEnumerator.h
@@ -135,6 +135,15 @@ public:
void incorporateFunction(const Function &F);
void purgeFunction();
+ /// \brief Returns the value after elided (cast) operations have been
+ /// removed. Returns V if unable to elide the cast.
+ const Value *ElideCasts(const Value *V);
+
+ /// \brief Returns true if value V is an elided (cast) operation.
+ bool IsElidedCast(const Value *V) {
+ return V != ElideCasts(V);
+ }
+
private:
void OptimizeTypes(const Module *M);
void OptimizeConstants(unsigned CstStart, unsigned CstEnd);