[llvm-commits] CVS: llvm/LICENSE.TXT

2006-01-03 Thread John Criswell


Changes in directory llvm:

LICENSE.TXT updated: 1.25 - 1.26
---
Log message:

Happy New Year, LLVM.


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

 LICENSE.TXT |2 +-
 1 files changed, 1 insertion(+), 1 deletion(-)


Index: llvm/LICENSE.TXT
diff -u llvm/LICENSE.TXT:1.25 llvm/LICENSE.TXT:1.26
--- llvm/LICENSE.TXT:1.25   Thu May 12 16:39:01 2005
+++ llvm/LICENSE.TXTTue Jan  3 08:42:06 2006
@@ -4,7 +4,7 @@
 University of Illinois/NCSA
 Open Source License
 
-Copyright (c) 2003, 2004, 2005 University of Illinois at Urbana-Champaign.
+Copyright (c) 2003, 2004, 2005, 2006 University of Illinois at 
Urbana-Champaign.
 All rights reserved.
 
 Developed by:



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


[llvm-commits] CVS: llvm/lib/VMCore/PassManagerT.h

2006-01-03 Thread Chris Lattner


Changes in directory llvm/lib/VMCore:

PassManagerT.h updated: 1.59 - 1.60
---
Log message:

silence some warnings


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

 PassManagerT.h |6 ++
 1 files changed, 6 insertions(+)


Index: llvm/lib/VMCore/PassManagerT.h
diff -u llvm/lib/VMCore/PassManagerT.h:1.59 llvm/lib/VMCore/PassManagerT.h:1.60
--- llvm/lib/VMCore/PassManagerT.h:1.59 Tue Jan  3 01:05:17 2006
+++ llvm/lib/VMCore/PassManagerT.h  Tue Jan  3 11:52:18 2006
@@ -652,6 +652,8 @@
   // PMType - The type of the passmanager that subclasses this class
   typedef PassManagerTBasicBlock PMType;
 
+  virtual ~BasicBlockPassManager() {}
+  
   // getPMName() - Return the name of the unit the PassManager operates on for
   // debugging.
   virtual const char *getPMName() const { return BasicBlock; }
@@ -719,6 +721,8 @@
   // PMType - The type of the passmanager that subclasses this class
   typedef PassManagerTFunction PMType;
   
+  virtual ~FunctionPassManagerT() {}
+
   // getPMName() - Return the name of the unit the PassManager operates on for
   // debugging.
   virtual const char *getPMName() const { return Function; }
@@ -778,6 +782,8 @@
   // ParentClass - The type of the parent PassManager...
   typedef AnalysisResolver ParentClass;
   
+  virtual ~ModulePassManager() {}
+
   // getPMName() - Return the name of the unit the PassManager operates on for
   // debugging.
   virtual const char *getPassName() const { return Module Pass Manager; }



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


Re: [llvm-commits] CVS: llvm-gcc/gcc/config/rs6000/sysv4.h t-ppccomm

2006-01-03 Thread Chris Lattner

On Tue, 3 Jan 2006, Marco Matthies wrote:

Chris Lattner wrote:

Changes in directory llvm-gcc/gcc/config/rs6000:
sysv4.h updated: 1.1.1.2 - 1.2
t-ppccomm updated: 1.1.1.1 - 1.2
---
Log message:

get llvmgcc building on ppc-linux and ppc-linux64.  Thanks to Marco 
Matthies for the patch!


To my shame i found out over the holidays that when i compiled it on 
ppc64-linux it got compiled as a ppc32 executable.  I'll try and get it 
compiled and linked as a 64-bit executable to confirm if it also works on 
ppc64, though i cannot exactly tell when i'll get to it.


Note that the LLVM native code generator doesn't support PPC64 yet.  I 
don't know if that is something you're interested in.  PPC32 should be 
close to working, but may need some minor hacking on the asmprinter to 
emit ELF .s files.


-Chris

--
http://nondot.org/sabre/
http://llvm.org/

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


[llvm-commits] CVS: llvm/utils/TableGen/DAGISelEmitter.cpp

2006-01-03 Thread Chris Lattner


Changes in directory llvm/utils/TableGen:

DAGISelEmitter.cpp updated: 1.121 - 1.122
---
Log message:

Remove obsolete comment, make things look a bit nicer


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

 DAGISelEmitter.cpp |3 +--
 1 files changed, 1 insertion(+), 2 deletions(-)


Index: llvm/utils/TableGen/DAGISelEmitter.cpp
diff -u llvm/utils/TableGen/DAGISelEmitter.cpp:1.121 
llvm/utils/TableGen/DAGISelEmitter.cpp:1.122
--- llvm/utils/TableGen/DAGISelEmitter.cpp:1.121Tue Jan  3 18:25:00 2006
+++ llvm/utils/TableGen/DAGISelEmitter.cpp  Tue Jan  3 18:32:01 2006
@@ -2531,7 +2531,6 @@
   return N;   // Already selected.\n\n
std::mapSDOperand, SDOperand::iterator CGMI = 
CodeGenMap.find(N);\n
 if (CGMI != CodeGenMap.end()) return CGMI-second;\n
-// Work arounds for GCC stack overflow bugs.\n
 switch (N.getOpcode()) {\n
 default: break;\n
 case ISD::EntryToken:   // These leaves remain the same.\n
@@ -2607,7 +2606,7 @@
E = PatternsByOpcode.end(); PBOI != E; ++PBOI) {
 const SDNodeInfo OpcodeInfo = getSDNodeInfo(PBOI-first);
 OScase   OpcodeInfo.getEnumName()  : 
-std::string(std::max(0, int(16-OpcodeInfo.getEnumName().size())), ' 
')
+std::string(std::max(0, int(24-OpcodeInfo.getEnumName().size())), ' 
')
 return Select_  PBOI-first-getName()  (N);\n;
   }
 



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


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

2006-01-03 Thread Chris Lattner


Changes in directory llvm/lib/VMCore:

Constants.cpp updated: 1.141 - 1.142
---
Log message:

Fix an assertion to allow constant folding of packed values


---
Diffs of the changes:  (+4 -3)

 Constants.cpp |7 ---
 1 files changed, 4 insertions(+), 3 deletions(-)


Index: llvm/lib/VMCore/Constants.cpp
diff -u llvm/lib/VMCore/Constants.cpp:1.141 llvm/lib/VMCore/Constants.cpp:1.142
--- llvm/lib/VMCore/Constants.cpp:1.141 Thu Dec 22 15:46:37 2005
+++ llvm/lib/VMCore/Constants.cpp   Tue Jan  3 19:01:04 2006
@@ -1277,14 +1277,15 @@
   case Instruction::Mul: case Instruction::Div:
   case Instruction::Rem:
 assert(C1-getType() == C2-getType()  Op types should be identical!);
-assert((C1-getType()-isInteger() || C1-getType()-isFloatingPoint()) 
+assert((C1-getType()-isInteger() || C1-getType()-isFloatingPoint() ||
+isaPackedType(C1-getType())) 
Tried to create an arithmetic operation on a non-arithmetic 
type!);
 break;
   case Instruction::And:
   case Instruction::Or:
   case Instruction::Xor:
 assert(C1-getType() == C2-getType()  Op types should be identical!);
-assert(C1-getType()-isIntegral() 
+assert((C1-getType()-isIntegral() || isaPackedType(C1-getType())) 
Tried to create a logical operation on a non-integral type!);
 break;
   case Instruction::SetLT: case Instruction::SetGT: case Instruction::SetLE:
@@ -1294,7 +1295,7 @@
   case Instruction::Shl:
   case Instruction::Shr:
 assert(C2-getType() == Type::UByteTy  Shift should be by ubyte!);
-assert(C1-getType()-isInteger() 
+assert((C1-getType()-isInteger() || isaPackedType(C1-getType())) 
Tried to create a shift operation on a non-integer type!);
 break;
   default:



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


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

2006-01-03 Thread Chris Lattner


Changes in directory llvm/lib/VMCore:

ConstantFolding.cpp updated: 1.78 - 1.79
---
Log message:

implement constant folding of ==/!= on constant packed, simplify some code.


---
Diffs of the changes:  (+11 -3)

 ConstantFolding.cpp |   14 +++---
 1 files changed, 11 insertions(+), 3 deletions(-)


Index: llvm/lib/VMCore/ConstantFolding.cpp
diff -u llvm/lib/VMCore/ConstantFolding.cpp:1.78 
llvm/lib/VMCore/ConstantFolding.cpp:1.79
--- llvm/lib/VMCore/ConstantFolding.cpp:1.78Tue Jan  3 20:15:02 2006
+++ llvm/lib/VMCore/ConstantFolding.cpp Tue Jan  3 20:20:54 2006
@@ -385,6 +385,14 @@
 return 0;
   }
   static Constant *EqualTo(const ConstantPacked *V1, const ConstantPacked *V2) 
{
+for (unsigned i = 0, e = V1-getNumOperands(); i != e; ++i) {
+  Constant *C = 
+ConstantExpr::getSetEQ(const_castConstant*(V1-getOperand(i)),
+   const_castConstant*(V2-getOperand(i)));
+  if (ConstantBool *CB = dyn_castConstantBool(C))
+return CB;
+}
+// Otherwise, could not decide from any element pairs.
 return 0;
   }
 };
@@ -951,15 +959,15 @@
   case Instruction::SetGT:   C = ConstRules::get(V1, V2).lessthan(V2, 
V1);break;
   case Instruction::SetNE:   // V1 != V2  ===  !(V1 == V2)
 C = ConstRules::get(V1, V2).equalto(V1, V2);
-if (C) return ConstantExpr::get(Instruction::Xor, C, ConstantBool::True);
+if (C) return ConstantExpr::getNot(C);
 break;
   case Instruction::SetLE:   // V1 = V2  ===  !(V2  V1)
 C = ConstRules::get(V1, V2).lessthan(V2, V1);
-if (C) return ConstantExpr::get(Instruction::Xor, C, ConstantBool::True);
+if (C) return ConstantExpr::getNot(C);
 break;
   case Instruction::SetGE:   // V1 = V2  ===  !(V1  V2)
 C = ConstRules::get(V1, V2).lessthan(V1, V2);
-if (C) return ConstantExpr::get(Instruction::Xor, C, ConstantBool::True);
+if (C) return ConstantExpr::getNot(C);
 break;
   }
 



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


[llvm-commits] CVS: llvm/utils/TableGen/DAGISelEmitter.cpp

2006-01-03 Thread Jeff Cohen


Changes in directory llvm/utils/TableGen:

DAGISelEmitter.cpp updated: 1.123 - 1.124
---
Log message:

Replace fix with one less disruptive to the original code.

Also note that GCC 4.1 also correctly flags the syntax error.


---
Diffs of the changes:  (+3 -4)

 DAGISelEmitter.cpp |7 +++
 1 files changed, 3 insertions(+), 4 deletions(-)


Index: llvm/utils/TableGen/DAGISelEmitter.cpp
diff -u llvm/utils/TableGen/DAGISelEmitter.cpp:1.123 
llvm/utils/TableGen/DAGISelEmitter.cpp:1.124
--- llvm/utils/TableGen/DAGISelEmitter.cpp:1.123Tue Jan  3 21:15:19 2006
+++ llvm/utils/TableGen/DAGISelEmitter.cpp  Tue Jan  3 21:23:30 2006
@@ -2030,13 +2030,12 @@
 std::string Fn = CP-getSelectFunc();
 NumRes = CP-getNumOperands();
 OSSDOperand ;
-unsigned i;
-for (i = 0; i  NumRes - 1; ++i)
+for (unsigned i = 0; i  NumRes - 1; ++i)
   OS  Tmp  (i+ResNo)  ,;
-OS  Tmp  (i+ResNo)  ;\n;
+OS  Tmp  (NumRes - 1 + ResNo)  ;\n;
 
 OSif (!  Fn  (  Val;
-for (i = 0; i  NumRes; i++)
+for (unsigned i = 0; i  NumRes; i++)
   OS  , Tmp  i + ResNo;
 OS  )) goto P  PatternNo  Fail;\n;
 TmpNo = ResNo + NumRes;



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


[llvm-commits] CVS: llvm/lib/VMCore/Pass.cpp PassManagerT.h

2006-01-03 Thread Chris Lattner


Changes in directory llvm/lib/VMCore:

Pass.cpp updated: 1.66 - 1.67
PassManagerT.h updated: 1.62 - 1.63
---
Log message:

Patch #6's in Saem's refactor-the-passmanager patch series.  From him:

This sanitises the world, blows away the specialisations and adds
traits per passmanager type -- seemed most natural.



---
Diffs of the changes:  (+157 -230)

 Pass.cpp   |   16 +-
 PassManagerT.h |  371 ++---
 2 files changed, 157 insertions(+), 230 deletions(-)


Index: llvm/lib/VMCore/Pass.cpp
diff -u llvm/lib/VMCore/Pass.cpp:1.66 llvm/lib/VMCore/Pass.cpp:1.67
--- llvm/lib/VMCore/Pass.cpp:1.66   Sun Apr 24 20:01:35 2005
+++ llvm/lib/VMCore/Pass.cppWed Jan  4 01:47:13 2006
@@ -78,7 +78,7 @@
 // PassManager implementation - The PassManager class is a simple Pimpl class
 // that wraps the PassManagerT template.
 //
-PassManager::PassManager() : PM(new PassManagerTModule()) {}
+PassManager::PassManager() : PM(new ModulePassManager()) {}
 PassManager::~PassManager() { delete PM; }
 void PassManager::add(Pass *P) {
   ModulePass *MP = dynamic_castModulePass*(P);
@@ -93,7 +93,7 @@
 // is like PassManager, but only deals in FunctionPasses.
 //
 FunctionPassManager::FunctionPassManager(ModuleProvider *P) :
-  PM(new PassManagerTFunction()), MP(P) {}
+  PM(new FunctionPassManagerT()), MP(P) {}
 FunctionPassManager::~FunctionPassManager() { delete PM; }
 void FunctionPassManager::add(FunctionPass *P) { PM-add(P); }
 void FunctionPassManager::add(ImmutablePass *IP) { PM-add(IP); }
@@ -194,7 +194,7 @@
 // Pass Implementation
 //
 
-void ModulePass::addToPassManager(PassManagerTModule *PM, AnalysisUsage AU) 
{
+void ModulePass::addToPassManager(ModulePassManager *PM, AnalysisUsage AU) {
   PM-addPass(this, AU);
 }
 
@@ -231,7 +231,7 @@
 
//===--===//
 // ImmutablePass Implementation
 //
-void ImmutablePass::addToPassManager(PassManagerTModule *PM,
+void ImmutablePass::addToPassManager(ModulePassManager *PM, 
  AnalysisUsage AU) {
   PM-addPass(this, AU);
 }
@@ -264,12 +264,12 @@
   return Changed | doFinalization(*F.getParent());
 }
 
-void FunctionPass::addToPassManager(PassManagerTModule *PM,
+void FunctionPass::addToPassManager(ModulePassManager *PM,
 AnalysisUsage AU) {
   PM-addPass(this, AU);
 }
 
-void FunctionPass::addToPassManager(PassManagerTFunction *PM,
+void FunctionPass::addToPassManager(FunctionPassManagerT *PM,
 AnalysisUsage AU) {
   PM-addPass(this, AU);
 }
@@ -302,12 +302,12 @@
   return Changed;
 }
 
-void BasicBlockPass::addToPassManager(PassManagerTFunction *PM,
+void BasicBlockPass::addToPassManager(FunctionPassManagerT *PM,
   AnalysisUsage AU) {
   PM-addPass(this, AU);
 }
 
-void BasicBlockPass::addToPassManager(PassManagerTBasicBlock *PM,
+void BasicBlockPass::addToPassManager(BasicBlockPassManager *PM,
   AnalysisUsage AU) {
   PM-addPass(this, AU);
 }


Index: llvm/lib/VMCore/PassManagerT.h
diff -u llvm/lib/VMCore/PassManagerT.h:1.62 llvm/lib/VMCore/PassManagerT.h:1.63
--- llvm/lib/VMCore/PassManagerT.h:1.62 Tue Jan  3 23:02:04 2006
+++ llvm/lib/VMCore/PassManagerT.h  Wed Jan  4 01:47:13 2006
@@ -123,10 +123,70 @@
 
 static TimingInfo *TheTimeInfo;
 
-//===--===//
-// Declare the PassManagerTraits which will be specialized...
-//
-templateclass UnitType class PassManagerTraits;   // Do not define.
+// FIXME:I'm not sure if this is the best way, but this was the only way I 
+// could get around the recursive template issues. -- Saem
+struct BBTraits {
+  typedef BasicBlock UnitType;
+  
+  // PassClass - The type of passes tracked by this PassManager
+  typedef BasicBlockPass PassClass;
+
+  // SubPassClass - The types of classes that should be collated together
+  // This is impossible to match, so BasicBlock instantiations of PassManagerT
+  // do not collate.
+  //
+  typedef BasicBlockPassManager SubPassClass;
+
+  // BatcherClass - The type to use for collation of subtypes... This class is
+  // never instantiated for the PassManagerBasicBlock, but it must be an
+  // instance of PassClass to typecheck.
+  //
+  typedef PassClass BatcherClass;
+
+  // ParentClass - The type of the parent PassManager...
+  typedef FunctionPassManagerT ParentClass;
+
+  // PMType - The type of this passmanager
+  typedef BasicBlockPassManager PMType;
+};
+
+struct FTraits {
+  typedef Function UnitType;
+  
+  // PassClass - The type of passes tracked by this PassManager
+  typedef FunctionPass PassClass;
+
+  // SubPassClass - The types of classes that should be collated together
+  typedef BasicBlockPass SubPassClass;
+
+  // BatcherClass - The type to use for collation of subtypes...
+  typedef BasicBlockPassManager