[llvm-commits] CVS: llvm/lib/VMCore/AsmWriter.cpp Instructions.cpp
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
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
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