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

2007-04-21 Thread Christopher Lamb


Changes in directory llvm/lib/VMCore:

AsmWriter.cpp updated: 1.270 - 1.271
Instructions.cpp updated: 1.85 - 1.86
---
Log message:


add support for alignment attributes on load/store instructions


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

 AsmWriter.cpp|7 +++
 Instructions.cpp |   42 ++
 2 files changed, 49 insertions(+)


Index: llvm/lib/VMCore/AsmWriter.cpp
diff -u llvm/lib/VMCore/AsmWriter.cpp:1.270 llvm/lib/VMCore/AsmWriter.cpp:1.271
--- llvm/lib/VMCore/AsmWriter.cpp:1.270 Tue Apr 17 19:57:22 2007
+++ llvm/lib/VMCore/AsmWriter.cpp   Sat Apr 21 03:16:25 2007
@@ -1307,6 +1307,13 @@
   writeOperand(I.getOperand(i), PrintAllTypes);
 }
   }
+  
+  // Print post operand alignment for load/store
+  if (isaLoadInst(I)  castLoadInst(I).getAlignment()) {
+Out  , align   castLoadInst(I).getAlignment();
+  } else if (isaStoreInst(I)  castStoreInst(I).getAlignment()) {
+Out  , align   castStoreInst(I).getAlignment();
+  }
 
   printInfoComment(I);
   Out  \n;


Index: llvm/lib/VMCore/Instructions.cpp
diff -u llvm/lib/VMCore/Instructions.cpp:1.85 
llvm/lib/VMCore/Instructions.cpp:1.86
--- llvm/lib/VMCore/Instructions.cpp:1.85   Fri Apr 13 19:12:57 2007
+++ llvm/lib/VMCore/Instructions.cppSat Apr 21 03:16:25 2007
@@ -20,6 +20,7 @@
 #include llvm/ParameterAttributes.h
 #include llvm/Support/CallSite.h
 #include llvm/Support/ConstantRange.h
+#include llvm/Support/MathExtras.h
 using namespace llvm;
 
 unsigned CallSite::getCallingConv() const {
@@ -685,6 +686,7 @@
   : UnaryInstruction(castPointerType(Ptr-getType())-getElementType(),
  Load, Ptr, InsertBef) {
   setVolatile(false);
+  setAlignment(0);
   AssertOK();
   setName(Name);
 }
@@ -693,6 +695,7 @@
   : UnaryInstruction(castPointerType(Ptr-getType())-getElementType(),
  Load, Ptr, InsertAE) {
   setVolatile(false);
+  setAlignment(0);
   AssertOK();
   setName(Name);
 }
@@ -702,6 +705,17 @@
   : UnaryInstruction(castPointerType(Ptr-getType())-getElementType(),
  Load, Ptr, InsertBef) {
   setVolatile(isVolatile);
+  setAlignment(0);
+  AssertOK();
+  setName(Name);
+}
+
+LoadInst::LoadInst(Value *Ptr, const std::string Name, bool isVolatile, 
+   unsigned Align, Instruction *InsertBef)
+  : UnaryInstruction(castPointerType(Ptr-getType())-getElementType(),
+ Load, Ptr, InsertBef) {
+  setVolatile(isVolatile);
+  setAlignment(Align);
   AssertOK();
   setName(Name);
 }
@@ -711,6 +725,7 @@
   : UnaryInstruction(castPointerType(Ptr-getType())-getElementType(),
  Load, Ptr, InsertAE) {
   setVolatile(isVolatile);
+  setAlignment(0);
   AssertOK();
   setName(Name);
 }
@@ -721,6 +736,7 @@
   : UnaryInstruction(castPointerType(Ptr-getType())-getElementType(),
  Load, Ptr, InsertBef) {
   setVolatile(false);
+  setAlignment(0);
   AssertOK();
   if (Name  Name[0]) setName(Name);
 }
@@ -729,6 +745,7 @@
   : UnaryInstruction(castPointerType(Ptr-getType())-getElementType(),
  Load, Ptr, InsertAE) {
   setVolatile(false);
+  setAlignment(0);
   AssertOK();
   if (Name  Name[0]) setName(Name);
 }
@@ -738,6 +755,7 @@
 : UnaryInstruction(castPointerType(Ptr-getType())-getElementType(),
Load, Ptr, InsertBef) {
   setVolatile(isVolatile);
+  setAlignment(0);
   AssertOK();
   if (Name  Name[0]) setName(Name);
 }
@@ -747,10 +765,15 @@
   : UnaryInstruction(castPointerType(Ptr-getType())-getElementType(),
  Load, Ptr, InsertAE) {
   setVolatile(isVolatile);
+  setAlignment(0);
   AssertOK();
   if (Name  Name[0]) setName(Name);
 }
 
+void LoadInst::setAlignment(unsigned Align) {
+  assert((Align  (Align-1)) == 0  Alignment is not a power of 2!);
+  SubclassData = (SubclassData  1) | ((Log2_32(Align)+1)1);
+}
 
 
//===--===//
 //   StoreInst Implementation
@@ -770,6 +793,7 @@
   Ops[0].init(val, this);
   Ops[1].init(addr, this);
   setVolatile(false);
+  setAlignment(0);
   AssertOK();
 }
 
@@ -778,6 +802,7 @@
   Ops[0].init(val, this);
   Ops[1].init(addr, this);
   setVolatile(false);
+  setAlignment(0);
   AssertOK();
 }
 
@@ -787,6 +812,17 @@
   Ops[0].init(val, this);
   Ops[1].init(addr, this);
   setVolatile(isVolatile);
+  setAlignment(0);
+  AssertOK();
+}
+
+StoreInst::StoreInst(Value *val, Value *addr, bool isVolatile,
+ unsigned Align, Instruction *InsertBefore)
+  : Instruction(Type::VoidTy, Store, Ops, 2, InsertBefore) {
+  Ops[0].init(val, this);
+  Ops[1].init(addr, this);
+  setVolatile(isVolatile);
+  setAlignment(Align);
   AssertOK();
 }
 
@@ -796,9 +832,15 @@
   Ops[0].init(val, this);
   Ops[1].init(addr, this);
   setVolatile(isVolatile);
+  setAlignment(0);
   AssertOK();
 }
 
+void StoreInst::setAlignment(unsigned Align) {
+  assert((Align  (Align-1)) == 0  Alignment is not 

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

2007-04-21 Thread Reid Spencer


Changes in directory llvm/lib/VMCore:

AsmWriter.cpp updated: 1.271 - 1.272
Instructions.cpp updated: 1.86 - 1.87
---
Log message:

Revert Christopher Lamb's load/store alignment changes. 


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

 AsmWriter.cpp|7 ---
 Instructions.cpp |   42 --
 2 files changed, 49 deletions(-)


Index: llvm/lib/VMCore/AsmWriter.cpp
diff -u llvm/lib/VMCore/AsmWriter.cpp:1.271 llvm/lib/VMCore/AsmWriter.cpp:1.272
--- llvm/lib/VMCore/AsmWriter.cpp:1.271 Sat Apr 21 03:16:25 2007
+++ llvm/lib/VMCore/AsmWriter.cpp   Sat Apr 21 13:36:27 2007
@@ -1307,13 +1307,6 @@
   writeOperand(I.getOperand(i), PrintAllTypes);
 }
   }
-  
-  // Print post operand alignment for load/store
-  if (isaLoadInst(I)  castLoadInst(I).getAlignment()) {
-Out  , align   castLoadInst(I).getAlignment();
-  } else if (isaStoreInst(I)  castStoreInst(I).getAlignment()) {
-Out  , align   castStoreInst(I).getAlignment();
-  }
 
   printInfoComment(I);
   Out  \n;


Index: llvm/lib/VMCore/Instructions.cpp
diff -u llvm/lib/VMCore/Instructions.cpp:1.86 
llvm/lib/VMCore/Instructions.cpp:1.87
--- llvm/lib/VMCore/Instructions.cpp:1.86   Sat Apr 21 03:16:25 2007
+++ llvm/lib/VMCore/Instructions.cppSat Apr 21 13:36:27 2007
@@ -20,7 +20,6 @@
 #include llvm/ParameterAttributes.h
 #include llvm/Support/CallSite.h
 #include llvm/Support/ConstantRange.h
-#include llvm/Support/MathExtras.h
 using namespace llvm;
 
 unsigned CallSite::getCallingConv() const {
@@ -686,7 +685,6 @@
   : UnaryInstruction(castPointerType(Ptr-getType())-getElementType(),
  Load, Ptr, InsertBef) {
   setVolatile(false);
-  setAlignment(0);
   AssertOK();
   setName(Name);
 }
@@ -695,7 +693,6 @@
   : UnaryInstruction(castPointerType(Ptr-getType())-getElementType(),
  Load, Ptr, InsertAE) {
   setVolatile(false);
-  setAlignment(0);
   AssertOK();
   setName(Name);
 }
@@ -705,17 +702,6 @@
   : UnaryInstruction(castPointerType(Ptr-getType())-getElementType(),
  Load, Ptr, InsertBef) {
   setVolatile(isVolatile);
-  setAlignment(0);
-  AssertOK();
-  setName(Name);
-}
-
-LoadInst::LoadInst(Value *Ptr, const std::string Name, bool isVolatile, 
-   unsigned Align, Instruction *InsertBef)
-  : UnaryInstruction(castPointerType(Ptr-getType())-getElementType(),
- Load, Ptr, InsertBef) {
-  setVolatile(isVolatile);
-  setAlignment(Align);
   AssertOK();
   setName(Name);
 }
@@ -725,7 +711,6 @@
   : UnaryInstruction(castPointerType(Ptr-getType())-getElementType(),
  Load, Ptr, InsertAE) {
   setVolatile(isVolatile);
-  setAlignment(0);
   AssertOK();
   setName(Name);
 }
@@ -736,7 +721,6 @@
   : UnaryInstruction(castPointerType(Ptr-getType())-getElementType(),
  Load, Ptr, InsertBef) {
   setVolatile(false);
-  setAlignment(0);
   AssertOK();
   if (Name  Name[0]) setName(Name);
 }
@@ -745,7 +729,6 @@
   : UnaryInstruction(castPointerType(Ptr-getType())-getElementType(),
  Load, Ptr, InsertAE) {
   setVolatile(false);
-  setAlignment(0);
   AssertOK();
   if (Name  Name[0]) setName(Name);
 }
@@ -755,7 +738,6 @@
 : UnaryInstruction(castPointerType(Ptr-getType())-getElementType(),
Load, Ptr, InsertBef) {
   setVolatile(isVolatile);
-  setAlignment(0);
   AssertOK();
   if (Name  Name[0]) setName(Name);
 }
@@ -765,15 +747,10 @@
   : UnaryInstruction(castPointerType(Ptr-getType())-getElementType(),
  Load, Ptr, InsertAE) {
   setVolatile(isVolatile);
-  setAlignment(0);
   AssertOK();
   if (Name  Name[0]) setName(Name);
 }
 
-void LoadInst::setAlignment(unsigned Align) {
-  assert((Align  (Align-1)) == 0  Alignment is not a power of 2!);
-  SubclassData = (SubclassData  1) | ((Log2_32(Align)+1)1);
-}
 
 
//===--===//
 //   StoreInst Implementation
@@ -793,7 +770,6 @@
   Ops[0].init(val, this);
   Ops[1].init(addr, this);
   setVolatile(false);
-  setAlignment(0);
   AssertOK();
 }
 
@@ -802,7 +778,6 @@
   Ops[0].init(val, this);
   Ops[1].init(addr, this);
   setVolatile(false);
-  setAlignment(0);
   AssertOK();
 }
 
@@ -812,17 +787,6 @@
   Ops[0].init(val, this);
   Ops[1].init(addr, this);
   setVolatile(isVolatile);
-  setAlignment(0);
-  AssertOK();
-}
-
-StoreInst::StoreInst(Value *val, Value *addr, bool isVolatile,
- unsigned Align, Instruction *InsertBefore)
-  : Instruction(Type::VoidTy, Store, Ops, 2, InsertBefore) {
-  Ops[0].init(val, this);
-  Ops[1].init(addr, this);
-  setVolatile(isVolatile);
-  setAlignment(Align);
   AssertOK();
 }
 
@@ -832,15 +796,9 @@
   Ops[0].init(val, this);
   Ops[1].init(addr, this);
   setVolatile(isVolatile);
-  setAlignment(0);
   AssertOK();
 }
 
-void StoreInst::setAlignment(unsigned Align) {
-  assert((Align  (Align-1)) == 0  Alignment is not a power 

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

2007-03-22 Thread Dan Gohman


Changes in directory llvm/lib/VMCore:

AsmWriter.cpp updated: 1.264 - 1.265
Instructions.cpp updated: 1.80 - 1.81
---
Log message:

Change uses of Function::front to Function::getEntryBlock for readability.


---
Diffs of the changes:  (+2 -2)

 AsmWriter.cpp|2 +-
 Instructions.cpp |2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)


Index: llvm/lib/VMCore/AsmWriter.cpp
diff -u llvm/lib/VMCore/AsmWriter.cpp:1.264 llvm/lib/VMCore/AsmWriter.cpp:1.265
--- llvm/lib/VMCore/AsmWriter.cpp:1.264 Mon Mar 19 13:32:53 2007
+++ llvm/lib/VMCore/AsmWriter.cpp   Thu Mar 22 11:38:57 2007
@@ -1036,7 +1036,7 @@
   if (BB-getParent() == 0)
 Out  \t\t; Error: Block without parent!;
   else {
-if (BB != BB-getParent()-front()) {  // Not the entry block?
+if (BB != BB-getParent()-getEntryBlock()) {  // Not the entry block?
   // Output predecessors for the block...
   Out  \t\t;;
   pred_const_iterator PI = pred_begin(BB), PE = pred_end(BB);


Index: llvm/lib/VMCore/Instructions.cpp
diff -u llvm/lib/VMCore/Instructions.cpp:1.80 
llvm/lib/VMCore/Instructions.cpp:1.81
--- llvm/lib/VMCore/Instructions.cpp:1.80   Thu Mar  1 14:27:41 2007
+++ llvm/lib/VMCore/Instructions.cppThu Mar 22 11:38:57 2007
@@ -170,7 +170,7 @@
   if (HasUndefInput  !AllowNonDominatingInstruction)
 if (Instruction *IV = dyn_castInstruction(InVal))
   // If it's in the entry block, it dominates everything.
-  if (IV-getParent() != IV-getParent()-getParent()-front() ||
+  if (IV-getParent() != IV-getParent()-getParent()-getEntryBlock() ||
   isaInvokeInst(IV))
 return 0;   // Cannot guarantee that InVal dominates this PHINode.
 



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits