[llvm-commits] CVS: llvm/lib/Target/X86/README.txt

2006-08-01 Thread Nate Begeman


Changes in directory llvm/lib/Target/X86:

README.txt updated: 1.122 -> 1.123
---
Log message:

Update the readme to remove duplicate information and clarify the loop
problem.


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

 README.txt |   65 ++---
 1 files changed, 20 insertions(+), 45 deletions(-)


Index: llvm/lib/Target/X86/README.txt
diff -u llvm/lib/Target/X86/README.txt:1.122 
llvm/lib/Target/X86/README.txt:1.123
--- llvm/lib/Target/X86/README.txt:1.122Wed Jul 26 16:49:52 2006
+++ llvm/lib/Target/X86/README.txt  Wed Aug  2 00:31:20 2006
@@ -198,7 +198,7 @@
 
 _test:
 movl 8(%esp), %ebx
-   xor %eax, %eax
+   xor  %eax, %eax
 cmpl %ebx, 4(%esp)
 setl %al
 ret
@@ -340,22 +340,6 @@
 
 //===-===//
 
-Investigate whether it is better to codegen the following
-
-%tmp.1 = mul int %x, 9
-to
-
-   movl4(%esp), %eax
-   leal(%eax,%eax,8), %eax
-
-as opposed to what llc is currently generating:
-
-   imull $9, 4(%esp), %eax
-
-Currently the load folding imull has a higher complexity than the LEA32 
pattern.
-
-//===-===//
-
 We are currently lowering large (1MB+) memmove/memcpy to rep/stosl and 
rep/movsl
 We should leave these as libcalls for everything over a much lower threshold,
 since libc is hand tuned for medium and large mem ops (avoiding RFO for large
@@ -671,35 +655,26 @@
 
 //===-===//
 
-Consider:
-int foo(int *a, int t) {
-int x;
-for (x=0; x<40; ++x)
-   t = t + a[x] + x;
-return t;
-}
-
-We generate:
-LBB1_1: #cond_true
-movl %ecx, %esi
-movl (%edx,%eax,4), %edi
-movl %esi, %ecx
-addl %edi, %ecx
-addl %eax, %ecx
-incl %eax
-cmpl $40, %eax
-jne LBB1_1  #cond_true
-
-GCC generates:
-
-L2:
-addl(%ecx,%edx,4), %eax
-addl%edx, %eax
-addl$1, %edx
-cmpl$40, %edx
-jne L2
+int %foo(int* %a, int %t) {
+entry:
+br label %cond_true
+
+cond_true:  ; preds = %cond_true, %entry
+%x.0.0 = phi int [ 0, %entry ], [ %tmp9, %cond_true ]   ; 
 [#uses=3]
+%t_addr.0.0 = phi int [ %t, %entry ], [ %tmp7, %cond_true ]
 ;  [#uses=1]
+%tmp2 = getelementptr int* %a, int %x.0.0   ;  
[#uses=1]
+%tmp3 = load int* %tmp2 ;  [#uses=1]
+%tmp5 = add int %t_addr.0.0, %x.0.0 ;  [#uses=1]
+%tmp7 = add int %tmp5, %tmp3;  [#uses=2]
+%tmp9 = add int %x.0.0, 1   ;  [#uses=2]
+%tmp = setgt int %tmp9, 39  ;  [#uses=1]
+br bool %tmp, label %bb12, label %cond_true
+
+bb12:   ; preds = %cond_true
+ret int %tmp7
+}
 
-Smells like a register coallescing/reassociation issue.
+is pessimized by -loop-reduce and -indvars
 
 //===-===//
 



___
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/X86TargetMachine.cpp

2006-08-01 Thread Nate Begeman


Changes in directory llvm/lib/Target/X86:

X86TargetMachine.cpp updated: 1.119 -> 1.120
---
Log message:

Disable LSR at -fast


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

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


Index: llvm/lib/Target/X86/X86TargetMachine.cpp
diff -u llvm/lib/Target/X86/X86TargetMachine.cpp:1.119 
llvm/lib/Target/X86/X86TargetMachine.cpp:1.120
--- llvm/lib/Target/X86/X86TargetMachine.cpp:1.119  Wed Jul 26 16:12:04 2006
+++ llvm/lib/Target/X86/X86TargetMachine.cppWed Aug  2 00:29:40 2006
@@ -91,7 +91,7 @@
   FileType != TargetMachine::ObjectFile) return true;
 
   // Run loop strength reduction before anything else.
-  PM.add(createLoopStrengthReducePass(&TLInfo));
+  if (!Fast) PM.add(createLoopStrengthReducePass(&TLInfo));
 
   // FIXME: Implement efficient support for garbage collection intrinsics.
   PM.add(createLowerGCPass());



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


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

2006-08-01 Thread Patrick Jenkins


Changes in directory nightlytest-serverside:

individualfilesizegraph.php updated: 1.2 -> 1.3
---
Log message:

Removed a mysql_free_result call that was unneeded


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

 individualfilesizegraph.php |1 -
 1 files changed, 1 deletion(-)


Index: nightlytest-serverside/individualfilesizegraph.php
diff -u nightlytest-serverside/individualfilesizegraph.php:1.2 
nightlytest-serverside/individualfilesizegraph.php:1.3
--- nightlytest-serverside/individualfilesizegraph.php:1.2  Tue Aug  1 
18:35:41 2006
+++ nightlytest-serverside/individualfilesizegraph.php  Tue Aug  1 19:30:05 2006
@@ -413,7 +413,6 @@
}   
print "\t\n";
 }
-mysql_free_result($night_table_query);
 
 print "\n";
 



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


[llvm-commits] CVS: llvm/lib/Transforms/Utils/LCSSA.cpp

2006-08-01 Thread Chris Lattner


Changes in directory llvm/lib/Transforms/Utils:

LCSSA.cpp updated: 1.26 -> 1.27
---
Log message:

Add special check to avoid isLoop call.  Simple, but doesn't seem to speed
up lcssa much in practice.


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

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


Index: llvm/lib/Transforms/Utils/LCSSA.cpp
diff -u llvm/lib/Transforms/Utils/LCSSA.cpp:1.26 
llvm/lib/Transforms/Utils/LCSSA.cpp:1.27
--- llvm/lib/Transforms/Utils/LCSSA.cpp:1.26Tue Aug  1 19:06:09 2006
+++ llvm/lib/Transforms/Utils/LCSSA.cpp Tue Aug  1 19:16:47 2006
@@ -177,7 +177,7 @@
 }
 
 // If the user is in the loop, don't rewrite it!
-if (inLoop(UserBB)) {
+if (UserBB == Instr->getParent() || inLoop(UserBB)) {
   ++UI;
   continue;
 }
@@ -215,7 +215,7 @@
   UserBB = p->getIncomingBlock(OperandNo/2);
 }
 
-if (!inLoop(UserBB)) {
+if (*BB != UserBB && !inLoop(UserBB)) {
   AffectedValues.insert(I);
   break;
 }



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


[llvm-commits] CVS: llvm/lib/Analysis/LoopInfo.cpp

2006-08-01 Thread Chris Lattner


Changes in directory llvm/lib/Analysis:

LoopInfo.cpp updated: 1.74 -> 1.75
---
Log message:

Speed up Loop::isLCSSAForm by using a binary search and single-entry cache.

This reduces LCSSA pass time from 1.5s to 0.96s when run on eon in 
release+asserts mode.



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

 LoopInfo.cpp |   20 ++--
 1 files changed, 14 insertions(+), 6 deletions(-)


Index: llvm/lib/Analysis/LoopInfo.cpp
diff -u llvm/lib/Analysis/LoopInfo.cpp:1.74 llvm/lib/Analysis/LoopInfo.cpp:1.75
--- llvm/lib/Analysis/LoopInfo.cpp:1.74 Tue Jun 13 15:45:22 2006
+++ llvm/lib/Analysis/LoopInfo.cpp  Tue Aug  1 19:14:16 2006
@@ -480,10 +480,15 @@
 }
 
 /// isLCSSAForm - Return true if the Loop is in LCSSA form
-bool Loop::isLCSSAForm() const {  
-  for (Loop::block_iterator BB = block_begin(), E = block_end();
-   BB != E; ++BB) {
-for (BasicBlock::iterator I = (*BB)->begin(), E = (*BB)->end(); I != E; 
++I)
+bool Loop::isLCSSAForm() const { 
+  // Sort the blocks vector so that we can use binary search to do quick
+  // lookups.
+  std::vector LoopBBs(block_begin(), block_end());
+  std::sort(LoopBBs.begin(), LoopBBs.end());
+  
+  for (unsigned i = 0, e = LoopBBs.size(); i != e; ++i) {
+BasicBlock *BB = LoopBBs[i];
+for (BasicBlock::iterator I = BB->begin(), E = BB->end(); I != E; ++I)
   for (Value::use_iterator UI = I->use_begin(), E = I->use_end(); UI != E;
++UI) {
 BasicBlock *UserBB = cast(*UI)->getParent();
@@ -492,9 +497,12 @@
   UserBB = p->getIncomingBlock(OperandNo/2);
 }
 
-if (!contains(UserBB)) {
+// Check the current block, as a fast-path.  Most values are used in 
the
+// same block they are defined in.
+if (UserBB != BB &&
+// Otherwise, binary search LoopBBs for this block.
+!std::binary_search(LoopBBs.begin(), LoopBBs.end(), UserBB))
   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/Transforms/Utils/LCSSA.cpp

2006-08-01 Thread Chris Lattner


Changes in directory llvm/lib/Transforms/Utils:

LCSSA.cpp updated: 1.25 -> 1.26
---
Log message:

Replace the SSA update code in LCSSA with a bottom-up approach instead of a top
down approach, inspired by discussions with Tanya.

This approach is significantly faster, because it does not need dominator
frontiers and it does not insert extraneous unused PHI nodes.  For example, on
252.eon, in a release-asserts build, this speeds up LCSSA (which is the slowest
pass in gccas) from 9.14s to 0.74s on my G5.  This code is also slightly smaller
and significantly simpler than the old code.

Amusingly, in a normal Release build (which includes the 
"assert(L->isLCSSAForm());" assertion), asserting that the result of LCSSA 
is in LCSSA form is actually slower than the LCSSA transformation pass 
itself on 252.eon.  I will see if Loop::isLCSSAForm can be sped up next.



---
Diffs of the changes:  (+97 -127)

 LCSSA.cpp |  224 ++
 1 files changed, 97 insertions(+), 127 deletions(-)


Index: llvm/lib/Transforms/Utils/LCSSA.cpp
diff -u llvm/lib/Transforms/Utils/LCSSA.cpp:1.25 
llvm/lib/Transforms/Utils/LCSSA.cpp:1.26
--- llvm/lib/Transforms/Utils/LCSSA.cpp:1.25Sun Jul  9 16:35:40 2006
+++ llvm/lib/Transforms/Utils/LCSSA.cpp Tue Aug  1 19:06:09 2006
@@ -46,18 +46,15 @@
   static Statistic<> NumLCSSA("lcssa",
   "Number of live out of a loop variables");
   
-  class LCSSA : public FunctionPass {
-  public:
-
-  
-LoopInfo *LI;  // Loop information
-DominatorTree *DT;   // Dominator Tree for the current Function...
-DominanceFrontier *DF;   // Current Dominance Frontier
+  struct LCSSA : public FunctionPass {
+// Cached analysis information for the current function.
+LoopInfo *LI;
+DominatorTree *DT;
 std::vector LoopBlocks;
 
 virtual bool runOnFunction(Function &F);
 bool visitSubloop(Loop* L);
-void processInstruction(Instruction* Instr,
+void ProcessInstruction(Instruction* Instr,
 const std::vector& exitBlocks);
 
 /// This transformation requires natural loop information & requires that
@@ -70,17 +67,13 @@
   AU.addPreservedID(LoopSimplifyID);
   AU.addRequired();
   AU.addRequired();
-  AU.addRequired();
 }
   private:
 SetVector getLoopValuesUsedOutsideLoop(Loop *L);
-Value *getValueDominatingBlock(BasicBlock *BB,
- std::map& PotDoms) {
-  return getValueDominatingDTNode(DT->getNode(BB), PotDoms);
-}
-Value *getValueDominatingDTNode(DominatorTree::Node *Node,
-  std::map& PotDoms);
-  
+
+PHINode *GetValueForBlock(DominatorTree::Node *BB, Instruction *OrigInst,
+  std::map &Phis);
+
 /// inLoop - returns true if the given block is within the current loop
 const bool inLoop(BasicBlock* B) {
   return std::binary_search(LoopBlocks.begin(), LoopBlocks.end(), B);
@@ -98,12 +91,10 @@
   bool changed = false;
   
   LI = &getAnalysis();
-  DF = &getAnalysis();
   DT = &getAnalysis();
 
-  for (LoopInfo::iterator I = LI->begin(), E = LI->end(); I != E; ++I) {
+  for (LoopInfo::iterator I = LI->begin(), E = LI->end(); I != E; ++I)
 changed |= visitSubloop(*I);
-  }
   
   return changed;
 }
@@ -134,9 +125,8 @@
   // for them in the appropriate exit blocks
   
   for (SetVector::iterator I = AffectedValues.begin(),
-   E = AffectedValues.end(); I != E; ++I) {
-processInstruction(*I, exitBlocks);
-  }
+   E = AffectedValues.end(); I != E; ++I)
+ProcessInstruction(*I, exitBlocks);
   
   assert(L->isLCSSAForm());
   
@@ -145,105 +135,62 @@
 
 /// processInstruction - Given a live-out instruction, insert LCSSA Phi nodes,
 /// eliminate all out-of-loop uses.
-void LCSSA::processInstruction(Instruction* Instr,
-   const std::vector& exitBlocks)
-{
+void LCSSA::ProcessInstruction(Instruction *Instr,
+   const std::vector& exitBlocks) {
   ++NumLCSSA; // We are applying the transformation
-  
-  std::map Phis;
-  
-  // Add the base instruction to the Phis list.  This makes tracking down
-  // the dominating values easier when we're filling in Phi nodes.  This will
-  // be removed later, before we perform use replacement.
-  Phis[Instr->getParent()] = Instr;
-  
-  // Phi nodes that need to be IDF-processed
-  std::vector workList;
-  
+
+  // Keep track of the blocks that have the value available already.
+  std::map Phis;
+
+  DominatorTree::Node *InstrNode = DT->getNode(Instr->getParent());
+
+  // Insert the LCSSA phi's into the exit blocks (dominated by the value), and
+  // add them to the Phi's map.
   for (std::vector::const_iterator BBI = exitBlocks.begin(),
   BBE = exitBlocks.end(); BBI != BBE; ++BBI) {
-Value*& phi = Phis[*BBI];
-if (phi == 0 &&
-DT->

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

2006-08-01 Thread Patrick Jenkins


Changes in directory nightlytest-serverside:

NightlyTester.php updated: 1.11 -> 1.12
---
Log message:

Fixing up some indentation issues


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

 NightlyTester.php |4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)


Index: nightlytest-serverside/NightlyTester.php
diff -u nightlytest-serverside/NightlyTester.php:1.11 
nightlytest-serverside/NightlyTester.php:1.12
--- nightlytest-serverside/NightlyTester.php:1.11   Tue Aug  1 18:43:47 2006
+++ nightlytest-serverside/NightlyTester.phpTue Aug  1 19:00:09 2006
@@ -183,8 +183,8 @@
$file_array = mysql_fetch_array($file_query);
if(isset($file_array['file'])){
  $result["{$row['added']}"]=array("{$file_array['file']}",
- 
"{$file_array['size']}",
- 
"{$file_array['type']}");
+   "{$file_array['size']}",
+   "{$file_array['type']}");
}//end if
else {
  $result["{$row['added']}"]=array("-",



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


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

2006-08-01 Thread Patrick Jenkins


Changes in directory nightlytest-serverside:

drawmachinegraph.php updated: 1.1.1.1 -> 1.2
fulltest.php updated: 1.5 -> 1.6
NightlyTest.pl (r1.1.1.1) removed
---
Log message:

Some housekeeping stuff


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

 drawmachinegraph.php |1 -
 fulltest.php |4 ++--
 2 files changed, 2 insertions(+), 3 deletions(-)


Index: nightlytest-serverside/drawmachinegraph.php
diff -u nightlytest-serverside/drawmachinegraph.php:1.1.1.1 
nightlytest-serverside/drawmachinegraph.php:1.2
--- nightlytest-serverside/drawmachinegraph.php:1.1.1.1 Wed Jul  5 15:56:33 2006
+++ nightlytest-serverside/drawmachinegraph.php Tue Aug  1 18:57:43 2006
@@ -212,7 +212,6 @@
 
 
 while($row = mysql_fetch_array($night_table_query)){
-   $night_id_arr= array();
preg_match("/(\d\d\d\d)\-(\d\d)\-(\d\d)\s(\d\d)\:(\d\d)\:(\d\d)/", 
$row['added'], $pjs);
 $seconds = mktime($pjs[4], $pjs[5], $pjs[6], $pjs[2], $pjs[3],$pjs[1]);
array_push($xdata, $seconds);   


Index: nightlytest-serverside/fulltest.php
diff -u nightlytest-serverside/fulltest.php:1.5 
nightlytest-serverside/fulltest.php:1.6
--- nightlytest-serverside/fulltest.php:1.5 Thu Jul 27 14:11:12 2006
+++ nightlytest-serverside/fulltest.php Tue Aug  1 18:57:43 2006
@@ -469,8 +469,8 @@
  * Printing file size information
  *
  **/
-print "(-) CVS information\n";
-print "\n";
+print "(-) File Size information\n";
+print "\n";
 
 print"File Size information:\n";
 



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


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

2006-08-01 Thread Patrick Jenkins


Changes in directory nightlytest-serverside:

NightlyTester.php updated: 1.10 -> 1.11
---
Log message:

Fixing a crazy issue, the website doesnt seem to have the right file.


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

 NightlyTester.php |1 -
 1 files changed, 1 deletion(-)


Index: nightlytest-serverside/NightlyTester.php
diff -u nightlytest-serverside/NightlyTester.php:1.10 
nightlytest-serverside/NightlyTester.php:1.11
--- nightlytest-serverside/NightlyTester.php:1.10   Tue Aug  1 18:19:44 2006
+++ nightlytest-serverside/NightlyTester.phpTue Aug  1 18:43:47 2006
@@ -12,7 +12,6 @@
 'teststats_unexpfail' => 'Unexpected Test Failures',
 'teststats_expfail' => 'Expected Test Failurs');
 
-
 /*
  *
  * Purpose: Get information about a certain machine



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


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

2006-08-01 Thread Patrick Jenkins


Changes in directory nightlytest-serverside:

drawfilesizegraph.php updated: 1.2 -> 1.3
individualfilesizegraph.php updated: 1.1 -> 1.2
---
Log message:

Fixed include headers to no longer reflect the test file NightlyTester2.php 
which had experimental changes to NightlyTester.php


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

 drawfilesizegraph.php   |2 +-
 individualfilesizegraph.php |2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)


Index: nightlytest-serverside/drawfilesizegraph.php
diff -u nightlytest-serverside/drawfilesizegraph.php:1.2 
nightlytest-serverside/drawfilesizegraph.php:1.3
--- nightlytest-serverside/drawfilesizegraph.php:1.2Tue Aug  1 18:19:44 2006
+++ nightlytest-serverside/drawfilesizegraph.phpTue Aug  1 18:35:41 2006
@@ -3,7 +3,7 @@
 include("jpgraph/jpgraph_line.php");
 include("jpgraph/jpgraph_utils.inc");
 include("jpgraph/jpgraph_date.php");
-include("NightlyTester2.php");
+include("NightlyTester.php");
 
 $DEBUG=0;
 


Index: nightlytest-serverside/individualfilesizegraph.php
diff -u nightlytest-serverside/individualfilesizegraph.php:1.1 
nightlytest-serverside/individualfilesizegraph.php:1.2
--- nightlytest-serverside/individualfilesizegraph.php:1.1  Tue Aug  1 
18:19:44 2006
+++ nightlytest-serverside/individualfilesizegraph.php  Tue Aug  1 18:35:41 2006
@@ -11,7 +11,7 @@
 if(!(include "jpgraph_date.php")){
 die("Error: could not load necessary files!\n");
 }*/
-if(!(include "NightlyTester2.php")){
+if(!(include "NightlyTester.php")){
 die("Error: could not load necessary files!\n");
 }
 



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


[llvm-commits] CVS: nightlytest-serverside/individualfilesizegraph.php drawfilesizegraph.php NightlyTester.php

2006-08-01 Thread Patrick Jenkins


Changes in directory nightlytest-serverside:

individualfilesizegraph.php added (r1.1)
drawfilesizegraph.php updated: 1.1 -> 1.2
NightlyTester.php updated: 1.9 -> 1.10
---
Log message:

Adding support for drawing graphs of an arbitrary number of file sizes over 
time.


---
Diffs of the changes:  (+485 -38)

 NightlyTester.php   |   13 -
 drawfilesizegraph.php   |   83 +---
 individualfilesizegraph.php |  427 
 3 files changed, 485 insertions(+), 38 deletions(-)


Index: nightlytest-serverside/individualfilesizegraph.php
diff -c /dev/null nightlytest-serverside/individualfilesizegraph.php:1.1
*** /dev/null   Tue Aug  1 18:19:55 2006
--- nightlytest-serverside/individualfilesizegraph.php  Tue Aug  1 18:19:44 2006
***
*** 0 
--- 1,427 
+ 0){
+   $start = $HTTP_GET_VARS['start'];
+   $start_query = "and added >= \"$start\"";
+   $start_url = "&start=$start";
+   }
+   else{
+   print "Error: Incorrect URL!\n";
+ die();
+   }
+ }
+ else{
+   $result = mysql_query("SELECT * FROM night WHERE machine=$machine ORDER 
BY added ASC") or die (mysql_error());
+   $recent=mysql_fetch_array($result);
+   $start = $recent['added'];
+   mysql_free_result($result);
+ 
+   $start_url="&start=$start";
+ $start_query = " and added >= \"$start\"";
+ }
+ 
+ if(isset($HTTP_GET_VARS['end'])){
+   if(preg_match("/\d\d\d\d\-\d\d\-\d\d \d\d:\d\d:\d\d/", 
"{$HTTP_GET_VARS['end']}")>0){
+   $end = $HTTP_GET_VARS['end'];
+   $end_query = "and added <= \"$end\"";
+   }
+   else{
+ print "Error: Incorrect URL!\n";
+ die();
+ }
+ }
+ else{
+   $result = mysql_query("SELECT * FROM night WHERE machine=$machine ORDER 
BY added DESC") or die (mysql_error());
+   $recent=mysql_fetch_array($result);
+   $end = $recent['added'];
+   mysql_free_result($result);
+ 
+   $end_url = "&end=$end";
+ $end_query = " and added <= \"$end\"";
+ }
+ 
+ if(isset($HTTP_GET_VARS['normalize'])){
+ if(strcmp($HTTP_GET_VARS['normalize'],"true")==0){
+ $NORMALIZE=1;
+   $normalize_url = "&normalize=true";
+   $def_normalize="CHECKED";
+   $def_unnormalize="";
+   }
+ else{
+   $normalize_url="";
+ $NORMALIZE=0;
+   $def_normalize="";
+   $def_unnormalize="CHECKED";
+ }
+ }
+ else{
+ $NORMALIZE=0;
+   $normalize_url="";
+   $def_normalize="";
+   $def_unnormalize="CHECKED";
+ }
+ if(isset($HTTP_GET_VARS['showdata'])){
+ if(strcmp($HTTP_GET_VARS['showdata'],"true")==0){
+   $SHOWDATA=1;
+ $showdata="&showdata=true";
+ }
+ else{
+ $SHOWDATA=0;
+ $showdata="";
+ }
+ }
+ else{
+   $SHOWDATA=0;
+ $showdata="";
+ }
+ 
+ if(isset($HTTP_GET_VARS['showpoints'])){
+ if(strcmp($HTTP_GET_VARS['showpoints'],"true")==0){
+ $SHOWPOINTS=1;
+   $showpoints="&showpoints=true";
+ }
+ else{
+   $SHOWPOINTS=0;
+ $showpoints="";
+ }
+ }
+ else{
+   $SHOWPOINTS=0;
+ $showpoints="";
+ }
+ 
+ /
+  *
+  * printing error image if necessary
+  *
+  /
+ if($URL_ERROR==1){
+ printErrorMsg("URL Error: $error_msg. Could not draw graph.");
+ }
+ 
+ /
+  *
+  * creating the page
+  *
+  /
+ 
+ ?>
+ 
+ 
+ 
+ LLVM Nightly Test Results Machine Graph
+ 
+ function toggleLayer(whichLayer)
+ {
+ if (document.getElementById)
+ {
+ // this is the way the standards work
+ var style2 = document.getElementById(whichLayer).style;
+ style2.display = style2.display? "":"none";
+ var link  = document.getElementById(whichLayer+"_").innerHTML;
+ if(link.indexOf("(+)") >= 0){
+   
document.getElementById(whichLayer+"_").innerHTML="(-)"+link.substring(3,link.length);
+ }
+ else{
+   
document.getElementById(whichLayer+"_").innerHTML="(+)"+link.substring(3,link.length);
+ }
+ 
+ }//end if
+ else if (document.all)
+ {
+ // this is the way old msie versions work
+ var style2 = document.all[whichLayer].style;
+ style2.display = style2.display? "":"none";
+ var link  = document.all[wwhichLayer+"_"].innerHTML;
+ if(link.indexOf("(+)") >= 0){
+   
document.all[whichLayer+"_"].innerHTML="(-)"+link.substring(3,link.length);
+ }
+ else{
+   
document.all[whichLayer+"_"].innerHTML="(+)"+link.substring(3,link.length);
+ }
+ 
+ }
+ else if (document.layers)
+ {
+ // this is the way nn4 works
+ var style2 = document.layers[whichLayer].style;
+ style2.display = style2.display? "":"none";
+ var link  = document.layers[whichLayer+"_"].innerHTML;
+ if(l

[llvm-commits] CVS: llvm/tools/lli/lli.cpp

2006-08-01 Thread Chris Lattner


Changes in directory llvm/tools/lli:

lli.cpp updated: 1.57 -> 1.58
---
Log message:

Fix the build on case-sensitive filesystems :(


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

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


Index: llvm/tools/lli/lli.cpp
diff -u llvm/tools/lli/lli.cpp:1.57 llvm/tools/lli/lli.cpp:1.58
--- llvm/tools/lli/lli.cpp:1.57 Tue Aug  1 09:21:23 2006
+++ llvm/tools/lli/lli.cpp  Tue Aug  1 17:34:35 2006
@@ -17,7 +17,7 @@
 #include "llvm/ModuleProvider.h"
 #include "llvm/Type.h"
 #include "llvm/Bytecode/Reader.h"
-#include "llvm/Codegen/LinkAllCodegenComponents.h"
+#include "llvm/CodeGen/LinkAllCodegenComponents.h"
 #include "llvm/ExecutionEngine/JIT.h"
 #include "llvm/ExecutionEngine/Interpreter.h"
 #include "llvm/ExecutionEngine/GenericValue.h"



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


[llvm-commits] CVS: llvm/tools/llc/llc.cpp

2006-08-01 Thread Chris Lattner


Changes in directory llvm/tools/llc:

llc.cpp updated: 1.135 -> 1.136
---
Log message:

Fix the build on case-sensitive filesystems :(


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

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


Index: llvm/tools/llc/llc.cpp
diff -u llvm/tools/llc/llc.cpp:1.135 llvm/tools/llc/llc.cpp:1.136
--- llvm/tools/llc/llc.cpp:1.135Tue Aug  1 09:21:23 2006
+++ llvm/tools/llc/llc.cpp  Tue Aug  1 17:34:35 2006
@@ -14,7 +14,7 @@
 
//===--===//
 
 #include "llvm/Bytecode/Reader.h"
-#include "llvm/Codegen/LinkAllCodegenComponents.h"
+#include "llvm/CodeGen/LinkAllCodegenComponents.h"
 #include "llvm/Target/SubtargetFeature.h"
 #include "llvm/Target/TargetData.h"
 #include "llvm/Target/TargetMachine.h"



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


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

2006-08-01 Thread Chris Lattner


Changes in directory llvm/lib/VMCore:

Dominators.cpp updated: 1.71 -> 1.72
---
Log message:

Add dominates/properlyDominates queries to IDom.


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

 Dominators.cpp |   11 +++
 1 files changed, 11 insertions(+)


Index: llvm/lib/VMCore/Dominators.cpp
diff -u llvm/lib/VMCore/Dominators.cpp:1.71 llvm/lib/VMCore/Dominators.cpp:1.72
--- llvm/lib/VMCore/Dominators.cpp:1.71 Wed Jun  7 17:00:26 2006
+++ llvm/lib/VMCore/Dominators.cpp  Tue Aug  1 17:24:47 2006
@@ -211,6 +211,17 @@
   return false;
 }
 
+/// dominates - Return true if A dominates B.
+///
+bool ImmediateDominatorsBase::dominates(BasicBlock *A, BasicBlock *B) const {
+  assert(A && B && "Null pointers?");
+  
+  // Walk up the dominator tree from B to determine if A dom B.
+  while (A != B && B)
+B = get(B);
+  return A == B;
+}
+
 void ImmediateDominatorsBase::print(std::ostream &o, const Module* ) const {
   Function *F = getRoots()[0]->getParent();
   for (Function::iterator I = F->begin(), E = F->end(); I != E; ++I) {



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


[llvm-commits] CVS: llvm/include/llvm/Analysis/Dominators.h

2006-08-01 Thread Chris Lattner


Changes in directory llvm/include/llvm/Analysis:

Dominators.h updated: 1.58 -> 1.59
---
Log message:

Add dominates/properlyDominates queries to IDom.


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

 Dominators.h |   10 ++
 1 files changed, 10 insertions(+)


Index: llvm/include/llvm/Analysis/Dominators.h
diff -u llvm/include/llvm/Analysis/Dominators.h:1.58 
llvm/include/llvm/Analysis/Dominators.h:1.59
--- llvm/include/llvm/Analysis/Dominators.h:1.58Wed Jun  7 17:00:25 2006
+++ llvm/include/llvm/Analysis/Dominators.h Tue Aug  1 17:24:38 2006
@@ -101,7 +101,17 @@
   inline BasicBlock *operator[](BasicBlock *BB) const {
 return get(BB);
   }
+  
+  /// dominates - Return true if A dominates B.
+  ///
+  bool dominates(BasicBlock *A, BasicBlock *B) const;
 
+  /// properlyDominates - Return true if A dominates B and A != B.
+  ///
+  bool properlyDominates(BasicBlock *A, BasicBlock *B) const {
+return A != B || properlyDominates(A, B);
+  }
+  
   /// get() - Synonym for operator[].
   ///
   inline BasicBlock *get(BasicBlock *BB) const {



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


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

2006-08-01 Thread Patrick Jenkins


Changes in directory nightlytest-serverside:

NightlyTester.php updated: 1.8 -> 1.9
---
Log message:

Changed get_file_history to return an array of data that makes sense


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

 NightlyTester.php |8 
 1 files changed, 4 insertions(+), 4 deletions(-)


Index: nightlytest-serverside/NightlyTester.php
diff -u nightlytest-serverside/NightlyTester.php:1.8 
nightlytest-serverside/NightlyTester.php:1.9
--- nightlytest-serverside/NightlyTester.php:1.8Tue Aug  1 15:36:16 2006
+++ nightlytest-serverside/NightlyTester.phpTue Aug  1 15:41:37 2006
@@ -168,7 +168,7 @@
  * particular machine for a specific file
  * Returns: an array with the key being the date and
  * the value being an array containing file name, size
- * night, and build type
+ * and build type
  *
  */
 function get_file_history($mysql_link, $machine_id, $file_name){
@@ -183,9 +183,9 @@
$file_query = mysql_query($file_select);
$file_array = mysql_fetch_array($file_query);
if(isset($file_array['file'])){
-  $file_array['size']=array();
- array_unshift($file_array['size'], "{$row['added']}");
- array_push($result, $file_array['size']);
+ 
$result["{$file_array['night']}"]=array("{$file_array[['file']}",
+   
  "{$file_array[['size']}",
+   
  "{$file_array[['type']}"));
}//end if
mysql_free_result($file_query);
}//end while



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


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

2006-08-01 Thread Patrick Jenkins


Changes in directory nightlytest-serverside:

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

Fixed issue where php didnt know we wanted to use a variable as an array


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

 NightlyTester.php |1 +
 1 files changed, 1 insertion(+)


Index: nightlytest-serverside/NightlyTester.php
diff -u nightlytest-serverside/NightlyTester.php:1.7 
nightlytest-serverside/NightlyTester.php:1.8
--- nightlytest-serverside/NightlyTester.php:1.7Tue Aug  1 15:33:01 2006
+++ nightlytest-serverside/NightlyTester.phpTue Aug  1 15:36:16 2006
@@ -183,6 +183,7 @@
$file_query = mysql_query($file_select);
$file_array = mysql_fetch_array($file_query);
if(isset($file_array['file'])){
+  $file_array['size']=array();
  array_unshift($file_array['size'], "{$row['added']}");
  array_push($result, $file_array['size']);
}//end if



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


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

2006-08-01 Thread Patrick Jenkins


Changes in directory nightlytest-serverside:

NightlyTester.php updated: 1.6 -> 1.7
---
Log message:

Fixed the get_file_history function which returns the size of a file over time


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

 NightlyTester.php |9 -
 1 files changed, 4 insertions(+), 5 deletions(-)


Index: nightlytest-serverside/NightlyTester.php
diff -u nightlytest-serverside/NightlyTester.php:1.6 
nightlytest-serverside/NightlyTester.php:1.7
--- nightlytest-serverside/NightlyTester.php:1.6Wed Jul 26 14:11:15 2006
+++ nightlytest-serverside/NightlyTester.phpTue Aug  1 15:33:01 2006
@@ -155,7 +155,7 @@
  *
  */
 function get_file($mysql_link, $file, $night_id){
-   $query = mysql_query("select * from file WHERE $file=\"$file\" and 
night=$night_id") or die (mysql_error());
+   $query = mysql_query("select * from file WHERE file=\"$file\" and 
night=$night_id") or die (mysql_error());
$file = mysql_fetch_array($query);
$result = 
array("{$file['file']}","{$file['size']}","{$file['night']}","{$file['type']}");
mysql_free_result($query);
@@ -179,13 +179,12 @@
$result = array();
while($row = mysql_fetch_array($nights_query)){
$file_select = "select * from file where night={$row['id']} and 
".
-  
"file=\"$file_name\"";
+  "file=\"$file_name\"";
$file_query = mysql_query($file_select);
$file_array = mysql_fetch_array($file_query);
if(isset($file_array['file'])){
-   $value=get_file($mysql_link, $file_name, 
"{$row['id']}");
-   array_unshift($value, "{$row['added']}");
-   array_push($result, $value);
+ array_unshift($file_array['size'], "{$row['added']}");
+ array_push($result, $file_array['size']);
}//end if
mysql_free_result($file_query);
}//end while



___
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-08-01 Thread Jim Laskey


Changes in directory llvm/lib/CodeGen/SelectionDAG:

SelectionDAGISel.cpp updated: 1.264 -> 1.265
---
Log message:

Now that the ISel is available, it's possible to create a default instruction
scheduler creator.


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

 SelectionDAGISel.cpp |   39 ++-
 1 files changed, 22 insertions(+), 17 deletions(-)


Index: llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
diff -u llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:1.264 
llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:1.265
--- llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:1.264Tue Aug  1 
13:29:48 2006
+++ llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp  Tue Aug  1 14:14:14 2006
@@ -68,7 +68,8 @@
   cl::desc("Instruction schedulers available:"));
 
   static RegisterScheduler
-  defaultListDAGScheduler("default", "  Best scheduler for the target", NULL);
+  defaultListDAGScheduler("default", "  Best scheduler for the target",
+  createDefaultScheduler);
 } // namespace
 
 namespace {
@@ -124,6 +125,24 @@
 
 namespace llvm {
   
//======//
+  /// createDefaultScheduler - This creates an instruction scheduler 
appropriate
+  /// for the target.
+  ScheduleDAG* createDefaultScheduler(SelectionDAGISel *IS,
+  SelectionDAG *DAG,
+  MachineBasicBlock *BB) {
+TargetLowering &TLI = IS->getTargetLowering();
+
+if (TLI.getSchedulingPreference() == TargetLowering::SchedulingForLatency) 
{
+  return createTDListDAGScheduler(IS, DAG, BB);
+} else {
+  assert(TLI.getSchedulingPreference() ==
+   TargetLowering::SchedulingForRegPressure && "Unknown sched type!");
+  return createBURRListDAGScheduler(IS, DAG, BB);
+}
+  }
+
+
+  
//======//
   /// FunctionLoweringInfo - This contains information that is global to a
   /// function that is used when lowering a region of the function.
   class FunctionLoweringInfo {
@@ -3614,22 +3633,8 @@
 
RegisterScheduler::getDefault();
   
   if (!Ctor) {
-if (std::string("default") == std::string(ISHeuristic)) {
-  if (TLI.getSchedulingPreference() == 
TargetLowering::SchedulingForLatency)
-Ctor = RegisterScheduler::FindCtor("list-td");
-  else {
-assert(TLI.getSchedulingPreference() ==
- TargetLowering::SchedulingForRegPressure && "Unknown sched 
type!");
-Ctor = RegisterScheduler::FindCtor("list-burr");
-  }
-
-  assert(Ctor && "Default instruction scheduler not present");
-  if (!Ctor) Ctor = RegisterScheduler::FindCtor("none");
-} else {
-  Ctor = RegisterScheduler::FindCtor(ISHeuristic);
-}
-
- RegisterScheduler::setDefault(Ctor);
+Ctor = RegisterScheduler::FindCtor(ISHeuristic);
+RegisterScheduler::setDefault(Ctor);
   }
   
   assert(Ctor && "No instruction scheduler found");



___
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/LinkAllCodegenComponents.h ScheduleDAG.h SelectionDAGISel.h

2006-08-01 Thread Jim Laskey


Changes in directory llvm/include/llvm/CodeGen:

LinkAllCodegenComponents.h updated: 1.2 -> 1.3
ScheduleDAG.h updated: 1.29 -> 1.30
SelectionDAGISel.h updated: 1.22 -> 1.23
---
Log message:

Now that the ISel is available, it's possible to create a default instruction
scheduler creator.


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

 LinkAllCodegenComponents.h |1 +
 ScheduleDAG.h  |5 +
 SelectionDAGISel.h |2 ++
 3 files changed, 8 insertions(+)


Index: llvm/include/llvm/CodeGen/LinkAllCodegenComponents.h
diff -u llvm/include/llvm/CodeGen/LinkAllCodegenComponents.h:1.2 
llvm/include/llvm/CodeGen/LinkAllCodegenComponents.h:1.3
--- llvm/include/llvm/CodeGen/LinkAllCodegenComponents.h:1.2Tue Aug  1 
13:29:48 2006
+++ llvm/include/llvm/CodeGen/LinkAllCodegenComponents.hTue Aug  1 
14:14:14 2006
@@ -38,6 +38,7 @@
   (void) llvm::createBURRListDAGScheduler(NULL, NULL, NULL);
   (void) llvm::createTDRRListDAGScheduler(NULL, NULL, NULL);
   (void) llvm::createTDListDAGScheduler(NULL, NULL, NULL);
+  (void) llvm::createDefaultScheduler(NULL, NULL, NULL);
 
 }
   } ForceCodegenLinking; // Force link by creating a global definition.


Index: llvm/include/llvm/CodeGen/ScheduleDAG.h
diff -u llvm/include/llvm/CodeGen/ScheduleDAG.h:1.29 
llvm/include/llvm/CodeGen/ScheduleDAG.h:1.30
--- llvm/include/llvm/CodeGen/ScheduleDAG.h:1.29Tue Aug  1 13:29:48 2006
+++ llvm/include/llvm/CodeGen/ScheduleDAG.h Tue Aug  1 14:14:14 2006
@@ -258,6 +258,11 @@
 SelectionDAG *DAG,
 MachineBasicBlock *BB);
 
+  /// createDefaultScheduler - This creates an instruction scheduler 
appropriate
+  /// for the target.
+  ScheduleDAG* createDefaultScheduler(SelectionDAGISel *IS,
+  SelectionDAG *DAG,
+  MachineBasicBlock *BB);
 }
 
 #endif


Index: llvm/include/llvm/CodeGen/SelectionDAGISel.h
diff -u llvm/include/llvm/CodeGen/SelectionDAGISel.h:1.22 
llvm/include/llvm/CodeGen/SelectionDAGISel.h:1.23
--- llvm/include/llvm/CodeGen/SelectionDAGISel.h:1.22   Tue Aug  1 13:29:48 2006
+++ llvm/include/llvm/CodeGen/SelectionDAGISel.hTue Aug  1 14:14:14 2006
@@ -41,6 +41,8 @@
   MachineBasicBlock *BB;
 
   SelectionDAGISel(TargetLowering &tli) : TLI(tli), JT(0,0,0,0) {}
+  
+  TargetLowering &getTargetLowering() { return TLI; }
 
   virtual void getAnalysisUsage(AnalysisUsage &AU) 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 ARMInstrInfo.td

2006-08-01 Thread Rafael Espindola


Changes in directory llvm/lib/Target/ARM:

ARMAsmPrinter.cpp updated: 1.9 -> 1.10
ARMInstrInfo.td updated: 1.10 -> 1.11
---
Log message:

start comments with #
move the constant pool to .text
correctly print loads of labels
mark R0, R1, R2 and R3 as caller save



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

 ARMAsmPrinter.cpp |   22 +-
 ARMInstrInfo.td   |6 --
 2 files changed, 21 insertions(+), 7 deletions(-)


Index: llvm/lib/Target/ARM/ARMAsmPrinter.cpp
diff -u llvm/lib/Target/ARM/ARMAsmPrinter.cpp:1.9 
llvm/lib/Target/ARM/ARMAsmPrinter.cpp:1.10
--- llvm/lib/Target/ARM/ARMAsmPrinter.cpp:1.9   Tue Aug  1 07:58:43 2006
+++ llvm/lib/Target/ARM/ARMAsmPrinter.cpp   Tue Aug  1 13:53:10 2006
@@ -43,8 +43,8 @@
   Data32bitsDirective = "\t.word\t";
   Data64bitsDirective = 0;
   ZeroDirective = "\t.skip\t";
-  CommentString = "!";
-  ConstantPoolSection = "\t.section \".rodata\",#alloc\n";
+  CommentString = "#";
+  ConstantPoolSection = "\t.text\n";
   AlignmentIsInBytes = false;
 }
 
@@ -60,9 +60,21 @@
 }
 
 void printMemRegImm(const MachineInstr *MI, unsigned OpNo) {
-  printOperand(MI, OpNo + 1);
-  O << ", ";
-  printOperand(MI, OpNo);
+  const MachineOperand &MO1 = MI->getOperand(OpNo);
+  const MachineOperand &MO2 = MI->getOperand(OpNo + 1);
+  assert(MO1.isImmediate());
+
+  if (MO2.isConstantPoolIndex()) {
+   printOperand(MI, OpNo + 1);
+  } else if (MO2.isRegister()) {
+   O << '[';
+   printOperand(MI, OpNo + 1);
+   O << ", ";
+   printOperand(MI, OpNo);
+   O << ']';
+  } else {
+   assert(0 && "Invalid Operand Type");
+  }
 }
 
 void printOperand(const MachineInstr *MI, int opNum);


Index: llvm/lib/Target/ARM/ARMInstrInfo.td
diff -u llvm/lib/Target/ARM/ARMInstrInfo.td:1.10 
llvm/lib/Target/ARM/ARMInstrInfo.td:1.11
--- llvm/lib/Target/ARM/ARMInstrInfo.td:1.10Fri Jul 21 07:26:16 2006
+++ llvm/lib/Target/ARM/ARMInstrInfo.td Tue Aug  1 13:53:10 2006
@@ -57,10 +57,12 @@
   def bx: InstARM<(ops IntRegs:$dst), "bx $dst", [(brind IntRegs:$dst)]>;
 }
 
-def bl: InstARM<(ops i32imm:$func, variable_ops), "bl $func", [(ARMcall 
tglobaladdr:$func)]>;
+let  Defs = [R0, R1, R2, R3] in {
+  def bl: InstARM<(ops i32imm:$func, variable_ops), "bl $func", [(ARMcall 
tglobaladdr:$func)]>;
+}
 
 def ldr   : InstARM<(ops IntRegs:$dst, memri:$addr),
- "ldr $dst, [$addr]",
+ "ldr $dst, $addr",
  [(set IntRegs:$dst, (load iaddr:$addr))]>;
 
 def str  : InstARM<(ops IntRegs:$src, IntRegs:$addr),



___
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/ScheduleDAGList.cpp ScheduleDAGRRList.cpp ScheduleDAGSimple.cpp SelectionDAGISel.cpp

2006-08-01 Thread Jim Laskey


Changes in directory llvm/lib/CodeGen/SelectionDAG:

ScheduleDAGList.cpp updated: 1.63 -> 1.64
ScheduleDAGRRList.cpp updated: 1.10 -> 1.11
ScheduleDAGSimple.cpp updated: 1.14 -> 1.15
SelectionDAGISel.cpp updated: 1.263 -> 1.264
---
Log message:

1. Change use of "Cache" to "Default".
2. Added argument to instruction scheduler creators so the creators can do
special things.
3. Repaired target hazard code.
4. Misc.

More to follow.


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

 ScheduleDAGList.cpp   |6 --
 ScheduleDAGRRList.cpp |6 --
 ScheduleDAGSimple.cpp |9 ++---
 SelectionDAGISel.cpp  |   13 +
 4 files changed, 23 insertions(+), 11 deletions(-)


Index: llvm/lib/CodeGen/SelectionDAG/ScheduleDAGList.cpp
diff -u llvm/lib/CodeGen/SelectionDAG/ScheduleDAGList.cpp:1.63 
llvm/lib/CodeGen/SelectionDAG/ScheduleDAGList.cpp:1.64
--- llvm/lib/CodeGen/SelectionDAG/ScheduleDAGList.cpp:1.63  Tue Aug  1 
09:21:23 2006
+++ llvm/lib/CodeGen/SelectionDAG/ScheduleDAGList.cpp   Tue Aug  1 13:29:48 2006
@@ -21,6 +21,7 @@
 #define DEBUG_TYPE "sched"
 #include "llvm/CodeGen/MachinePassRegistry.h"
 #include "llvm/CodeGen/ScheduleDAG.h"
+#include "llvm/CodeGen/SelectionDAGISel.h"
 #include "llvm/CodeGen/SSARegMap.h"
 #include "llvm/Target/MRegisterInfo.h"
 #include "llvm/Target/TargetData.h"
@@ -519,9 +520,10 @@
 /// createTDListDAGScheduler - This creates a top-down list scheduler with a
 /// new hazard recognizer. This scheduler takes ownership of the hazard
 /// recognizer and deletes it when done.
-ScheduleDAG* llvm::createTDListDAGScheduler(SelectionDAG *DAG,
+ScheduleDAG* llvm::createTDListDAGScheduler(SelectionDAGISel *IS,
+SelectionDAG *DAG,
 MachineBasicBlock *BB) {
   return new ScheduleDAGList(*DAG, BB, DAG->getTarget(),
  new LatencyPriorityQueue(),
- new HazardRecognizer());
+ IS->CreateTargetHazardRecognizer());
 }


Index: llvm/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp
diff -u llvm/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp:1.10 
llvm/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp:1.11
--- llvm/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp:1.10Tue Aug  1 
09:21:23 2006
+++ llvm/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp Tue Aug  1 13:29:48 2006
@@ -886,13 +886,15 @@
 // Public Constructor Functions
 
//===--===//
 
-llvm::ScheduleDAG* llvm::createBURRListDAGScheduler(SelectionDAG *DAG,
+llvm::ScheduleDAG* llvm::createBURRListDAGScheduler(SelectionDAGISel *IS,
+SelectionDAG *DAG,
 MachineBasicBlock *BB) {
   return new ScheduleDAGRRList(*DAG, BB, DAG->getTarget(), true,
new 
BURegReductionPriorityQueue());
 }
 
-llvm::ScheduleDAG* llvm::createTDRRListDAGScheduler(SelectionDAG *DAG,
+llvm::ScheduleDAG* llvm::createTDRRListDAGScheduler(SelectionDAGISel *IS,
+SelectionDAG *DAG,
 MachineBasicBlock *BB) {
   return new ScheduleDAGRRList(*DAG, BB, DAG->getTarget(), false,
new 
TDRegReductionPriorityQueue());


Index: llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSimple.cpp
diff -u llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSimple.cpp:1.14 
llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSimple.cpp:1.15
--- llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSimple.cpp:1.14Tue Aug  1 
09:21:23 2006
+++ llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSimple.cpp Tue Aug  1 13:29:48 2006
@@ -1120,21 +1120,24 @@
 
 /// createSimpleDAGScheduler - This creates a simple two pass instruction
 /// scheduler using instruction itinerary.
-llvm::ScheduleDAG* llvm::createSimpleDAGScheduler(SelectionDAG *DAG,
+llvm::ScheduleDAG* llvm::createSimpleDAGScheduler(SelectionDAGISel *IS,
+  SelectionDAG *DAG,
   MachineBasicBlock *BB) {
   return new ScheduleDAGSimple(false, false, *DAG, BB, DAG->getTarget());
 }
 
 /// createNoItinsDAGScheduler - This creates a simple two pass instruction
 /// scheduler without using instruction itinerary.
-llvm::ScheduleDAG* llvm::createNoItinsDAGScheduler(SelectionDAG *DAG,
+llvm::ScheduleDAG* llvm::createNoItinsDAGScheduler(SelectionDAGISel *IS,
+   SelectionDAG *DAG,
MachineBasicBlock *BB) {
   return new ScheduleDAGSimple(false, true, *DAG, BB, DAG->getTarget());
 }
 
 /// createBFS_DAGScheduler - This creates a simple breadth first instruction
 /// scheduler.
-llvm::ScheduleDAG* llvm::createBFS_DAGScheduler(SelectionDAG *DAG,
+llvm::ScheduleDAG* llvm::createBF

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

2006-08-01 Thread Jim Laskey


Changes in directory llvm/lib/CodeGen:

MachinePassRegistry.cpp updated: 1.1 -> 1.2
Passes.cpp updated: 1.19 -> 1.20
---
Log message:

1. Change use of "Cache" to "Default".
2. Added argument to instruction scheduler creators so the creators can do
special things.
3. Repaired target hazard code.
4. Misc.

More to follow.


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

 MachinePassRegistry.cpp |8 ++--
 Passes.cpp  |4 ++--
 2 files changed, 8 insertions(+), 4 deletions(-)


Index: llvm/lib/CodeGen/MachinePassRegistry.cpp
diff -u llvm/lib/CodeGen/MachinePassRegistry.cpp:1.1 
llvm/lib/CodeGen/MachinePassRegistry.cpp:1.2
--- llvm/lib/CodeGen/MachinePassRegistry.cpp:1.1Tue Aug  1 11:31:08 2006
+++ llvm/lib/CodeGen/MachinePassRegistry.cppTue Aug  1 13:29:48 2006
@@ -1,4 +1,4 @@
-//===-- MachineInstr.cpp 
--===//
+//===-- CodeGen/MachineInstr.cpp 
--===//
 //
 // The LLVM Compiler Infrastructure
 //
@@ -6,9 +6,13 @@
 // the University of Illinois Open Source License. See LICENSE.TXT for details.
 //
 
//===--===//
+//
+// This file contains the machine function pass registry for register 
allocators
+// and instruction schedulers.
+//
+//===--===//
 
 #include "llvm/CodeGen/MachinePassRegistry.h"
-#include 
 
 using namespace llvm;
 


Index: llvm/lib/CodeGen/Passes.cpp
diff -u llvm/lib/CodeGen/Passes.cpp:1.19 llvm/lib/CodeGen/Passes.cpp:1.20
--- llvm/lib/CodeGen/Passes.cpp:1.19Tue Aug  1 09:21:23 2006
+++ llvm/lib/CodeGen/Passes.cpp Tue Aug  1 13:29:48 2006
@@ -27,13 +27,13 @@
 }
 
 FunctionPass *llvm::createRegisterAllocator() {
-  RegisterRegAlloc::FunctionPassCtor Ctor = RegisterRegAlloc::getCache();
+  RegisterRegAlloc::FunctionPassCtor Ctor = RegisterRegAlloc::getDefault();
   
   if (!Ctor) {
 Ctor = RegisterRegAlloc::FindCtor(RegAlloc);
 assert(Ctor && "No register allocator found");
 if (!Ctor) Ctor = RegisterRegAlloc::FirstCtor();
-RegisterRegAlloc::setCache(Ctor);
+RegisterRegAlloc::setDefault(Ctor);
   }
   
   assert(Ctor && "No register allocator found");



___
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/LinkAllCodegenComponents.h MachinePassRegistry.h ScheduleDAG.h SelectionDAGISel.h

2006-08-01 Thread Jim Laskey


Changes in directory llvm/include/llvm/CodeGen:

LinkAllCodegenComponents.h updated: 1.1 -> 1.2
MachinePassRegistry.h updated: 1.1 -> 1.2
ScheduleDAG.h updated: 1.28 -> 1.29
SelectionDAGISel.h updated: 1.21 -> 1.22
---
Log message:

1. Change use of "Cache" to "Default".
2. Added argument to instruction scheduler creators so the creators can do
special things.
3. Repaired target hazard code.
4. Misc.

More to follow.


---
Diffs of the changes:  (+51 -31)

 LinkAllCodegenComponents.h |   14 +++---
 MachinePassRegistry.h  |   44 ++--
 ScheduleDAG.h  |   20 ++--
 SelectionDAGISel.h |4 
 4 files changed, 51 insertions(+), 31 deletions(-)


Index: llvm/include/llvm/CodeGen/LinkAllCodegenComponents.h
diff -u llvm/include/llvm/CodeGen/LinkAllCodegenComponents.h:1.1 
llvm/include/llvm/CodeGen/LinkAllCodegenComponents.h:1.2
--- llvm/include/llvm/CodeGen/LinkAllCodegenComponents.h:1.1Tue Aug  1 
11:31:08 2006
+++ llvm/include/llvm/CodeGen/LinkAllCodegenComponents.hTue Aug  1 
13:29:48 2006
@@ -32,15 +32,15 @@
   (void) llvm::createLocalRegisterAllocator();
   (void) llvm::createLinearScanRegisterAllocator();
   
-  (void) llvm::createBFS_DAGScheduler(NULL, NULL);
-  (void) llvm::createSimpleDAGScheduler(NULL, NULL);
-  (void) llvm::createNoItinsDAGScheduler(NULL, NULL);
-  (void) llvm::createBURRListDAGScheduler(NULL, NULL);
-  (void) llvm::createTDRRListDAGScheduler(NULL, NULL);
-  (void) llvm::createTDListDAGScheduler(NULL, NULL);
+  (void) llvm::createBFS_DAGScheduler(NULL, NULL, NULL);
+  (void) llvm::createSimpleDAGScheduler(NULL, NULL, NULL);
+  (void) llvm::createNoItinsDAGScheduler(NULL, NULL, NULL);
+  (void) llvm::createBURRListDAGScheduler(NULL, NULL, NULL);
+  (void) llvm::createTDRRListDAGScheduler(NULL, NULL, NULL);
+  (void) llvm::createTDListDAGScheduler(NULL, NULL, NULL);
 
 }
   } ForceCodegenLinking; // Force link by creating a global definition.
 }
 
-#endif
\ No newline at end of file
+#endif


Index: llvm/include/llvm/CodeGen/MachinePassRegistry.h
diff -u llvm/include/llvm/CodeGen/MachinePassRegistry.h:1.1 
llvm/include/llvm/CodeGen/MachinePassRegistry.h:1.2
--- llvm/include/llvm/CodeGen/MachinePassRegistry.h:1.1 Tue Aug  1 11:31:08 2006
+++ llvm/include/llvm/CodeGen/MachinePassRegistry.h Tue Aug  1 13:29:48 2006
@@ -2,10 +2,18 @@
 //
 // The LLVM Compiler Infrastructure
 //
-// This file was developed by the LLVM research group and is distributed under
+// This file was developed by the James M. Laskey and is distributed under
 // the University of Illinois Open Source License. See LICENSE.TXT for details.
 //
 
//===--===//
+//
+// This file contains the mechanics for machine function pass registries.  A
+// function pass registry (MachinePassRegistry) is auto filled by the static
+// constructors of MachinePassRegistryNode.  Further there is a command line
+// parser (RegisterPassParser) which listens to each registry for additions
+// and deletions, so that the appropriate command option is updated.
+//
+//===--===//
 
 #ifndef LLVM_CODEGEN_MACHINEPASSREGISTRY_H
 #define LLVM_CODEGEN_MACHINEPASSREGISTRY_H
@@ -14,8 +22,6 @@
 #include "llvm/CodeGen/ScheduleDAG.h"
 #include "llvm/Support/CommandLine.h"
 
-#include 
-
 namespace llvm {
 
 
@@ -83,7 +89,7 @@
 
   MachinePassRegistryNode *List;
 // List of registry nodes.
-  FunctionPassCtor Cache;   // Cached function pass creator.
+  FunctionPassCtor Default; // Default function pass creator.
   MachinePassRegistryListener* Listener;// Listener for list adds are removes.
   
 public:
@@ -94,8 +100,8 @@
   // Accessors.
   //
   MachinePassRegistryNode *getList()  { return List; }
-  FunctionPassCtor getCache()   { return Cache; }
-  void setCache(FunctionPassCtor C) { Cache = C; }
+  FunctionPassCtor getDefault() { return Default; }
+  void setDefault(FunctionPassCtor C)   { Default = C; }
   void setListener(MachinePassRegistryListener *L)  { Listener = L; }
 
   /// Add - Adds a function pass to the registration list.
@@ -113,10 +119,8 @@
 for (MachinePassRegistryNode **I = &List;
  *I; I = (*I)->getNextAddress()) {
   if (*I == Node) {
-#if 0 // FIXME: Command opt needs to call a termination routine.
 if (Listener) Listener->NotifyRemove(Node->getName(),
  Node->getDescription());
-#endif
 *I = (*I)->getNext();
 break;
   }
@@ -166,11 +170,11 @@
   static RegisterRegAlloc *getList() {
 return (RegisterRegAlloc *)Registry.getList();
   }
-  static FunctionPassCtor getCache()

[llvm-commits] CVS: llvm/tools/llvm-nm/llvm-nm.cpp

2006-08-01 Thread Chris Lattner


Changes in directory llvm/tools/llvm-nm:

llvm-nm.cpp updated: 1.27 -> 1.28
---
Log message:

no need to check readability here


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

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


Index: llvm/tools/llvm-nm/llvm-nm.cpp
diff -u llvm/tools/llvm-nm/llvm-nm.cpp:1.27 llvm/tools/llvm-nm/llvm-nm.cpp:1.28
--- llvm/tools/llvm-nm/llvm-nm.cpp:1.27 Fri Jul  7 15:56:50 2006
+++ llvm/tools/llvm-nm/llvm-nm.cpp  Tue Aug  1 13:22:21 2006
@@ -119,7 +119,7 @@
 void DumpSymbolNamesFromFile (std::string &Filename) {
   std::string ErrorMessage;
   sys::Path aPath(Filename);
-  if (Filename != "-" && !aPath.canRead()) {
+  if (Filename != "-") {
 std::cerr << ToolName << ": " << Filename << ": " << strerror (errno)
   << "\n";
 return;



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


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

2006-08-01 Thread Jim Laskey


Changes in directory llvm/docs:

CFEBuildInstrs.html updated: 1.58 -> 1.58.2.1
CodingStandards.html updated: 1.28 -> 1.28.2.1
CommandLine.html updated: 1.41 -> 1.41.2.1
GettingStarted.html updated: 1.136.2.5 -> 1.136.2.6
---
Log message:

Transfer doc changes to 1.8 release.


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

 CFEBuildInstrs.html  |5 +++--
 CodingStandards.html |4 ++--
 CommandLine.html |4 ++--
 GettingStarted.html  |8 
 4 files changed, 11 insertions(+), 10 deletions(-)


Index: llvm/docs/CFEBuildInstrs.html
diff -u llvm/docs/CFEBuildInstrs.html:1.58 
llvm/docs/CFEBuildInstrs.html:1.58.2.1
--- llvm/docs/CFEBuildInstrs.html:1.58  Tue Jul 11 15:47:00 2006
+++ llvm/docs/CFEBuildInstrs.html   Tue Aug  1 13:21:58 2006
@@ -117,7 +117,8 @@
 a read-only mirror using subversion.  To check out the code the first time use:
 
 
-svn co svn://anonsvn.opensource.apple.com/svn/llvm 
dst-directory
+svn co svn://anonsvn.opensource.apple.com/svn/llvm/trunk
+dst-directory
 
 After that, the code can be be updated in the destination directory using;
 
@@ -356,7 +357,7 @@
 
   Brian Gaeke
   http://llvm.org";>LLVM Compiler Infrastructure
-  Last modified: $Date: 2006/07/11 20:47:00 $
+  Last modified: $Date: 2006/08/01 18:21:58 $
 
 
 


Index: llvm/docs/CodingStandards.html
diff -u llvm/docs/CodingStandards.html:1.28 
llvm/docs/CodingStandards.html:1.28.2.1
--- llvm/docs/CodingStandards.html:1.28 Wed Jul 26 23:24:14 2006
+++ llvm/docs/CodingStandards.html  Tue Aug  1 13:21:58 2006
@@ -161,7 +161,7 @@
 
 Class overviews
 
-Classes are one fundemental part of a good object oriented design.  As such,
+Classes are one fundamental part of a good object oriented design.  As such,
 a class definition should have a comment block that explains what the class is
 used for... if it's not obvious.  If it's so completely obvious your grandma
 could figure it out, it's probably safe to leave it out.  Naming classes
@@ -672,7 +672,7 @@
 
   mailto:[EMAIL PROTECTED]">Chris Lattner
   http://llvm.org";>LLVM Compiler Infrastructure
-  Last modified: $Date: 2006/07/27 04:24:14 $
+  Last modified: $Date: 2006/08/01 18:21:58 $
 
 
 


Index: llvm/docs/CommandLine.html
diff -u llvm/docs/CommandLine.html:1.41 llvm/docs/CommandLine.html:1.41.2.1
--- llvm/docs/CommandLine.html:1.41 Mon Jun  5 12:30:16 2006
+++ llvm/docs/CommandLine.html  Tue Aug  1 13:21:58 2006
@@ -1763,7 +1763,7 @@
 This approach has the advantage that users of your custom data type will
 automatically use your custom parser whenever they define an option with a 
value
 type of your data type.  The disadvantage of this approach is that it doesn't
-work if your fundemental data type is something that is already supported.
+work if your fundamental data type is something that is already supported.
 
 
 
@@ -1923,7 +1923,7 @@
 
   mailto:[EMAIL PROTECTED]">Chris Lattner
   http://llvm.org";>LLVM Compiler Infrastructure
-  Last modified: $Date: 2006/06/05 17:30:16 $
+  Last modified: $Date: 2006/08/01 18:21:58 $
 
 
 


Index: llvm/docs/GettingStarted.html
diff -u llvm/docs/GettingStarted.html:1.136.2.5 
llvm/docs/GettingStarted.html:1.136.2.6
--- llvm/docs/GettingStarted.html:1.136.2.5 Thu Jul 27 02:26:00 2006
+++ llvm/docs/GettingStarted.html   Tue Aug  1 13:21:58 2006
@@ -647,9 +647,9 @@
   Binary release of the llvm-gcc4 front end for MacOS X/X86.
 
 
-It is also possible to download the sources of the llvm-gcc4 front end from
-a read-only subversion mirror at svn://anonsvn.opensource.apple.com/svn/llvm.
-
+It is also possible to download the sources of the llvm-gcc4 front end from 
a
+read-only subversion mirror at
+svn://anonsvn.opensource.apple.com/svn/llvm/trunk.
 
 
 
@@ -1595,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 07:26:00 $
+  Last modified: $Date: 2006/08/01 18:21:58 $
 
 
 



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


[llvm-commits] CVS: llvm/lib/System/Unix/Path.inc

2006-08-01 Thread Chris Lattner


Changes in directory llvm/lib/System/Unix:

Path.inc updated: 1.49 -> 1.50
---
Log message:

Remove some now-dead methods.  Use getFileStatus instead.


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

 Path.inc |   34 --
 1 files changed, 34 deletions(-)


Index: llvm/lib/System/Unix/Path.inc
diff -u llvm/lib/System/Unix/Path.inc:1.49 llvm/lib/System/Unix/Path.inc:1.50
--- llvm/lib/System/Unix/Path.inc:1.49  Tue Aug  1 12:51:09 2006
+++ llvm/lib/System/Unix/Path.inc   Tue Aug  1 13:16:02 2006
@@ -236,38 +236,6 @@
   return GetRootDirectory();
 }
 
-bool
-Path::isFile() const {
-  if (!exists())
-return false;
-  struct stat buf;
-  if (stat(path.c_str(), &buf) != 0) {
-ThrowErrno(path + ": can't determine type of path object: ");
-  }
-  return S_ISREG(buf.st_mode);
-}
-
-bool
-Path::isDirectory() const {
-  if (!exists())
-return false;
-  struct stat buf;
-  if (0 != stat(path.c_str(), &buf)) {
-ThrowErrno(path + ": can't determine type of path object: ");
-  }
-  return S_ISDIR(buf.st_mode);
-}
-
-bool
-Path::isHidden() const {
-  if (!exists())
-return false;
-  size_t slash = path.rfind('/');
-  return (slash != std::string::npos && 
-  slash < path.length()-1 && 
-  path[slash+1] == '.') || 
- (!path.empty() && slash == std::string::npos && path[0] == '.');
-}
 
 std::string
 Path::getBasename() const {
@@ -432,8 +400,6 @@
 
 bool
 Path::getDirectoryContents(std::set& result) const {
-  if (!isDirectory())
-return false;
   DIR* direntries = ::opendir(path.c_str());
   if (direntries == 0)
 ThrowErrno(path + ": can't open directory");



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


[llvm-commits] CVS: llvm/include/llvm/System/Path.h

2006-08-01 Thread Chris Lattner


Changes in directory llvm/include/llvm/System:

Path.h updated: 1.34 -> 1.35
---
Log message:

Remove some now-dead methods.  Use getFileStatus instead.


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

 Path.h |   22 --
 1 files changed, 22 deletions(-)


Index: llvm/include/llvm/System/Path.h
diff -u llvm/include/llvm/System/Path.h:1.34 
llvm/include/llvm/System/Path.h:1.35
--- llvm/include/llvm/System/Path.h:1.34Fri Jul 28 17:36:17 2006
+++ llvm/include/llvm/System/Path.h Tue Aug  1 13:16:02 2006
@@ -259,28 +259,6 @@
 /// @name Disk Accessors
 /// @{
 public:
-  /// This function determines if the object referenced by this path is
-  /// a file or not. This function accesses the underlying file system to
-  /// determine the type of entity referenced by the path.
-  /// @returns true if this path name references a file.
-  /// @brief Determines if the path name references a file.
-  bool isFile() const;
-
-  /// This function determines if the object referenced by this path is a
-  /// directory or not. This function accesses the underlying file system 
to
-  /// determine the type of entity referenced by the path.
-  /// @returns true if the path name references a directory
-  /// @brief Determines if the path name references a directory.
-  bool isDirectory() const;
-
-  /// This function determines if the path refers to a hidden file. The
-  /// notion of hidden files is defined by  the underlying system. The
-  /// system may not support hidden files in which case this function 
always
-  /// returns false on such systems. Hidden files have the "hidden"
-  /// attribute set on Win32. On Unix, hidden files start with a period.
-  /// @brief Determines if the path name references a hidden file.
-  bool isHidden() const;
-
   /// This function determines if the path name in this object references
   /// the root (top level directory) of the file system. The details of 
what
   /// is considered the "root" may vary from system to system so this 
method



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


[llvm-commits] CVS: llvm/lib/System/Win32/Path.inc

2006-08-01 Thread Chris Lattner


Changes in directory llvm/lib/System/Win32:

Path.inc updated: 1.50 -> 1.51
---
Log message:

Remove some now-dead methods.  Use getFileStatus instead.


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

 Path.inc |   33 -
 1 files changed, 33 deletions(-)


Index: llvm/lib/System/Win32/Path.inc
diff -u llvm/lib/System/Win32/Path.inc:1.50 llvm/lib/System/Win32/Path.inc:1.51
--- llvm/lib/System/Win32/Path.inc:1.50 Tue Aug  1 12:51:09 2006
+++ llvm/lib/System/Win32/Path.inc  Tue Aug  1 13:16:02 2006
@@ -216,39 +216,6 @@
 }
 // FIXME: the above set of functions don't map to Windows very well.
 
-bool
-Path::isFile() const {
-  WIN32_FILE_ATTRIBUTE_DATA fi;
-  BOOL rc = GetFileAttributesEx(path.c_str(), GetFileExInfoStandard, &fi);
-  if (rc)
-return !(fi.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY);
-  else if (GetLastError() != ERROR_FILE_NOT_FOUND) {
-ThrowError("isFile(): " + std::string(path) + ": Can't get status: ");
-  }
-  return false;
-}
-
-bool
-Path::isDirectory() const {
-  WIN32_FILE_ATTRIBUTE_DATA fi;
-  BOOL rc = GetFileAttributesEx(path.c_str(), GetFileExInfoStandard, &fi);
-  if (rc)
-return fi.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY;
-  else if (GetLastError() != ERROR_FILE_NOT_FOUND)
-ThrowError("isDirectory(): " + std::string(path) + ": Can't get status: ");
-  return false;
-}
-
-bool
-Path::isHidden() const {
-  WIN32_FILE_ATTRIBUTE_DATA fi;
-  BOOL rc = GetFileAttributesEx(path.c_str(), GetFileExInfoStandard, &fi);
-  if (rc)
-return fi.dwFileAttributes & FILE_ATTRIBUTE_HIDDEN;
-  else if (GetLastError() != ERROR_FILE_NOT_FOUND)
-ThrowError("isHidden(): " + std::string(path) + ": Can't get status: ");
-  return false;
-}
 
 bool
 Path::isRootDirectory() const {



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


[llvm-commits] CVS: llvm/tools/llvmc/CompilerDriver.cpp

2006-08-01 Thread Chris Lattner


Changes in directory llvm/tools/llvmc:

CompilerDriver.cpp updated: 1.36 -> 1.37
---
Log message:

No need to check isWriteable here (which isn't sufficient anyway).  Just attempt
to do the operation and if it fails, oh well.


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

 CompilerDriver.cpp |3 ++-
 1 files changed, 2 insertions(+), 1 deletion(-)


Index: llvm/tools/llvmc/CompilerDriver.cpp
diff -u llvm/tools/llvmc/CompilerDriver.cpp:1.36 
llvm/tools/llvmc/CompilerDriver.cpp:1.37
--- llvm/tools/llvmc/CompilerDriver.cpp:1.36Mon May 29 13:52:05 2006
+++ llvm/tools/llvmc/CompilerDriver.cpp Tue Aug  1 13:12:29 2006
@@ -187,7 +187,8 @@
 
   void cleanup() {
 if (!isSet(KEEP_TEMPS_FLAG)) {
-  if (TempDir.isDirectory() && TempDir.canWrite())
+  sys::FileStatus Status;
+  if (!TempDir.getFileStatus(Status) && Status.isDir)
 TempDir.eraseFromDisk(/*remove_contents=*/true);
 } else {
   std::cout << "Temporary files are in " << TempDir << "\n";



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


[llvm-commits] CVS: llvm/tools/llvm-ar/llvm-ar.cpp

2006-08-01 Thread Chris Lattner


Changes in directory llvm/tools/llvm-ar:

llvm-ar.cpp updated: 1.33 -> 1.34
---
Log message:

Use Path::getFileStatus


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

 llvm-ar.cpp |   17 ++---
 1 files changed, 10 insertions(+), 7 deletions(-)


Index: llvm/tools/llvm-ar/llvm-ar.cpp
diff -u llvm/tools/llvm-ar/llvm-ar.cpp:1.33 llvm/tools/llvm-ar/llvm-ar.cpp:1.34
--- llvm/tools/llvm-ar/llvm-ar.cpp:1.33 Fri Jul 28 17:03:44 2006
+++ llvm/tools/llvm-ar/llvm-ar.cpp  Tue Aug  1 13:09:46 2006
@@ -270,19 +270,22 @@
 // finds with all the files in that directory (recursively). It uses the
 // sys::Path::getDirectoryContent method to perform the actual directory scans.
 std::set recurseDirectories(const sys::Path& path) {
-  assert(path.isDirectory() && "Oops, can't recurse a file");
   std::set result;
   if (RecurseDirectories) {
 std::set content;
 path.getDirectoryContents(content);
 for (std::set::iterator I = content.begin(), E = content.end();
  I != E; ++I) {
-  if (I->isDirectory()) {
-std::set moreResults = recurseDirectories(*I);
-result.insert(moreResults.begin(), moreResults.end());
-  } else {
-result.insert(*I);
-  }
+   // Make sure it exists and is a directory
+   sys::FileStatus Status;
+   if (!I->getFileStatus(Status)) {
+ if (Status.isDir) {
+   std::set moreResults = recurseDirectories(*I);
+   result.insert(moreResults.begin(), moreResults.end());
+ } else {
+   result.insert(*I);
+ }
+   }
 }
   }
   return result;



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


[llvm-commits] CVS: llvm/tools/gccld/GenerateCode.cpp

2006-08-01 Thread Chris Lattner


Changes in directory llvm/tools/gccld:

GenerateCode.cpp updated: 1.58 -> 1.59
---
Log message:

Use Path::getFileStatus to get status-related info.


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

 GenerateCode.cpp |   12 +---
 1 files changed, 5 insertions(+), 7 deletions(-)


Index: llvm/tools/gccld/GenerateCode.cpp
diff -u llvm/tools/gccld/GenerateCode.cpp:1.58 
llvm/tools/gccld/GenerateCode.cpp:1.59
--- llvm/tools/gccld/GenerateCode.cpp:1.58  Fri Jun 16 13:23:48 2006
+++ llvm/tools/gccld/GenerateCode.cpp   Tue Aug  1 13:04:01 2006
@@ -151,12 +151,9 @@
   sys::Path LPath(LibPath);
 
   // Make sure it exists and is a directory
-  try {
-if (!LPath.exists() || !LPath.isDirectory())
-  return false;
-  } catch (std::string& xcptn) {
+  sys::FileStatus Status;
+  if (LPath.getFileStatus(Status) || !Status.isDir)
 return false;
-  }
   
   // Grab the contents of the -L path
   std::set Files;
@@ -169,12 +166,13 @@
   std::string dllsuffix = sys::Path::GetDLLSuffix();
   for (; File != Files.end(); ++File) {
 
-if ( File->isDirectory() )
+// Not a file?
+if (File->getFileStatus(Status) || Status.isDir)
   continue;
 
 std::string path = File->toString();
 
-// Check for an ending '.dll,.so' or '.a' suffix as all
+// Check for an ending '.dll', '.so' or '.a' suffix as all
 // other files are not of interest to us here
 if (path.find(dllsuffix, path.size()-dllsuffix.size()) == std::string::npos
 && path.find(".a", path.size()-2) == std::string::npos)



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


[llvm-commits] CVS: llvm/lib/System/Win32/Signals.inc

2006-08-01 Thread Chris Lattner


Changes in directory llvm/lib/System/Win32:

Signals.inc updated: 1.20 -> 1.21
---
Log message:

Use getFileStatus instead of Path::isDirectory().


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

 Signals.inc |   14 --
 1 files changed, 8 insertions(+), 6 deletions(-)


Index: llvm/lib/System/Win32/Signals.inc
diff -u llvm/lib/System/Win32/Signals.inc:1.20 
llvm/lib/System/Win32/Signals.inc:1.21
--- llvm/lib/System/Win32/Signals.inc:1.20  Thu Jun  1 14:03:21 2006
+++ llvm/lib/System/Win32/Signals.inc   Tue Aug  1 12:59:14 2006
@@ -96,17 +96,19 @@
 
 // RemoveDirectoryOnSignal - The public API
 void sys::RemoveDirectoryOnSignal(const sys::Path& path) {
+  // Not a directory?
+  sys::FileStatus Status;
+  if (path.getFileStatus(Status) || !Status.isDir)
+return;
+
   RegisterHandler();
 
   if (CleanupExecuted)
 throw std::string("Process terminating -- cannot register for removal");
 
-  if (path.isDirectory()) {
-if (DirectoriesToRemove == NULL)
-  DirectoriesToRemove = new std::vector;
-
-DirectoriesToRemove->push_back(path);
-  }
+  if (DirectoriesToRemove == NULL)
+DirectoriesToRemove = new std::vector;
+  DirectoriesToRemove->push_back(path);
 
   LeaveCriticalSection(&CriticalSection);
 }



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


[llvm-commits] CVS: llvm/lib/System/Unix/Signals.inc

2006-08-01 Thread Chris Lattner


Changes in directory llvm/lib/System/Unix:

Signals.inc updated: 1.11 -> 1.12
---
Log message:

Use getFileStatus instead of Path::isDirectory().


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

 Signals.inc |   13 ++---
 1 files changed, 6 insertions(+), 7 deletions(-)


Index: llvm/lib/System/Unix/Signals.inc
diff -u llvm/lib/System/Unix/Signals.inc:1.11 
llvm/lib/System/Unix/Signals.inc:1.12
--- llvm/lib/System/Unix/Signals.inc:1.11   Thu Jun 15 19:00:57 2006
+++ llvm/lib/System/Unix/Signals.incTue Aug  1 12:59:14 2006
@@ -21,6 +21,7 @@
 #if HAVE_SIGNAL_H
 #include 
 #endif
+using namespace llvm;
 
 namespace {
 
@@ -30,7 +31,7 @@
 void (*InterruptFunction)() = 0;
 
 std::vector *FilesToRemove = 0 ;
-std::vector *DirectoriesToRemove = 0;
+std::vector *DirectoriesToRemove = 0;
 
 // IntSigs - Signals that may interrupt the program at any time.
 const int IntSigs[] = {
@@ -146,7 +147,6 @@
 
 }
 
-namespace llvm {
 
 void sys::SetInterruptFunction(void (*IF)()) {
   InterruptFunction = IF;
@@ -165,8 +165,10 @@
 }
 
 // RemoveDirectoryOnSignal - The public API
-void sys::RemoveDirectoryOnSignal(const llvm::sys::Path& path) {
-  if (!path.isDirectory())
+void sys::RemoveDirectoryOnSignal(const sys::Path& path) {
+  // Not a directory?
+  sys::FileStatus Status;
+  if (path.getFileStatus(Status) || !Status.isDir)
 return;
 
   if (DirectoriesToRemove == 0)
@@ -184,6 +186,3 @@
   StackTraceRequested = true;
   std::for_each(KillSigs, KillSigsEnd, RegisterHandler);
 }
-
-}
-



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


[llvm-commits] CVS: llvm/lib/System/Win32/Path.inc

2006-08-01 Thread Chris Lattner


Changes in directory llvm/lib/System/Win32:

Path.inc updated: 1.49 -> 1.50
---
Log message:

elimiante some syscalls


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

 Path.inc |   16 
 1 files changed, 8 insertions(+), 8 deletions(-)


Index: llvm/lib/System/Win32/Path.inc
diff -u llvm/lib/System/Win32/Path.inc:1.49 llvm/lib/System/Win32/Path.inc:1.50
--- llvm/lib/System/Win32/Path.inc:1.49 Tue Aug  1 03:07:22 2006
+++ llvm/lib/System/Win32/Path.inc  Tue Aug  1 12:51:09 2006
@@ -281,8 +281,6 @@
 
 bool
 Path::isBytecodeFile() const {
-  if (!isFile())
-return false;
   std::string actualMagic;
   if (!getMagicNumber(actualMagic, 4))
 return false;
@@ -574,12 +572,16 @@
 
 bool
 Path::eraseFromDisk(bool remove_contents, std::string *ErrStr) const {
-  if (isFile()) {
+  FileStatus Status;
+  if (getFileStatus(Status, ErrStr))
+return true;
+
+  if (Status.isFile) {
 DWORD attr = GetFileAttributes(path.c_str());
 
 // If it doesn't exist, we're done.
 if (attr == INVALID_FILE_ATTRIBUTES)
-  return false;
+  return true;
 
 // Read-only files cannot be deleted on Windows.  Must remove the read-only
 // attribute first.
@@ -590,8 +592,8 @@
 
 if (!DeleteFile(path.c_str()))
   ThrowError(path + ": Can't destroy file: ");
-return true;
-  } else if (isDirectory()) {
+return false;
+  } else if (Status.isDir) {
 // If it doesn't exist, we're done.
 if (!exists())
   return false;
@@ -657,8 +659,6 @@
 }
 
 bool Path::getMagicNumber(std::string& Magic, unsigned len) const {
-  if (!isFile())
-return false;
   assert(len < 1024 && "Request for magic string too long");
   char* buf = (char*) alloca(1 + len);
 



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


[llvm-commits] CVS: llvm/lib/System/Unix/Path.inc

2006-08-01 Thread Chris Lattner


Changes in directory llvm/lib/System/Unix:

Path.inc updated: 1.48 -> 1.49
---
Log message:

elimiante some syscalls


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

 Path.inc |   27 ---
 1 files changed, 12 insertions(+), 15 deletions(-)


Index: llvm/lib/System/Unix/Path.inc
diff -u llvm/lib/System/Unix/Path.inc:1.48 llvm/lib/System/Unix/Path.inc:1.49
--- llvm/lib/System/Unix/Path.inc:1.48  Fri Jul 28 17:36:17 2006
+++ llvm/lib/System/Unix/Path.inc   Tue Aug  1 12:51:09 2006
@@ -241,7 +241,7 @@
   if (!exists())
 return false;
   struct stat buf;
-  if (0 != stat(path.c_str(), &buf)) {
+  if (stat(path.c_str(), &buf) != 0) {
 ThrowErrno(path + ": can't determine type of path object: ");
   }
   return S_ISREG(buf.st_mode);
@@ -286,12 +286,10 @@
 }
 
 bool Path::hasMagicNumber(const std::string &Magic) const {
-  if (!isFile())
-return false;
   size_t len = Magic.size();
   assert(len < 1024 && "Request for magic string too long");
   char* buf = (char*) alloca(1 + len);
-  int fd = ::open(path.c_str(),O_RDONLY);
+  int fd = ::open(path.c_str(), O_RDONLY);
   if (fd < 0)
 return false;
   size_t read_len = ::read(fd, buf, len);
@@ -303,11 +301,9 @@
 }
 
 bool Path::getMagicNumber(std::string& Magic, unsigned len) const {
-  if (!isFile())
-return false;
   assert(len < 1024 && "Request for magic string too long");
   char* buf = (char*) alloca(1 + len);
-  int fd = ::open(path.c_str(),O_RDONLY);
+  int fd = ::open(path.c_str(), O_RDONLY);
   if (fd < 0)
 return false;
   ssize_t bytes_read = ::read(fd, buf, len);
@@ -322,11 +318,9 @@
 
 bool 
 Path::isBytecodeFile() const {
-  if (!isFile())
-return false;
-  char buffer[ 4];
+  char buffer[4];
   buffer[0] = 0;
-  int fd = ::open(path.c_str(),O_RDONLY);
+  int fd = ::open(path.c_str(), O_RDONLY);
   if (fd < 0)
 return false;
   ssize_t bytes_read = ::read(fd, buffer, 4);
@@ -335,7 +329,7 @@
 return false;
 
   return (buffer[0] == 'l' && buffer[1] == 'l' && buffer[2] == 'v' &&
-  (buffer[3] == 'c' || buffer[3] == 'm'));
+ (buffer[3] == 'c' || buffer[3] == 'm'));
 }
 
 bool
@@ -605,14 +599,17 @@
 
 bool
 Path::eraseFromDisk(bool remove_contents, std::string *ErrStr) const {
-  // Make sure we're dealing with a directory.
-  if (isFile()) {
+  FileStatus Status;
+  if (getFileStatus(Status, ErrStr))
+return true;
+
+  if (Status.isFile) {
 if (unlink(path.c_str()) != 0)
   return GetErrno(path + ": can't destroy file", ErrStr);
 return false;
   }
   
-  if (!isDirectory()) {
+  if (!Status.isDir) {
 if (ErrStr) *ErrStr = "not a file or directory";
 return true;
   }



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


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

2006-08-01 Thread Patrick Jenkins


Changes in directory nightlytest-serverside:

drawresultsgraph.php updated: 1.1.1.1 -> 1.2
---
Log message:

The data in the database had html line breaks in it which caused regular 
expresions not to match. I do a search and replace for s// / before 
performing regular expressions now. This problem caused graphs to be generated 
with error messages because there was seemingly no data.


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

 drawresultsgraph.php |7 +--
 1 files changed, 5 insertions(+), 2 deletions(-)


Index: nightlytest-serverside/drawresultsgraph.php
diff -u nightlytest-serverside/drawresultsgraph.php:1.1.1.1 
nightlytest-serverside/drawresultsgraph.php:1.2
--- nightlytest-serverside/drawresultsgraph.php:1.1.1.1 Wed Jul  5 15:56:33 2006
+++ nightlytest-serverside/drawresultsgraph.php Tue Aug  1 12:47:56 2006
@@ -231,7 +231,7 @@
 
$data_max=-1;
 
-   
+   $regexp = "/$preg_measure:\s*([0-9\.]+|\?)/";
while($row=mysql_fetch_array($night_table_query)){
$night_id = $row['night'];
$query = mysql_query("select added from night where 
id=$night_id") or die(mysql_error());
@@ -241,7 +241,10 @@

$seconds = mktime($pjs[4], $pjs[5], $pjs[6], $pjs[2], 
$pjs[3],$pjs[1]);

-   $regexp = "/$preg_measure:\s*([0-9\.]+|\?)/";
+   if($DEBUG){
+ print "searching for $regexp \n";
+   }
+   $row['result']=str_replace("", " ", "{$row['result']}");
preg_match($regexp, "{$row['result']}", $ans);  

if(isset($ans[1])){



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


[llvm-commits] CVS: llvm/tools/lto/

2006-08-01 Thread LLVM


Changes in directory llvm/tools/lto:

---
Log message:

Directory /var/cvs/llvm/llvm/tools/lto added to the repository


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

 0 files changed



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


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

2006-08-01 Thread Reid Spencer


Changes in directory llvm/tools/llvm-config:

llvm-config.in.in updated: 1.18 -> 1.18.2.1
---
Log message:

Include the system libraries in the --ldflags options. This is required to
enable correctly linking on win32 libraries where additional dlls are 
required. Patch contributed by Anton Korobeynikov. Release branch commit
authorized by Chris Lattner.


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

 llvm-config.in.in |3 ++-
 1 files changed, 2 insertions(+), 1 deletion(-)


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.18.2.1
--- llvm/tools/llvm-config/llvm-config.in.in:1.18   Tue Jun  6 19:43:18 2006
+++ llvm/tools/llvm-config/llvm-config.in.inTue Aug  1 12:32:58 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: nightlytest-serverside/NightlyTestAccept.cgi

2006-08-01 Thread Patrick Jenkins


Changes in directory nightlytest-serverside:

NightlyTestAccept.cgi updated: 1.38 -> 1.39
---
Log message:

fixed a misnamed variable


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

 NightlyTestAccept.cgi |2 +-
 1 files changed, 1 insertion(+), 1 deletion(-)


Index: nightlytest-serverside/NightlyTestAccept.cgi
diff -u nightlytest-serverside/NightlyTestAccept.cgi:1.38 
nightlytest-serverside/NightlyTestAccept.cgi:1.39
--- nightlytest-serverside/NightlyTestAccept.cgi:1.38   Sun Jul 30 13:02:07 2006
+++ nightlytest-serverside/NightlyTestAccept.cgiTue Aug  1 12:26:33 2006
@@ -453,7 +453,7 @@
 chomp($o_file_size);
 my @O_FILE_SIZE = split $spliton, $o_file_size;
 my $a_file_size = param('a_file_sizes'); 
-   $a_file_size="" unless $o_file_size;
+   $a_file_size="" unless $a_file_size;
chomp($a_file_size);
 my @A_FILE_SIZE = split $spliton, $a_file_size;
 



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


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

2006-08-01 Thread Reid Spencer


Changes in directory llvm:

CREDITS.TXT updated: 1.60 -> 1.61
---
Log message:

Update my entry.


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

 CREDITS.TXT |6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)


Index: llvm/CREDITS.TXT
diff -u llvm/CREDITS.TXT:1.60 llvm/CREDITS.TXT:1.61
--- llvm/CREDITS.TXT:1.60   Tue Aug  1 11:40:42 2006
+++ llvm/CREDITS.TXTTue Aug  1 11:52:07 2006
@@ -156,11 +156,11 @@
 D: The `paths' pass
 
 N: Reid Spencer
-E: [EMAIL PROTECTED]
-W: http://llvm.x10sys.com/rspencer
+E: [EMAIL PROTECTED]
+W: http://reidspencer.com/
 D: Stacker, llvmc, llvm-ld, llvm-ar, lib/Archive, lib/Linker, lib/System, 
 D: bytecode enhancements, symtab hacking, unoverloading of intrinsics, 
makefile 
-D: and configuration system, documentation.
+D: and configuration system, documentation, various bug fixing.
 
 N: Adam Treat
 E: [EMAIL PROTECTED]



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


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

2006-08-01 Thread Chris Lattner


Changes in directory llvm:

CREDITS.TXT updated: 1.59 -> 1.60
---
Log message:

Update Bil's entry


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

 CREDITS.TXT |3 ++-
 1 files changed, 2 insertions(+), 1 deletion(-)


Index: llvm/CREDITS.TXT
diff -u llvm/CREDITS.TXT:1.59 llvm/CREDITS.TXT:1.60
--- llvm/CREDITS.TXT:1.59   Tue Aug  1 04:01:40 2006
+++ llvm/CREDITS.TXTTue Aug  1 11:40:42 2006
@@ -167,8 +167,9 @@
 D: C++ bugs filed, and C++ front-end bug fixes.
 
 N: Bill Wendling
-E: [EMAIL PROTECTED]
+E: [EMAIL PROTECTED]
 D: The `Lower Setjmp/Longjmp' pass, improvements to the -lowerswitch pass.
+D: Bug hunter extraordinaire.
 
 N: Patrick Jenkins
 E: [EMAIL PROTECTED]



___
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/LinkAllCodegenComponents.h MachinePassRegistry.h

2006-08-01 Thread Jim Laskey


Changes in directory llvm/include/llvm/CodeGen:

LinkAllCodegenComponents.h added (r1.1)
MachinePassRegistry.h added (r1.1)
---
Log message:

Forgot the added files for plugable machine passes.


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

 LinkAllCodegenComponents.h |   46 ++
 MachinePassRegistry.h  |  312 +
 2 files changed, 358 insertions(+)


Index: llvm/include/llvm/CodeGen/LinkAllCodegenComponents.h
diff -c /dev/null llvm/include/llvm/CodeGen/LinkAllCodegenComponents.h:1.1
*** /dev/null   Tue Aug  1 11:31:18 2006
--- llvm/include/llvm/CodeGen/LinkAllCodegenComponents.hTue Aug  1 
11:31:08 2006
***
*** 0 
--- 1,46 
+ //===- llvm/Codegen/LinkAllCodegenComponents.h --*- C++ 
-*-===//
+ //
+ //  The LLVM Compiler Infrastructure
+ //
+ // This file was developed by James M. Laskey and is distributed under the
+ // University of Illinois Open Source License. See LICENSE.TXT for details.
+ //
+ 
//===--===//
+ //
+ // This header file pulls in all codegen related passes for tools like lli and
+ // llc that need this functionality.
+ //
+ 
//===--===//
+ 
+ #ifndef LLVM_CODEGEN_LINKALLCODEGENCOMPONENTS_H
+ #define LLVM_CODEGEN_LINKALLCODEGENCOMPONENTS_H
+ 
+ #include "llvm/CodeGen/Passes.h"
+ #include "llvm/CodeGen/ScheduleDAG.h"
+ 
+ namespace {
+   struct ForceCodegenLinking {
+ ForceCodegenLinking() {
+   // We must reference the passes in such a way that compilers will not
+   // delete it all as dead code, even with whole program optimization,
+   // yet is effectively a NO-OP. As the compiler isn't smart enough
+   // to know that getenv() never returns -1, this will do the job.
+   if (std::getenv("bar") != (char*) -1)
+ return;
+ 
+   (void) llvm::createSimpleRegisterAllocator();
+   (void) llvm::createLocalRegisterAllocator();
+   (void) llvm::createLinearScanRegisterAllocator();
+   
+   (void) llvm::createBFS_DAGScheduler(NULL, NULL);
+   (void) llvm::createSimpleDAGScheduler(NULL, NULL);
+   (void) llvm::createNoItinsDAGScheduler(NULL, NULL);
+   (void) llvm::createBURRListDAGScheduler(NULL, NULL);
+   (void) llvm::createTDRRListDAGScheduler(NULL, NULL);
+   (void) llvm::createTDListDAGScheduler(NULL, NULL);
+ 
+ }
+   } ForceCodegenLinking; // Force link by creating a global definition.
+ }
+ 
+ #endif
\ No newline at end of file


Index: llvm/include/llvm/CodeGen/MachinePassRegistry.h
diff -c /dev/null llvm/include/llvm/CodeGen/MachinePassRegistry.h:1.1
*** /dev/null   Tue Aug  1 11:31:24 2006
--- llvm/include/llvm/CodeGen/MachinePassRegistry.h Tue Aug  1 11:31:08 2006
***
*** 0 
--- 1,312 
+ //===-- llvm/CodeGen/MachinePassRegistry.h --*- C++ 
-*-===//
+ //
+ // The LLVM Compiler Infrastructure
+ //
+ // This file was developed by the LLVM research group and is distributed under
+ // the University of Illinois Open Source License. See LICENSE.TXT for 
details.
+ //
+ 
//===--===//
+ 
+ #ifndef LLVM_CODEGEN_MACHINEPASSREGISTRY_H
+ #define LLVM_CODEGEN_MACHINEPASSREGISTRY_H
+ 
+ #include "llvm/CodeGen/Passes.h"
+ #include "llvm/CodeGen/ScheduleDAG.h"
+ #include "llvm/Support/CommandLine.h"
+ 
+ #include 
+ 
+ namespace llvm {
+ 
+ 
+ 
//===--===//
 
+ ///
+ /// MachinePassRegistryListener - Listener to adds and removals of nodes in
+ /// registration list.
+ ///
+ 
//===--===//
+ class MachinePassRegistryListener {
+ public:
+   MachinePassRegistryListener() {}
+   virtual ~MachinePassRegistryListener() {}
+   virtual void NotifyAdd(const char *N, const char *D) = 0;
+   virtual void NotifyRemove(const char *N, const char *D) = 0;
+ };
+ 
+ 
+ 
//===--===//
 
+ ///
+ /// MachinePassRegistryNode - Machine pass node stored in registration list.
+ ///
+ 
//===--===//
+ template
+ class MachinePassRegistryNode {
+ 
+ private:
+ 
+   MachinePassRegistryNode *Next;// Next function pass in 
list.
+   const char *Name; // Name of function pass.
+   const char *Description;  // Description string.
+   FunctionPassCtor Ctor;// Function pass creator.
+   
+ public:
+ 
+   MachinePassRegistryNode(const char *N, const char *D, FunctionPassCtor C)
+   : Next(NULL)
+   , Name(N)
+   , Description(D)
+   , Ctor(C)
+   {}
+ 
+   // Accessors
+   MachinePassRegistryNode *getNext()
+   const { return Next; }
+   M

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

2006-08-01 Thread Jim Laskey


Changes in directory llvm/lib/CodeGen:

MachinePassRegistry.cpp added (r1.1)
---
Log message:

Forgot the added files for plugable machine passes.


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

 MachinePassRegistry.cpp |   31 +++
 1 files changed, 31 insertions(+)


Index: llvm/lib/CodeGen/MachinePassRegistry.cpp
diff -c /dev/null llvm/lib/CodeGen/MachinePassRegistry.cpp:1.1
*** /dev/null   Tue Aug  1 11:31:18 2006
--- llvm/lib/CodeGen/MachinePassRegistry.cppTue Aug  1 11:31:08 2006
***
*** 0 
--- 1,31 
+ //===-- MachineInstr.cpp 
--===//
+ //
+ // The LLVM Compiler Infrastructure
+ //
+ // This file was developed by James M. Laskey and is distributed under
+ // the University of Illinois Open Source License. See LICENSE.TXT for 
details.
+ //
+ 
//===--===//
+ 
+ #include "llvm/CodeGen/MachinePassRegistry.h"
+ #include 
+ 
+ using namespace llvm;
+ 
+   
+ 
//===-===//
+ ///
+ /// RegisterRegAlloc class - Track the registration of register allocators.
+ ///
+ 
//===-===//
+ MachinePassRegistry
+ RegisterRegAlloc::Registry;
+ 
+ 
+ 
//===-===//
+ ///
+ /// RegisterScheduler class - Track the registration of instruction 
schedulers.
+ ///
+ 
//===-===//
+ MachinePassRegistry
+ RegisterScheduler::Registry;



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


[llvm-commits] CVS: llvm/docs/UsingLibraries.html

2006-08-01 Thread Reid Spencer


Changes in directory llvm/docs:

UsingLibraries.html updated: 1.24 -> 1.25
---
Log message:

Fix HTML 4.01 Strict errors.


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

 UsingLibraries.html |   16 +++-
 1 files changed, 7 insertions(+), 9 deletions(-)


Index: llvm/docs/UsingLibraries.html
diff -u llvm/docs/UsingLibraries.html:1.24 llvm/docs/UsingLibraries.html:1.25
--- llvm/docs/UsingLibraries.html:1.24  Tue Aug  1 02:32:01 2006
+++ llvm/docs/UsingLibraries.html   Tue Aug  1 11:23:54 2006
@@ -154,7 +154,7 @@
 
 Using llvm-config
 
-  The llvm-config tool is a perl script that produces on its output
+  The llvm-config tool is a perl script that produces on its output
   various kinds of information. For example, the source or object directories 
   used to build LLVM can be accessed by passing options to 
llvm-config.
   For complete details on this tool, please see the
@@ -167,15 +167,15 @@
 --ldflags. This generates the command line options necessary 
to
 be passed to the ld tool in order to link with LLVM. Most notably,
 the -L option is provided to specify a library search directory 
-that contains the LLVM libraries.
+that contains the LLVM libraries.
 --libs. This generates command line options suitable for
 use with a gcc-style linker. That is, libraries are given with a -l option
 and object files are given with a full path.
 --libnames. This generates a list of just the library file
 names. If you know the directory in which these files reside (see 
--ldflags)
 then you can find the libraries there.
---libfiles. This generates the full path names of the
-LLVM library files.
+--libfiles. This generates the full path names of the
+LLVM library files.
   
   If you wish to delve further into how llvm-config generates the
   correct order (based on library dependencies), please see the tool named
@@ -277,8 +277,7 @@
 libLLVMSystem.a
 libLLVMbzip2.a
   
-  libLLVMSystem.a
-  
+  libLLVMSystem.a
   libLLVMTarget.a
 libLLVMCodeGen.a
 libLLVMCore.a
@@ -300,8 +299,7 @@
 libLLVMTarget.a
 libLLVMTransformUtils.a
   
-  libLLVMbzip2.a
-  
+  libLLVMbzip2.a
   libLLVMipa.a
 libLLVMAnalysis.a
 libLLVMCore.a
@@ -448,7 +446,7 @@
   mailto:[EMAIL PROTECTED]">Reid Spencer
 
 http://llvm.org";>The LLVM Compiler Infrastructure 
-Last modified: $Date: 2006/08/01 07:32:01 $ 
+Last modified: $Date: 2006/08/01 16:23:54 $ 
 
 
 

[llvm-commits] CVS: llvm/lib/System/Win32/Path.inc

2006-08-01 Thread Anton Korobeynikov


Changes in directory llvm/lib/System/Win32:

Path.inc updated: 1.48 -> 1.49
---
Log message:

Minor fix due to recent API changes


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

 Path.inc |2 +-
 1 files changed, 1 insertion(+), 1 deletion(-)


Index: llvm/lib/System/Win32/Path.inc
diff -u llvm/lib/System/Win32/Path.inc:1.48 llvm/lib/System/Win32/Path.inc:1.49
--- llvm/lib/System/Win32/Path.inc:1.48 Fri Jul 28 17:36:17 2006
+++ llvm/lib/System/Win32/Path.inc  Tue Aug  1 03:07:22 2006
@@ -334,7 +334,7 @@
 }
 
 bool
-Path::getStatusInfo(FileStatus &info, std::string *ErrStr) const {
+Path::getFileStatus(FileStatus &info, std::string *ErrStr) const {
   WIN32_FILE_ATTRIBUTE_DATA fi;
   if (!GetFileAttributesEx(path.c_str(), GetFileExInfoStandard, &fi))
 return GetError("getStatusInfo():" + std::string(path) +



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


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

2006-08-01 Thread Anton Korobeynikov


Changes in directory llvm:

CREDITS.TXT updated: 1.57 -> 1.58
---
Log message:

Added myself to credits.


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

 CREDITS.TXT |4 
 1 files changed, 4 insertions(+)


Index: llvm/CREDITS.TXT
diff -u llvm/CREDITS.TXT:1.57 llvm/CREDITS.TXT:1.58
--- llvm/CREDITS.TXT:1.57   Wed Jul  5 15:17:26 2006
+++ llvm/CREDITS.TXTTue Aug  1 02:06:00 2006
@@ -93,6 +93,10 @@
 W: http://randomhacks.net/
 D: llvm-config script
 
+N: Anton Korobeynikov
+E: [EMAIL PROTECTED]
+D: Mingw32 fixes, cross-compiling support, minor changes here and there
+
 N: Sumant Kowshik
 E: [EMAIL PROTECTED]
 D: Author of the original C backend



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


[llvm-commits] CVS: llvm/tools/llc/llc.cpp

2006-08-01 Thread Jim Laskey


Changes in directory llvm/tools/llc:

llc.cpp updated: 1.134 -> 1.135
---
Log message:

Introducing plugable register allocators and instruction schedulers.


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

 llc.cpp |1 +
 1 files changed, 1 insertion(+)


Index: llvm/tools/llc/llc.cpp
diff -u llvm/tools/llc/llc.cpp:1.134 llvm/tools/llc/llc.cpp:1.135
--- llvm/tools/llc/llc.cpp:1.134Wed Jun  7 18:03:13 2006
+++ llvm/tools/llc/llc.cpp  Tue Aug  1 09:21:23 2006
@@ -14,6 +14,7 @@
 
//===--===//
 
 #include "llvm/Bytecode/Reader.h"
+#include "llvm/Codegen/LinkAllCodegenComponents.h"
 #include "llvm/Target/SubtargetFeature.h"
 #include "llvm/Target/TargetData.h"
 #include "llvm/Target/TargetMachine.h"



___
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-08-01 Thread Jim Laskey


Changes in directory llvm/include/llvm:

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

Introducing plugable register allocators and instruction schedulers.


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

 PassSupport.h |   69 --
 1 files changed, 69 deletions(-)


Index: llvm/include/llvm/PassSupport.h
diff -u llvm/include/llvm/PassSupport.h:1.25 
llvm/include/llvm/PassSupport.h:1.26
--- llvm/include/llvm/PassSupport.h:1.25Thu Jul 27 15:04:59 2006
+++ llvm/include/llvm/PassSupport.h Tue Aug  1 09:21:23 2006
@@ -369,75 +369,6 @@
 };
 
 
-//===-===//
-///
-/// 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/tools/lli/lli.cpp

2006-08-01 Thread Jim Laskey


Changes in directory llvm/tools/lli:

lli.cpp updated: 1.56 -> 1.57
---
Log message:

Introducing plugable register allocators and instruction schedulers.


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

 lli.cpp |1 +
 1 files changed, 1 insertion(+)


Index: llvm/tools/lli/lli.cpp
diff -u llvm/tools/lli/lli.cpp:1.56 llvm/tools/lli/lli.cpp:1.57
--- llvm/tools/lli/lli.cpp:1.56 Thu Mar 23 20:53:49 2006
+++ llvm/tools/lli/lli.cpp  Tue Aug  1 09:21:23 2006
@@ -17,6 +17,7 @@
 #include "llvm/ModuleProvider.h"
 #include "llvm/Type.h"
 #include "llvm/Bytecode/Reader.h"
+#include "llvm/Codegen/LinkAllCodegenComponents.h"
 #include "llvm/ExecutionEngine/JIT.h"
 #include "llvm/ExecutionEngine/Interpreter.h"
 #include "llvm/ExecutionEngine/GenericValue.h"



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


[llvm-commits] CVS: llvm/include/llvm/Transforms/LinkAllPasses.h

2006-08-01 Thread Jim Laskey


Changes in directory llvm/include/llvm/Transforms:

LinkAllPasses.h updated: 1.31 -> 1.32
---
Log message:

Introducing plugable register allocators and instruction schedulers.


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

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


Index: llvm/include/llvm/Transforms/LinkAllPasses.h
diff -u llvm/include/llvm/Transforms/LinkAllPasses.h:1.31 
llvm/include/llvm/Transforms/LinkAllPasses.h:1.32
--- llvm/include/llvm/Transforms/LinkAllPasses.h:1.31   Fri May 26 08:58:26 2006
+++ llvm/include/llvm/Transforms/LinkAllPasses.hTue Aug  1 09:21:23 2006
@@ -110,7 +110,7 @@
   (void) llvm::createRSProfilingPass();
   (void) llvm::createIndMemRemPass();
 }
-  } ForcePassLinking;
+  } ForcePassLinking; // Force link by creating a global definition.
 }
 
 #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 RegAllocLinearScan.cpp RegAllocLocal.cpp RegAllocSimple.cpp

2006-08-01 Thread Jim Laskey


Changes in directory llvm/lib/CodeGen:

Passes.cpp updated: 1.18 -> 1.19
RegAllocLinearScan.cpp updated: 1.125 -> 1.126
RegAllocLocal.cpp updated: 1.83 -> 1.84
RegAllocSimple.cpp updated: 1.70 -> 1.71
---
Log message:

Introducing plugable register allocators and instruction schedulers.


---
Diffs of the changes:  (+31 -57)

 Passes.cpp |   71 +
 RegAllocLinearScan.cpp |5 +++
 RegAllocLocal.cpp  |7 
 RegAllocSimple.cpp |5 +++
 4 files changed, 31 insertions(+), 57 deletions(-)


Index: llvm/lib/CodeGen/Passes.cpp
diff -u llvm/lib/CodeGen/Passes.cpp:1.18 llvm/lib/CodeGen/Passes.cpp:1.19
--- llvm/lib/CodeGen/Passes.cpp:1.18Thu Jul 27 15:05:00 2006
+++ llvm/lib/CodeGen/Passes.cpp Tue Aug  1 09:21:23 2006
@@ -12,74 +12,31 @@
 //
 //===-===//
 
+#include "llvm/CodeGen/MachinePassRegistry.h"
 #include "llvm/CodeGen/Passes.h"
-#include "llvm/Pass.h"
 #include "llvm/Support/CommandLine.h"
 #include 
+
 using namespace llvm;
 
 namespace {
-  enum RegAllocName { simple, local, linearscan };
-
-  static cl::opt
-  RegAlloc(
-"regalloc",
-cl::desc("Register allocator to use: (default = linearscan)"),
-cl::Prefix,
-cl::values(
-   clEnumVal(simple,"  simple register allocator"),
-   clEnumVal(local, "  local register allocator"),
-   clEnumVal(linearscan,"  linear scan register allocator"),
-   clEnumValEnd),
-cl::init(linearscan));
-}
-
-
-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";
-  }
+  cl::opt >
+  RegAlloc("regalloc",
+   cl::init("linearscan"),
+   cl::desc("Register allocator to use: (default = linearscan)")); 
 }
-#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::getCache();
+  
+  if (!Ctor) {
+Ctor = RegisterRegAlloc::FindCtor(RegAlloc);
+assert(Ctor && "No register allocator found");
+if (!Ctor) Ctor = RegisterRegAlloc::FirstCtor();
+RegisterRegAlloc::setCache(Ctor);
+  }
   
-  RegisterRegAlloc::FunctionPassCtor Ctor =
-RegisterRegAlloc::Find(Names[RegAlloc]);
-  if (!Ctor) Ctor = RegisterRegAlloc::Find(DefltName);
-
   assert(Ctor && "No register allocator found");
   
   return Ctor();
 }
-
-


Index: llvm/lib/CodeGen/RegAllocLinearScan.cpp
diff -u llvm/lib/CodeGen/RegAllocLinearScan.cpp:1.125 
llvm/lib/CodeGen/RegAllocLinearScan.cpp:1.126
--- llvm/lib/CodeGen/RegAllocLinearScan.cpp:1.125   Thu Jul 20 12:28:38 2006
+++ llvm/lib/CodeGen/RegAllocLinearScan.cpp Tue Aug  1 09:21:23 2006
@@ -18,6 +18,7 @@
 #include "llvm/Function.h"
 #include "llvm/CodeGen/MachineFunctionPass.h"
 #include "llvm/CodeGen/MachineInstr.h"
+#include "llvm/CodeGen/MachinePassRegistry.h"
 #include "llvm/CodeGen/Passes.h"
 #include "llvm/CodeGen/SSARegMap.h"
 #include "llvm/Target/MRegisterInfo.h"
@@ -42,6 +43,10 @@
   static Statistic<> NumBacktracks
   ("regalloc", "Number of times we had to backtrack");
 
+  static RegisterRegAlloc
+linearscanRegAlloc("linearscan", "  linear scan register allocator",
+   createLinearScanRegisterAllocator);
+
   static unsigned numIterations = 0;
   static unsigned numIntervals = 0;
 


Index: llvm/lib/CodeGen/RegAllocLocal.cpp
diff -u llvm/lib/CodeGen/RegAllocLocal.cpp:1.83 
llvm/lib/CodeGen/RegAllocLocal.cpp:1.84
--- llvm/lib/CodeGen/RegAllocLocal.cpp:1.83 Fri Jul 21 16:15:20 2006
+++ llvm/lib/CodeGen/RegAllocLocal.cpp  Tue Aug  1 09:21:23 2006
@@ -18,6 +18,7 @@
 #include "llvm/CodeGen/MachineInstr.h"
 #include "llvm/CodeGen/SSARegMap.h"
 #include "llvm/CodeGen/MachineFrameInfo.h"
+#include "llvm/CodeGen/MachinePassRegistry.h"
 #include "llvm/CodeGen/LiveVariables.h"
 #include "llvm/Target/TargetInstrInfo.h"
 #include "llvm/Target/TargetMachine.h"
@@ -35,6 +36,12 @@
   static Statistic<> NumLoads ("ra-local", "Number of loads added");
   static Statistic<> NumFolded("ra-l

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

2006-08-01 Thread Jim Laskey


Changes in directory llvm/lib/CodeGen/SelectionDAG:

ScheduleDAGList.cpp updated: 1.62 -> 1.63
ScheduleDAGRRList.cpp updated: 1.9 -> 1.10
ScheduleDAGSimple.cpp updated: 1.13 -> 1.14
SelectionDAGISel.cpp updated: 1.262 -> 1.263
---
Log message:

Introducing plugable register allocators and instruction schedulers.


---
Diffs of the changes:  (+87 -82)

 ScheduleDAGList.cpp   |   19 ++
 ScheduleDAGRRList.cpp |   18 +++--
 ScheduleDAGSimple.cpp |   37 ---
 SelectionDAGISel.cpp  |   95 +++---
 4 files changed, 87 insertions(+), 82 deletions(-)


Index: llvm/lib/CodeGen/SelectionDAG/ScheduleDAGList.cpp
diff -u llvm/lib/CodeGen/SelectionDAG/ScheduleDAGList.cpp:1.62 
llvm/lib/CodeGen/SelectionDAG/ScheduleDAGList.cpp:1.63
--- llvm/lib/CodeGen/SelectionDAG/ScheduleDAGList.cpp:1.62  Thu Jul 20 
12:28:38 2006
+++ llvm/lib/CodeGen/SelectionDAG/ScheduleDAGList.cpp   Tue Aug  1 09:21:23 2006
@@ -19,6 +19,7 @@
 
//===--===//
 
 #define DEBUG_TYPE "sched"
+#include "llvm/CodeGen/MachinePassRegistry.h"
 #include "llvm/CodeGen/ScheduleDAG.h"
 #include "llvm/CodeGen/SSARegMap.h"
 #include "llvm/Target/MRegisterInfo.h"
@@ -38,6 +39,10 @@
   static Statistic<> NumStalls("scheduler", "Number of pipeline stalls");
 }
 
+static RegisterScheduler
+  tdListDAGScheduler("list-td", "  Top-down list scheduler",
+ createTDListDAGScheduler);
+   
 namespace {
 
//===--===//
 /// ScheduleDAGList - The actual list scheduler implementation.  This supports
@@ -511,12 +516,12 @@
 // Public Constructor Functions
 
//===--===//
 
-/// createTDListDAGScheduler - This creates a top-down list scheduler with the
-/// specified hazard recognizer.
-ScheduleDAG* llvm::createTDListDAGScheduler(SelectionDAG &DAG,
-MachineBasicBlock *BB,
-HazardRecognizer *HR) {
-  return new ScheduleDAGList(DAG, BB, DAG.getTarget(),
+/// createTDListDAGScheduler - This creates a top-down list scheduler with a
+/// new hazard recognizer. This scheduler takes ownership of the hazard
+/// recognizer and deletes it when done.
+ScheduleDAG* llvm::createTDListDAGScheduler(SelectionDAG *DAG,
+MachineBasicBlock *BB) {
+  return new ScheduleDAGList(*DAG, BB, DAG->getTarget(),
  new LatencyPriorityQueue(),
- HR);
+ new HazardRecognizer());
 }


Index: llvm/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp
diff -u llvm/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp:1.9 
llvm/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp:1.10
--- llvm/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp:1.9 Fri Jul 21 
15:57:35 2006
+++ llvm/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp Tue Aug  1 09:21:23 2006
@@ -16,6 +16,7 @@
 
//===--===//
 
 #define DEBUG_TYPE "sched"
+#include "llvm/CodeGen/MachinePassRegistry.h"
 #include "llvm/CodeGen/ScheduleDAG.h"
 #include "llvm/CodeGen/SSARegMap.h"
 #include "llvm/Target/MRegisterInfo.h"
@@ -31,6 +32,15 @@
 #include "llvm/Support/CommandLine.h"
 using namespace llvm;
 
+static RegisterScheduler
+  burrListDAGScheduler("list-burr",
+   "  Bottom-up register reduction list scheduling",
+   createBURRListDAGScheduler);
+static RegisterScheduler
+  tdrListrDAGScheduler("list-tdrr",
+   "  Top-down register reduction list scheduling",
+   createTDRRListDAGScheduler);
+
 namespace {
 
//===--===//
 /// ScheduleDAGRRList - The actual register reduction list scheduler
@@ -876,15 +886,15 @@
 // Public Constructor Functions
 
//===--===//
 
-llvm::ScheduleDAG* llvm::createBURRListDAGScheduler(SelectionDAG &DAG,
+llvm::ScheduleDAG* llvm::createBURRListDAGScheduler(SelectionDAG *DAG,
 MachineBasicBlock *BB) {
-  return new ScheduleDAGRRList(DAG, BB, DAG.getTarget(), true,
+  return new ScheduleDAGRRList(*DAG, BB, DAG->getTarget(), true,
new 
BURegReductionPriorityQueue());
 }
 
-llvm::ScheduleDAG* llvm::createTDRRListDAGScheduler(SelectionDAG &DAG,
+llvm::ScheduleDAG* llvm::createTDRRListDAGScheduler(SelectionDAG *DAG,
 MachineBasicBlock *BB) {
-  return new ScheduleDAGRRList(DAG, BB, DAG.getTarget(), false,
+  return new ScheduleDAGRRList(*DAG, BB, DAG->getTarget(), false,
  

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

2006-08-01 Thread Jim Laskey


Changes in directory llvm/include/llvm/CodeGen:

ScheduleDAG.h updated: 1.27 -> 1.28
SelectionDAGISel.h updated: 1.20 -> 1.21
---
Log message:

Introducing plugable register allocators and instruction schedulers.


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

 ScheduleDAG.h  |   26 --
 SelectionDAGISel.h |4 
 2 files changed, 16 insertions(+), 14 deletions(-)


Index: llvm/include/llvm/CodeGen/ScheduleDAG.h
diff -u llvm/include/llvm/CodeGen/ScheduleDAG.h:1.27 
llvm/include/llvm/CodeGen/ScheduleDAG.h:1.28
--- llvm/include/llvm/CodeGen/ScheduleDAG.h:1.27Wed May 24 12:04:03 2006
+++ llvm/include/llvm/CodeGen/ScheduleDAG.h Tue Aug  1 09:21:23 2006
@@ -221,29 +221,35 @@
 std::map &VRBaseMap);
   };
 
-  ScheduleDAG *createBFS_DAGScheduler(SelectionDAG &DAG, MachineBasicBlock 
*BB);
+  /// createBFS_DAGScheduler - This creates a simple breadth first instruction
+  /// scheduler.
+  ScheduleDAG *createBFS_DAGScheduler(SelectionDAG *DAG, MachineBasicBlock 
*BB);
   
   /// createSimpleDAGScheduler - This creates a simple two pass instruction
-  /// scheduler.
-  ScheduleDAG* createSimpleDAGScheduler(bool NoItins, SelectionDAG &DAG,
+  /// scheduler using instruction itinerary.
+  ScheduleDAG* createSimpleDAGScheduler(SelectionDAG *DAG,
 MachineBasicBlock *BB);
 
+  /// createNoItinsDAGScheduler - This creates a simple two pass instruction
+  /// scheduler without using instruction itinerary.
+  ScheduleDAG* createNoItinsDAGScheduler(SelectionDAG *DAG,
+ MachineBasicBlock *BB);
+
   /// createBURRListDAGScheduler - This creates a bottom up register usage
   /// reduction list scheduler.
-  ScheduleDAG* createBURRListDAGScheduler(SelectionDAG &DAG,
+  ScheduleDAG* createBURRListDAGScheduler(SelectionDAG *DAG,
   MachineBasicBlock *BB);
   
   /// createTDRRListDAGScheduler - This creates a top down register usage
   /// reduction list scheduler.
-  ScheduleDAG* createTDRRListDAGScheduler(SelectionDAG &DAG,
+  ScheduleDAG* createTDRRListDAGScheduler(SelectionDAG *DAG,
   MachineBasicBlock *BB);
   
   /// createTDListDAGScheduler - This creates a top-down list scheduler with
-  /// the specified hazard recognizer.  This takes ownership of the hazard
-  /// recognizer and deletes it when done.
-  ScheduleDAG* createTDListDAGScheduler(SelectionDAG &DAG,
-MachineBasicBlock *BB,
-HazardRecognizer *HR);
+  /// a hazard recognizer.
+  ScheduleDAG* createTDListDAGScheduler(SelectionDAG *DAG,
+MachineBasicBlock *BB);
+
 }
 
 #endif


Index: llvm/include/llvm/CodeGen/SelectionDAGISel.h
diff -u llvm/include/llvm/CodeGen/SelectionDAGISel.h:1.20 
llvm/include/llvm/CodeGen/SelectionDAGISel.h:1.21
--- llvm/include/llvm/CodeGen/SelectionDAGISel.h:1.20   Thu Jul 27 20:03:48 2006
+++ llvm/include/llvm/CodeGen/SelectionDAGISel.hTue Aug  1 09:21:23 2006
@@ -67,10 +67,6 @@
   /// folded during instruction selection?
   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.
-  virtual HazardRecognizer *CreateTargetHazardRecognizer();
-  
   /// CaseBlock - This structure is used to communicate between SDLowering and
   /// SDISel for the code generation of additional basic blocks needed by 
multi-
   /// case switch statements.



___
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 ARMISelDAGToDAG.cpp

2006-08-01 Thread Rafael Espindola


Changes in directory llvm/lib/Target/ARM:

ARMAsmPrinter.cpp updated: 1.8 -> 1.9
ARMISelDAGToDAG.cpp updated: 1.18 -> 1.19
---
Log message:

implement LowerConstantPool and LowerGlobalAddress


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

 ARMAsmPrinter.cpp   |4 ++--
 ARMISelDAGToDAG.cpp |   25 -
 2 files changed, 26 insertions(+), 3 deletions(-)


Index: llvm/lib/Target/ARM/ARMAsmPrinter.cpp
diff -u llvm/lib/Target/ARM/ARMAsmPrinter.cpp:1.8 
llvm/lib/Target/ARM/ARMAsmPrinter.cpp:1.9
--- llvm/lib/Target/ARM/ARMAsmPrinter.cpp:1.8   Mon Jul 31 15:38:13 2006
+++ llvm/lib/Target/ARM/ARMAsmPrinter.cpp   Tue Aug  1 07:58:43 2006
@@ -168,8 +168,8 @@
 abort();
 break;
   case MachineOperand::MO_ConstantPoolIndex:
-assert(0 && "not implemented");
-abort();
+O << PrivateGlobalPrefix << "CPI" << getFunctionNumber()
+  << '_' << MO.getConstantPoolIndex();
 break;
   default:
 O << ""; abort (); break;


Index: llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp
diff -u llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp:1.18 
llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp:1.19
--- llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp:1.18Thu Jul 27 19:46:15 2006
+++ llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp Tue Aug  1 07:58:43 2006
@@ -41,7 +41,9 @@
 
 ARMTargetLowering::ARMTargetLowering(TargetMachine &TM)
   : TargetLowering(TM) {
-  setOperationAction(ISD::RET, MVT::Other, Custom);
+  setOperationAction(ISD::RET,   MVT::Other, Custom);
+  setOperationAction(ISD::GlobalAddress, MVT::i32,   Custom);
+  setOperationAction(ISD::ConstantPool,  MVT::i32,   Custom);
 }
 
 namespace llvm {
@@ -218,6 +220,23 @@
   }
 }
 
+static SDOperand LowerConstantPool(SDOperand Op, SelectionDAG &DAG) {
+  MVT::ValueType PtrVT = Op.getValueType();
+  ConstantPoolSDNode *CP = cast(Op);
+  Constant *C = CP->get();
+  SDOperand CPI = DAG.getTargetConstantPool(C, PtrVT, CP->getAlignment());
+
+  return CPI;
+}
+
+static SDOperand LowerGlobalAddress(SDOperand Op,
+   SelectionDAG &DAG) {
+  GlobalValue  *GV = cast(Op)->getGlobal();
+  SDOperand CPAddr = DAG.getConstantPool(GV, MVT::i32, 2);
+  return DAG.getLoad(MVT::i32, DAG.getEntryNode(), CPAddr,
+DAG.getSrcValue(NULL));
+}
+
 static SDOperand LowerFORMAL_ARGUMENTS(SDOperand Op, SelectionDAG &DAG) {
   std::vector ArgValues;
   SDOperand Root = Op.getOperand(0);
@@ -244,6 +263,10 @@
   default:
 assert(0 && "Should not custom lower this!");
 abort();
+  case ISD::ConstantPool:
+return LowerConstantPool(Op, DAG);
+  case ISD::GlobalAddress:
+return LowerGlobalAddress(Op, DAG);
   case ISD::FORMAL_ARGUMENTS:
 return LowerFORMAL_ARGUMENTS(Op, DAG);
   case ISD::CALL:



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


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

2006-08-01 Thread Jim Laskey


Changes in directory llvm:

CREDITS.TXT updated: 1.58 -> 1.59
---
Log message:

Adding to credibility.


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

 CREDITS.TXT |4 +++-
 1 files changed, 3 insertions(+), 1 deletion(-)


Index: llvm/CREDITS.TXT
diff -u llvm/CREDITS.TXT:1.58 llvm/CREDITS.TXT:1.59
--- llvm/CREDITS.TXT:1.58   Tue Aug  1 02:06:00 2006
+++ llvm/CREDITS.TXTTue Aug  1 04:01:40 2006
@@ -104,7 +104,9 @@
 N: Jim Laskey
 E: [EMAIL PROTECTED]
 D: Improvements to the PPC backend, instruction scheduling
-D: Debug implementation, Dwarf implementation
+D: Debug and Dwarf implementation
+D: Auto upgrade mangler 
+D: llvm-gcc4 svn wrangler
 
 N: Chris Lattner
 E: [EMAIL PROTECTED]



___
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-08-01 Thread Evan Cheng


Changes in directory llvm/lib/CodeGen/SelectionDAG:

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

Added AssignTopologicalOrder() to assign each node an unique id based on their 
topological order.

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

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


Index: llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
diff -u llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:1.314 
llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:1.315
--- llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:1.314Thu Jul 27 
19:45:53 2006
+++ llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp  Tue Aug  1 03:20:41 2006
@@ -28,6 +28,7 @@
 #include 
 #include 
 #include 
+#include 
 using namespace llvm;
 
 static bool isCommutativeBinOp(unsigned Opcode) {
@@ -2698,8 +2699,8 @@
 }
 
 
-/// AssignNodeIds - Assign a unique node id for each node in the DAG. It 
returns
-/// the maximum id.
+/// AssignNodeIds - Assign a unique node id for each node in the DAG based on
+/// their allnodes order. It returns the maximum id.
 unsigned SelectionDAG::AssignNodeIds() {
   unsigned Id = 0;
   for (allnodes_iterator I = allnodes_begin(), E = allnodes_end(); I != E; 
++I){
@@ -2709,6 +2710,41 @@
   return Id;
 }
 
+/// AssignTopologicalOrder - Assign a unique node id for each node in the DAG
+/// based on their topological order. It returns a vector of the SDNodes* in
+/// assigned order.
+std::vector SelectionDAG::AssignTopologicalOrder() {
+  unsigned DAGSize = AllNodes.size();
+  std::vector TopOrder;
+  std::map InDegree;
+  std::deque Sources;
+  for (allnodes_iterator I = allnodes_begin(),E = allnodes_end(); I != E; ++I){
+SDNode *N = I;
+unsigned Degree = N->use_size();
+InDegree[N] = Degree;
+if (Degree == 0)
+  Sources.push_back(I);
+  }
+
+  int Id = 0;
+  while (!Sources.empty()) {
+SDNode *N = Sources.front();
+Sources.pop_front();
+TopOrder.push_back(N);
+N->setNodeId(Id++);
+for (SDNode::op_iterator I = N->op_begin(), E = N->op_end(); I != E; ++I) {
+  SDNode *P = I->Val;
+  unsigned Degree = InDegree[P] - 1;
+  if (Degree == 0)
+Sources.push_back(P);
+  InDegree[P] = Degree;
+}
+  }
+
+  return TopOrder;
+}
+
+
 
 
//===--===//
 //  SDNode Class



___
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-08-01 Thread Evan Cheng


Changes in directory llvm/include/llvm/CodeGen:

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

Added AssignTopologicalOrder() to assign each node an unique id based on their 
topological order.

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

 SelectionDAG.h |9 +++--
 1 files changed, 7 insertions(+), 2 deletions(-)


Index: llvm/include/llvm/CodeGen/SelectionDAG.h
diff -u llvm/include/llvm/CodeGen/SelectionDAG.h:1.105 
llvm/include/llvm/CodeGen/SelectionDAG.h:1.106
--- llvm/include/llvm/CodeGen/SelectionDAG.h:1.105  Thu Jul 27 19:44:29 2006
+++ llvm/include/llvm/CodeGen/SelectionDAG.hTue Aug  1 03:19:46 2006
@@ -422,10 +422,15 @@
   /// have no referrers.
   void DeleteNode(SDNode *N);
 
-  /// AssignNodeIds - Assign a unique node id for each node in the DAG. It
-  /// returns the maximum id.
+  /// AssignNodeIds - Assign a unique node id for each node in the DAG based on
+  /// their allnodes order. It returns the maximum id.
   unsigned AssignNodeIds();
 
+  /// AssignTopologicalOrder - Assign a unique node id for each node in the DAG
+  /// based on their topological order. It returns a vector of the SDNodes* in
+  /// assigned order.
+  std::vector AssignTopologicalOrder();
+
   void dump() const;
 
   /// InsertISelMapEntry - A helper function to insert a key / element pair



___
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-08-01 Thread Evan Cheng


Changes in directory llvm/lib/Target/X86:

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

Factor topological order code to SelectionDAG. Clean up.

---
Diffs of the changes:  (+23 -87)

 X86ISelDAGToDAG.cpp |  110 ++--
 1 files changed, 23 insertions(+), 87 deletions(-)


Index: llvm/lib/Target/X86/X86ISelDAGToDAG.cpp
diff -u llvm/lib/Target/X86/X86ISelDAGToDAG.cpp:1.85 
llvm/lib/Target/X86/X86ISelDAGToDAG.cpp:1.86
--- llvm/lib/Target/X86/X86ISelDAGToDAG.cpp:1.85Fri Jul 28 01:33:41 2006
+++ llvm/lib/Target/X86/X86ISelDAGToDAG.cpp Tue Aug  1 03:17:22 2006
@@ -99,8 +99,7 @@
   : SelectionDAGISel(X86Lowering),
 X86Lowering(*TM.getTargetLowering()),
 Subtarget(&TM.getSubtarget()),
-DAGSize(0), TopOrder(NULL), IdToOrder(NULL),
-RMRange(NULL), ReachabilityMatrix(NULL) {}
+DAGSize(0) {}
 
 virtual bool runOnFunction(Function &Fn) {
   // Make sure we re-emit a set of the global base reg if necessary
@@ -124,7 +123,6 @@
 #include "X86GenDAGISel.inc"
 
   private:
-void DetermineTopologicalOrdering();
 void DetermineReachability(SDNode *f, SDNode *t);
 
 void Select(SDOperand &Result, SDOperand N);
@@ -187,43 +185,37 @@
 
 /// TopOrder - Topological ordering of all nodes in the DAG.
 ///
-SDNode* *TopOrder;
+std::vector TopOrder;
 
-/// IdToOrder - Node id to topological order map.
-///
-unsigned *IdToOrder;
+/// ReachabilityMatrix - A N x N matrix representing all pairs reachability
+/// information. One bit per potential edge.
+std::vector ReachabilityMatrix;
 
-/// RMRange - The range of reachibility information available for the
+/// RMRange - The range of reachability information available for the
 /// particular source node.
-unsigned *RMRange;
-
-/// ReachabilityMatrix - A N x N matrix representing all pairs reachibility
-/// information. One bit per potential edge.
-unsigned char *ReachabilityMatrix;
+std::vector ReachMatrixRange;
 
 inline void setReachable(SDNode *f, SDNode *t) {
   unsigned Idx = f->getNodeId() * DAGSize + t->getNodeId();
-  ReachabilityMatrix[Idx / 8] |= 1 << (Idx % 8);
+  ReachabilityMatrix[Idx] = true;
 }
 
 inline bool isReachable(SDNode *f, SDNode *t) {
   unsigned Idx = f->getNodeId() * DAGSize + t->getNodeId();
-  return ReachabilityMatrix[Idx / 8] & (1 << (Idx % 8));
+  return ReachabilityMatrix[Idx];
 }
 
 /// 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;
+std::vector UnfoldableSet;
 
 inline void setUnfoldable(SDNode *N) {
-  unsigned Id = N->getNodeId();
-  UnfoldableSet[Id / 8] |= 1 << (Id % 8);
+  UnfoldableSet[N->getNodeId()] = true;
 }
 
 inline bool isUnfoldable(SDNode *N) {
-  unsigned Id = N->getNodeId();
-  return UnfoldableSet[Id / 8] & (1 << (Id % 8));
+  return UnfoldableSet[N->getNodeId()];
 }
 
 #ifndef NDEBUG
@@ -259,58 +251,12 @@
   return true;
 }
 
-/// DetermineTopologicalOrdering - Determine topological ordering of the nodes
-/// in the DAG.
-void X86DAGToDAGISel::DetermineTopologicalOrdering() {
-  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::deque 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;
-IdToOrder[N->getNodeId()] = Order;
-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;
-}
-  }
-}
-
-/// DetermineReachability - Determine reachibility between all pairs of nodes
+/// DetermineReachability - Determine reachability between all pairs of nodes
 /// between f and t in topological order.
 void X86DAGToDAGISel::DetermineReachability(SDNode *f, SDNode *t) {
-  if (!ReachabilityMatrix) {
-unsigned RMSize = (DAGSize * DAGSize + 7) / 8;
-ReachabilityMatrix = new unsigned char[RMSize];
-memset(ReachabilityMatrix, 0, RMSize);
-  }
-
-  int Idf = f->getNodeId();
-  int Idt = t->getNodeId();
-  unsigned Orderf = IdToOrder[Idf];
-  unsigned Ordert = IdToOrder[Idt];
-  unsigned Range = R

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

2006-08-01 Thread Reid Spencer


Changes in directory llvm/utils:

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

Fix a problem with use of undefined variables. Print an error message if
the first argument is omitted. Attempt to use a standard/default font.
Make the generation of the DOT file readable.


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

 GenLibDeps.pl |   48 +++-
 1 files changed, 39 insertions(+), 9 deletions(-)


Index: llvm/utils/GenLibDeps.pl
diff -u llvm/utils/GenLibDeps.pl:1.10 llvm/utils/GenLibDeps.pl:1.11
--- llvm/utils/GenLibDeps.pl:1.10   Thu Jul 27 18:00:30 2006
+++ llvm/utils/GenLibDeps.plTue Aug  1 03:09:03 2006
@@ -24,6 +24,9 @@
 
 # Give first option a name.
 my $Directory = $ARGV[0];
+if (!defined($Directory)) {
+  die "First argument must be the directory containing LLVM libs\n";
+}
 my $nmPath = $ARGV[1];
 
 # Find the "dot" program
@@ -33,9 +36,9 @@
   die "Can't find 'dot'" if (! -x "$DotPath");
 }
 
-if ($nmPath eq "") {
-chomp($nmPath=`which nm`);
-die "Can't find 'nm'" if (! -x "$nmPath");
+if (!defined($nmPath) || $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
@@ -145,9 +148,23 @@
 
   open DOT, "| $DotPath -Tgif > libdeps.gif";
 
-  print DOT "digraph LibDeps {size=\"40,15\"; ratio=\"1.3\"; 
margin=\"0.25\"; rankdir=\"LR\"; mclimit=\"50.0\"; ordering=\"out\"; 
center=\"1\";\n";
-  print DOT "node 
[shape=\"box\",color=\"#88\",fillcolor=\"#FFFACD\",fontcolor=\"#5577DD\",style=\"filled\",fontsize=\"24\"];\n";
-  print DOT "edge [style=\"solid\",color=\"#88\"];\n";
+  print DOT "digraph LibDeps {\n";
+  print DOT "  size=\"40,15\"; \n";
+  print DOT "  ratio=\"1.3\"; \n";
+  print DOT "  margin=\"0.25\"; \n";
+  print DOT "  rankdir=\"LR\"; \n";
+  print DOT "  mclimit=\"50.0\"; \n";
+  print DOT "  ordering=\"out\"; \n";
+  print DOT "  center=\"1\";\n";
+  print DOT "node [shape=\"box\",\n";
+  print DOT "  color=\"#88\",\n";
+  print DOT "  fillcolor=\"#FFFACD\",\n";
+  print DOT "  fontcolor=\"#3355BB\",\n";
+  print DOT "  style=\"filled\",\n";
+  print DOT "  fontname=\"sans\",\n";
+  print DOT "  fontsize=\"24\"\n";
+  print DOT "];\n";
+  print DOT "edge [dir=\"forward\",style=\"solid\",color=\"#88\"];\n";
 }
 
 # Print libraries first
@@ -159,9 +176,22 @@
   print DOT "}\n";
   close DOT;
   open DOT, "| $DotPath -Tgif > objdeps.gif";
-  print DOT "digraph ObjDeps {size=\"40,15\"; ratio=\"1.3\"; 
margin=\"0.25\"; rankdir=\"LR\"; mclimit=\"50.0\"; ordering=\"out\"; 
center=\"1\";\n";
-  print DOT "node 
[shape=\"box\",color=\"#88\",fillcolor=\"#FFFACD\",fontcolor=\"#5577DD\",style=\"filled\",fontsize=\"24\"];\n";
-  print DOT "edge [style=\"solid\",color=\"#88\"];\n";
+  print DOT "digraph ObjDeps {\n";
+  print DOT "  size=\"8,10\";\n";
+  print DOT "  margin=\"0.25\";\n";
+  print DOT "  rankdir=\"LR\";\n";
+  print DOT "  mclimit=\"50.0\";\n";
+  print DOT "  ordering=\"out\";\n";
+  print DOT "  center=\"1\";\n";
+  print DOT "node [shape=\"box\",\n";
+  print DOT "  color=\"#88\",\n";
+  print DOT "  fillcolor=\"#FFFACD\",\n";
+  print DOT "  fontcolor=\"#3355BB\",\n";
+  print DOT "  fontname=\"sans\",\n";
+  print DOT "  style=\"filled\",\n";
+  print DOT "  fontsize=\"24\"\n";
+  print DOT "];\n";
+  print DOT "edge [dir=\"forward\",style=\"solid\",color=\"#88\"];\n";
 }
 
 # Print objects second



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


[llvm-commits] [release_18] CVS: llvm/docs/CommandGuide/llvm-config.pod

2006-08-01 Thread Reid Spencer


Changes in directory llvm/docs/CommandGuide:

llvm-config.pod updated: 1.2 -> 1.2.2.1
---
Log message:

Merge changes for 1.8 release (new options in llvm-config)


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

 llvm-config.pod |   12 
 1 files changed, 12 insertions(+)


Index: llvm/docs/CommandGuide/llvm-config.pod
diff -u llvm/docs/CommandGuide/llvm-config.pod:1.2 
llvm/docs/CommandGuide/llvm-config.pod:1.2.2.1
--- llvm/docs/CommandGuide/llvm-config.pod:1.2  Tue Jun  6 17:39:59 2006
+++ llvm/docs/CommandGuide/llvm-config.pod  Tue Aug  1 02:39:54 2006
@@ -38,6 +38,14 @@
 
 Print the installation prefix for LLVM.
 
+=item B<--src-root>
+
+Print the source root from which LLVM was built.
+
+=item B<--obj-root>
+
+Print the object root used to build LLVM.
+
 =item B<--bindir>
 
 Print the installation directory for LLVM binaries.
@@ -83,6 +91,10 @@
 
 Print the component names for all targets supported by this copy of LLVM.
 
+=item B<--build-mode>
+
+Print the build mode used when LLVM was built (e.g. Debug or Release)
+
 =back
 
 =head1 COMPONENTS



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


[llvm-commits] CVS: llvm/docs/CommandGuide/llvm-config.pod

2006-08-01 Thread Reid Spencer


Changes in directory llvm/docs/CommandGuide:

llvm-config.pod updated: 1.2 -> 1.3
---
Log message:

Update to include new options.


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

 llvm-config.pod |   12 
 1 files changed, 12 insertions(+)


Index: llvm/docs/CommandGuide/llvm-config.pod
diff -u llvm/docs/CommandGuide/llvm-config.pod:1.2 
llvm/docs/CommandGuide/llvm-config.pod:1.3
--- llvm/docs/CommandGuide/llvm-config.pod:1.2  Tue Jun  6 17:39:59 2006
+++ llvm/docs/CommandGuide/llvm-config.pod  Tue Aug  1 02:38:39 2006
@@ -38,6 +38,14 @@
 
 Print the installation prefix for LLVM.
 
+=item B<--src-root>
+
+Print the source root from which LLVM was built.
+
+=item B<--obj-root>
+
+Print the object root used to build LLVM.
+
 =item B<--bindir>
 
 Print the installation directory for LLVM binaries.
@@ -83,6 +91,10 @@
 
 Print the component names for all targets supported by this copy of LLVM.
 
+=item B<--build-mode>
+
+Print the build mode used when LLVM was built (e.g. Debug or Release)
+
 =back
 
 =head1 COMPONENTS



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


[llvm-commits] CVS: llvm/docs/UsingLibraries.html

2006-08-01 Thread Reid Spencer


Changes in directory llvm/docs:

UsingLibraries.html updated: 1.23 -> 1.24
---
Log message:

Update library dependency information, describe new libraries, talk a
little about llvm-config as a source for help with library dependencies.


---
Diffs of the changes:  (+164 -107)

 UsingLibraries.html |  271 +++-
 1 files changed, 164 insertions(+), 107 deletions(-)


Index: llvm/docs/UsingLibraries.html
diff -u llvm/docs/UsingLibraries.html:1.23 llvm/docs/UsingLibraries.html:1.24
--- llvm/docs/UsingLibraries.html:1.23  Fri May 12 21:22:01 2006
+++ llvm/docs/UsingLibraries.html   Tue Aug  1 02:32:01 2006
@@ -33,8 +33,10 @@
   tools. In addition to the LLVM tool set, the functionality of LLVM is
   available through a set of libraries.  To use LLVM as a toolkit for
   constructing tools, a developer needs to understand what is contained in the
-  various libraries, what they depend on, and how to use them.  This document 
-  describes the contents of the libraries and how and when to use them.
+  various libraries, what they depend on, and how to use them.  Fortunately,
+  there is a tool, llvm-config to aid with this. This document 
+  describes the contents of the libraries and how to use llvm-config
+  to generate command line options.
 
 
 
@@ -44,20 +46,20 @@
   If you're writing a compiler, virtual machine, or any other utility based 
   on LLVM, you'll need to figure out which of the many libraries files you 
will 
   need to link with to be successful. An understanding of the contents of 
these 
-  files and their inter-relationships will be useful in coming up with an 
optimal 
-  specification for the libraries to link with. The purpose of this document 
is 
-  to reduce some of the trial and error that the author experienced in using 
-  LLVM.
+  libraries will be useful in coming up with an optimal specification for the 
+  libraries to link with. The purpose of this document is to reduce some of 
+  the trial and error that the author experienced in using LLVM.
   LLVM produces two types of libraries: archives (ending in .a) and
   objects (ending in .o). However, both are libraries. Libraries 
ending
   in .o are known as re-linked libraries because they contain all the
   compilation units of the library linked together as a single .o 
file.
-  Furthermore, many of the libraries have both forms of library. The
+  Furthermore, several of the libraries have both forms of library. 
The
   re-linked libraries are used whenever you want to include all symbols from 
the
   library. The archive libraries are used whenever you want to only resolve
   outstanding symbols at that point in the link without including everything in
   the library. 
-  When linking your tools, you will use the LLVMLIBS make 
variable. 
+  If you're using the LLVM Makefile system to link your tools,you will use 
+  the LLVMLIBS make variable. 
   (see the Makefile Guide for 
   details). This variable specifies which LLVM libraries to link into your 
tool 
   and the order in which they will be linked. You specify re-linked libraries 
by
@@ -76,61 +78,65 @@
   Core Libraries
   LLVMArchive.a
 LLVM archive reading and writing
-  LLVMAsmParser.o
+  LLVMAsmParser.a
 LLVM assembly parsing
-  LLVMBCReader.o
+  LLVMBCReader.a
 LLVM bytecode reading
-  LLVMBCWriter.o
+  LLVMBCWriter.a
 LLVM bytecode writing
-  LLVMCore.o
+  LLVMCore.a
 LLVM core intermediate representation
-  LLVMDebugger.o
+  LLVMDebugger.a
 Source level debugging support
   LLVMLinker.a
 Bytecode and archive linking interface
-  LLVMSupport.a .o
+  LLVMSupport.a
 General support utilities
-  LLVMSystem.a .o
+  LLVMSystem.a
 Operating system abstraction layer
+  LLVMbzip2.a
+BZip2 compression library
 
   Analysis Libraries
-  LLVMAnalysis.a .o
+  LLVMAnalysis.a
 Various analysis passes.
-  LLVMDataStructure.a .o
+  LLVMDataStructure.o
 Data structure analysis passes.
-  LLVMipa.a .o
+  LLVMipa.a
 Inter-procedural analysis passes.
 
   Transformation Libraries
-  LLVMInstrumentation.a .o
+  LLVMInstrumentation.a
 Instrumentation passes.
-  LLVMipo.a .o
+  LLVMipo.a
 All inter-procedural optimization passes.
-  LLVMScalarOpts.a .o
+  LLVMScalarOpts.a
 All scalar optimization passes.
-  LLVMTransforms.a .o
+  LLVMTransforms.a
 Uncategorized transformation passes.
-  LLVMTransformUtils.a .o
+  LLVMTransformUtils.a
 Transformation utilities.
 
   Code Generation Libraries 
   LLVMCodeGen.o
 Native code generation infrastructure
+  LLVMSelectionDAG.o
+Aggressive instruction selector for directed acyclic graphs
 
   Target Libraries
   LLVMAlpha.o
 Code generation for Alpha architecture
+  LLVMARM.o
+Code generation for ARM architecture
   LLVMCBackend.o
 'C' language code generator.
   LLVMIA64.o
 Code generation for IA64 architecture
   LLVMPowerPC.o
 Code generation for PowerPC architecture
-  LLVMSelectionDAG.o
-A

[llvm-commits] CVS: llvm/docs/img/libdeps.gif objdeps.gif

2006-08-01 Thread Reid Spencer


Changes in directory llvm/docs/img:

libdeps.gif updated: 1.2 -> 1.3
objdeps.gif updated: 1.2 -> 1.3
---
Log message:

Update library dependency information, describe new libraries, talk a
little about llvm-config as a source for help with library dependencies.


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

 libdeps.gif |0 
 objdeps.gif |0 
 2 files changed


Index: llvm/docs/img/libdeps.gif


Index: llvm/docs/img/objdeps.gif



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