[llvm-commits] CVS: llvm/lib/VMCore/Instructions.cpp

Chris Lattner sabre at nondot.org
Fri Apr 13 17:13:22 PDT 2007



Changes in directory llvm/lib/VMCore:

Instructions.cpp updated: 1.84 -> 1.85
---
Log message:

add GetElementPtrInst::hasAllZeroIndices, a long-overdue helper method.
Writing it twice in the same day was too much for me.


---
Diffs of the changes:  (+16 -0)

 Instructions.cpp |   16 ++++++++++++++++
 1 files changed, 16 insertions(+)


Index: llvm/lib/VMCore/Instructions.cpp
diff -u llvm/lib/VMCore/Instructions.cpp:1.84 llvm/lib/VMCore/Instructions.cpp:1.85
--- llvm/lib/VMCore/Instructions.cpp:1.84	Wed Apr 11 08:04:48 2007
+++ llvm/lib/VMCore/Instructions.cpp	Fri Apr 13 19:12:57 2007
@@ -966,6 +966,22 @@
   return PTy->getElementType();
 }
 
+
+/// hasAllZeroIndices - Return true if all of the indices of this GEP are
+/// zeros.  If so, the result pointer and the first operand have the same
+/// value, just potentially different types.
+bool GetElementPtrInst::hasAllZeroIndices() const {
+  for (unsigned i = 1, e = getNumOperands(); i != e; ++i) {
+    if (ConstantInt *CI = dyn_cast<ConstantInt>(getOperand(i))) {
+      if (!CI->isZero()) return false;
+    } else {
+      return false;
+    }
+  }
+  return true;
+}
+
+
 //===----------------------------------------------------------------------===//
 //                           ExtractElementInst Implementation
 //===----------------------------------------------------------------------===//






More information about the llvm-commits mailing list