[llvm-commits] [release_18] CVS: llvm/docs/GettingStarted.html

2006-07-27 Thread Reid Spencer


Changes in directory llvm/docs:

GettingStarted.html updated: 1.136.2.4 -> 1.136.2.5
---
Log message:

Remove another merge conflict marker.


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

 GettingStarted.html |6 +-
 1 files changed, 1 insertion(+), 5 deletions(-)


Index: llvm/docs/GettingStarted.html
diff -u llvm/docs/GettingStarted.html:1.136.2.4 
llvm/docs/GettingStarted.html:1.136.2.5
--- llvm/docs/GettingStarted.html:1.136.2.4 Thu Jul 27 01:50:11 2006
+++ llvm/docs/GettingStarted.html   Thu Jul 27 02:26:00 2006
@@ -31,11 +31,7 @@
   Install the GCC Front End
   Local LLVM Configuration
   Compiling the LLVM Suite Source Code
-<<< GettingStarted.html
-  Compiling LLVM As A Cross-Compiler
-===
   Cross-Compiling LLVM
->>> 1.139
   The Location of LLVM Object Files
   Optional Configuration Items
 
@@ -1599,7 +1595,7 @@
   mailto:[EMAIL PROTECTED]">Chris Lattner
   http://llvm.x10sys.com/rspencer/";>Reid Spencer
   http://llvm.org";>The LLVM Compiler Infrastructure
-  Last modified: $Date: 2006/07/27 06:50:11 $
+  Last modified: $Date: 2006/07/27 07:26:00 $
 
 
 



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


[llvm-commits] CVS: llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp

2006-07-27 Thread Evan Cheng


Changes in directory llvm/lib/CodeGen/SelectionDAG:

SelectionDAG.cpp updated: 1.312 -> 1.313
---
Log message:

AssignNodeIds should return unsigned.

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

 SelectionDAG.cpp |4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)


Index: llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
diff -u llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:1.312 
llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:1.313
--- llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:1.312Thu Jul 27 
01:39:06 2006
+++ llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp  Thu Jul 27 02:36:47 2006
@@ -2700,8 +2700,8 @@
 
 /// AssignNodeIds - Assign a unique node id for each node in the DAG. It 
returns
 /// the maximum id.
-int SelectionDAG::AssignNodeIds() {
-  int Id = 0;
+unsigned SelectionDAG::AssignNodeIds() {
+  unsigned Id = 0;
   for (allnodes_iterator I = allnodes_begin(), E = allnodes_end(); I != E; 
++I){
 SDNode *N = I;
 N->setNodeId(Id++);



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


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

2006-07-27 Thread Evan Cheng


Changes in directory llvm/include/llvm/CodeGen:

SelectionDAG.h updated: 1.103 -> 1.104
---
Log message:

AssignNodeIds should return unsigned.

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

 SelectionDAG.h |2 +-
 1 files changed, 1 insertion(+), 1 deletion(-)


Index: llvm/include/llvm/CodeGen/SelectionDAG.h
diff -u llvm/include/llvm/CodeGen/SelectionDAG.h:1.103 
llvm/include/llvm/CodeGen/SelectionDAG.h:1.104
--- llvm/include/llvm/CodeGen/SelectionDAG.h:1.103  Thu Jul 27 01:38:21 2006
+++ llvm/include/llvm/CodeGen/SelectionDAG.hThu Jul 27 02:36:47 2006
@@ -424,7 +424,7 @@
 
   /// AssignNodeIds - Assign a unique node id for each node in the DAG. It
   /// returns the maximum id.
-  int AssignNodeIds();
+  unsigned AssignNodeIds();
 
   void dump() const;
 



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


[llvm-commits] CVS: llvm/lib/Target/ARM/ARMAsmPrinter.cpp

2006-07-27 Thread Rafael Espindola


Changes in directory llvm/lib/Target/ARM:

ARMAsmPrinter.cpp updated: 1.6 -> 1.7
---
Log message:

emit global constants


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

 ARMAsmPrinter.cpp |   29 +
 1 files changed, 29 insertions(+)


Index: llvm/lib/Target/ARM/ARMAsmPrinter.cpp
diff -u llvm/lib/Target/ARM/ARMAsmPrinter.cpp:1.6 
llvm/lib/Target/ARM/ARMAsmPrinter.cpp:1.7
--- llvm/lib/Target/ARM/ARMAsmPrinter.cpp:1.6   Sat Jul 15 20:02:57 2006
+++ llvm/lib/Target/ARM/ARMAsmPrinter.cpp   Thu Jul 27 06:38:51 2006
@@ -23,6 +23,7 @@
 #include "llvm/CodeGen/MachineFunctionPass.h"
 #include "llvm/CodeGen/MachineConstantPool.h"
 #include "llvm/CodeGen/MachineInstr.h"
+#include "llvm/Target/TargetData.h"
 #include "llvm/Target/TargetMachine.h"
 #include "llvm/Support/Mangler.h"
 #include "llvm/ADT/Statistic.h"
@@ -190,6 +191,34 @@
 }
 
 bool ARMAsmPrinter::doFinalization(Module &M) {
+  const TargetData *TD = TM.getTargetData();
+
+  for (Module::const_global_iterator I = M.global_begin(), E = M.global_end();
+   I != E; ++I) {
+if (!I->hasInitializer())   // External global require no code
+  continue;
+
+if (EmitSpecialLLVMGlobal(I))
+  continue;
+
+O << "\n\n";
+std::string name = Mang->getValueName(I);
+Constant *C = I->getInitializer();
+unsigned Size = TD->getTypeSize(C->getType());
+unsigned Align = TD->getTypeAlignment(C->getType());
+
+assert (I->getLinkage() == GlobalValue::ExternalLinkage);
+O << "\t.globl " << name << "\n";
+
+assert (!C->isNullValue());
+SwitchToDataSection(".data", I);
+
+EmitAlignment(Align, I);
+O << "\t.type " << name << ", %object\n";
+O << "\t.size " << name << ", " << Size << "\n";
+O << name << ":\n";
+EmitGlobalConstant(C);
+  }
   AsmPrinter::doFinalization(M);
   return false; // success
 }



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


[llvm-commits] CVS: llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp

2006-07-27 Thread Jim Laskey


Changes in directory llvm/lib/ExecutionEngine/JIT:

JITEmitter.cpp updated: 1.108 -> 1.109
---
Log message:

Fixed a typo in Evan's submisson.


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

 JITEmitter.cpp |2 +-
 1 files changed, 1 insertion(+), 1 deletion(-)


Index: llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
diff -u llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp:1.108 
llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp:1.109
--- llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp:1.108   Thu Jul 27 01:33:55 2006
+++ llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp Thu Jul 27 08:40:34 2006
@@ -526,7 +526,7 @@
 static void synchronizeICache(const void *Addr, size_t len) {
 #if (defined(__POWERPC__) || defined (__ppc__) || defined(_POWER)) && \
 defined(__APPLE__)
-  sys_icache_invalidate(Addr, Len);
+  sys_icache_invalidate(Addr, len);
 #endif
 }
 



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


[llvm-commits] CVS: llvm/lib/Target/X86/X86ISelDAGToDAG.cpp

2006-07-27 Thread Evan Cheng


Changes in directory llvm/lib/Target/X86:

X86ISelDAGToDAG.cpp updated: 1.75 -> 1.76
---
Log message:

Use reachbility information to determine whether a node can be folded into 
another during isel.

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

 X86ISelDAGToDAG.cpp |  121 ++--
 1 files changed, 118 insertions(+), 3 deletions(-)


Index: llvm/lib/Target/X86/X86ISelDAGToDAG.cpp
diff -u llvm/lib/Target/X86/X86ISelDAGToDAG.cpp:1.75 
llvm/lib/Target/X86/X86ISelDAGToDAG.cpp:1.76
--- llvm/lib/Target/X86/X86ISelDAGToDAG.cpp:1.75Wed Jun 28 18:27:49 2006
+++ llvm/lib/Target/X86/X86ISelDAGToDAG.cpp Thu Jul 27 11:44:36 2006
@@ -34,6 +34,7 @@
 #include "llvm/Support/Visibility.h"
 #include "llvm/ADT/Statistic.h"
 #include 
+#include 
 #include 
 using namespace llvm;
 
@@ -92,12 +93,13 @@
 const X86Subtarget *Subtarget;
 
 unsigned GlobalBaseReg;
+
   public:
 X86DAGToDAGISel(X86TargetMachine &TM)
   : SelectionDAGISel(X86Lowering),
-X86Lowering(*TM.getTargetLowering()) {
-  Subtarget = &TM.getSubtarget();
-}
+X86Lowering(*TM.getTargetLowering()),
+Subtarget(&TM.getSubtarget()),
+DAGSize(0), ReachibilityMatrix(NULL) {}
 
 virtual bool runOnFunction(Function &Fn) {
   // Make sure we re-emit a set of the global base reg if necessary
@@ -115,10 +117,15 @@
 
 virtual void EmitFunctionEntryCode(Function &Fn, MachineFunction &MF);
 
+virtual bool IsFoldableBy(SDNode *N, SDNode *U);
+
 // Include the pieces autogenerated from the target description.
 #include "X86GenDAGISel.inc"
 
   private:
+void DetermineTopologicalOrdering();
+void DeterminReachibility();
+
 void Select(SDOperand &Result, SDOperand N);
 
 bool MatchAddress(SDOperand N, X86ISelAddressMode &AM, bool isRoot = true);
@@ -173,12 +180,116 @@
 /// base register.  Return the virtual register that holds this value.
 SDOperand getGlobalBaseReg();
 
+/// DAGSize - Number of nodes in the DAG.
+///
+unsigned DAGSize;
+
+/// TopOrder - Topological ordering of all nodes in the DAG.
+///
+std::vector TopOrder;
+
+/// ReachibilityMatrix - A N x N matrix representing all pairs reachibility
+/// information. One bit per potential edge.
+unsigned char *ReachibilityMatrix;
+
+inline void setReachable(SDNode *f, SDNode *t) {
+  unsigned Idx = f->getNodeId() * DAGSize + t->getNodeId();
+  ReachibilityMatrix[Idx / 8] |= 1 << (Idx % 8);
+}
+
+inline bool isReachable(SDNode *f, SDNode *t) {
+  unsigned Idx = f->getNodeId() * DAGSize + t->getNodeId();
+  return ReachibilityMatrix[Idx / 8] & (1 << (Idx % 8));
+}
+
 #ifndef NDEBUG
 unsigned Indent;
 #endif
   };
 }
 
+bool X86DAGToDAGISel::IsFoldableBy(SDNode *N, SDNode *U) {
+  // If U use can somehow reach N through another path then U can't fold N or
+  // it will create a cycle. e.g. In the following diagram, U can reach N
+  // through X. If N is foled into into U, then X is both a predecessor and
+  // a successor of U.
+  //
+  // [ N ]
+  // ^  ^
+  // |  |
+  ///   \---
+  //  /[X]
+  //  | ^
+  // [U]|
+  if (!ReachibilityMatrix)
+DeterminReachibility();
+  assert(isReachable(U, N) && "Attempting to fold a non-operand node?");
+  for (SDNode::op_iterator I = U->op_begin(), E = U->op_end(); I != E; ++I) {
+SDNode *P = I->Val;
+if (P != N && isReachable(P, N))
+  return false;
+  }
+  return true;
+}
+
+/// DetermineTopologicalOrdering - Determine topological ordering of the nodes
+/// in the DAG.
+void X86DAGToDAGISel::DetermineTopologicalOrdering() {
+  DAGSize = CurDAG->AssignNodeIds();
+  TopOrder.reserve(DAGSize);
+
+  std::vector InDegree(DAGSize);
+  std::list Sources;
+  for (SelectionDAG::allnodes_iterator I = CurDAG->allnodes_begin(),
+ E = CurDAG->allnodes_end(); I != E; ++I) {
+SDNode *N = I;
+unsigned Degree = N->use_size();
+InDegree[N->getNodeId()] = Degree;
+if (Degree == 0)
+  Sources.push_back(I);
+  }
+
+  unsigned Order = 0;
+  while (!Sources.empty()) {
+SDNode *N = Sources.front();
+Sources.pop_front();
+TopOrder[Order] = N;
+Order++;
+for (SDNode::op_iterator I = N->op_begin(), E = N->op_end(); I != E; ++I) {
+  SDNode *P = I->Val;
+  int PId = P->getNodeId();
+  unsigned Degree = InDegree[PId] - 1;
+  if (Degree == 0)
+Sources.push_back(P);
+  InDegree[PId] = Degree;
+}
+  }
+}
+
+void X86DAGToDAGISel::DeterminReachibility() {
+  DetermineTopologicalOrdering();
+  ReachibilityMatrix = new unsigned char[DAGSize * DAGSize];
+  memset(ReachibilityMatrix, 0, DAGSize * DAGSize * sizeof(unsigned char));
+
+  for (unsigned i = 0; i < DAGSize; ++i) {
+SDNode *N = TopOrder[i];
+setReachable(N, N);
+// If N is a leaf node, there is nothing more to do.
+if (N->getNumOperands() == 0)
+  continue;
+
+for (unsi

[llvm-commits] CVS: llvm/lib/CodeGen/AsmPrinter.cpp

2006-07-27 Thread Nate Begeman


Changes in directory llvm/lib/CodeGen:

AsmPrinter.cpp updated: 1.85 -> 1.86
---
Log message:

Code cleanups, per review


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

 AsmPrinter.cpp |   10 +++---
 1 files changed, 7 insertions(+), 3 deletions(-)


Index: llvm/lib/CodeGen/AsmPrinter.cpp
diff -u llvm/lib/CodeGen/AsmPrinter.cpp:1.85 
llvm/lib/CodeGen/AsmPrinter.cpp:1.86
--- llvm/lib/CodeGen/AsmPrinter.cpp:1.85Wed Jul 26 20:13:04 2006
+++ llvm/lib/CodeGen/AsmPrinter.cpp Thu Jul 27 11:46:58 2006
@@ -210,7 +210,11 @@
   const std::vector &JT = MJTI->getJumpTables();
   if (JT.empty()) return;
   const TargetData *TD = TM.getTargetData();
-  const char *PtrDataDirective = Data32bitsDirective;
+  
+  // JTEntryDirective is a string to print sizeof(ptr) for non-PIC jump tables,
+  // and 32 bits for PIC since PIC jump table entries are differences, not
+  // pointers to blocks.
+  const char *JTEntryDirective = Data32bitsDirective;
   
   // Pick the directive to use to print the jump table entries, and switch to 
   // the appropriate section.
@@ -219,7 +223,7 @@
   } else {
 SwitchToDataSection(JumpTableDataSection, 0);
 if (TD->getPointerSize() == 8)
-  PtrDataDirective = Data64bitsDirective;
+  JTEntryDirective = Data64bitsDirective;
   }
   EmitAlignment(Log2_32(TD->getPointerAlignment()));
   
@@ -228,7 +232,7 @@
   << ":\n";
 const std::vector &JTBBs = JT[i].MBBs;
 for (unsigned ii = 0, ee = JTBBs.size(); ii != ee; ++ii) {
-  O << PtrDataDirective << ' ';
+  O << JTEntryDirective << ' ';
   printBasicBlockLabel(JTBBs[ii], false, false);
   if (TM.getRelocationModel() == Reloc::PIC_) {
 O << '-' << PrivateGlobalPrefix << "JTI" << getFunctionNumber() 



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


[llvm-commits] CVS: llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp

2006-07-27 Thread Nate Begeman


Changes in directory llvm/lib/CodeGen/SelectionDAG:

SelectionDAGISel.cpp updated: 1.260 -> 1.261
---
Log message:

Code cleanups, per review


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

 SelectionDAGISel.cpp |2 --
 1 files changed, 2 deletions(-)


Index: llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
diff -u llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:1.260 
llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:1.261
--- llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:1.260Wed Jul 26 
20:13:04 2006
+++ llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp  Thu Jul 27 11:46:58 2006
@@ -914,8 +914,6 @@
 double Density = (double)Cases.size() / (double)((Last - First) + 1ULL);
 
 if (Density >= 0.3125) {
-  Reloc::Model Relocs = TLI.getTargetMachine().getRelocationModel();
-  
   // Create a new basic block to hold the code for loading the address
   // of the jump table, and jumping to it.  Update successor information;
   // we will either branch to the default case for the switch, or the jump



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


[llvm-commits] CVS: llvm/lib/Target/PowerPC/PPCJITInfo.cpp PPCJITInfo.h

2006-07-27 Thread Evan Cheng


Changes in directory llvm/lib/Target/PowerPC:

PPCJITInfo.cpp updated: 1.25 -> 1.26
PPCJITInfo.h updated: 1.10 -> 1.11
---
Log message:

synchronizeICache removeed from TargetJITInfo.

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

 PPCJITInfo.cpp |   10 --
 PPCJITInfo.h   |1 -
 2 files changed, 11 deletions(-)


Index: llvm/lib/Target/PowerPC/PPCJITInfo.cpp
diff -u llvm/lib/Target/PowerPC/PPCJITInfo.cpp:1.25 
llvm/lib/Target/PowerPC/PPCJITInfo.cpp:1.26
--- llvm/lib/Target/PowerPC/PPCJITInfo.cpp:1.25 Tue Jul 25 15:40:54 2006
+++ llvm/lib/Target/PowerPC/PPCJITInfo.cpp  Thu Jul 27 12:33:48 2006
@@ -268,13 +268,3 @@
   }
   BBRefs.clear();
 }
-
-#ifdef __APPLE__ 
-extern "C" void sys_icache_invalidate(const void *Addr, size_t len);
-#endif
-
-void PPCJITInfo::synchronizeICache(const void *Addr, size_t Len) {
-#ifdef __APPLE__
-  sys_icache_invalidate(Addr, Len);
-#endif
-}


Index: llvm/lib/Target/PowerPC/PPCJITInfo.h
diff -u llvm/lib/Target/PowerPC/PPCJITInfo.h:1.10 
llvm/lib/Target/PowerPC/PPCJITInfo.h:1.11
--- llvm/lib/Target/PowerPC/PPCJITInfo.h:1.10   Tue Jul 25 15:40:54 2006
+++ llvm/lib/Target/PowerPC/PPCJITInfo.hThu Jul 27 12:33:48 2006
@@ -44,7 +44,6 @@
 virtual void replaceMachineCodeForFunction(void *Old, void *New);
 
 virtual void resolveBBRefs(MachineCodeEmitter &MCE);
-virtual void synchronizeICache(const void *Addr, size_t Len);
   };
 }
 



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


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

2006-07-27 Thread Evan Cheng


Changes in directory llvm/include/llvm/CodeGen:

MachineRelocation.h updated: 1.10 -> 1.11
---
Log message:

Add basic block machine relocation.

---
Diffs of the changes:  (+35 -5)

 MachineRelocation.h |   40 +++-
 1 files changed, 35 insertions(+), 5 deletions(-)


Index: llvm/include/llvm/CodeGen/MachineRelocation.h
diff -u llvm/include/llvm/CodeGen/MachineRelocation.h:1.10 
llvm/include/llvm/CodeGen/MachineRelocation.h:1.11
--- llvm/include/llvm/CodeGen/MachineRelocation.h:1.10  Thu Jun 22 20:02:37 2006
+++ llvm/include/llvm/CodeGen/MachineRelocation.h   Thu Jul 27 13:18:13 2006
@@ -19,6 +19,7 @@
 
 namespace llvm {
 class GlobalValue;
+class MachineBasicBlock;
 
 /// MachineRelocation - This represents a target-specific relocation value,
 /// produced by the code emitter.  This relocation is resolved after the has
@@ -38,6 +39,7 @@
   enum AddressType {
 isResult, // Relocation has be transformed into its result pointer.
 isGV, // The Target.GV field is valid.
+isBB, // Relocation of BB address.
 isExtSym, // The Target.ExtSym field is valid.
 isConstPool,  // Relocation of constant pool address.
 isJumpTable,  // Relocation of jump table address.
@@ -52,11 +54,12 @@
   intptr_t ConstantVal;
 
   union {
-void *Result;// If this has been resolved to a resolved pointer
-GlobalValue *GV; // If this is a pointer to an LLVM global
-const char *ExtSym;  // If this is a pointer to a named symbol
-unsigned Index;  // Constant pool / jump table index
-unsigned GOTIndex;   // Index in the GOT of this symbol/global
+void *Result;   // If this has been resolved to a resolved pointer
+GlobalValue *GV;// If this is a pointer to an LLVM global
+MachineBasicBlock *MBB; // If this is a pointer to a LLVM BB
+const char *ExtSym; // If this is a pointer to a named symbol
+unsigned Index; // Constant pool / jump table index
+unsigned GOTIndex;  // Index in the GOT of this symbol/global
   } Target;
 
   unsigned TargetReloType : 6; // The target relocation ID.
@@ -83,6 +86,22 @@
 return Result;
   }
 
+  /// MachineRelocation::getBB - Return a relocation entry for a BB.
+  ///
+  static MachineRelocation getBB(intptr_t offset,unsigned RelocationType,
+ MachineBasicBlock *MBB, intptr_t cst = 0) {
+assert((RelocationType & ~63) == 0 && "Relocation type too large!");
+MachineRelocation Result;
+Result.Offset = offset;
+Result.ConstantVal = cst;
+Result.TargetReloType = RelocationType;
+Result.AddrType = isBB;
+Result.DoesntNeedFnStub = false;
+Result.GOTRelative = false;
+Result.Target.MBB = MBB;
+return Result;
+  }
+
   /// MachineRelocation::getExtSym - Return a relocation entry for an external
   /// symbol, like "free".
   ///
@@ -160,6 +179,12 @@
 return AddrType == isGV;
   }
 
+  /// isBasicBlock - Return true if this relocation is a basic block reference.
+  ///
+  bool isBasicBlock() const {
+return AddrType == isBB;
+  }
+
   /// isString - Return true if this is a constant string.
   ///
   bool isString() const {
@@ -200,6 +225,11 @@
 return Target.GV;
   }
 
+  MachineBasicBlock *getBasicBlock() const {
+assert(isBasicBlock() && "This is not a basic block reference!");
+return Target.MBB;
+  }
+
   /// getString - If this is a string value, return the string reference.
   ///
   const char *getString() const {



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


[llvm-commits] CVS: llvm/include/llvm/Target/TargetJITInfo.h

2006-07-27 Thread Evan Cheng


Changes in directory llvm/include/llvm/Target:

TargetJITInfo.h updated: 1.9 -> 1.10
---
Log message:

Resolve BB references with relocation.

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

 TargetJITInfo.h |   14 --
 1 files changed, 14 deletions(-)


Index: llvm/include/llvm/Target/TargetJITInfo.h
diff -u llvm/include/llvm/Target/TargetJITInfo.h:1.9 
llvm/include/llvm/Target/TargetJITInfo.h:1.10
--- llvm/include/llvm/Target/TargetJITInfo.h:1.9Thu Jul 27 01:33:55 2006
+++ llvm/include/llvm/Target/TargetJITInfo.hThu Jul 27 13:19:24 2006
@@ -83,26 +83,12 @@
   assert(NumRelocs == 0 && "This target does not have relocations!");
 }
 
-/// resolveBBRefs - Resolve branches to BasicBlocks for the JIT emitted
-/// function.
-virtual void resolveBBRefs(MachineCodeEmitter &MCE) {}
-
-/// addBBRef - Add a BasicBlock reference to be resolved after the function
-/// is emitted.
-void addBBRef(MachineBasicBlock *BB, intptr_t PC) {
-  BBRefs.push_back(std::make_pair(BB, PC));
-}
-
 /// needsGOT - Allows a target to specify that it would like the
 // JIT to manage a GOT for it.
 bool needsGOT() const { return useGOT; }
 
   protected:
 bool useGOT;
-
-// Tracks which instruction references which BasicBlock
-std::vector > BBRefs;
-
   };
 } // End llvm namespace
 



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


[llvm-commits] CVS: llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp

2006-07-27 Thread Evan Cheng


Changes in directory llvm/lib/ExecutionEngine/JIT:

JITEmitter.cpp updated: 1.109 -> 1.110
---
Log message:

Resolve BB references with relocation.

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

 JITEmitter.cpp |7 ++-
 1 files changed, 2 insertions(+), 5 deletions(-)


Index: llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
diff -u llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp:1.109 
llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp:1.110
--- llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp:1.109   Thu Jul 27 08:40:34 2006
+++ llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp Thu Jul 27 13:19:24 2006
@@ -807,13 +807,13 @@
 ResultPtr = getPointerToGlobal(MR.getGlobalValue(),
BufferBegin+MR.getMachineCodeOffset(),
MR.doesntNeedFunctionStub());
+  } else if (MR.isBasicBlock()) {
+ResultPtr = (void*)getMachineBasicBlockAddress(MR.getBasicBlock());
   } else if (MR.isConstantPoolIndex()){
-assert(MR.isConstantPoolIndex());
 
ResultPtr=(void*)getConstantPoolEntryAddress(MR.getConstantPoolIndex());
   } else {
 assert(MR.isJumpTableIndex());
 ResultPtr=(void*)getJumpTableEntryAddress(MR.getJumpTableIndex());
-
   }
 
   MR.setResultPointer(ResultPtr);
@@ -846,9 +846,6 @@
 }
   }
 
-  // Resolve BasicaBlock references.
-  TheJIT->getJITInfo().resolveBBRefs(*this);
-
   // Invalidate the icache if necessary.
   synchronizeICache(FnStart, FnEnd-FnStart);
 



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


[llvm-commits] CVS: llvm/Makefile.rules

2006-07-27 Thread Chris Lattner


Changes in directory llvm:

Makefile.rules updated: 1.391 -> 1.392
---
Log message:

Pass -fstrict-aliasing to the compiler when building a release build on darwin.
Darwin doesn't default to it being on.


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

 Makefile.rules |   11 ---
 1 files changed, 8 insertions(+), 3 deletions(-)


Index: llvm/Makefile.rules
diff -u llvm/Makefile.rules:1.391 llvm/Makefile.rules:1.392
--- llvm/Makefile.rules:1.391   Wed Jul 26 16:14:55 2006
+++ llvm/Makefile.rules Thu Jul 27 13:19:51 2006
@@ -214,13 +214,18 @@
 else
   ifdef ENABLE_OPTIMIZED
 BuildMode := Release
-# Don't use -fomit-frame-pointer on FreeBSD
+# Don't use -fomit-frame-pointer on Darwin or FreeBSD.
 ifneq ($(OS),FreeBSD)
-# Don't use -fomit-frame-pointer on Darwin, it breaks backtraces.
 ifneq ($(OS),Darwin)
   OmitFramePointer := -fomit-frame-pointer
 endif
 endif
+
+# Darwin requires -fstrict-aliasing to be explicitly enabled.
+ifeq ($(OS),Darwin)
+  EXTRA_OPTIONS += -fstrict-aliasing
+endif
+
 CXX.Flags := $(OPTIMIZE_OPTION) $(OmitFramePointer)
 C.Flags   := $(OPTIMIZE_OPTION) $(OmitFramePointer)
 LD.Flags  := $(OPTIMIZE_OPTION)
@@ -251,7 +256,7 @@
 AR.Flags  := cru
 LibTool.Flags := --tag=CXX
 
-#Make Floating point ieee complient on alpha
+# Make Floating point IEEE compliant on Alpha.
 ifeq ($(ARCH),Alpha)
   CXX.Flags += -mieee -fPIC
   CPP.BaseFlags += -mieee -fPIC



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


[llvm-commits] CVS: llvm/lib/Target/Alpha/AlphaCodeEmitter.cpp AlphaJITInfo.cpp AlphaJITInfo.h

2006-07-27 Thread Evan Cheng


Changes in directory llvm/lib/Target/Alpha:

AlphaCodeEmitter.cpp updated: 1.16 -> 1.17
AlphaJITInfo.cpp updated: 1.10 -> 1.11
AlphaJITInfo.h updated: 1.2 -> 1.3
---
Log message:

Resolve BB references with relocation.

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

 AlphaCodeEmitter.cpp |5 +++--
 AlphaJITInfo.cpp |   16 
 AlphaJITInfo.h   |2 --
 3 files changed, 3 insertions(+), 20 deletions(-)


Index: llvm/lib/Target/Alpha/AlphaCodeEmitter.cpp
diff -u llvm/lib/Target/Alpha/AlphaCodeEmitter.cpp:1.16 
llvm/lib/Target/Alpha/AlphaCodeEmitter.cpp:1.17
--- llvm/lib/Target/Alpha/AlphaCodeEmitter.cpp:1.16 Tue Jul 25 15:40:54 2006
+++ llvm/lib/Target/Alpha/AlphaCodeEmitter.cpp  Thu Jul 27 13:20:17 2006
@@ -215,8 +215,9 @@
   Reloc, MO.getConstantPoolIndex(),
   Offset));
   } else if (MO.isMachineBasicBlock()) {
-TM.getJITInfo()->addBBRef(MO.getMachineBasicBlock(),
-  MCE.getCurrentPCValue());
+MCE.addRelocation(MachineRelocation::getBB(MCE.getCurrentPCOffset(),
+   Alpha::reloc_bsr,
+   MO.getMachineBasicBlock()));
   }else {
 std::cerr << "ERROR: Unknown type of MachineOperand: " << MO << "\n";
 abort();


Index: llvm/lib/Target/Alpha/AlphaJITInfo.cpp
diff -u llvm/lib/Target/Alpha/AlphaJITInfo.cpp:1.10 
llvm/lib/Target/Alpha/AlphaJITInfo.cpp:1.11
--- llvm/lib/Target/Alpha/AlphaJITInfo.cpp:1.10 Tue Jul 25 15:40:54 2006
+++ llvm/lib/Target/Alpha/AlphaJITInfo.cpp  Thu Jul 27 13:20:17 2006
@@ -304,19 +304,3 @@
 }
   }
 }
-
-void AlphaJITInfo::resolveBBRefs(MachineCodeEmitter &MCE) {
-  // Resolve all forward branches now...
-  for (unsigned i = 0, e = BBRefs.size(); i != e; ++i) {
-unsigned* Location =
-  (unsigned*)MCE.getMachineBasicBlockAddress(BBRefs[i].first);
-unsigned* Ref = (unsigned*)BBRefs[i].second;
-intptr_t BranchTargetDisp = 
-  (((unsigned char*)Location  - (unsigned char*)Ref) >> 2) - 1;
-DEBUG(std::cerr << "Fixup @ " << (void*)Ref << " to " << (void*)Location
-  << " Disp " << BranchTargetDisp 
-  << " using " <<  (BranchTargetDisp & ((1 << 22)-1)) << "\n");
-*Ref |= (BranchTargetDisp & ((1 << 21)-1));
-  }
-  BBRefs.clear();
-}


Index: llvm/lib/Target/Alpha/AlphaJITInfo.h
diff -u llvm/lib/Target/Alpha/AlphaJITInfo.h:1.2 
llvm/lib/Target/Alpha/AlphaJITInfo.h:1.3
--- llvm/lib/Target/Alpha/AlphaJITInfo.h:1.2Tue Jul 25 15:40:54 2006
+++ llvm/lib/Target/Alpha/AlphaJITInfo.hThu Jul 27 13:20:17 2006
@@ -46,8 +46,6 @@
 /// code.
 ///
 virtual void replaceMachineCodeForFunction(void *Old, void *New);
-
-virtual void resolveBBRefs(MachineCodeEmitter &MCE);
   private:
 static const unsigned GOToffset = 4096;
 



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


[llvm-commits] CVS: llvm/lib/Target/PowerPC/PPCCodeEmitter.cpp PPCJITInfo.cpp PPCJITInfo.h PPCRelocations.h

2006-07-27 Thread Evan Cheng


Changes in directory llvm/lib/Target/PowerPC:

PPCCodeEmitter.cpp updated: 1.64 -> 1.65
PPCJITInfo.cpp updated: 1.26 -> 1.27
PPCJITInfo.h updated: 1.11 -> 1.12
PPCRelocations.h updated: 1.8 -> 1.9
---
Log message:

Resolve BB references with relocation.

---
Diffs of the changes:  (+22 -27)

 PPCCodeEmitter.cpp |   12 ++--
 PPCJITInfo.cpp |   31 ---
 PPCJITInfo.h   |2 --
 PPCRelocations.h   |4 
 4 files changed, 22 insertions(+), 27 deletions(-)


Index: llvm/lib/Target/PowerPC/PPCCodeEmitter.cpp
diff -u llvm/lib/Target/PowerPC/PPCCodeEmitter.cpp:1.64 
llvm/lib/Target/PowerPC/PPCCodeEmitter.cpp:1.65
--- llvm/lib/Target/PowerPC/PPCCodeEmitter.cpp:1.64 Tue Jul 25 15:40:54 2006
+++ llvm/lib/Target/PowerPC/PPCCodeEmitter.cpp  Thu Jul 27 13:20:32 2006
@@ -180,8 +180,16 @@
   MCE.addRelocation(MachineRelocation::getExtSym(MCE.getCurrentPCOffset(),
   Reloc, MO.getSymbolName(), 0));
   } else if (MO.isMachineBasicBlock()) {
-unsigned* CurrPC = (unsigned*)(intptr_t)MCE.getCurrentPCValue();
-TM.getJITInfo()->addBBRef(MO.getMachineBasicBlock(), (intptr_t)CurrPC);
+unsigned Reloc = 0;
+unsigned Opcode = MI.getOpcode();
+if (Opcode == PPC::B || Opcode == PPC::BL || Opcode == PPC::BLA)
+  Reloc = PPC::reloc_pcrel_bx;
+else
+  // BLT,BLE,BEQ,BGE,BGT,BNE, or other bcx instruction
+  Reloc = PPC::reloc_pcrel_bcx;
+MCE.addRelocation(MachineRelocation::getBB(MCE.getCurrentPCOffset(),
+   Reloc,
+   MO.getMachineBasicBlock()));
   } else if (MO.isConstantPoolIndex() || MO.isJumpTableIndex()) {
 if (MO.isConstantPoolIndex())
   rv = MCE.getConstantPoolEntryAddress(MO.getConstantPoolIndex());


Index: llvm/lib/Target/PowerPC/PPCJITInfo.cpp
diff -u llvm/lib/Target/PowerPC/PPCJITInfo.cpp:1.26 
llvm/lib/Target/PowerPC/PPCJITInfo.cpp:1.27
--- llvm/lib/Target/PowerPC/PPCJITInfo.cpp:1.26 Thu Jul 27 12:33:48 2006
+++ llvm/lib/Target/PowerPC/PPCJITInfo.cpp  Thu Jul 27 13:20:32 2006
@@ -206,6 +206,14 @@
  "Relocation out of range!");
   *RelocPos |= (ResultPtr & ((1 << 24)-1))  << 2;
   break;
+case PPC::reloc_pcrel_bcx:
+  // PC-relative relocation for BLT,BLE,BEQ,BGE,BGT,BNE, or other
+  // bcx instructions.
+  ResultPtr = (ResultPtr-(intptr_t)RelocPos) >> 2;
+  assert(ResultPtr >= -(1 << 13) && ResultPtr < (1 << 13) &&
+ "Relocation out of range!");
+  *RelocPos |= (ResultPtr & ((1 << 14)-1))  << 2;
+  break;
 case PPC::reloc_absolute_ptr_high: // Pointer relocations.
 case PPC::reloc_absolute_ptr_low:
 case PPC::reloc_absolute_high: // high bits of ref -> low 16 of instr
@@ -245,26 +253,3 @@
 void PPCJITInfo::replaceMachineCodeForFunction(void *Old, void *New) {
   EmitBranchToAt(Old, New, false);
 }
-
-void PPCJITInfo::resolveBBRefs(MachineCodeEmitter &MCE) {
-  // Resolve branches to BasicBlocks for the entire function
-  for (unsigned i = 0, e = BBRefs.size(); i != e; ++i) {
-intptr_t Location = MCE.getMachineBasicBlockAddress(BBRefs[i].first);
-unsigned *Ref = (unsigned *)BBRefs[i].second;
-DEBUG(std::cerr << "Fixup @ " << (void*)Ref << " to " << (void*)Location
-<< "\n");
-unsigned Instr = *Ref;
-intptr_t BranchTargetDisp = (Location - (intptr_t)Ref) >> 2;
-
-switch (Instr >> 26) {
-default: assert(0 && "Unknown branch user!");
-case 18:  // This is B or BL
-  *Ref |= (BranchTargetDisp & ((1 << 24)-1)) << 2;
-  break;
-case 16:  // This is BLT,BLE,BEQ,BGE,BGT,BNE, or other bcx instruction
-  *Ref |= (BranchTargetDisp & ((1 << 14)-1)) << 2;
-  break;
-}
-  }
-  BBRefs.clear();
-}


Index: llvm/lib/Target/PowerPC/PPCJITInfo.h
diff -u llvm/lib/Target/PowerPC/PPCJITInfo.h:1.11 
llvm/lib/Target/PowerPC/PPCJITInfo.h:1.12
--- llvm/lib/Target/PowerPC/PPCJITInfo.h:1.11   Thu Jul 27 12:33:48 2006
+++ llvm/lib/Target/PowerPC/PPCJITInfo.hThu Jul 27 13:20:32 2006
@@ -42,8 +42,6 @@
 /// code.
 ///
 virtual void replaceMachineCodeForFunction(void *Old, void *New);
-
-virtual void resolveBBRefs(MachineCodeEmitter &MCE);
   };
 }
 


Index: llvm/lib/Target/PowerPC/PPCRelocations.h
diff -u llvm/lib/Target/PowerPC/PPCRelocations.h:1.8 
llvm/lib/Target/PowerPC/PPCRelocations.h:1.9
--- llvm/lib/Target/PowerPC/PPCRelocations.h:1.8Wed Jul 12 16:23:20 2006
+++ llvm/lib/Target/PowerPC/PPCRelocations.hThu Jul 27 13:20:32 2006
@@ -28,6 +28,10 @@
   // reloc_pcrel_bx - PC relative relocation, for the b or bl instructions.
   reloc_pcrel_bx,
 
+  // reloc_pcrel_bcx - PC relative relocation, for BLT,BLE,BEQ,BGE,BGT,BNE,
+  // and other bcx instructions.
+  reloc_pcrel_bcx,
+
   // reloc_absolute_high - Absolute relocation, for the loadhi instruction
   // (which is really addis).  Add the high 16-bits o

[llvm-commits] CVS: llvm/lib/Target/X86/X86CodeEmitter.cpp X86JITInfo.cpp X86JITInfo.h

2006-07-27 Thread Evan Cheng


Changes in directory llvm/lib/Target/X86:

X86CodeEmitter.cpp updated: 1.111 -> 1.112
X86JITInfo.cpp updated: 1.24 -> 1.25
X86JITInfo.h updated: 1.9 -> 1.10
---
Log message:

Resolve BB references with relocation.

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

 X86CodeEmitter.cpp |3 ++-
 X86JITInfo.cpp |   10 --
 X86JITInfo.h   |2 --
 3 files changed, 2 insertions(+), 13 deletions(-)


Index: llvm/lib/Target/X86/X86CodeEmitter.cpp
diff -u llvm/lib/Target/X86/X86CodeEmitter.cpp:1.111 
llvm/lib/Target/X86/X86CodeEmitter.cpp:1.112
--- llvm/lib/Target/X86/X86CodeEmitter.cpp:1.111Tue Jul 25 15:40:54 2006
+++ llvm/lib/Target/X86/X86CodeEmitter.cpp  Thu Jul 27 13:21:10 2006
@@ -111,7 +111,8 @@
 void Emitter::emitPCRelativeBlockAddress(MachineBasicBlock *MBB) {
   // Remember where this reference was and where it is to so we can
   // deal with it later.
-  TM.getJITInfo()->addBBRef(MBB, MCE.getCurrentPCValue());
+  MCE.addRelocation(MachineRelocation::getBB(MCE.getCurrentPCOffset(),
+ X86::reloc_pcrel_word, MBB));
   MCE.emitWordLE(0);
 }
 


Index: llvm/lib/Target/X86/X86JITInfo.cpp
diff -u llvm/lib/Target/X86/X86JITInfo.cpp:1.24 
llvm/lib/Target/X86/X86JITInfo.cpp:1.25
--- llvm/lib/Target/X86/X86JITInfo.cpp:1.24 Tue Jul 25 15:40:54 2006
+++ llvm/lib/Target/X86/X86JITInfo.cpp  Thu Jul 27 13:21:10 2006
@@ -203,13 +203,3 @@
 }
   }
 }
-
-void X86JITInfo::resolveBBRefs(MachineCodeEmitter &MCE) {
-  // Resolve all forward branches now.
-  for (unsigned i = 0, e = BBRefs.size(); i != e; ++i) {
-unsigned Location = MCE.getMachineBasicBlockAddress(BBRefs[i].first);
-intptr_t Ref = BBRefs[i].second;
-*((unsigned*)Ref) = Location-Ref-4;
-  }
-  BBRefs.clear();
-}


Index: llvm/lib/Target/X86/X86JITInfo.h
diff -u llvm/lib/Target/X86/X86JITInfo.h:1.9 
llvm/lib/Target/X86/X86JITInfo.h:1.10
--- llvm/lib/Target/X86/X86JITInfo.h:1.9Tue Jul 25 15:40:54 2006
+++ llvm/lib/Target/X86/X86JITInfo.hThu Jul 27 13:21:10 2006
@@ -51,8 +51,6 @@
 /// referenced global symbols.
 virtual void relocate(void *Function, MachineRelocation *MR,
   unsigned NumRelocs, unsigned char* GOTBase);
-
-virtual void resolveBBRefs(MachineCodeEmitter &MCE);
   };
 }
 



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


[llvm-commits] CVS: llvm/utils/NewNightlyTest.pl

2006-07-27 Thread Patrick Jenkins


Changes in directory llvm/utils:

NewNightlyTest.pl updated: 1.29 -> 1.30
---
Log message:

Removed some clutter that was left over from development. 
Changed how changedir worked. Hopefully now when it fails it will tell us why.



---
Diffs of the changes:  (+39 -48)

 NewNightlyTest.pl |   87 --
 1 files changed, 39 insertions(+), 48 deletions(-)


Index: llvm/utils/NewNightlyTest.pl
diff -u llvm/utils/NewNightlyTest.pl:1.29 llvm/utils/NewNightlyTest.pl:1.30
--- llvm/utils/NewNightlyTest.pl:1.29   Wed Jul 26 20:24:35 2006
+++ llvm/utils/NewNightlyTest.plThu Jul 27 13:28:50 2006
@@ -302,7 +302,11 @@
 my ($dir,$name) = @_;
 chomp($dir);
 if ( $VERBOSE ) { print "Changing To: $name ($dir)\n"; }
-chdir($dir) || (print "Cannot change directory to: $name ($dir) " && 
return -1);
+$result = chdir($dir);
+if(!$result){
+   print "ERROR!!! Cannot change directory to: $name ($dir) because $!"; 
+   return -1;
+}
 return 0;
 }
 
@@ -777,57 +781,44 @@
 #
 ##
 sub TestDirectory {
-my $SubDir = shift;
-
-ChangeDir( "projects/llvm-test/$SubDir", "Programs Test Subdirectory" ) || 
return ("", "");
-
-my $ProgramTestLog = "$Prefix-$SubDir-ProgramTest.txt";
-#my $ProgramTestLog = "$Prefix-MultiSource-ProgramTest.txt"; #CHANGE ME!
-
-# Run the programs tests... creating a report.nightly.csv file
-if (!$NOTEST) {
-   print "$MAKECMD -k $MAKEOPTS $PROGTESTOPTS report.nightly.csv "
-   . "TEST=nightly > $ProgramTestLog 2>&1\n";
-   system "$MAKECMD -k $MAKEOPTS $PROGTESTOPTS report.nightly.csv "
-   . "TEST=nightly > $ProgramTestLog 2>&1";
-   $llcbeta_options=`$MAKECMD print-llcbeta-option`;
-} 
+   my $SubDir = shift;
+   
+   ChangeDir( "projects/llvm-test/$SubDir", "Programs Test Subdirectory" ) 
|| return ("", "");
+   
+   my $ProgramTestLog = "$Prefix-$SubDir-ProgramTest.txt";
+   
+   # Run the programs tests... creating a report.nightly.csv file
+   if (!$NOTEST) {
+   print "$MAKECMD -k $MAKEOPTS $PROGTESTOPTS report.nightly.csv ".
+  "TEST=nightly > $ProgramTestLog 2>&1\n";
+   system "$MAKECMD -k $MAKEOPTS $PROGTESTOPTS report.nightly.csv 
".
+   "TEST=nightly > $ProgramTestLog 2>&1";
+ $llcbeta_options=`$MAKECMD print-llcbeta-option`;
+   } 
 
-my $ProgramsTable;
-if (`grep '^$MAKECMD\[^:]: .*Error' $ProgramTestLog | wc -l` + 0){
-   $TestError = 1;
-   $ProgramsTable="Error running test $SubDir\n";
-   print "ERROR TESTING\n";
-} elsif (`grep '^$MAKECMD\[^:]: .*No rule to make target' $ProgramTestLog 
| wc -l` + 0) {
-   $TestError = 1;
-   $ProgramsTable="Makefile error running tests $SubDir!\n";
-   print "ERROR TESTING\n";
-} else {
-   $TestError = 0;
+  my $ProgramsTable;
+  if (`grep '^$MAKECMD\[^:]: .*Error' $ProgramTestLog | wc -l` + 0){
+$TestError = 1;
+$ProgramsTable="Error running test $SubDir\n";
+print "ERROR TESTING\n";
+  } elsif (`grep '^$MAKECMD\[^:]: .*No rule to make target' $ProgramTestLog | 
wc -l` + 0) {
+$TestError = 1;
+$ProgramsTable="Makefile error running tests $SubDir!\n";
+print "ERROR TESTING\n";
+  } else {
+$TestError = 0;
+#
+# Create a list of the tests which were run...
+#
+system "egrep 'TEST-(PASS|FAIL)' < $ProgramTestLog ".
+   "| sort > $Prefix-multisourceprogramstable.txt";
+  }
+  $ProgramsTable = ReadFile "report.nightly.csv";
 
-   #
-   # Create a list of the tests which were run...
-   #
-   system "egrep 'TEST-(PASS|FAIL)' < $ProgramTestLog "
-   . "| sort > $Prefix-multisourceprogramstable.txt";
-}
-$ProgramsTable = ReadFile "report.nightly.csv";
-
-ChangeDir( "../../..", "Programs Test Parent Directory" );
-return ($ProgramsTable, $llcbeta_options);
+  ChangeDir( "../../..", "Programs Test Parent Directory" );
+  return ($ProgramsTable, $llcbeta_options);
 }
 
-$patrickjenkins=1;
-if(!$patrickjenkins){
-if ( $VERBOSE ) {
-print "Modified Multisource Olden test stage\n";
-}
-($MultiSourceProgramsTable, $multisource_llcbeta_options) = 
TestDirectory("MultiSource/");
-ChangeDir( "../../..", "Programs Test Parent Directory" );
-
-
-WriteFile "$WebDir/multisourceprogramstable.txt", 
$MultiSourceProgramsTable;
-}
 if (!$BuildError && $patrickjenkins) {
 if ( $VERBOSE ) {
print "SingleSource TEST STAGE\n";



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


[llvm-commits] CVS: llvm/utils/NewNightlyTest.pl

2006-07-27 Thread Patrick Jenkins


Changes in directory llvm/utils:

NewNightlyTest.pl updated: 1.30 -> 1.31
---
Log message:

Added more descriptive output to singlesource,multisource tests.


---
Diffs of the changes:  (+30 -24)

 NewNightlyTest.pl |   54 ++
 1 files changed, 30 insertions(+), 24 deletions(-)


Index: llvm/utils/NewNightlyTest.pl
diff -u llvm/utils/NewNightlyTest.pl:1.30 llvm/utils/NewNightlyTest.pl:1.31
--- llvm/utils/NewNightlyTest.pl:1.30   Thu Jul 27 13:28:50 2006
+++ llvm/utils/NewNightlyTest.plThu Jul 27 14:00:01 2006
@@ -819,34 +819,40 @@
   return ($ProgramsTable, $llcbeta_options);
 }
 
-if (!$BuildError && $patrickjenkins) {
-if ( $VERBOSE ) {
-   print "SingleSource TEST STAGE\n";
-}
-($SingleSourceProgramsTable, $llcbeta_options) = 
TestDirectory("SingleSource");
-WriteFile "$Prefix-singlesourceprogramstable.txt", 
$SingleSourceProgramsTable;
-if ( $VERBOSE ) {
-   print "MultiSource TEST STAGE\n";
-}
-($MultiSourceProgramsTable, $llcbeta_options) = 
TestDirectory("MultiSource");
-WriteFile "$Prefix-multisourceprogramstable.txt", 
$MultiSourceProgramsTable;
-if ( ! $NOEXTERNALS ) {
+if (!$BuildError) {
if ( $VERBOSE ) {
-   print "External TEST STAGE\n";
+print "SingleSource TEST STAGE\n";
}
-   ($ExternalProgramsTable, $llcbeta_options) = TestDirectory("External");
-   WriteFile "$Prefix-externalprogramstable.txt", $ExternalProgramsTable;
-   system "cat $Prefix-singlesourceprogramstable.txt 
$Prefix-multisourceprogramstable.txt ".
-   " $Prefix-externalprogramstable.txt | sort > $Prefix-Tests.txt";
-} else {
-   $ExternalProgramsTable = "External TEST STAGE SKIPPED\n";
+   ($SingleSourceProgramsTable, $llcbeta_options) = 
TestDirectory("SingleSource");
if ( $VERBOSE ) {
-   print "External TEST STAGE SKIPPED\n";
+print "SingleSource returned $SingleSourceProgramsTable\n";
}
-   system "cat $Prefix-singlesourceprogramstable.txt 
$Prefix-multisourceprogramstable.txt ".
-   " | sort > $Prefix-Tests.txt";
-}
-WriteFile "$Prefix-externalprogramstable.txt", $ExternalProgramsTable;
+   WriteFile "$Prefix-singlesourceprogramstable.txt", 
$SingleSourceProgramsTable;
+   if ( $VERBOSE ) {
+ print "MultiSource TEST STAGE\n";
+   }
+   ($MultiSourceProgramsTable, $llcbeta_options) = 
TestDirectory("MultiSource");
+   WriteFile "$Prefix-multisourceprogramstable.txt", 
$MultiSourceProgramsTable;
+   if ( $VERBOSE ) {
+ print "MultiSource returned $MultiSourceProgramsTable\n";
+   }
+   if ( ! $NOEXTERNALS ) {
+ if ( $VERBOSE ) {
+ print "External TEST STAGE\n";
+ }
+ ($ExternalProgramsTable, $llcbeta_options) = 
TestDirectory("External");
+ WriteFile "$Prefix-externalprogramstable.txt", $ExternalProgramsTable;
+ system "cat $Prefix-singlesourceprogramstable.txt 
$Prefix-multisourceprogramstable.txt ".
+  " $Prefix-externalprogramstable.txt | sort > 
$Prefix-Tests.txt";
+   } else {
+ $ExternalProgramsTable = "External TEST STAGE SKIPPED\n";
+ if ( $VERBOSE ) {
+ print "External TEST STAGE SKIPPED\n";
+ }
+ system "cat $Prefix-singlesourceprogramstable.txt 
$Prefix-multisourceprogramstable.txt ".
+  " | sort > $Prefix-Tests.txt";
+   }
+   WriteFile "$Prefix-externalprogramstable.txt", $ExternalProgramsTable;
 }
 
 ##



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


[llvm-commits] CVS: nightlytest-serverside/test.php

2006-07-27 Thread Patrick Jenkins


Changes in directory nightlytest-serverside:

test.php updated: 1.9 -> 1.10
---
Log message:

Added some comments to clear up ambiguous code


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

 test.php |7 ++-
 1 files changed, 6 insertions(+), 1 deletion(-)


Index: nightlytest-serverside/test.php
diff -u nightlytest-serverside/test.php:1.9 nightlytest-serverside/test.php:1.10
--- nightlytest-serverside/test.php:1.9 Wed Jul 26 13:51:36 2006
+++ nightlytest-serverside/test.php Thu Jul 27 14:10:30 2006
@@ -110,7 +110,7 @@
 
 /*
  *
- * Printing the times table
+ * Printing link to build log
  *
  **/
 print"See 
Full Test Results\n";
@@ -121,6 +121,11 @@
  "View Build Log\n";
 }
 
+/*
+ *
+ * Printing the times table
+ *
+ **/
 if(strpos($today_row['buildstatus'], "OK")===FALSE){
$disp="";
$sign="(+)";



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


[llvm-commits] CVS: nightlytest-serverside/fulltest.php

2006-07-27 Thread Patrick Jenkins


Changes in directory nightlytest-serverside:

fulltest.php updated: 1.4 -> 1.5
---
Log message:

Added link to build log


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

 fulltest.php |   24 
 1 files changed, 24 insertions(+)


Index: nightlytest-serverside/fulltest.php
diff -u nightlytest-serverside/fulltest.php:1.4 
nightlytest-serverside/fulltest.php:1.5
--- nightlytest-serverside/fulltest.php:1.4 Wed Jul 19 11:13:30 2006
+++ nightlytest-serverside/fulltest.php Thu Jul 27 14:11:12 2006
@@ -96,6 +96,17 @@
 
 /*
  *
+ * Printing link to build log
+ *
+ **/
+$buildfile=str_replace(" ", "_", $cur_date);
+if(file_exists("machines/$machine_id/$buildfile-Build-Log.txt")){
+   print "".
+ "View Build Log\n";
+}
+
+/*
+ *
  * Printing the times table
  *
  **/
@@ -455,6 +466,19 @@
 
 /*
  *
+ * Printing file size information
+ *
+ **/
+print "(-) CVS information\n";
+print "\n";
+
+print"File Size information:\n";
+
+print "\n";
+
+
+/*
+ *
  * ending sidebar table here
  *
  **/



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


[llvm-commits] CVS: nightlytest-serverside/machine.php

2006-07-27 Thread Patrick Jenkins


Changes in directory nightlytest-serverside:

machine.php updated: 1.3 -> 1.4
---
Log message:

Tweaked the coloring scheme so that we dont consider test submissions with 
failed builds


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

 machine.php |7 ++-
 1 files changed, 6 insertions(+), 1 deletion(-)


Index: nightlytest-serverside/machine.php
diff -u nightlytest-serverside/machine.php:1.3 
nightlytest-serverside/machine.php:1.4
--- nightlytest-serverside/machine.php:1.3  Mon Jul 10 14:27:51 2006
+++ nightlytest-serverside/machine.php  Thu Jul 27 14:17:49 2006
@@ -360,7 +360,12 @@
print "View details\n";
echo "";
echo "";
-   $row = $prev_row;
+   
+   #this is to ensure we dont compare a test's statistics against
+   #a test that failed and has bogus statistics
+   if($build_ok){
+   $row = $prev_row;
+   }
$x++;
 } #end while
 



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


[llvm-commits] CVS: llvm/utils/NewNightlyTest.pl

2006-07-27 Thread Patrick Jenkins


Changes in directory llvm/utils:

NewNightlyTest.pl updated: 1.31 -> 1.32
---
Log message:

Fixed a stupid error where changedir returned false upon success.


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

 NewNightlyTest.pl |3 +--
 1 files changed, 1 insertion(+), 2 deletions(-)


Index: llvm/utils/NewNightlyTest.pl
diff -u llvm/utils/NewNightlyTest.pl:1.31 llvm/utils/NewNightlyTest.pl:1.32
--- llvm/utils/NewNightlyTest.pl:1.31   Thu Jul 27 14:00:01 2006
+++ llvm/utils/NewNightlyTest.plThu Jul 27 14:22:06 2006
@@ -307,7 +307,6 @@
print "ERROR!!! Cannot change directory to: $name ($dir) because $!"; 
return -1;
 }
-return 0;
 }
 
 #~
@@ -783,7 +782,7 @@
 sub TestDirectory {
my $SubDir = shift;

-   ChangeDir( "projects/llvm-test/$SubDir", "Programs Test Subdirectory" ) 
|| return ("", "");
+   ChangeDir( "$BuildDir/llvm/projects/llvm-test/$SubDir", "Programs Test 
Subdirectory" ) || return ("", "");

my $ProgramTestLog = "$Prefix-$SubDir-ProgramTest.txt";




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


[llvm-commits] CVS: nightlytest-serverside/machine.php

2006-07-27 Thread Patrick Jenkins


Changes in directory nightlytest-serverside:

machine.php updated: 1.4 -> 1.5
---
Log message:

My last commit tried to fix the issue where the coloring of the machine's test 
table could be bsaed on a comparison to a failed test, and thus bogus data. 
However that fix didnt work. This one fixes my previous error and hopefully 
ignores tests that have a failed build.


---
Diffs of the changes:  (+138 -134)

 machine.php |  272 ++--
 1 files changed, 138 insertions(+), 134 deletions(-)


Index: nightlytest-serverside/machine.php
diff -u nightlytest-serverside/machine.php:1.4 
nightlytest-serverside/machine.php:1.5
--- nightlytest-serverside/machine.php:1.4  Thu Jul 27 14:17:49 2006
+++ nightlytest-serverside/machine.php  Thu Jul 27 14:29:35 2006
@@ -183,17 +183,15 @@
 $line=1;
 $row = mysql_fetch_array($result);
 $x=0;
-while($x<10 && $prev_row = mysql_fetch_array($result)){
 
 
-$warnings ="";
-if(strcmp($row['warnings'],"")!=0){
-   $warnings=$row['warnings'];
-}
+while($x<10 && $prev_row = mysql_fetch_array($result)){
+   $warnings ="";
+   if(strcmp($row['warnings'],"")!=0){
+   $warnings=$row['warnings'];
+   }
+   $num_warnings = preg_match_all('/warning/', $warnings, $match); 
 
-$num_warnings = preg_match_all('/warning/', $warnings, $match);
-   
-   
if(strpos($row['buildstatus'],"OK")===FALSE){
print "\t\n";
$build_ok=0;
@@ -207,165 +205,171 @@
$build_ok=1;
}   
$line++;
+   
+   #this test is to test whether the test that precedes this failed,
+   #thus the test would have bogus data and we shouldnt color based on its
+   #results
+   if(strpos($prev_row['buildstatus'],"OK")===false){
+   $prev_build_ok=0;
+   }
+   else{
+   $prev_build_ok=1;
+   }
 
-   /* Date of test */
+   /* Date of test */
 
-   echo "";
-   $date = 
preg_replace("/\s\d\d:\d\d:\d\d/","",$row['added']);
-   echo "$date";
-   echo "";
+   echo "";
+   $date = preg_replace("/\s\d\d:\d\d:\d\d/","",$row['added']);
+   echo "$date";
+   echo "";
 
-   /* Get CVS Wall Time */
+   /* Get CVS Wall Time */
 
-   
-   echo "";
-   echo $row['getcvstime_wall'];
-   echo "";
-
-   /* Configure Time CPU */
-   if($prev_row['configuretime_cpu']!=0 && $build_ok){
-   $delta = round(( ($prev_row['configuretime_cpu'] - 
$row['configuretime_cpu']) / $prev_row['configuretime_cpu'] ) * 100,2);
-   if ($delta > 20){
-   print "{$row['configuretime_cpu']}";
-   }
-   else if ($delta < -20){
-   print "{$row['configuretime_cpu']}";
-   }
-   else{
-   print "{$row['configuretime_cpu']}";
-   }
+
+   echo "";
+   echo $row['getcvstime_wall'];
+   echo "";
+
+   /* Configure Time CPU */
+   if($prev_row['configuretime_cpu']!=0 && $build_ok && $prev_build_ok){
+   $delta = round(( ($prev_row['configuretime_cpu'] - 
$row['configuretime_cpu']) / $prev_row['configuretime_cpu'] ) * 100,2);
+   if ($delta > 20){
+   print "{$row['configuretime_cpu']}";
+   }
+   else if ($delta < -20){
+   print "{$row['configuretime_cpu']}";
}
else{
print "{$row['configuretime_cpu']}";
}
+   }
+   else{
+   print "{$row['configuretime_cpu']}";
+   }
+
+   /* Configure Time Wall */
 
-   /* Configure Time Wall */
+   echo "";
+   echo $row['configuretime_wall'];
+   echo "";
 
-   echo "";
-   echo $row['configuretime_wall'];
-   echo "";
-
-   /* Build Time CPU */
-
-   if($prev_row['buildtime_cpu']!=0 && $build_ok){
-   $delta = round(( ($prev_row['buildtime_cpu'] - 
$row['buildtime_cpu']) / $prev_row['buildtime_cpu'] ) * 100,2);
-   if ($delta > 10){
-   print "{$row['buildtime_cpu']}";
-   }
-   else if ($delta < -10){
-   print "{$row['buildtime_cpu']}";
-   }
-   else{
-   print "{$row['bu

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

2006-07-27 Thread Evan Cheng


Changes in directory llvm/utils/TableGen:

DAGISelEmitter.cpp updated: 1.227 -> 1.228
---
Log message:

Remove dead code.

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

 DAGISelEmitter.cpp |   29 -
 1 files changed, 29 deletions(-)


Index: llvm/utils/TableGen/DAGISelEmitter.cpp
diff -u llvm/utils/TableGen/DAGISelEmitter.cpp:1.227 
llvm/utils/TableGen/DAGISelEmitter.cpp:1.228
--- llvm/utils/TableGen/DAGISelEmitter.cpp:1.227Thu Jul 27 01:36:11 2006
+++ llvm/utils/TableGen/DAGISelEmitter.cpp  Thu Jul 27 14:59:34 2006
@@ -3644,35 +3644,6 @@
   OS << "std::set InFlightSet;\n";
 
   OS << "\n";
-  OS << "static void findNonImmUse(SDNode* Use, SDNode* Def, bool &found, "
- << "std::set &Visited) {\n";
-  OS << "  if (found || !Visited.insert(Use).second) return;\n";
-  OS << "  for (unsigned i = 0, e = Use->getNumOperands(); i != e; ++i) {\n";
-  OS << "SDNode *N = Use->getOperand(i).Val;\n";
-  OS << "if (N != Def) {\n";
-  OS << "  findNonImmUse(N, Def, found, Visited);\n";
-  OS << "} else {\n";
-  OS << "  found = true;\n";
-  OS << "  break;\n";
-  OS << "}\n";
-  OS << "  }\n";
-  OS << "}\n";
-
-  OS << "\n";
-  OS << "static bool isNonImmUse(SDNode* Use, SDNode* Def) {\n";
-  OS << "  std::set Visited;\n";
-  OS << "  bool found = false;\n";
-  OS << "  for (unsigned i = 0, e = Use->getNumOperands(); i != e; ++i) {\n";
-  OS << "SDNode *N = Use->getOperand(i).Val;\n";
-  OS << "if (N != Def) {\n";
-  OS << "  findNonImmUse(N, Def, found, Visited);\n";
-  OS << "  if (found) break;\n";
-  OS << "}\n";
-  OS << "  }\n";
-  OS << "  return found;\n";
-  OS << "}\n";
-
-  OS << "\n";
   OS << "// AddHandleReplacement - Note the pending replacement node for a\n"
  << "// handle node in ReplaceMap.\n";
   OS << "void AddHandleReplacement(SDNode *H, unsigned HNum, SDNode *R, "



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


[llvm-commits] CVS: llvm/include/llvm/PassSupport.h

2006-07-27 Thread Jim Laskey


Changes in directory llvm/include/llvm:

PassSupport.h updated: 1.24 -> 1.25
---
Log message:

Working toward registration of register allocators.


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

 PassSupport.h |   70 ++
 1 files changed, 70 insertions(+)


Index: llvm/include/llvm/PassSupport.h
diff -u llvm/include/llvm/PassSupport.h:1.24 
llvm/include/llvm/PassSupport.h:1.25
--- llvm/include/llvm/PassSupport.h:1.24Wed Jul 26 11:18:00 2006
+++ llvm/include/llvm/PassSupport.h Thu Jul 27 15:04:59 2006
@@ -368,6 +368,76 @@
   virtual void passEnumerate(const PassInfo *P) {}
 };
 
+
+//===-===//
+///
+/// RegisterRegAlloc class - Track the registration of register allocators.
+///
+class RegisterRegAlloc {
+
+public:
+
+  typedef FunctionPass *(*FunctionPassCtor)();
+
+private:
+
+  static RegisterRegAlloc *List;// Linked list of register allocators.
+  
+  RegisterRegAlloc *Next;   // Next allocation scheme in list.
+  const char *Name; // Name of register allocator.
+  const char *Description;  // Description string.
+  FunctionPassCtor Ctor;// Function to construct register
+// allocator pass.
+public:
+
+  RegisterRegAlloc(const char *N, const char *D, FunctionPassCtor C)
+  : Name(N)
+  , Description(D)
+  , Ctor(C) {
+Add();
+  }
+  
+  ~RegisterRegAlloc() {
+Remove();
+  }
+  
+  
+  // Accessors
+  const char *getName()const { return Name; }
+  const char *getDescription() const { return Description; }
+  FunctionPassCtor getCtor()   const { return Ctor; }
+  
+  
+  /// Add - Adds a register allocator to the registration list.
+  ///
+  void Add() {
+Next = List;
+List = this;
+  }
+  
+
+  /// Remove - Removes a register allocator from the registration list.
+  ///
+  void Remove() {
+for (RegisterRegAlloc **RA = &List; *RA; RA = &(*RA)->Next) {
+  if (*RA == this) {
+*RA = Next;
+break;
+  }
+}
+  }
+  
+  
+  /// Find - Finds a register allocator in registration list.
+  ///
+  static FunctionPassCtor Find(const char *N);
+
+#ifndef NDEBUG  
+  static void print();
+#endif
+};
+
+
 } // End llvm namespace
 
 #endif



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


[llvm-commits] CVS: llvm/lib/CodeGen/Passes.cpp

2006-07-27 Thread Jim Laskey


Changes in directory llvm/lib/CodeGen:

Passes.cpp updated: 1.17 -> 1.18
---
Log message:

Working toward registration of register allocators.


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

 Passes.cpp |   58 +++---
 1 files changed, 47 insertions(+), 11 deletions(-)


Index: llvm/lib/CodeGen/Passes.cpp
diff -u llvm/lib/CodeGen/Passes.cpp:1.17 llvm/lib/CodeGen/Passes.cpp:1.18
--- llvm/lib/CodeGen/Passes.cpp:1.17Thu Jul 20 12:28:38 2006
+++ llvm/lib/CodeGen/Passes.cpp Thu Jul 27 15:05:00 2006
@@ -13,6 +13,7 @@
 //===-===//
 
 #include "llvm/CodeGen/Passes.h"
+#include "llvm/Pass.h"
 #include "llvm/Support/CommandLine.h"
 #include 
 using namespace llvm;
@@ -33,17 +34,52 @@
 cl::init(linearscan));
 }
 
-FunctionPass *llvm::createRegisterAllocator() {
-  switch (RegAlloc) {
-  default:
-std::cerr << "no register allocator selected";
-abort();
-  case simple:
-return createSimpleRegisterAllocator();
-  case local:
-return createLocalRegisterAllocator();
-  case linearscan:
-return createLinearScanRegisterAllocator();
+
+RegisterRegAlloc *RegisterRegAlloc::List = NULL;
+
+/// Find - Finds a register allocator in registration list.
+///
+RegisterRegAlloc::FunctionPassCtor RegisterRegAlloc::Find(const char *N) {
+  for (RegisterRegAlloc *RA = List; RA; RA = RA->Next) {
+if (strcmp(N, RA->Name) == 0) return RA->Ctor;
   }
+  return NULL;
 }
 
+
+#ifndef NDEBUG  
+void RegisterRegAlloc::print() {
+  for (RegisterRegAlloc *RA = List; RA; RA = RA->Next) {
+std::cerr << "RegAlloc:" << RA->Name << "\n";
+  }
+}
+#endif
+
+
+static RegisterRegAlloc
+  simpleRegAlloc("simple", "  simple register allocator",
+ createSimpleRegisterAllocator);
+
+static RegisterRegAlloc
+  localRegAlloc("local", "  local register allocator",
+createLocalRegisterAllocator);
+
+static RegisterRegAlloc
+  linearscanRegAlloc("linearscan", "linear scan register allocator",
+ createLinearScanRegisterAllocator);
+
+
+FunctionPass *llvm::createRegisterAllocator() {
+  const char *Names[] = {"simple", "local", "linearscan"};
+  const char *DefltName = "linearscan";
+  
+  RegisterRegAlloc::FunctionPassCtor Ctor =
+RegisterRegAlloc::Find(Names[RegAlloc]);
+  if (!Ctor) Ctor = RegisterRegAlloc::Find(DefltName);
+
+  assert(Ctor && "No register allocator found");
+  
+  return Ctor();
+}
+
+



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


[llvm-commits] CVS: llvm/utils/NewNightlyTest.pl

2006-07-27 Thread Patrick Jenkins


Changes in directory llvm/utils:

NewNightlyTest.pl updated: 1.32 -> 1.33
---
Log message:

ChangeDir now returns the correct value


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

 NewNightlyTest.pl |3 ++-
 1 files changed, 2 insertions(+), 1 deletion(-)


Index: llvm/utils/NewNightlyTest.pl
diff -u llvm/utils/NewNightlyTest.pl:1.32 llvm/utils/NewNightlyTest.pl:1.33
--- llvm/utils/NewNightlyTest.pl:1.32   Thu Jul 27 14:22:06 2006
+++ llvm/utils/NewNightlyTest.plThu Jul 27 15:21:26 2006
@@ -305,8 +305,9 @@
 $result = chdir($dir);
 if(!$result){
print "ERROR!!! Cannot change directory to: $name ($dir) because $!"; 
-   return -1;
+   return false;
 }
+return true;
 }
 
 #~



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


[llvm-commits] CVS: llvm/utils/NewNightlyTest.pl

2006-07-27 Thread Patrick Jenkins


Changes in directory llvm/utils:

NewNightlyTest.pl updated: 1.33 -> 1.34
---
Log message:

Removed some unneccesary print statemnts


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

 NewNightlyTest.pl |1 -
 1 files changed, 1 deletion(-)


Index: llvm/utils/NewNightlyTest.pl
diff -u llvm/utils/NewNightlyTest.pl:1.33 llvm/utils/NewNightlyTest.pl:1.34
--- llvm/utils/NewNightlyTest.pl:1.33   Thu Jul 27 15:21:26 2006
+++ llvm/utils/NewNightlyTest.plThu Jul 27 16:01:39 2006
@@ -1043,7 +1043,6 @@
 }
 else{
   $gcc_version_long = `gcc --version`;
-  print "gcc --version\n";
 }
 @GCC_VERSION = split '\n', $gcc_version_long;
 my $gcc_version = $GCC_VERSION[0];



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


[llvm-commits] CVS: nightlytest-serverside/index.php

2006-07-27 Thread Patrick Jenkins


Changes in directory nightlytest-serverside:

index.php updated: 1.7 -> 1.8
---
Log message:

Changed date added column to read time submitted


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

 index.php |2 +-
 1 files changed, 1 insertion(+), 1 deletion(-)


Index: nightlytest-serverside/index.php
diff -u nightlytest-serverside/index.php:1.7 
nightlytest-serverside/index.php:1.8
--- nightlytest-serverside/index.php:1.7Mon Jul 10 13:13:04 2006
+++ nightlytest-serverside/index.phpThu Jul 27 16:02:42 2006
@@ -29,7 +29,7 @@
 print "Tests submitted in last 24 hours:";
 print "\n";
 print "\t";
-print "\t\tDate added\n";
+print "\t\tTime submitted\n";
 print "\t\tMachine name\n";
 print "\t\tBuild status\n";
print "\t\t# of expected test passes\n";



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


[llvm-commits] CVS: nightlytest-serverside/NightlyTestAccept.cgi

2006-07-27 Thread Patrick Jenkins


Changes in directory nightlytest-serverside:

NightlyTestAccept.cgi updated: 1.34 -> 1.35
---
Log message:

the file size information shoudl be submitted to the database successfully



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

 NightlyTestAccept.cgi |   10 +++---
 1 files changed, 3 insertions(+), 7 deletions(-)


Index: nightlytest-serverside/NightlyTestAccept.cgi
diff -u nightlytest-serverside/NightlyTestAccept.cgi:1.34 
nightlytest-serverside/NightlyTestAccept.cgi:1.35
--- nightlytest-serverside/NightlyTestAccept.cgi:1.34   Wed Jul 26 20:22:51 2006
+++ nightlytest-serverside/NightlyTestAccept.cgiThu Jul 27 16:12:36 2006
@@ -373,7 +373,7 @@
 #~~
 sub AddFile{ #$file, $size, $night, $type
$query = "INSERT INTO file (file, size, night, type) VALUES 
(\"$_[0]\", ".
-"\"$_[1]\", \"$_[2]\", $_[3])";
+"\"$_[1]\", \"$_[2]\", 
\"$_[3]\")";
 my $d = $dbh->prepare($query);
 $d->execute;
 }
@@ -448,10 +448,6 @@
 $external_tests = "" unless $external_tests;
 my @EXTERNAL_TESTS = split $spliton, $external_tests;
 
-my $olden_tests=param('olden_tests');
-   $olden_tests="" unless $olden_tests;
-my @OLDEN_TESTS = split $spliton, $singlesource_tests;
-
 my $o_file_size = param('o_file_sizes'); 
 $o_file_size="" unless $o_file_size;
 chomp($o_file_size);
@@ -643,12 +639,12 @@
 }
 
 foreach $x (@O_FILE_SIZE){
-   $x =~ m/(.+)\s+(.+)\s+(.+)/gi;
+   $x =~ m/(.+)\s+(.+)\s+(.+)/;
AddFile $2, $1, $night_id, $3;
 }
 
 foreach $x (@A_FILE_SIZE){
-   $x =~ m/(.+)\s+(.+)\s+(.+)/gi;
+   $x =~ m/(.+)\s+(.+)\s+(.+)/;
AddFile $2, $1, $night_id, $3;
 }
 



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


[llvm-commits] CVS: llvm/lib/Target/X86/X86ISelDAGToDAG.cpp

2006-07-27 Thread Evan Cheng


Changes in directory llvm/lib/Target/X86:

X86ISelDAGToDAG.cpp updated: 1.76 -> 1.77
---
Log message:

isNonImmUse is replaced by IsFoldableBy

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

 X86ISelDAGToDAG.cpp |2 +-
 1 files changed, 1 insertion(+), 1 deletion(-)


Index: llvm/lib/Target/X86/X86ISelDAGToDAG.cpp
diff -u llvm/lib/Target/X86/X86ISelDAGToDAG.cpp:1.76 
llvm/lib/Target/X86/X86ISelDAGToDAG.cpp:1.77
--- llvm/lib/Target/X86/X86ISelDAGToDAG.cpp:1.76Thu Jul 27 11:44:36 2006
+++ llvm/lib/Target/X86/X86ISelDAGToDAG.cpp Thu Jul 27 16:19:10 2006
@@ -640,7 +640,7 @@
   if (N.getOpcode() == ISD::LOAD &&
   N.hasOneUse() &&
   !CodeGenMap.count(N.getValue(0)) &&
-  (P.getNumOperands() == 1 || !isNonImmUse(P.Val, N.Val)))
+  !IsFoldableBy(N.Val, P.Val))
 return SelectAddr(N.getOperand(1), Base, Scale, Index, Disp);
   return false;
 }



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


[llvm-commits] CVS: llvm/lib/Target/X86/X86ISelDAGToDAG.cpp

2006-07-27 Thread Evan Cheng


Changes in directory llvm/lib/Target/X86:

X86ISelDAGToDAG.cpp updated: 1.77 -> 1.78
---
Log message:

Calculate the portion of reachbility matrix on demand.

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

 X86ISelDAGToDAG.cpp |   53 +---
 1 files changed, 42 insertions(+), 11 deletions(-)


Index: llvm/lib/Target/X86/X86ISelDAGToDAG.cpp
diff -u llvm/lib/Target/X86/X86ISelDAGToDAG.cpp:1.77 
llvm/lib/Target/X86/X86ISelDAGToDAG.cpp:1.78
--- llvm/lib/Target/X86/X86ISelDAGToDAG.cpp:1.77Thu Jul 27 16:19:10 2006
+++ llvm/lib/Target/X86/X86ISelDAGToDAG.cpp Thu Jul 27 17:10:00 2006
@@ -124,7 +124,7 @@
 
   private:
 void DetermineTopologicalOrdering();
-void DeterminReachibility();
+void DeterminReachibility(SDNode *f, SDNode *t);
 
 void Select(SDOperand &Result, SDOperand N);
 
@@ -186,7 +186,15 @@
 
 /// TopOrder - Topological ordering of all nodes in the DAG.
 ///
-std::vector TopOrder;
+SDNode* *TopOrder;
+
+/// IdToOrder - Node id to topological order map.
+///
+unsigned *IdToOrder;
+
+/// RMRange - The range of reachibility information available for the
+/// particular source node.
+unsigned *RMRange;
 
 /// ReachibilityMatrix - A N x N matrix representing all pairs reachibility
 /// information. One bit per potential edge.
@@ -221,8 +229,7 @@
   //  /[X]
   //  | ^
   // [U]|
-  if (!ReachibilityMatrix)
-DeterminReachibility();
+  DeterminReachibility(U, N);
   assert(isReachable(U, N) && "Attempting to fold a non-operand node?");
   for (SDNode::op_iterator I = U->op_begin(), E = U->op_end(); I != E; ++I) {
 SDNode *P = I->Val;
@@ -236,7 +243,11 @@
 /// in the DAG.
 void X86DAGToDAGISel::DetermineTopologicalOrdering() {
   DAGSize = CurDAG->AssignNodeIds();
-  TopOrder.reserve(DAGSize);
+  TopOrder = new SDNode*[DAGSize];
+  IdToOrder = new unsigned[DAGSize];
+  memset(IdToOrder, 0, DAGSize * sizeof(unsigned));
+  RMRange = new unsigned[DAGSize];
+  memset(RMRange, 0, DAGSize * sizeof(unsigned));
 
   std::vector InDegree(DAGSize);
   std::list Sources;
@@ -254,6 +265,7 @@
 SDNode *N = Sources.front();
 Sources.pop_front();
 TopOrder[Order] = N;
+IdToOrder[N->getNodeId()] = Order;
 Order++;
 for (SDNode::op_iterator I = N->op_begin(), E = N->op_end(); I != E; ++I) {
   SDNode *P = I->Val;
@@ -266,19 +278,31 @@
   }
 }
 
-void X86DAGToDAGISel::DeterminReachibility() {
-  DetermineTopologicalOrdering();
-  ReachibilityMatrix = new unsigned char[DAGSize * DAGSize];
-  memset(ReachibilityMatrix, 0, DAGSize * DAGSize * sizeof(unsigned char));
+void X86DAGToDAGISel::DeterminReachibility(SDNode *f, SDNode *t) {
+  if (!ReachibilityMatrix) {
+DetermineTopologicalOrdering();
+ReachibilityMatrix = new unsigned char[DAGSize * DAGSize];
+memset(ReachibilityMatrix, 0, DAGSize * DAGSize * sizeof(unsigned char));
+  }
 
-  for (unsigned i = 0; i < DAGSize; ++i) {
+  int Idf = f->getNodeId();
+  int Idt = t->getNodeId();
+  unsigned Orderf = IdToOrder[Idf];
+  unsigned Ordert = IdToOrder[Idt];
+  unsigned Range = RMRange[Idf];
+  if (Range >= Ordert)
+return;
+  if (Range < Orderf)
+Range = Orderf;
+
+  for (unsigned i = Range; i < Ordert; ++i) {
 SDNode *N = TopOrder[i];
 setReachable(N, N);
 // If N is a leaf node, there is nothing more to do.
 if (N->getNumOperands() == 0)
   continue;
 
-for (unsigned i2 = 0; ; ++i2) {
+for (unsigned i2 = Orderf; ; ++i2) {
   SDNode *M = TopOrder[i2];
   if (isReachable(M, N)) {
 // Update reachibility from M to N's operands.
@@ -288,6 +312,8 @@
   if (M == N) break;
 }
   }
+
+  RMRange[Idf] = Ordert;
 }
 
 /// InstructionSelectBasicBlock - This callback is invoked by SelectionDAGISel
@@ -308,7 +334,12 @@
 #endif
   if (ReachibilityMatrix) {
 delete[] ReachibilityMatrix;
+delete[] TopOrder;
+delete[] IdToOrder;
+delete[] RMRange;
 ReachibilityMatrix = NULL;
+TopOrder = NULL;
+IdToOrder = RMRange = NULL;
   }
   CodeGenMap.clear();
   HandleMap.clear();



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


[llvm-commits] CVS: llvm/lib/Target/X86/X86ISelDAGToDAG.cpp

2006-07-27 Thread Evan Cheng


Changes in directory llvm/lib/Target/X86:

X86ISelDAGToDAG.cpp updated: 1.78 -> 1.79
---
Log message:

Allocating too large an array for ReachibilityMatrix.

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

 X86ISelDAGToDAG.cpp |7 +--
 1 files changed, 5 insertions(+), 2 deletions(-)


Index: llvm/lib/Target/X86/X86ISelDAGToDAG.cpp
diff -u llvm/lib/Target/X86/X86ISelDAGToDAG.cpp:1.78 
llvm/lib/Target/X86/X86ISelDAGToDAG.cpp:1.79
--- llvm/lib/Target/X86/X86ISelDAGToDAG.cpp:1.78Thu Jul 27 17:10:00 2006
+++ llvm/lib/Target/X86/X86ISelDAGToDAG.cpp Thu Jul 27 17:35:40 2006
@@ -281,8 +281,11 @@
 void X86DAGToDAGISel::DeterminReachibility(SDNode *f, SDNode *t) {
   if (!ReachibilityMatrix) {
 DetermineTopologicalOrdering();
-ReachibilityMatrix = new unsigned char[DAGSize * DAGSize];
-memset(ReachibilityMatrix, 0, DAGSize * DAGSize * sizeof(unsigned char));
+unsigned RMSize = DAGSize * DAGSize / 8;
+if ((DAGSize * DAGSize) % 8)
+  RMSize++;
+ReachibilityMatrix = new unsigned char[RMSize];
+memset(ReachibilityMatrix, 0, RMSize);
   }
 
   int Idf = f->getNodeId();



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


[llvm-commits] CVS: llvm/utils/GenLibDeps.pl

2006-07-27 Thread Reid Spencer


Changes in directory llvm/utils:

GenLibDeps.pl updated: 1.9 -> 1.10
---
Log message:

Changes to support cross-compiling LLVM. The GenLibDeps.pl script needs to
have a compile-host version of "nm", not build-host. In order to effect this
we must use autoconf to determine the correct "nm" to use and propagate that
through the makefiles, through llvm-config and finally to GenLibDeps.pl as
an optional argument. 
Patch contributed by Anton Korobeynikov. Thanks!


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

 GenLibDeps.pl |9 ++---
 1 files changed, 6 insertions(+), 3 deletions(-)


Index: llvm/utils/GenLibDeps.pl
diff -u llvm/utils/GenLibDeps.pl:1.9 llvm/utils/GenLibDeps.pl:1.10
--- llvm/utils/GenLibDeps.pl:1.9Tue Jul 25 14:12:06 2006
+++ llvm/utils/GenLibDeps.plThu Jul 27 18:00:30 2006
@@ -6,7 +6,7 @@
 #   libraries. The output of this script should periodically replace 
 #   the similar content in the UsingLibraries.html document.
 #
-# Syntax:   GenLibDeps.pl [-flat] 
+# Syntax:   GenLibDeps.pl [-flat]  
[path_to_nm_binary]
 #
 
 # Parse arguments... 
@@ -24,6 +24,7 @@
 
 # Give first option a name.
 my $Directory = $ARGV[0];
+my $nmPath = $ARGV[1];
 
 # Find the "dot" program
 my $DotPath="";
@@ -32,8 +33,10 @@
   die "Can't find 'dot'" if (! -x "$DotPath");
 }
 
-chomp(my $nmPath=`which nm`);
-die "Can't find 'nm'" if (! -x "$nmPath");
+if ($nmPath eq "") {
+chomp($nmPath=`which nm`);
+die "Can't find 'nm'" if (! -x "$nmPath");
+}
 
 # Open the directory and read its contents, sorting by name and differentiating
 # by whether its a library (.a) or an object file (.o)



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


[llvm-commits] CVS: llvm/tools/llvm-config/Makefile llvm-config.in.in

2006-07-27 Thread Reid Spencer


Changes in directory llvm/tools/llvm-config:

Makefile updated: 1.12 -> 1.13
llvm-config.in.in updated: 1.18 -> 1.19
---
Log message:

Changes to support cross-compiling LLVM. The GenLibDeps.pl script needs to
have a compile-host version of "nm", not build-host. In order to effect this
we must use autoconf to determine the correct "nm" to use and propagate that
through the makefiles, through llvm-config and finally to GenLibDeps.pl as
an optional argument. 
Patch contributed by Anton Korobeynikov. Thanks!


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

 Makefile  |2 +-
 llvm-config.in.in |3 ++-
 2 files changed, 3 insertions(+), 2 deletions(-)


Index: llvm/tools/llvm-config/Makefile
diff -u llvm/tools/llvm-config/Makefile:1.12 
llvm/tools/llvm-config/Makefile:1.13
--- llvm/tools/llvm-config/Makefile:1.12Wed Jul 26 12:10:54 2006
+++ llvm/tools/llvm-config/Makefile Thu Jul 27 18:00:30 2006
@@ -33,7 +33,7 @@
 
 $(LibDeps): $(GenLibDeps) $(LibDir) $(wildcard $(LibDir)/*.a $(LibDir)/*.o)
$(Echo) "Regenerating LibDeps.txt"
-   $(Verb) $(GenLibDeps) -flat $(LibDir) | sort > $(LibDeps)
+   $(Verb) $(GenLibDeps) -flat $(LibDir) $(NM_PATH) | sort > $(LibDeps)
 
 # Find all the cyclic dependencies between various LLVM libraries, so we
 # don't have to process them at runtime.


Index: llvm/tools/llvm-config/llvm-config.in.in
diff -u llvm/tools/llvm-config/llvm-config.in.in:1.18 
llvm/tools/llvm-config/llvm-config.in.in:1.19
--- llvm/tools/llvm-config/llvm-config.in.in:1.18   Tue Jun  6 19:43:18 2006
+++ llvm/tools/llvm-config/llvm-config.in.inThu Jul 27 18:00:30 2006
@@ -47,6 +47,7 @@
 # begin Makefile values 
 my $CXXFLAGS= [EMAIL PROTECTED]@};
 my $LDFLAGS = [EMAIL PROTECTED]@};
+my $SYSTEM_LIBS = [EMAIL PROTECTED]@};
 my $LLVM_BUILDMODE  = [EMAIL PROTECTED]@};
 # end Makefile values 
 
@@ -109,7 +110,7 @@
 } elsif ($arg eq "--cxxflags") {
 $has_opt = 1; print "-I$INCLUDEDIR $CXXFLAGS\n";
 } elsif ($arg eq "--ldflags") {
-$has_opt = 1; print "-L$LIBDIR $LDFLAGS\n";
+$has_opt = 1; print "-L$LIBDIR $LDFLAGS $SYSTEM_LIBS\n";
 } elsif ($arg eq "--libs") {
 $has_opt = 1; $want_libs = 1;
 } elsif ($arg eq "--libnames") {



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


[llvm-commits] CVS: llvm/tools/analyze/Makefile

2006-07-27 Thread Reid Spencer


Changes in directory llvm/tools/analyze:

Makefile updated: 1.32 -> 1.33
---
Log message:

Changes to support cross-compiling LLVM. The GenLibDeps.pl script needs to
have a compile-host version of "nm", not build-host. In order to effect this
we must use autoconf to determine the correct "nm" to use and propagate that
through the makefiles, through llvm-config and finally to GenLibDeps.pl as
an optional argument. 
Patch contributed by Anton Korobeynikov. Thanks!


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

 Makefile |2 ++
 1 files changed, 2 insertions(+)


Index: llvm/tools/analyze/Makefile
diff -u llvm/tools/analyze/Makefile:1.32 llvm/tools/analyze/Makefile:1.33
--- llvm/tools/analyze/Makefile:1.32Thu Jul  6 19:46:18 2006
+++ llvm/tools/analyze/Makefile Thu Jul 27 18:00:30 2006
@@ -8,6 +8,8 @@
 
##===--===##
 LEVEL = ../..
 TOOLNAME = analyze
+#TOOLLINKOPTS = $(LINKALL)
+#TOOLLINKOPTSB = $(NOLINKALL)
 USEDLIBS = LLVMAsmParser.a LLVMBCReader.a LLVMAnalysis.a LLVMipa.a \
LLVMDataStructure \
   LLVMScalarOpts.a LLVMTransforms.a LLVMTarget.a LLVMScalarOpts.a \



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


[llvm-commits] CVS: llvm/autoconf/configure.ac

2006-07-27 Thread Reid Spencer


Changes in directory llvm/autoconf:

configure.ac updated: 1.239 -> 1.240
---
Log message:

Changes to support cross-compiling LLVM. The GenLibDeps.pl script needs to
have a compile-host version of "nm", not build-host. In order to effect this
we must use autoconf to determine the correct "nm" to use and propagate that
through the makefiles, through llvm-config and finally to GenLibDeps.pl as
an optional argument. 
Patch contributed by Anton Korobeynikov. Thanks!


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

 configure.ac |3 +++
 1 files changed, 3 insertions(+)


Index: llvm/autoconf/configure.ac
diff -u llvm/autoconf/configure.ac:1.239 llvm/autoconf/configure.ac:1.240
--- llvm/autoconf/configure.ac:1.239Wed Jul 26 23:58:33 2006
+++ llvm/autoconf/configure.ac  Thu Jul 27 18:00:30 2006
@@ -357,6 +357,9 @@
 AC_PROG_FLEX
 AC_PROG_BISON
 
+AC_PROG_NM
+AC_SUBST(NM)
+
 dnl Check for the tools that the makefiles require
 AC_CHECK_GNU_MAKE
 AC_PROG_LN_S



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


[llvm-commits] CVS: llvm/Makefile.config.in configure

2006-07-27 Thread Reid Spencer


Changes in directory llvm:

Makefile.config.in updated: 1.60 -> 1.61
configure updated: 1.241 -> 1.242
---
Log message:

Changes to support cross-compiling LLVM. The GenLibDeps.pl script needs to
have a compile-host version of "nm", not build-host. In order to effect this
we must use autoconf to determine the correct "nm" to use and propagate that
through the makefiles, through llvm-config and finally to GenLibDeps.pl as
an optional argument. 
Patch contributed by Anton Korobeynikov. Thanks!


---
Diffs of the changes:  (+91 -85)

 Makefile.config.in |3 
 configure  |  173 ++---
 2 files changed, 91 insertions(+), 85 deletions(-)


Index: llvm/Makefile.config.in
diff -u llvm/Makefile.config.in:1.60 llvm/Makefile.config.in:1.61
--- llvm/Makefile.config.in:1.60Wed Jul 26 16:14:55 2006
+++ llvm/Makefile.config.in Thu Jul 27 18:00:30 2006
@@ -129,6 +129,9 @@
 # Path to the library archiver program.
 AR_PATH = @AR@
 
+# Path to the nm program
+NM_PATH = @NM@
+
 # The pathnames of the programs we require to build
 BISON  := @BISON@
 CMP:= @CMP@


Index: llvm/configure
diff -u llvm/configure:1.241 llvm/configure:1.242
--- llvm/configure:1.241Wed Jul 26 16:14:55 2006
+++ llvm/configure  Thu Jul 27 18:00:30 2006
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.59 for llvm 1.8cvs.
+# Generated by GNU Autoconf 2.59 for llvm 1.9cvs.
 #
 # Report bugs to <[EMAIL PROTECTED]>.
 #
@@ -425,8 +425,8 @@
 # Identity of this package.
 PACKAGE_NAME='llvm'
 PACKAGE_TARNAME='-llvm-'
-PACKAGE_VERSION='1.8cvs'
-PACKAGE_STRING='llvm 1.8cvs'
+PACKAGE_VERSION='1.9cvs'
+PACKAGE_STRING='llvm 1.9cvs'
 PACKAGE_BUGREPORT='[EMAIL PROTECTED]'
 
 ac_unique_file="lib/VMCore/Module.cpp"
@@ -477,7 +477,7 @@
 # include 
 #endif"
 
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME 
PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix 
program_transform_name bindir sbindir libexecdir datadir sysconfdir 
sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir 
build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS 
LLVM_COPYRIGHT subdirs build build_cpu build_vendor build_os host host_cpu 
host_vendor host_os target target_cpu target_vendor target_os OS LLVM_ON_UNIX 
LLVM_ON_WIN32 ARCH ENDIAN CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT 
LLVM_CROSS_COMPILING BUILD_CC BUILD_EXEEXT CVSBUILD ENABLE_OPTIMIZED 
DISABLE_ASSERTIONS DEBUG_RUNTIME JIT TARGET_HAS_JIT ENABLE_DOXYGEN 
ENABLE_THREADS TARGETS_TO_BUILD EXTRA_OPTIONS CPP CXX CXXFLAGS ac_ct_CXX LEX 
LEXLIB LEX_OUTPUT_ROOT FLEX YACC BISON ifGNUmake LN_S CMP CP DATE FIND GREP 
MKDIR MV RANLIB ac_ct_RANLIB RM SED TAR GRAPHVIZ DOT GV DOTTY PERL HAVE_PERL 
INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA BZIP2!
  DOXYGEN ETAGS GROFF GZIP POD2HTML POD2MAN RUNTEST TCLSH ZIP EGREP 
INSTALL_LTDL_TRUE INSTALL_LTDL_FALSE CONVENIENCE_LTDL_TRUE 
CONVENIENCE_LTDL_FALSE LIBADD_DL ECHO AR ac_ct_AR STRIP ac_ct_STRIP CXXCPP F77 
FFLAGS ac_ct_F77 LIBTOOL ETAGSFLAGS LLVMGCC LLVMGXX ALLOCA MMAP_FILE LLVMCC1 
LLVMCC1PLUS LLVMGCCDIR LLVMGCC_VERSION LLVMGCC_MAJVERS SHLIBEXT LLVM_PREFIX 
LLVM_BINDIR LLVM_LIBDIR LLVM_DATADIR LLVM_DOCSDIR LLVM_ETCDIR LLVM_INCLUDEDIR 
LLVM_INFODIR LLVM_MANDIR LLVM_CONFIGTIME LIBOBJS LTLIBOBJS'
+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME 
PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix 
program_transform_name bindir sbindir libexecdir datadir sysconfdir 
sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir 
build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS 
LLVM_COPYRIGHT subdirs build build_cpu build_vendor build_os host host_cpu 
host_vendor host_os target target_cpu target_vendor target_os OS LLVM_ON_UNIX 
LLVM_ON_WIN32 ARCH ENDIAN CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT 
LLVM_CROSS_COMPILING BUILD_CC BUILD_EXEEXT CVSBUILD ENABLE_OPTIMIZED 
DISABLE_ASSERTIONS DEBUG_RUNTIME JIT TARGET_HAS_JIT ENABLE_DOXYGEN 
ENABLE_THREADS TARGETS_TO_BUILD EXTRA_OPTIONS CPP CXX CXXFLAGS ac_ct_CXX LEX 
LEXLIB LEX_OUTPUT_ROOT FLEX YACC BISON NM ifGNUmake LN_S CMP CP DATE FIND GREP 
MKDIR MV RANLIB ac_ct_RANLIB RM SED TAR GRAPHVIZ DOT GV DOTTY PERL HAVE_PERL 
INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA BZ!
 IP2 DOXYGEN ETAGS GROFF GZIP POD2HTML POD2MAN RUNTEST TCLSH ZIP EGREP 
INSTALL_LTDL_TRUE INSTALL_LTDL_FALSE CONVENIENCE_LTDL_TRUE 
CONVENIENCE_LTDL_FALSE LIBADD_DL ECHO AR ac_ct_AR STRIP ac_ct_STRIP CXXCPP F77 
FFLAGS ac_ct_F77 LIBTOOL ETAGSFLAGS LLVMGCC LLVMGXX ALLOCA MMAP_FILE LLVMCC1 
LLVMCC1PLUS LLVMGCCDIR LLVMGCC_VERSION LLVMGCC_MAJVERS SHLIBEXT LLVM_PREFIX 
LLVM_BINDIR LLVM_LIBDIR LLVM_DATADIR LLVM_DOCSDIR LLVM_ETCDIR LLVM_INCLUDEDIR 
LLVM_INFODIR LLVM_MANDIR LLVM_CONFIGTIME LIBOBJS LTLIBOBJS'
 ac_subst_files=''
 
 # Initialize some variables set by options.
@@ -966,7 +966,7 @@

[llvm-commits] CVS: llvm/tools/analyze/Makefile

2006-07-27 Thread Reid Spencer


Changes in directory llvm/tools/analyze:

Makefile updated: 1.33 -> 1.34
---
Log message:

Undo last commit, which was committed accidentally.


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

 Makefile |2 --
 1 files changed, 2 deletions(-)


Index: llvm/tools/analyze/Makefile
diff -u llvm/tools/analyze/Makefile:1.33 llvm/tools/analyze/Makefile:1.34
--- llvm/tools/analyze/Makefile:1.33Thu Jul 27 18:00:30 2006
+++ llvm/tools/analyze/Makefile Thu Jul 27 18:19:00 2006
@@ -8,8 +8,6 @@
 
##===--===##
 LEVEL = ../..
 TOOLNAME = analyze
-#TOOLLINKOPTS = $(LINKALL)
-#TOOLLINKOPTSB = $(NOLINKALL)
 USEDLIBS = LLVMAsmParser.a LLVMBCReader.a LLVMAnalysis.a LLVMipa.a \
LLVMDataStructure \
   LLVMScalarOpts.a LLVMTransforms.a LLVMTarget.a LLVMScalarOpts.a \



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


[llvm-commits] CVS: llvm/lib/Target/X86/X86ISelDAGToDAG.cpp

2006-07-27 Thread Evan Cheng


Changes in directory llvm/lib/Target/X86:

X86ISelDAGToDAG.cpp updated: 1.79 -> 1.80
---
Log message:

Brain cramp..

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

 X86ISelDAGToDAG.cpp |4 +---
 1 files changed, 1 insertion(+), 3 deletions(-)


Index: llvm/lib/Target/X86/X86ISelDAGToDAG.cpp
diff -u llvm/lib/Target/X86/X86ISelDAGToDAG.cpp:1.79 
llvm/lib/Target/X86/X86ISelDAGToDAG.cpp:1.80
--- llvm/lib/Target/X86/X86ISelDAGToDAG.cpp:1.79Thu Jul 27 17:35:40 2006
+++ llvm/lib/Target/X86/X86ISelDAGToDAG.cpp Thu Jul 27 18:35:40 2006
@@ -281,9 +281,7 @@
 void X86DAGToDAGISel::DeterminReachibility(SDNode *f, SDNode *t) {
   if (!ReachibilityMatrix) {
 DetermineTopologicalOrdering();
-unsigned RMSize = DAGSize * DAGSize / 8;
-if ((DAGSize * DAGSize) % 8)
-  RMSize++;
+unsigned RMSize = (DAGSize * DAGSize + 7) / 8;
 ReachibilityMatrix = new unsigned char[RMSize];
 memset(ReachibilityMatrix, 0, RMSize);
   }



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


[llvm-commits] CVS: llvm/lib/Target/X86/X86ISelDAGToDAG.cpp

2006-07-27 Thread Evan Cheng


Changes in directory llvm/lib/Target/X86:

X86ISelDAGToDAG.cpp updated: 1.80 -> 1.81
---
Log message:

Another duh. Determine topological order before any target node is added.

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

 X86ISelDAGToDAG.cpp |   26 +-
 1 files changed, 13 insertions(+), 13 deletions(-)


Index: llvm/lib/Target/X86/X86ISelDAGToDAG.cpp
diff -u llvm/lib/Target/X86/X86ISelDAGToDAG.cpp:1.80 
llvm/lib/Target/X86/X86ISelDAGToDAG.cpp:1.81
--- llvm/lib/Target/X86/X86ISelDAGToDAG.cpp:1.80Thu Jul 27 18:35:40 2006
+++ llvm/lib/Target/X86/X86ISelDAGToDAG.cpp Thu Jul 27 19:10:59 2006
@@ -99,7 +99,8 @@
   : SelectionDAGISel(X86Lowering),
 X86Lowering(*TM.getTargetLowering()),
 Subtarget(&TM.getSubtarget()),
-DAGSize(0), ReachibilityMatrix(NULL) {}
+DAGSize(0), TopOrder(NULL), IdToOrder(NULL),
+RMRange(NULL), ReachibilityMatrix(NULL) {}
 
 virtual bool runOnFunction(Function &Fn) {
   // Make sure we re-emit a set of the global base reg if necessary
@@ -242,7 +243,6 @@
 /// DetermineTopologicalOrdering - Determine topological ordering of the nodes
 /// in the DAG.
 void X86DAGToDAGISel::DetermineTopologicalOrdering() {
-  DAGSize = CurDAG->AssignNodeIds();
   TopOrder = new SDNode*[DAGSize];
   IdToOrder = new unsigned[DAGSize];
   memset(IdToOrder, 0, DAGSize * sizeof(unsigned));
@@ -280,7 +280,6 @@
 
 void X86DAGToDAGISel::DeterminReachibility(SDNode *f, SDNode *t) {
   if (!ReachibilityMatrix) {
-DetermineTopologicalOrdering();
 unsigned RMSize = (DAGSize * DAGSize + 7) / 8;
 ReachibilityMatrix = new unsigned char[RMSize];
 memset(ReachibilityMatrix, 0, RMSize);
@@ -323,25 +322,26 @@
   DEBUG(BB->dump());
   MachineFunction::iterator FirstMBB = BB;
 
+  DAGSize = DAG.AssignNodeIds();
+  DetermineTopologicalOrdering();
+
   // Codegen the basic block.
 #ifndef NDEBUG
   DEBUG(std::cerr << "= Instruction selection begins:\n");
   Indent = 0;
 #endif
   DAG.setRoot(SelectRoot(DAG.getRoot()));
-  assert(InFlightSet.empty() && "ISel InFlightSet has not been emptied!");
 #ifndef NDEBUG
   DEBUG(std::cerr << "= Instruction selection ends:\n");
 #endif
-  if (ReachibilityMatrix) {
-delete[] ReachibilityMatrix;
-delete[] TopOrder;
-delete[] IdToOrder;
-delete[] RMRange;
-ReachibilityMatrix = NULL;
-TopOrder = NULL;
-IdToOrder = RMRange = NULL;
-  }
+
+  delete[] ReachibilityMatrix;
+  delete[] TopOrder;
+  delete[] IdToOrder;
+  delete[] RMRange;
+  ReachibilityMatrix = NULL;
+  TopOrder = NULL;
+  IdToOrder = RMRange = NULL;
   CodeGenMap.clear();
   HandleMap.clear();
   ReplaceMap.clear();



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


[llvm-commits] CVS: llvm/lib/CodeGen/AsmPrinter.cpp

2006-07-27 Thread Chris Lattner


Changes in directory llvm/lib/CodeGen:

AsmPrinter.cpp updated: 1.86 -> 1.87
---
Log message:

Print empty inline asms as a blank line instead of:

# InlineAsm Start

# InlineAsm End



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

 AsmPrinter.cpp |9 -
 1 files changed, 8 insertions(+), 1 deletion(-)


Index: llvm/lib/CodeGen/AsmPrinter.cpp
diff -u llvm/lib/CodeGen/AsmPrinter.cpp:1.86 
llvm/lib/CodeGen/AsmPrinter.cpp:1.87
--- llvm/lib/CodeGen/AsmPrinter.cpp:1.86Thu Jul 27 11:46:58 2006
+++ llvm/lib/CodeGen/AsmPrinter.cpp Thu Jul 27 19:17:20 2006
@@ -615,7 +615,6 @@
 /// printInlineAsm - This method formats and prints the specified machine
 /// instruction that is an inline asm.
 void AsmPrinter::printInlineAsm(const MachineInstr *MI) const {
-  O << InlineAsmStart << "\n\t";
   unsigned NumOperands = MI->getNumOperands();
   
   // Count the number of register definitions.
@@ -628,6 +627,14 @@
   // Disassemble the AsmStr, printing out the literal pieces, the operands, 
etc.
   const char *AsmStr = MI->getOperand(NumDefs).getSymbolName();
 
+  // If this asmstr is empty, don't bother printing the #APP/#NOAPP markers.
+  if (AsmStr[0] == 0) {
+O << "\n";  // Tab already printed, avoid double indenting next instr.
+return;
+  }
+  
+  O << InlineAsmStart << "\n\t";
+
   // The variant of the current asmprinter: FIXME: change.
   int AsmPrinterVariant = 0;
   



___
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-07-27 Thread Evan Cheng


Changes in directory llvm/utils/TableGen:

DAGISelEmitter.cpp updated: 1.228 -> 1.229
---
Log message:

Remove InFlightSet hack. No longer needed.

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

 DAGISelEmitter.cpp |   46 --
 1 files changed, 46 deletions(-)


Index: llvm/utils/TableGen/DAGISelEmitter.cpp
diff -u llvm/utils/TableGen/DAGISelEmitter.cpp:1.228 
llvm/utils/TableGen/DAGISelEmitter.cpp:1.229
--- llvm/utils/TableGen/DAGISelEmitter.cpp:1.228Thu Jul 27 14:59:34 2006
+++ llvm/utils/TableGen/DAGISelEmitter.cpp  Thu Jul 27 19:43:52 2006
@@ -2106,8 +2106,6 @@
   // Names of all the folded nodes which produce chains.
   std::vector > FoldedChains;
   std::set Duplicates;
-  /// These nodes are being marked "in-flight" so they cannot be folded.
-  std::vector InflightNodes;
 
   /// GeneratedCode - This is the buffer that we emit code to.  The first bool
   /// indicates whether this is an exit predicate (something that should be
@@ -2231,8 +2229,6 @@
 OpNo = 1;
   if (!isRoot) {
 const SDNodeInfo &CInfo = ISE.getSDNodeInfo(N->getOperator());
-// Not in flight?
-emitCheck("InFlightSet.count(" + RootName + ".Val) == 0");
 // Multiple uses of actual result?
 emitCheck(RootName + ".hasOneUse()");
 EmittedUseCheck = true;
@@ -2477,24 +2473,9 @@
 for (unsigned i = 0; i < NumRes; i++)
   Code += ", CPTmp" + utostr(i + ResNo);
 emitCode(Code + ");");
-if (InflightNodes.size()) {
-  // Remove the in-flight nodes if the ComplexPattern does not match!
-  emitCode("if (!Match) {");
-  for (std::vector::iterator AI = InflightNodes.begin(),
- AE = InflightNodes.end(); AI != AE; ++AI)
-emitCode("  SelectionDAG::RemoveInFlightSetEntry(InFlightSet, " +
- *AI + ".Val);");
-  emitCode("}");
-}
-
 emitCheck("Match");
 
 for (unsigned i = 0; i < NumRes; ++i) {
-  emitCode("SelectionDAG::InsertInFlightSetEntry(InFlightSet, CPTmp" +
-   utostr(i+ResNo) + ".Val);");
-  InflightNodes.push_back("CPTmp" + utostr(i+ResNo));
-}
-for (unsigned i = 0; i < NumRes; ++i) {
   emitDecl("Tmp" + utostr(i+ResNo));
   emitCode("Select(Tmp" + utostr(i+ResNo) + ", CPTmp" +
utostr(i+ResNo) + ");");
@@ -2608,22 +2589,6 @@
 }
   }
 
-  // Make sure these operands which would be selected won't be folded while
-  // the isel traverses the DAG upward.
-  for (unsigned i = 0, e = EmitOrder.size(); i != e; ++i) {
-TreePatternNode *Child = EmitOrder[i].second;
-if (!Child->getName().empty()) {
-  std::string &Val = VariableMap[Child->getName()];
-  assert(!Val.empty() &&
- "Variable referenced but not defined and not caught 
earlier!");
-  if (Child->isLeaf() && !NodeGetComplexPattern(Child, ISE)) {
-emitCode("SelectionDAG::InsertInFlightSetEntry(InFlightSet, " +
- Val + ".Val);");
-InflightNodes.push_back(Val);
-  }
-}
-  }
-
   // Emit all of the operands.
   std::vector > NumTemps(EmitOrder.size());
   for (unsigned i = 0, e = EmitOrder.size(); i != e; ++i) {
@@ -2651,14 +2616,6 @@
 emitCode("  Select(InFlag, N.getOperand(N.getNumOperands()-1));");
   }
 
-  if (isRoot) {
-// The operands have been selected. Remove them from InFlightSet.
-for (std::vector::iterator AI = InflightNodes.begin(),
-   AE = InflightNodes.end(); AI != AE; ++AI)
-  emitCode("SelectionDAG::RemoveInFlightSetEntry(InFlightSet, " +
-   *AI + ".Val);");
-  }
-
   unsigned NumResults = Inst.getNumResults();
   unsigned ResNo = TmpNo++;
   if (!isRoot || InputHasChain || NodeHasChain || NodeHasOutFlag ||
@@ -3639,9 +3596,6 @@
   OS << "// Instance var to keep track of mapping of place handle nodes\n"
  << "// and their replacement nodes.\n";
   OS << "std::map ReplaceMap;\n";
-  OS << "// Keep track of nodes that are currently being selecte and 
therefore\n"
- << "// should not be folded.\n";
-  OS << "std::set InFlightSet;\n";
 
   OS << "\n";
   OS << "// AddHandleReplacement - Note the pending replacement node for a\n"



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


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

2006-07-27 Thread Evan Cheng


Changes in directory llvm/include/llvm/CodeGen:

SelectionDAG.h updated: 1.104 -> 1.105
---
Log message:

Remove InFlightSet hack. No longer needed.

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

 SelectionDAG.h |   10 --
 1 files changed, 10 deletions(-)


Index: llvm/include/llvm/CodeGen/SelectionDAG.h
diff -u llvm/include/llvm/CodeGen/SelectionDAG.h:1.104 
llvm/include/llvm/CodeGen/SelectionDAG.h:1.105
--- llvm/include/llvm/CodeGen/SelectionDAG.h:1.104  Thu Jul 27 02:36:47 2006
+++ llvm/include/llvm/CodeGen/SelectionDAG.hThu Jul 27 19:44:29 2006
@@ -435,16 +435,6 @@
  SDNode *Key, unsigned KeyResNo,
  SDNode *Element, unsigned ElementResNo);
 
-  /// InsertInFlightSetEntry - A helper function to insert a SDNode* to a
-  /// SDNode* set. This is added to avoid the set insertion operator from being
-  /// inlined.
-  static void InsertInFlightSetEntry(std::set &Set, SDNode *N);
-
-  /// RemoveInFlightSetEntry - A helper function to remove a SDNode* from a
-  /// SDNode* set. This is added to avoid the set removal operator from being
-  /// inlined.
-  static void RemoveInFlightSetEntry(std::set &Set, SDNode *N);
-  
 private:
   void RemoveNodeFromCSEMaps(SDNode *N);
   SDNode *AddNonLeafNodeToCSEMaps(SDNode *N);



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


[llvm-commits] CVS: llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp

2006-07-27 Thread Evan Cheng


Changes in directory llvm/lib/CodeGen/SelectionDAG:

SelectionDAG.cpp updated: 1.313 -> 1.314
---
Log message:

Remove InFlightSet hack. No longer needed.

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

 SelectionDAG.cpp |   14 --
 1 files changed, 14 deletions(-)


Index: llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
diff -u llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:1.313 
llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:1.314
--- llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:1.313Thu Jul 27 
02:36:47 2006
+++ llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp  Thu Jul 27 19:45:53 2006
@@ -3115,17 +3115,3 @@
   Map.insert(std::make_pair(SDOperand(Key, KeyResNo),
 SDOperand(Element, ElementResNo)));
 }
-
-/// InsertInFlightSetEntry - A helper function to insert a SDNode* to a
-/// SDNode* set. This is added to avoid the set insertion operator from being
-/// inlined.
-void SelectionDAG::InsertInFlightSetEntry(std::set &Set, SDNode *N) {
-  Set.insert(N);
-}
-
-/// RemoveInFlightSetEntry - A helper function to remove a SDNode* from a
-/// SDNode* set. This is added to avoid the set removal operator from being
-/// inlined.
-void SelectionDAG::RemoveInFlightSetEntry(std::set &Set, SDNode *N) {
-  Set.erase(N);
-}



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


[llvm-commits] CVS: llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp

2006-07-27 Thread Evan Cheng


Changes in directory llvm/lib/Target/ARM:

ARMISelDAGToDAG.cpp updated: 1.17 -> 1.18
---
Log message:

Remove InFlightSet hack. No longer needed.

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

 ARMISelDAGToDAG.cpp |1 -
 1 files changed, 1 deletion(-)


Index: llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp
diff -u llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp:1.17 
llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp:1.18
--- llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp:1.17Tue Jul 25 15:17:19 2006
+++ llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp Thu Jul 27 19:46:15 2006
@@ -282,7 +282,6 @@
   DEBUG(BB->dump());
 
   DAG.setRoot(SelectRoot(DAG.getRoot()));
-  assert(InFlightSet.empty() && "ISel InFlightSet has not been emptied!");
   CodeGenMap.clear();
   HandleMap.clear();
   ReplaceMap.clear();



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


[llvm-commits] CVS: llvm/lib/Target/Alpha/AlphaISelDAGToDAG.cpp

2006-07-27 Thread Evan Cheng


Changes in directory llvm/lib/Target/Alpha:

AlphaISelDAGToDAG.cpp updated: 1.47 -> 1.48
---
Log message:

Remove InFlightSet hack. No longer needed.

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

 AlphaISelDAGToDAG.cpp |1 -
 1 files changed, 1 deletion(-)


Index: llvm/lib/Target/Alpha/AlphaISelDAGToDAG.cpp
diff -u llvm/lib/Target/Alpha/AlphaISelDAGToDAG.cpp:1.47 
llvm/lib/Target/Alpha/AlphaISelDAGToDAG.cpp:1.48
--- llvm/lib/Target/Alpha/AlphaISelDAGToDAG.cpp:1.47Tue Jul 11 12:58:07 2006
+++ llvm/lib/Target/Alpha/AlphaISelDAGToDAG.cpp Thu Jul 27 19:46:29 2006
@@ -172,7 +172,6 @@
   
   // Select target instructions for the DAG.
   DAG.setRoot(SelectRoot(DAG.getRoot()));
-  assert(InFlightSet.empty() && "ISel InFlightSet has not been emptied!");
   CodeGenMap.clear();
   HandleMap.clear();
   ReplaceMap.clear();



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


[llvm-commits] CVS: llvm/lib/Target/IA64/IA64ISelDAGToDAG.cpp

2006-07-27 Thread Evan Cheng


Changes in directory llvm/lib/Target/IA64:

IA64ISelDAGToDAG.cpp updated: 1.45 -> 1.46
---
Log message:

Remove InFlightSet hack. No longer needed.

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

 IA64ISelDAGToDAG.cpp |1 -
 1 files changed, 1 deletion(-)


Index: llvm/lib/Target/IA64/IA64ISelDAGToDAG.cpp
diff -u llvm/lib/Target/IA64/IA64ISelDAGToDAG.cpp:1.45 
llvm/lib/Target/IA64/IA64ISelDAGToDAG.cpp:1.46
--- llvm/lib/Target/IA64/IA64ISelDAGToDAG.cpp:1.45  Thu Jul 27 01:39:46 2006
+++ llvm/lib/Target/IA64/IA64ISelDAGToDAG.cpp   Thu Jul 27 19:46:44 2006
@@ -142,7 +142,6 @@
 
   // Select target instructions for the DAG.
   DAG.setRoot(SelectRoot(DAG.getRoot()));
-  assert(InFlightSet.empty() && "ISel InFlightSet has not been emptied!");
   CodeGenMap.clear();
   HandleMap.clear();
   ReplaceMap.clear();



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


[llvm-commits] CVS: llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp

2006-07-27 Thread Evan Cheng


Changes in directory llvm/lib/Target/PowerPC:

PPCISelDAGToDAG.cpp updated: 1.198 -> 1.199
---
Log message:

Remove InFlightSet hack. No longer needed.

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

 PPCISelDAGToDAG.cpp |1 -
 1 files changed, 1 deletion(-)


Index: llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp
diff -u llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp:1.198 
llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp:1.199
--- llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp:1.198   Thu Jul 27 01:40:15 2006
+++ llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp Thu Jul 27 19:47:04 2006
@@ -215,7 +215,6 @@
 
   // Select target instructions for the DAG.
   DAG.setRoot(SelectRoot(DAG.getRoot()));
-  assert(InFlightSet.empty() && "ISel InFlightSet has not been emptied!");
   CodeGenMap.clear();
   HandleMap.clear();
   ReplaceMap.clear();



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


[llvm-commits] CVS: llvm/lib/Target/Sparc/SparcISelDAGToDAG.cpp

2006-07-27 Thread Evan Cheng


Changes in directory llvm/lib/Target/Sparc:

SparcISelDAGToDAG.cpp updated: 1.99 -> 1.100
---
Log message:

Remove InFlightSet hack. No longer needed.

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

 SparcISelDAGToDAG.cpp |1 -
 1 files changed, 1 deletion(-)


Index: llvm/lib/Target/Sparc/SparcISelDAGToDAG.cpp
diff -u llvm/lib/Target/Sparc/SparcISelDAGToDAG.cpp:1.99 
llvm/lib/Target/Sparc/SparcISelDAGToDAG.cpp:1.100
--- llvm/lib/Target/Sparc/SparcISelDAGToDAG.cpp:1.99Thu Jun 15 03:18:06 2006
+++ llvm/lib/Target/Sparc/SparcISelDAGToDAG.cpp Thu Jul 27 19:47:19 2006
@@ -1001,7 +1001,6 @@
   
   // Select target instructions for the DAG.
   DAG.setRoot(SelectRoot(DAG.getRoot()));
-  assert(InFlightSet.empty() && "ISel InFlightSet has not been emptied!");
   CodeGenMap.clear();
   HandleMap.clear();
   ReplaceMap.clear();



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


[llvm-commits] CVS: llvm/lib/Target/X86/X86ISelDAGToDAG.cpp

2006-07-27 Thread Evan Cheng


Changes in directory llvm/lib/Target/X86:

X86ISelDAGToDAG.cpp updated: 1.81 -> 1.82
---
Log message:

Node selected into address mode cannot be folded.

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

 X86ISelDAGToDAG.cpp |   39 +++
 1 files changed, 39 insertions(+)


Index: llvm/lib/Target/X86/X86ISelDAGToDAG.cpp
diff -u llvm/lib/Target/X86/X86ISelDAGToDAG.cpp:1.81 
llvm/lib/Target/X86/X86ISelDAGToDAG.cpp:1.82
--- llvm/lib/Target/X86/X86ISelDAGToDAG.cpp:1.81Thu Jul 27 19:10:59 2006
+++ llvm/lib/Target/X86/X86ISelDAGToDAG.cpp Thu Jul 27 19:49:31 2006
@@ -211,6 +211,21 @@
   return ReachibilityMatrix[Idx / 8] & (1 << (Idx % 8));
 }
 
+/// UnfoldableSet - An boolean array representing nodes which have been
+/// folded into addressing modes and therefore should not be folded in
+/// another operation.
+unsigned char *UnfoldableSet;
+
+inline void setUnfoldable(SDNode *N) {
+  unsigned Id = N->getNodeId();
+  UnfoldableSet[Id / 8] |= 1 << (Id % 8);
+}
+
+inline bool isUnfoldable(SDNode *N) {
+  unsigned Id = N->getNodeId();
+  return UnfoldableSet[Id / 8] & (1 << (Id % 8));
+}
+
 #ifndef NDEBUG
 unsigned Indent;
 #endif
@@ -218,6 +233,10 @@
 }
 
 bool X86DAGToDAGISel::IsFoldableBy(SDNode *N, SDNode *U) {
+  // Is it already folded by SelectAddr / SelectLEAAddr?
+  if (isUnfoldable(N))
+return false;
+
   // If U use can somehow reach N through another path then U can't fold N or
   // it will create a cycle. e.g. In the following diagram, U can reach N
   // through X. If N is foled into into U, then X is both a predecessor and
@@ -323,6 +342,10 @@
   MachineFunction::iterator FirstMBB = BB;
 
   DAGSize = DAG.AssignNodeIds();
+  unsigned NumBytes = (DAGSize+7) / 8;
+  UnfoldableSet = new unsigned char[NumBytes];
+  memset(UnfoldableSet, 0, NumBytes);
+
   DetermineTopologicalOrdering();
 
   // Codegen the basic block.
@@ -339,9 +362,11 @@
   delete[] TopOrder;
   delete[] IdToOrder;
   delete[] RMRange;
+  delete[] UnfoldableSet;
   ReachibilityMatrix = NULL;
   TopOrder = NULL;
   IdToOrder = RMRange = NULL;
+  UnfoldableSet = NULL;
   CodeGenMap.clear();
   HandleMap.clear();
   ReplaceMap.clear();
@@ -615,6 +640,13 @@
 
   getAddressOperands(AM, Base, Scale, Index, Disp);
 
+  int Id = Base.Val ? Base.Val->getNodeId() : -1;
+  if (Id != -1)
+setUnfoldable(Base.Val);
+  Id = Index.Val ? Index.Val->getNodeId() : -1;
+  if (Id != -1)
+setUnfoldable(Index.Val);
+
   return true;
 }
 
@@ -663,6 +695,13 @@
 return true;
   }
 
+  int Id = Base.Val ? Base.Val->getNodeId() : -1;
+  if (Id != -1)
+setUnfoldable(Base.Val);
+  Id = Index.Val ? Index.Val->getNodeId() : -1;
+  if (Id != -1)
+setUnfoldable(Index.Val);
+
   return false;
 }
 



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


[llvm-commits] CVS: nightlytest-serverside/NightlyTestAccept.cgi

2006-07-27 Thread Patrick Jenkins


Changes in directory nightlytest-serverside:

NightlyTestAccept.cgi updated: 1.35 -> 1.36
---
Log message:

Modified the search through the dejagnu logs for the number of unexpected 
failures


---
Diffs of the changes:  (+13 -8)

 NightlyTestAccept.cgi |   21 +
 1 files changed, 13 insertions(+), 8 deletions(-)


Index: nightlytest-serverside/NightlyTestAccept.cgi
diff -u nightlytest-serverside/NightlyTestAccept.cgi:1.35 
nightlytest-serverside/NightlyTestAccept.cgi:1.36
--- nightlytest-serverside/NightlyTestAccept.cgi:1.35   Thu Jul 27 16:12:36 2006
+++ nightlytest-serverside/NightlyTestAccept.cgiThu Jul 27 19:54:48 2006
@@ -511,7 +511,7 @@
 
 $dejagnutests_log =~ m/\# of expected passes\s*([0-9]+)/;
 $dejagnu_exp_passes=$1;
-$dejagnutests_log =~ m/\# of unexpected failures\s*([0-9]+)/;
+$dejagnutests_log =~ m/unexpected failures\s*([0-9]+)/;
 $dejagnu_unexp_failures=$1;
 $dejagnutests_log =~ m/\# of expected failures\s*([0-9]+)/;
 $dejagnu_exp_failures=$1;
@@ -638,17 +638,22 @@
 AddProgram $x, $external_processed{$x}, "external", $night_id; 
 }
 
-foreach $x (@O_FILE_SIZE){
-   $x =~ m/(.+)\s+(.+)\s+(.+)/;
-   AddFile $2, $1, $night_id, $3;
[EMAIL PROTECTED];
+if($len>1){
+   foreach $x (@O_FILE_SIZE){
+   $x =~ m/(.+)\s+(.+)\s+(.+)/;
+   AddFile $2, $1, $night_id, $3;
+   }
 }
 
-foreach $x (@A_FILE_SIZE){
-   $x =~ m/(.+)\s+(.+)\s+(.+)/;
-   AddFile $2, $1, $night_id, $3;
[EMAIL PROTECTED];
+if($len>1){
+   foreach $x (@A_FILE_SIZE){
+   $x =~ m/(.+)\s+(.+)\s+(.+)/;
+   AddFile $2, $1, $night_id, $3;
+   }
 }
 
-
 

 #
 # Adding lines of code



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


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

2006-07-27 Thread Evan Cheng


Changes in directory llvm/include/llvm/CodeGen:

SelectionDAGISel.h updated: 1.19 -> 1.20
---
Log message:

Rename IsFoldableBy to CanBeFoldedleBy

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

 SelectionDAGISel.h |4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)


Index: llvm/include/llvm/CodeGen/SelectionDAGISel.h
diff -u llvm/include/llvm/CodeGen/SelectionDAGISel.h:1.19 
llvm/include/llvm/CodeGen/SelectionDAGISel.h:1.20
--- llvm/include/llvm/CodeGen/SelectionDAGISel.h:1.19   Thu Jul 27 01:36:49 2006
+++ llvm/include/llvm/CodeGen/SelectionDAGISel.hThu Jul 27 20:03:48 2006
@@ -63,9 +63,9 @@
 return true;
   }
 
-  /// IsFoldableBy - Returns true if the specific operand node N of U can be
+  /// CanBeFoldedBy - Returns true if the specific operand node N of U can be
   /// folded during instruction selection?
-  virtual bool IsFoldableBy(SDNode *N, SDNode *U) { return true; }
+  virtual bool CanBeFoldedBy(SDNode *N, SDNode *U) { return true; }
   
   /// CreateTargetHazardRecognizer - Return a newly allocated hazard recognizer
   /// to use for this target when scheduling the DAG.



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


[llvm-commits] CVS: llvm/lib/Target/X86/X86ISelDAGToDAG.cpp

2006-07-27 Thread Evan Cheng


Changes in directory llvm/lib/Target/X86:

X86ISelDAGToDAG.cpp updated: 1.82 -> 1.83
---
Log message:

Rename IsFoldableBy to CanBeFoldedleBy

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

 X86ISelDAGToDAG.cpp |6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)


Index: llvm/lib/Target/X86/X86ISelDAGToDAG.cpp
diff -u llvm/lib/Target/X86/X86ISelDAGToDAG.cpp:1.82 
llvm/lib/Target/X86/X86ISelDAGToDAG.cpp:1.83
--- llvm/lib/Target/X86/X86ISelDAGToDAG.cpp:1.82Thu Jul 27 19:49:31 2006
+++ llvm/lib/Target/X86/X86ISelDAGToDAG.cpp Thu Jul 27 20:03:48 2006
@@ -118,7 +118,7 @@
 
 virtual void EmitFunctionEntryCode(Function &Fn, MachineFunction &MF);
 
-virtual bool IsFoldableBy(SDNode *N, SDNode *U);
+virtual bool CanBeFoldedBy(SDNode *N, SDNode *U);
 
 // Include the pieces autogenerated from the target description.
 #include "X86GenDAGISel.inc"
@@ -232,7 +232,7 @@
   };
 }
 
-bool X86DAGToDAGISel::IsFoldableBy(SDNode *N, SDNode *U) {
+bool X86DAGToDAGISel::CanBeFoldedBy(SDNode *N, SDNode *U) {
   // Is it already folded by SelectAddr / SelectLEAAddr?
   if (isUnfoldable(N))
 return false;
@@ -711,7 +711,7 @@
   if (N.getOpcode() == ISD::LOAD &&
   N.hasOneUse() &&
   !CodeGenMap.count(N.getValue(0)) &&
-  !IsFoldableBy(N.Val, P.Val))
+  !CanBeFoldedBy(N.Val, P.Val))
 return SelectAddr(N.getOperand(1), Base, Scale, Index, Disp);
   return false;
 }



___
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-07-27 Thread Evan Cheng


Changes in directory llvm/utils/TableGen:

DAGISelEmitter.cpp updated: 1.229 -> 1.230
---
Log message:

Rename IsFoldableBy to CanBeFoldedleBy

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

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


Index: llvm/utils/TableGen/DAGISelEmitter.cpp
diff -u llvm/utils/TableGen/DAGISelEmitter.cpp:1.229 
llvm/utils/TableGen/DAGISelEmitter.cpp:1.230
--- llvm/utils/TableGen/DAGISelEmitter.cpp:1.229Thu Jul 27 19:43:52 2006
+++ llvm/utils/TableGen/DAGISelEmitter.cpp  Thu Jul 27 20:03:48 2006
@@ -2276,7 +2276,7 @@
   PInfo.hasProperty(SDNodeInfo::SDNPHasChain) ||
   PInfo.hasProperty(SDNodeInfo::SDNPInFlag) ||
   PInfo.hasProperty(SDNodeInfo::SDNPOptInFlag))
-emitCheck("IsFoldableBy(" + RootName + ".Val, " + ParentName +
+emitCheck("CanBeFoldedBy(" + RootName + ".Val, " + ParentName +
   ".Val)");
 }
   }



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


[llvm-commits] CVS: llvm/utils/NewNightlyTest.pl

2006-07-27 Thread Patrick Jenkins


Changes in directory llvm/utils:

NewNightlyTest.pl updated: 1.34 -> 1.35
---
Log message:

Removed some unneccesary printing from the nightly tester.


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

 NewNightlyTest.pl |6 --
 1 files changed, 6 deletions(-)


Index: llvm/utils/NewNightlyTest.pl
diff -u llvm/utils/NewNightlyTest.pl:1.34 llvm/utils/NewNightlyTest.pl:1.35
--- llvm/utils/NewNightlyTest.pl:1.34   Thu Jul 27 16:01:39 2006
+++ llvm/utils/NewNightlyTest.plThu Jul 27 20:06:18 2006
@@ -824,13 +824,7 @@
 print "SingleSource TEST STAGE\n";
}
($SingleSourceProgramsTable, $llcbeta_options) = 
TestDirectory("SingleSource");
-   if ( $VERBOSE ) {
-print "SingleSource returned $SingleSourceProgramsTable\n";
-   }
WriteFile "$Prefix-singlesourceprogramstable.txt", 
$SingleSourceProgramsTable;
-   if ( $VERBOSE ) {
- print "MultiSource TEST STAGE\n";
-   }
($MultiSourceProgramsTable, $llcbeta_options) = 
TestDirectory("MultiSource");
WriteFile "$Prefix-multisourceprogramstable.txt", 
$MultiSourceProgramsTable;
if ( $VERBOSE ) {



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


[llvm-commits] CVS: llvm/tools/bugpoint/ExtractFunction.cpp

2006-07-27 Thread Patrick Jenkins


Changes in directory llvm/tools/bugpoint:

ExtractFunction.cpp updated: 1.48 -> 1.49
---
Log message:

This commit improves bugpoints speed. On my G4 this changed caused kimwitu++ to 
run through bugpoint in 1091.15 seconds (user + system time). The time it took 
to run this on my G4 before I made these changes is 1420.82 seconds (user + 
system time). This is a speedup of about 5.5 minutes.

This is faster because SplitFunctionsOutOfModule no longer calls Clone Module 
and then removes the functions it doesnt want from the module returned. Instead 
it creates a module and copies over the specified functions, making changes to 
the new and old module where neccessary. This reduces the memory demand.
 


---
Diffs of the changes:  (+133 -16)

 ExtractFunction.cpp |  149 ++--
 1 files changed, 133 insertions(+), 16 deletions(-)


Index: llvm/tools/bugpoint/ExtractFunction.cpp
diff -u llvm/tools/bugpoint/ExtractFunction.cpp:1.48 
llvm/tools/bugpoint/ExtractFunction.cpp:1.49
--- llvm/tools/bugpoint/ExtractFunction.cpp:1.48Fri Jun 16 13:23:48 2006
+++ llvm/tools/bugpoint/ExtractFunction.cpp Thu Jul 27 20:19:28 2006
@@ -18,6 +18,7 @@
 #include "llvm/Module.h"
 #include "llvm/PassManager.h"
 #include "llvm/Pass.h"
+#include "llvm/SymbolTable.h"
 #include "llvm/Analysis/Verifier.h"
 #include "llvm/Transforms/IPO.h"
 #include "llvm/Transforms/Scalar.h"
@@ -247,6 +248,67 @@
   }
 }
 
+ RewriteUsesInNewModule - takes a Module and a reference to a globalvalue 
+ (OrigVal) in that module and changes the reference to a different
+ globalvalue (NewVal) in a seperate module.
+static void RewriteUsesInNewModule(Constant *OrigVal, Constant *NewVal,
+   Module *TargetMod) {
+  assert(OrigVal->getType() == NewVal->getType() &&
+ "Can't replace something with a different type");
+  for (Value::use_iterator UI = OrigVal->use_begin(), E = OrigVal->use_end();
+   UI != E; ) {
+Value::use_iterator TmpUI = UI++;
+User *U = *TmpUI;
+if (Instruction *Inst = dyn_cast(U)) {
+  Module *InstM = Inst->getParent()->getParent()->getParent();
+  if (InstM != TargetMod) {
+ TmpUI.getUse() = NewVal;
+  }
+} else if (GlobalVariable *GV = dyn_cast(U)) {
+  if (GV->getParent() != TargetMod) {
+TmpUI.getUse() = NewVal;
+  }
+} else if (ConstantExpr *CE = dyn_cast(U)) {
+  // If nothing uses this, don't bother making a copy.
+  if (CE->use_empty()) continue;
+  Constant *NewCE = CE->getWithOperandReplaced(TmpUI.getOperandNo(),
+   NewVal);
+  RewriteUsesInNewModule(CE, NewCE, TargetMod);
+} else if (ConstantStruct *CS = dyn_cast(U)) {
+  // If nothing uses this, don't bother making a copy.
+  if (CS->use_empty()) continue;
+  unsigned OpNo = TmpUI.getOperandNo();
+  std::vector Ops;
+  for (unsigned i = 0, e = CS->getNumOperands(); i != e; ++i)
+Ops.push_back(i == OpNo ? NewVal : CS->getOperand(i));
+  Constant *NewStruct = ConstantStruct::get(Ops);
+  RewriteUsesInNewModule(CS, NewStruct, TargetMod);
+ } else if (ConstantPacked *CP = dyn_cast(U)) {
+  // If nothing uses this, don't bother making a copy.
+  if (CP->use_empty()) continue;
+  unsigned OpNo = TmpUI.getOperandNo();
+  std::vector Ops;
+  for (unsigned i = 0, e = CP->getNumOperands(); i != e; ++i)
+Ops.push_back(i == OpNo ? NewVal : CP->getOperand(i));
+  Constant *NewPacked = ConstantPacked::get(Ops);
+  RewriteUsesInNewModule(CP, NewPacked, TargetMod);
+} else if (ConstantArray *CA = dyn_cast(U)) {
+  // If nothing uses this, don't bother making a copy.
+  if (CA->use_empty()) continue;
+  unsigned OpNo = TmpUI.getOperandNo();
+  std::vector Ops;
+  for (unsigned i = 0, e = CA->getNumOperands(); i != e; ++i) {
+Ops.push_back(i == OpNo ? NewVal : CA->getOperand(i));
+  }
+  Constant *NewArray = ConstantArray::get(CA->getType(), Ops);
+  RewriteUsesInNewModule(CA, NewArray, TargetMod);
+} else {
+  assert(0 && "Unexpected user");
+}
+  }
+}
+
+
 /// SplitFunctionsOutOfModule - Given a module and a list of functions in the
 /// module, split the functions OUT of the specified module, and place them in
 /// the new module.
@@ -265,28 +327,83 @@
I != E; ++I)
 I->setLinkage(GlobalValue::ExternalLinkage);
 
-  Module *New = CloneModule(M);
+  // First off, we need to create the new module...
+  Module *New = new Module(M->getModuleIdentifier());
+  New->setEndianness(M->getEndianness());
+  New->setPointerSize(M->getPointerSize());
+  New->setTargetTriple(M->getTargetTriple());
+  New->setModuleInlineAsm(M->getModuleInlineAsm());
+
+  // Copy all of the dependent libraries over.
+  for (Module::lib_iterator I = M->lib_begin(), E = M->lib_end(); I != E; ++I)
+New->addLibrary(*I);
 
-  // Make sure global initi

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

2006-07-27 Thread Evan Cheng


Changes in directory llvm/utils/TableGen:

DAGISelEmitter.cpp updated: 1.230 -> 1.231
---
Log message:

Clean up.

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

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


Index: llvm/utils/TableGen/DAGISelEmitter.cpp
diff -u llvm/utils/TableGen/DAGISelEmitter.cpp:1.230 
llvm/utils/TableGen/DAGISelEmitter.cpp:1.231
--- llvm/utils/TableGen/DAGISelEmitter.cpp:1.230Thu Jul 27 20:03:48 2006
+++ llvm/utils/TableGen/DAGISelEmitter.cpp  Thu Jul 27 20:19:22 2006
@@ -2469,11 +2469,10 @@
 for (unsigned i = 0; i < NumRes; ++i)
   emitDecl("CPTmp" + utostr(i+ResNo));
 
-std::string Code = "bool Match = " + Fn + "(" + Val;
+std::string Code = Fn + "(" + Val;
 for (unsigned i = 0; i < NumRes; i++)
   Code += ", CPTmp" + utostr(i + ResNo);
-emitCode(Code + ");");
-emitCheck("Match");
+emitCheck(Code + ")");
 
 for (unsigned i = 0; i < NumRes; ++i) {
   emitDecl("Tmp" + utostr(i+ResNo));



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


[llvm-commits] CVS: llvm/include/llvm/ADT/SmallVector.h

2006-07-27 Thread Chris Lattner


Changes in directory llvm/include/llvm/ADT:

SmallVector.h updated: 1.2 -> 1.3
---
Log message:

The smallvector dtor should destroy the elements.
Implement pop_back.
Chage some code to use 'iterator' instead of T*.  This unbreaks operators=.



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

 SmallVector.h |   14 --
 1 files changed, 12 insertions(+), 2 deletions(-)


Index: llvm/include/llvm/ADT/SmallVector.h
diff -u llvm/include/llvm/ADT/SmallVector.h:1.2 
llvm/include/llvm/ADT/SmallVector.h:1.3
--- llvm/include/llvm/ADT/SmallVector.h:1.2 Wed Jul 26 22:38:08 2006
+++ llvm/include/llvm/ADT/SmallVector.h Fri Jul 28 00:03:42 2006
@@ -66,6 +66,10 @@
 std::uninitialized_copy(RHS.begin(), RHS.end(), Begin);
   }
   ~SmallVector() {
+// Destroy the constructed elements in the vector.
+for (iterator I = Begin, E = End; I != E; ++I)
+  I->~T();
+
 // If this wasn't grown from the inline copy, deallocate the old space.
 if ((void*)Begin != (void*)InlineElts)
   delete[] (char*)Begin;
@@ -115,6 +119,12 @@
 goto Retry;
   }
   
+  void pop_back() {
+assert(!empty() && "SmallVector is empty!");
+--End;
+End->~T();
+  }
+  
   /// append - Add the specified range to the end of the SmallVector.
   ///
   template
@@ -154,7 +164,7 @@
 // This allows us to avoid copying them during the grow.
 if (Capacity-Begin < RHSSize) {
   // Destroy current elements.
-  for (T *I = Begin, E = End; I != E; ++I)
+  for (iterator I = Begin, E = End; I != E; ++I)
 I->~T();
   End = Begin;
   CurSize = 0;
@@ -192,7 +202,7 @@
 std::uninitialized_copy(Begin, End, NewElts);
 
 // Destroy the original elements.
-for (T *I = Begin, *E = End; I != E; ++I)
+for (iterator I = Begin, E = End; I != E; ++I)
   I->~T();
 
 // If this wasn't grown from the inline copy, deallocate the old space.



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


[llvm-commits] CVS: llvm/Makefile.config.in configure

2006-07-27 Thread Reid Spencer


Changes in directory llvm:

Makefile.config.in updated: 1.61 -> 1.62
configure updated: 1.242 -> 1.243
---
Log message:

For PR848: http://llvm.org/PR848 :
1. Get the path to the pwd binary (/bin/pwd usually) from configure.
2. Use that path to run pwd in all path variables set in Makefile.config.in
The hope is that these changes will resolve symlinks to physical paths. This 
should work on all platforms where the binary pwd defaults to printing 
physical paths. The shell version of pwd generally doesn't (it will print
the symlink path).


---
Diffs of the changes:  (+79 -37)

 Makefile.config.in |   15 ---
 configure  |  101 +
 2 files changed, 79 insertions(+), 37 deletions(-)


Index: llvm/Makefile.config.in
diff -u llvm/Makefile.config.in:1.61 llvm/Makefile.config.in:1.62
--- llvm/Makefile.config.in:1.61Thu Jul 27 18:00:30 2006
+++ llvm/Makefile.config.in Fri Jul 28 00:05:00 2006
@@ -33,19 +33,20 @@
 #
 ###
 
+PWD := @BINPWD@
 # Set the project name to LLVM if its not defined
 ifndef PROJECT_NAME
 PROJECT_NAME := LLVM
 endif
 
-PROJ_OBJ_DIR  := $(shell pwd)
-PROJ_OBJ_ROOT := $(subst //,/,$(shell cd $(PROJ_OBJ_DIR)/$(LEVEL); pwd))
+PROJ_OBJ_DIR  := $(shell $(PWD))
+PROJ_OBJ_ROOT := $(shell cd $(PROJ_OBJ_DIR)/$(LEVEL); $(PWD))
 
 ifeq ($(PROJECT_NAME),LLVM)
-LLVM_SRC_ROOT   := @abs_top_srcdir@
-LLVM_OBJ_ROOT   := @abs_top_builddir@
-PROJ_SRC_ROOT   := $(LLVM_SRC_ROOT)
-PROJ_SRC_DIR:= $(subst //,/,$(LLVM_SRC_ROOT)/$(patsubst 
$(PROJ_OBJ_ROOT)%,%,$(PROJ_OBJ_DIR)))
+LLVM_SRC_ROOT   := $(shell cd @abs_top_srcdir@; $(PWD))
+LLVM_OBJ_ROOT   := $(shell cd @abs_top_builddir@; $(PWD))
+PROJ_SRC_ROOT   := $(shell cd $(LLVM_SRC_ROOT); $(PWD))
+PROJ_SRC_DIR:= $(shell cd $(LLVM_SRC_ROOT)/$(patsubst 
$(PROJ_OBJ_ROOT)%,%,$(PROJ_OBJ_DIR)); $(PWD))
 PROJ_prefix := @prefix@
 PROJ_bindir := @prefix@/bin
 PROJ_libdir := @prefix@/lib
@@ -72,7 +73,7 @@
 ifndef LLVM_OBJ_ROOT
 $(error Projects must define LLVM_OBJ_ROOT)
 endif
-PROJ_SRC_DIR := $(subst //,/,$(PROJ_SRC_ROOT)/$(patsubst 
$(PROJ_OBJ_ROOT)%,%,$(PROJ_OBJ_DIR)))
+PROJ_SRC_DIR := $(shell cd $(PROJ_SRC_ROOT)/$(patsubst 
$(PROJ_OBJ_ROOT)%,%,$(PROJ_OBJ_DIR)); $(PWD))
 PROJ_prefix := $(PROJ_INSTALL_ROOT)
 PROJ_bindir := $(PROJ_INSTALL_ROOT)/bin
 PROJ_libdir := $(PROJ_INSTALL_ROOT)/lib


Index: llvm/configure
diff -u llvm/configure:1.242 llvm/configure:1.243
--- llvm/configure:1.242Thu Jul 27 18:00:30 2006
+++ llvm/configure  Fri Jul 28 00:05:00 2006
@@ -477,7 +477,7 @@
 # include 
 #endif"
 
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME 
PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix 
program_transform_name bindir sbindir libexecdir datadir sysconfdir 
sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir 
build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS 
LLVM_COPYRIGHT subdirs build build_cpu build_vendor build_os host host_cpu 
host_vendor host_os target target_cpu target_vendor target_os OS LLVM_ON_UNIX 
LLVM_ON_WIN32 ARCH ENDIAN CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT 
LLVM_CROSS_COMPILING BUILD_CC BUILD_EXEEXT CVSBUILD ENABLE_OPTIMIZED 
DISABLE_ASSERTIONS DEBUG_RUNTIME JIT TARGET_HAS_JIT ENABLE_DOXYGEN 
ENABLE_THREADS TARGETS_TO_BUILD EXTRA_OPTIONS CPP CXX CXXFLAGS ac_ct_CXX LEX 
LEXLIB LEX_OUTPUT_ROOT FLEX YACC BISON NM ifGNUmake LN_S CMP CP DATE FIND GREP 
MKDIR MV RANLIB ac_ct_RANLIB RM SED TAR GRAPHVIZ DOT GV DOTTY PERL HAVE_PERL 
INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA BZ!
 IP2 DOXYGEN ETAGS GROFF GZIP POD2HTML POD2MAN RUNTEST TCLSH ZIP EGREP 
INSTALL_LTDL_TRUE INSTALL_LTDL_FALSE CONVENIENCE_LTDL_TRUE 
CONVENIENCE_LTDL_FALSE LIBADD_DL ECHO AR ac_ct_AR STRIP ac_ct_STRIP CXXCPP F77 
FFLAGS ac_ct_F77 LIBTOOL ETAGSFLAGS LLVMGCC LLVMGXX ALLOCA MMAP_FILE LLVMCC1 
LLVMCC1PLUS LLVMGCCDIR LLVMGCC_VERSION LLVMGCC_MAJVERS SHLIBEXT LLVM_PREFIX 
LLVM_BINDIR LLVM_LIBDIR LLVM_DATADIR LLVM_DOCSDIR LLVM_ETCDIR LLVM_INCLUDEDIR 
LLVM_INFODIR LLVM_MANDIR LLVM_CONFIGTIME LIBOBJS LTLIBOBJS'
+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME 
PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix 
program_transform_name bindir sbindir libexecdir datadir sysconfdir 
sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir 
build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS 
LLVM_COPYRIGHT subdirs build build_cpu build_vendor build_os host host_cpu 
host_vendor host_os target target_cpu target_vendor target_os OS LLVM_ON_UNIX 
LLVM_ON_WIN32 ARCH ENDIAN CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT 
LLVM_CROSS_COMPILING BUILD_CC BUILD_EXEEXT CVSBUILD ENABLE_OPTIMIZED 
DISABLE_ASSERTIONS DEBUG_RUNTIME JIT TARGET_HAS_JIT ENABLE_DOXYGEN 
ENABLE_THREADS TARGETS_TO_BUILD EXTRA_OPTIONS CPP CXX CXXFLAGS ac_ct_CXX LEX 
LEXLIB LEX_OUTPUT_ROOT FLEX 

[llvm-commits] CVS: llvm/autoconf/configure.ac

2006-07-27 Thread Reid Spencer


Changes in directory llvm/autoconf:

configure.ac updated: 1.240 -> 1.241
---
Log message:

For PR848: http://llvm.org/PR848 :
1. Get the path to the pwd binary (/bin/pwd usually) from configure.
2. Use that path to run pwd in all path variables set in Makefile.config.in
The hope is that these changes will resolve symlinks to physical paths. This 
should work on all platforms where the binary pwd defaults to printing 
physical paths. The shell version of pwd generally doesn't (it will print
the symlink path).


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

 configure.ac |1 +
 1 files changed, 1 insertion(+)


Index: llvm/autoconf/configure.ac
diff -u llvm/autoconf/configure.ac:1.240 llvm/autoconf/configure.ac:1.241
--- llvm/autoconf/configure.ac:1.240Thu Jul 27 18:00:30 2006
+++ llvm/autoconf/configure.ac  Fri Jul 28 00:05:00 2006
@@ -374,6 +374,7 @@
 AC_PATH_PROG(RM,   [rm],   [rm])
 AC_PATH_PROG(SED,  [sed],  [sed])
 AC_PATH_PROG(TAR,  [tar],  [gtar])
+AC_PATH_PROG(BINPWD,[pwd],  [pwd])
 
 dnl Looking for misc. graph plotting software
 AC_PATH_PROG(GRAPHVIZ, [Graphviz], [echo Graphviz])



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


[llvm-commits] CVS: llvm/lib/Target/X86/X86ISelDAGToDAG.cpp

2006-07-27 Thread Evan Cheng


Changes in directory llvm/lib/Target/X86:

X86ISelDAGToDAG.cpp updated: 1.83 -> 1.84
---
Log message:

Some clean up.

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

 X86ISelDAGToDAG.cpp |   14 --
 1 files changed, 8 insertions(+), 6 deletions(-)


Index: llvm/lib/Target/X86/X86ISelDAGToDAG.cpp
diff -u llvm/lib/Target/X86/X86ISelDAGToDAG.cpp:1.83 
llvm/lib/Target/X86/X86ISelDAGToDAG.cpp:1.84
--- llvm/lib/Target/X86/X86ISelDAGToDAG.cpp:1.83Thu Jul 27 20:03:48 2006
+++ llvm/lib/Target/X86/X86ISelDAGToDAG.cpp Fri Jul 28 01:05:06 2006
@@ -33,8 +33,8 @@
 #include "llvm/Support/Debug.h"
 #include "llvm/Support/Visibility.h"
 #include "llvm/ADT/Statistic.h"
+#include 
 #include 
-#include 
 #include 
 using namespace llvm;
 
@@ -125,7 +125,7 @@
 
   private:
 void DetermineTopologicalOrdering();
-void DeterminReachibility(SDNode *f, SDNode *t);
+void DetermineReachibility(SDNode *f, SDNode *t);
 
 void Select(SDOperand &Result, SDOperand N);
 
@@ -239,7 +239,7 @@
 
   // If U use can somehow reach N through another path then U can't fold N or
   // it will create a cycle. e.g. In the following diagram, U can reach N
-  // through X. If N is foled into into U, then X is both a predecessor and
+  // through X. If N is foledd into into U, then X is both a predecessor and
   // a successor of U.
   //
   // [ N ]
@@ -249,7 +249,7 @@
   //  /[X]
   //  | ^
   // [U]|
-  DeterminReachibility(U, N);
+  DetermineReachibility(U, N);
   assert(isReachable(U, N) && "Attempting to fold a non-operand node?");
   for (SDNode::op_iterator I = U->op_begin(), E = U->op_end(); I != E; ++I) {
 SDNode *P = I->Val;
@@ -269,7 +269,7 @@
   memset(RMRange, 0, DAGSize * sizeof(unsigned));
 
   std::vector InDegree(DAGSize);
-  std::list Sources;
+  std::deque Sources;
   for (SelectionDAG::allnodes_iterator I = CurDAG->allnodes_begin(),
  E = CurDAG->allnodes_end(); I != E; ++I) {
 SDNode *N = I;
@@ -297,7 +297,9 @@
   }
 }
 
-void X86DAGToDAGISel::DeterminReachibility(SDNode *f, SDNode *t) {
+/// DetermineReachibility - Determine reachibility between all pairs of nodes
+/// between f and t in topological order.
+void X86DAGToDAGISel::DetermineReachibility(SDNode *f, SDNode *t) {
   if (!ReachibilityMatrix) {
 unsigned RMSize = (DAGSize * DAGSize + 7) / 8;
 ReachibilityMatrix = new unsigned char[RMSize];



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


Re: [llvm-commits] CVS: llvm/lib/Target/X86/X86ISelDAGToDAG.cpp

2006-07-27 Thread Reid Spencer
On Fri, 2006-07-28 at 01:05 -0500, Evan Cheng wrote:
> +void DetermineReachibility(SDNode *f, SDNode *t);

Hate to be pedantic about this, but its "Reachability" (a between h and
b)

Reid.

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


[llvm-commits] CVS: llvm/lib/Target/X86/X86ISelDAGToDAG.cpp

2006-07-27 Thread Evan Cheng


Changes in directory llvm/lib/Target/X86:

X86ISelDAGToDAG.cpp updated: 1.84 -> 1.85
---
Log message:

Can't spell.

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

 X86ISelDAGToDAG.cpp |   30 +++---
 1 files changed, 15 insertions(+), 15 deletions(-)


Index: llvm/lib/Target/X86/X86ISelDAGToDAG.cpp
diff -u llvm/lib/Target/X86/X86ISelDAGToDAG.cpp:1.84 
llvm/lib/Target/X86/X86ISelDAGToDAG.cpp:1.85
--- llvm/lib/Target/X86/X86ISelDAGToDAG.cpp:1.84Fri Jul 28 01:05:06 2006
+++ llvm/lib/Target/X86/X86ISelDAGToDAG.cpp Fri Jul 28 01:33:41 2006
@@ -100,7 +100,7 @@
 X86Lowering(*TM.getTargetLowering()),
 Subtarget(&TM.getSubtarget()),
 DAGSize(0), TopOrder(NULL), IdToOrder(NULL),
-RMRange(NULL), ReachibilityMatrix(NULL) {}
+RMRange(NULL), ReachabilityMatrix(NULL) {}
 
 virtual bool runOnFunction(Function &Fn) {
   // Make sure we re-emit a set of the global base reg if necessary
@@ -125,7 +125,7 @@
 
   private:
 void DetermineTopologicalOrdering();
-void DetermineReachibility(SDNode *f, SDNode *t);
+void DetermineReachability(SDNode *f, SDNode *t);
 
 void Select(SDOperand &Result, SDOperand N);
 
@@ -197,18 +197,18 @@
 /// particular source node.
 unsigned *RMRange;
 
-/// ReachibilityMatrix - A N x N matrix representing all pairs reachibility
+/// ReachabilityMatrix - A N x N matrix representing all pairs reachibility
 /// information. One bit per potential edge.
-unsigned char *ReachibilityMatrix;
+unsigned char *ReachabilityMatrix;
 
 inline void setReachable(SDNode *f, SDNode *t) {
   unsigned Idx = f->getNodeId() * DAGSize + t->getNodeId();
-  ReachibilityMatrix[Idx / 8] |= 1 << (Idx % 8);
+  ReachabilityMatrix[Idx / 8] |= 1 << (Idx % 8);
 }
 
 inline bool isReachable(SDNode *f, SDNode *t) {
   unsigned Idx = f->getNodeId() * DAGSize + t->getNodeId();
-  return ReachibilityMatrix[Idx / 8] & (1 << (Idx % 8));
+  return ReachabilityMatrix[Idx / 8] & (1 << (Idx % 8));
 }
 
 /// UnfoldableSet - An boolean array representing nodes which have been
@@ -239,7 +239,7 @@
 
   // If U use can somehow reach N through another path then U can't fold N or
   // it will create a cycle. e.g. In the following diagram, U can reach N
-  // through X. If N is foledd into into U, then X is both a predecessor and
+  // through X. If N is folded into into U, then X is both a predecessor and
   // a successor of U.
   //
   // [ N ]
@@ -249,7 +249,7 @@
   //  /[X]
   //  | ^
   // [U]|
-  DetermineReachibility(U, N);
+  DetermineReachability(U, N);
   assert(isReachable(U, N) && "Attempting to fold a non-operand node?");
   for (SDNode::op_iterator I = U->op_begin(), E = U->op_end(); I != E; ++I) {
 SDNode *P = I->Val;
@@ -297,13 +297,13 @@
   }
 }
 
-/// DetermineReachibility - Determine reachibility between all pairs of nodes
+/// DetermineReachability - Determine reachibility between all pairs of nodes
 /// between f and t in topological order.
-void X86DAGToDAGISel::DetermineReachibility(SDNode *f, SDNode *t) {
-  if (!ReachibilityMatrix) {
+void X86DAGToDAGISel::DetermineReachability(SDNode *f, SDNode *t) {
+  if (!ReachabilityMatrix) {
 unsigned RMSize = (DAGSize * DAGSize + 7) / 8;
-ReachibilityMatrix = new unsigned char[RMSize];
-memset(ReachibilityMatrix, 0, RMSize);
+ReachabilityMatrix = new unsigned char[RMSize];
+memset(ReachabilityMatrix, 0, RMSize);
   }
 
   int Idf = f->getNodeId();
@@ -360,12 +360,12 @@
   DEBUG(std::cerr << "= Instruction selection ends:\n");
 #endif
 
-  delete[] ReachibilityMatrix;
+  delete[] ReachabilityMatrix;
   delete[] TopOrder;
   delete[] IdToOrder;
   delete[] RMRange;
   delete[] UnfoldableSet;
-  ReachibilityMatrix = NULL;
+  ReachabilityMatrix = NULL;
   TopOrder = NULL;
   IdToOrder = RMRange = NULL;
   UnfoldableSet = NULL;



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