[llvm-commits] CVS: llvm/LICENSE.TXT
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
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
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
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
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
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
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
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