[llvm-commits] CVS: llvm/include/llvm/CodeGen/MachineInstr.h

Alkis Evlogimenos alkis at cs.uiuc.edu
Mon Feb 2 19:14:02 PST 2004


Changes in directory llvm/include/llvm/CodeGen:

MachineInstr.h updated: 1.120 -> 1.121

---
Log message:

When an instruction like: A += B had both A and B virtual registers
spilled, A was loaded from its stack location twice. This fixes the bug.


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

Index: llvm/include/llvm/CodeGen/MachineInstr.h
diff -u llvm/include/llvm/CodeGen/MachineInstr.h:1.120 llvm/include/llvm/CodeGen/MachineInstr.h:1.121
--- llvm/include/llvm/CodeGen/MachineInstr.h:1.120	Mon Feb  2 17:08:57 2004
+++ llvm/include/llvm/CodeGen/MachineInstr.h	Mon Feb  2 19:13:07 2004
@@ -207,6 +207,10 @@
     return *this;
   }
 
+  bool operator==(const MachineOperand& rhs) const {
+    return regNum == rhs.regNum && opType == rhs.opType;
+  }
+
   // Accessor methods.  Caller is responsible for checking the
   // operand type before invoking the corresponding accessor.
   // 
@@ -282,8 +286,10 @@
   }
 
   bool          isUse           () const { return flags & USEFLAG; }
+  bool          isEverUsed      (const MachineInstr&) const;
   bool		isDef           () const { return flags & DEFFLAG; }
   bool          isHiBits32      () const { return flags & HIFLAG32; }
+  bool          isEverDefined   (const MachineInstr&) const;
   bool          isLoBits32      () const { return flags & LOFLAG32; }
   bool          isHiBits64      () const { return flags & HIFLAG64; }
   bool          isLoBits64      () const { return flags & LOFLAG64; }





More information about the llvm-commits mailing list