[llvm-commits] CVS: llvm/lib/Target/ARM/ARMInstrInfo.td

2006-08-21 Thread Rafael Espindola


Changes in directory llvm/lib/Target/ARM:

ARMInstrInfo.td updated: 1.16 -> 1.17
---
Log message:

add the and instruction


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

 ARMInstrInfo.td |4 
 1 files changed, 4 insertions(+)


Index: llvm/lib/Target/ARM/ARMInstrInfo.td
diff -u llvm/lib/Target/ARM/ARMInstrInfo.td:1.16 
llvm/lib/Target/ARM/ARMInstrInfo.td:1.17
--- llvm/lib/Target/ARM/ARMInstrInfo.td:1.16Thu Aug 17 12:09:40 2006
+++ llvm/lib/Target/ARM/ARMInstrInfo.td Mon Aug 21 08:58:59 2006
@@ -92,3 +92,7 @@
 def subri   : InstARM<(ops IntRegs:$dst, IntRegs:$a, i32imm:$b),
"sub $dst, $a, $b",
   [(set IntRegs:$dst, (sub IntRegs:$a, imm:$b))]>;
+
+def andrr : InstARM<(ops IntRegs:$dst, IntRegs:$a, IntRegs:$b),
+  "and $dst, $a, $b",
+  [(set IntRegs:$dst, (and IntRegs:$a, IntRegs:$b))]>;



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


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

2006-08-21 Thread Bill Wendling


Changes in directory llvm/lib/CodeGen:

VirtRegMap.cpp updated: 1.69 -> 1.70
---
Log message:

Added a check so that if we have two machine instructions in this form

MOV R0, R1
MOV R1, R0

the second machine instruction is removed. Added a regression test.


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

 VirtRegMap.cpp |   40 ++--
 1 files changed, 30 insertions(+), 10 deletions(-)


Index: llvm/lib/CodeGen/VirtRegMap.cpp
diff -u llvm/lib/CodeGen/VirtRegMap.cpp:1.69 
llvm/lib/CodeGen/VirtRegMap.cpp:1.70
--- llvm/lib/CodeGen/VirtRegMap.cpp:1.69Fri Jul 21 16:15:20 2006
+++ llvm/lib/CodeGen/VirtRegMap.cpp Mon Aug 21 02:33:33 2006
@@ -521,6 +521,7 @@
 // Process all of the spilled uses and all non spilled reg references.
 for (unsigned i = 0, e = MI.getNumOperands(); i != e; ++i) {
   MachineOperand &MO = MI.getOperand(i);
+
   if (!MO.isRegister() || MO.getReg() == 0)
 continue;   // Ignore non-register operands.
   
@@ -790,16 +791,37 @@
   }
 
   if (!OpTakenCareOf) {
-// Check to see if this is a noop copy.  If so, eliminate the
-// instruction before considering the dest reg to be changed.
 unsigned Src, Dst;
-if (TII->isMoveInstr(MI, Src, Dst) && Src == Dst) {
-  ++NumDCE;
-  DEBUG(std::cerr << "Removing now-noop copy: " << MI);
-  MBB.erase(&MI);
-  VRM.RemoveFromFoldedVirtMap(&MI);
-  goto ProcessNextInst;
+if (TII->isMoveInstr(MI, Src, Dst)) {
+  if (Src == Dst) {
+// Check to see if this is a noop copy.  If so, eliminate
+// the instruction before considering the dest reg to be
+// changed.
+++NumDCE;
+DEBUG(std::cerr << "Removing now-noop copy: " << MI);
+MBB.erase(&MI);
+VRM.RemoveFromFoldedVirtMap(&MI);
+goto ProcessNextInst;
+  } else if (MII != MBB.begin()) {
+// Check to see if this is a sequence of the form:
+//mov R0, R1
+//mov R1, R0
+// Eliminate the second move if so.
+MachineBasicBlock::iterator PrevMII = MII; --PrevMII;
+MachineInstr& PrevMI = *PrevMII;
+unsigned PrevSrc, PrevDst;
+
+if (TII->isMoveInstr(PrevMI, PrevSrc, PrevDst))
+  if (PrevSrc == Dst && PrevDst == Src) {
+++NumDCE;
+DEBUG(std::cerr << "Removing now-noop copy: " << MI);
+MBB.erase(&MI);
+VRM.RemoveFromFoldedVirtMap(&MI);
+goto ProcessNextInst;
+  }
+  }
 }
+
 Spills.ClobberPhysReg(VirtReg);
 continue;
   }
@@ -861,8 +883,6 @@
   }
 }
 
-
-
 llvm::Spiller* llvm::createSpiller() {
   switch (SpillerOpt) {
   default: assert(0 && "Unreachable!");



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


[llvm-commits] CVS: llvm/test/Regression/CodeGen/X86/2006-08-21-ExtraMovInst.ll

2006-08-21 Thread Bill Wendling


Changes in directory llvm/test/Regression/CodeGen/X86:

2006-08-21-ExtraMovInst.ll added (r1.1)
---
Log message:

Added a check so that if we have two machine instructions in this form

MOV R0, R1
MOV R1, R0

the second machine instruction is removed. Added a regression test.


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

 2006-08-21-ExtraMovInst.ll |   15 +++
 1 files changed, 15 insertions(+)


Index: llvm/test/Regression/CodeGen/X86/2006-08-21-ExtraMovInst.ll
diff -c /dev/null 
llvm/test/Regression/CodeGen/X86/2006-08-21-ExtraMovInst.ll:1.1
*** /dev/null   Mon Aug 21 02:33:43 2006
--- llvm/test/Regression/CodeGen/X86/2006-08-21-ExtraMovInst.ll Mon Aug 21 
02:33:33 2006
***
*** 0 
--- 1,15 
+ ; RUN: llvm-as < %s | llc -fast -march=x86 -mcpu=i386 | not grep 'movl %eax, 
%edx'
+ 
+ int %foo(int %t, int %C) {
+ entry:
+ br label %cond_true
+ 
+ cond_true:  ; preds = %cond_true, %entry
+ %t_addr.0.0 = phi int [ %t, %entry ], [ %tmp7, %cond_true ]   
  ;  [#uses=2]
+ %tmp7 = add int %t_addr.0.0, 1  ;  [#uses=1]
+ %tmp = setgt int %C, 39 ;  [#uses=1]
+ br bool %tmp, label %bb12, label %cond_true
+ 
+ bb12:   ; preds = %cond_true
+ ret int %t_addr.0.0
+ }



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


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

2006-08-21 Thread Chris Lattner


Changes in directory llvm/lib/Analysis:

ProfileInfoLoaderPass.cpp updated: 1.12 -> 1.13
---
Log message:

Fix PR885: http://llvm.org/PR885 


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

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


Index: llvm/lib/Analysis/ProfileInfoLoaderPass.cpp
diff -u llvm/lib/Analysis/ProfileInfoLoaderPass.cpp:1.12 
llvm/lib/Analysis/ProfileInfoLoaderPass.cpp:1.13
--- llvm/lib/Analysis/ProfileInfoLoaderPass.cpp:1.12Thu Apr 21 16:04:58 2005
+++ llvm/lib/Analysis/ProfileInfoLoaderPass.cpp Mon Aug 21 12:20:01 2006
@@ -49,9 +49,8 @@
 virtual bool runOnModule(Module &M);
   };
 
-  RegisterPass
-  X("profile-loader", "Load profile information from llvmprof.out",
-PassInfo::Analysis|PassInfo::Optimization);
+  RegisterOpt
+  X("profile-loader", "Load profile information from llvmprof.out");
 
   RegisterAnalysisGroup Y;
 }  // End of anonymous namespace



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


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

2006-08-21 Thread Chris Lattner


Changes in directory llvm/lib/VMCore:

AsmWriter.cpp updated: 1.201 -> 1.202
---
Log message:

Fix PR885: http://llvm.org/PR885 


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

 AsmWriter.cpp |8 
 1 files changed, 4 insertions(+), 4 deletions(-)


Index: llvm/lib/VMCore/AsmWriter.cpp
diff -u llvm/lib/VMCore/AsmWriter.cpp:1.201 llvm/lib/VMCore/AsmWriter.cpp:1.202
--- llvm/lib/VMCore/AsmWriter.cpp:1.201 Fri May 19 16:58:52 2006
+++ llvm/lib/VMCore/AsmWriter.cpp   Mon Aug 21 12:20:01 2006
@@ -162,10 +162,10 @@
 
 }  // end namespace llvm
 
-static RegisterPass
-X("printm", "Print module to 
stderr",PassInfo::Analysis|PassInfo::Optimization);
-static RegisterPass
-Y("print","Print function to 
stderr",PassInfo::Analysis|PassInfo::Optimization);
+static RegisterOpt
+X("printm", "Print module to stderr");
+static RegisterOpt
+Y("print","Print function to stderr");
 
 static void WriteAsOperandInternal(std::ostream &Out, const Value *V,
bool PrintName,



___
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 ProgramResults.php fulltest.php test.php

2006-08-21 Thread Patrick Jenkins


Changes in directory nightlytest-serverside:

NightlyTester.php updated: 1.17 -> 1.18
ProgramResults.php updated: 1.7 -> 1.8
fulltest.php updated: 1.14 -> 1.15
test.php updated: 1.16 -> 1.17
---
Log message:

Added a new collapsable menu to the brief and full nightly tester pages. 
This new menu displays the failures for the test suite. The test suite
changes section of the nightly reports has also been changed so that if a
category (i.e. newly passing tests newly failing tests, etc, etc) is empty,
it now reports "None" instead of being blank. This prevents the report from
appearing incomplete.



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

 NightlyTester.php  |6 +++---
 ProgramResults.php |   19 +++
 fulltest.php   |   49 ++---
 test.php   |   42 ++
 4 files changed, 94 insertions(+), 22 deletions(-)


Index: nightlytest-serverside/NightlyTester.php
diff -u nightlytest-serverside/NightlyTester.php:1.17 
nightlytest-serverside/NightlyTester.php:1.18
--- nightlytest-serverside/NightlyTester.php:1.17   Fri Aug 18 13:52:08 2006
+++ nightlytest-serverside/NightlyTester.phpMon Aug 21 15:21:55 2006
@@ -244,7 +244,8 @@
   $result=array();
 
   //setting up the night ids
-  $select = "select id from night WHERE id<$night_id and machine=$machine_id 
order by added desc";
+  $select = "select id from night WHERE id<$night_id and machine=$machine_id ".
+"and buildstatus=\"OK\" order by added desc";
   $query = mysql_query($select) or die (mysql_error());
   $row=mysql_fetch_array($query);
   
@@ -254,7 +255,6 @@
   $old_night=$row['id'];
   mysql_free_result($query);
   
- 
   if($cur_night>0) { $cur_data=getAllFileSizes($mysql_link, $cur_night); }
   if($prev_night>0) { $prev_data=getAllFileSizes($mysql_link, $prev_night); }
   if($old_night>0) { $old_data=getAllFileSizes($mysql_link, $old_night); }
@@ -270,7 +270,7 @@
   foreach (array_keys($cur_data) as $file){
 $cur_sum+=$cur_data["$file"];
 
-if(isset($prev_data["$file"]) && isset($cur_data["$file"])) {
+if(isset($prev_data[$file]) && isset($cur_data["$file"])) {
   $prev_delta= ( $cur_data["$file"] - $prev_data["$file"] );
   $prev_diff = (($cur_data["$file"] - $prev_data["$file"]) / 
$prev_data["$file"] ) * 100;
   $prev_sum+=$prev_data["$file"];


Index: nightlytest-serverside/ProgramResults.php
diff -u nightlytest-serverside/ProgramResults.php:1.7 
nightlytest-serverside/ProgramResults.php:1.8
--- nightlytest-serverside/ProgramResults.php:1.7   Fri Aug 18 14:18:42 2006
+++ nightlytest-serverside/ProgramResults.php   Mon Aug 21 15:21:55 2006
@@ -386,6 +386,25 @@
 }
 
 /*
+ * Get failing tests
+ *
+ * This is somewhat of a hack because from night 684 forward we now store the 
test 
+ * in their own table as oppoesd in the night table.
+ */
+function getFailures($night_id, $mysql_link){
+  $result="";
+  if($night_id>=684){
+$query = "SELECT * FROM tests WHERE night=$night_id AND result=\"FAIL\" 
AND measure!=\"dejagnu\"";
+$program_query = mysql_query($query) or die (mysql_error());
+while($row = mysql_fetch_array($program_query)){
+  $result.="{$row['measure']} - {$row['program']}\n";
+}
+mysql_free_result($program_query);
+  }
+  return $result;
+}
+
+/*
  * Get Unexpected failing tests
  *
  * This is somewhat of a hack because from night 684 forward we now store the 
test 


Index: nightlytest-serverside/fulltest.php
diff -u nightlytest-serverside/fulltest.php:1.14 
nightlytest-serverside/fulltest.php:1.15
--- nightlytest-serverside/fulltest.php:1.14Fri Aug 18 13:52:08 2006
+++ nightlytest-serverside/fulltest.php Mon Aug 21 15:21:55 2006
@@ -133,25 +133,34 @@
  *
  **/
 $new_tests=getNewTests($night_id, $previous_succesful_id, $mysql_link);
+if(strcmp($new_tests,"")===0){
+  $new_tests="None";
+}
 $removed_tests=getRemovedTests($night_id, $previous_succesful_id, $mysql_link);
+if(strcmp($removed_tests,"")===0){
+  $removed_tests="None";
+}
 $newly_passing_tests=getFixedTests($night_id, $previous_succesful_id, 
$mysql_link);
+if(strcmp($newly_passing_tests,"")===0){
+  $newly_passing_tests="None";
+}
 $newly_failing_tests=getBrokenTests($night_id, $previous_succesful_id, 
$mysql_link);
+if(strcmp($newly_failing_tests,"")===0){
+  $newly_failing_tests="None";
+}
 
-if((strpos($new_tests, "none")!==FALSE &&
-   strpos($removed_tests, "none")!==FALSE &&
-   strpos($newly_passing_tests, "none")!==FALSE &&
-   strpos($newly_failing_tests, "none")!==FALSE ) ||
-   (strcmp($new_tests, "")==0 &&
-   strcmp($removed_tests, "")==0 &&
-   strcmp($newly_passing_tests, "")==0 &&
-   strcmp($newly_failing_tests, "")==0)){
-$disp="none";
-$sign="(-)";
+if(strpos($new_tests, "None")!==FALSE &&
+   strpos($removed_tests, "None")!==FALSE &&
+   strpos($newly_passing_tests, "None")!==FALSE &&
+   strpos($newly_failing_te

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

2006-08-21 Thread Chris Lattner


Changes in directory llvm/lib/CodeGen/SelectionDAG:

LegalizeDAG.cpp updated: 1.387 -> 1.388
---
Log message:

Fix PR861: http://llvm.org/PR861 


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

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


Index: llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
diff -u llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:1.387 
llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:1.388
--- llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:1.387 Mon Aug 14 18:53:35 2006
+++ llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp   Mon Aug 21 15:24:53 2006
@@ -1502,6 +1502,7 @@
   SDOperand Lo, Hi;
   ExpandOp(Tmp2, Lo, Hi);
   Result = DAG.getNode(ISD::RET, MVT::Other, Tmp1, Lo, Tmp3, Hi, Tmp3);
+  Result = LegalizeOp(Result);
 } else {
   SDNode *InVal = Tmp2.Val;
   unsigned NumElems =



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


[llvm-commits] CVS: llvm-www/releases/download.html

2006-08-21 Thread Misha Brukman


Changes in directory llvm-www/releases:

download.html updated: 1.36 -> 1.37
---
Log message:

Lined up all download links, combined long links and anchor text on the same
line for readability.  No user-visible changes.


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

 download.html |  176 +++---
 1 files changed, 46 insertions(+), 130 deletions(-)


Index: llvm-www/releases/download.html
diff -u llvm-www/releases/download.html:1.36 
llvm-www/releases/download.html:1.37
--- llvm-www/releases/download.html:1.36Wed Aug  9 12:00:24 2006
+++ llvm-www/releases/download.html Mon Aug 21 15:48:27 2006
@@ -39,19 +39,17 @@
 downloading:
 
 
-LLVM source code (4.5M)
-LLVM Test Suite (11.6M)
+  LLVM source code (4.5M)
+  LLVM Test Suite (11.6M)
LLVM-GCC 
3.4 Front End Binaries for Linux/x86 (6.4M)
   LLVM-GCC 
3.4 Front End Binaries for MacOS X/PowerPC (6.5M)
   LLVM-GCC 3.4 Front End Source 
Code (29.6M)
- LLVM-GCC 4 Front End 
Binaries for MacOS X/x86 (24.8M)
- LLVM-GCC 4 Front End 
Binaries for MacOS X/PowerPC (43.7M)
- LLVM-GCC 4 Front End 
Binaries for Linux/x86 (28.0M)
- LLVM-GCC 4 Front End 
Binaries for Mingw32/x86 (15.1M)
-LLVM-GCC 4 Front End Binaries for 
FreeBSD6/x86 (23.4M)
- LLVM-GCC 4 Front End Source 
Code (43.7M)
-
-
+  LLVM-GCC 4 Front End 
Binaries for MacOS X/x86 (24.8M)
+  LLVM-GCC 4 Front End 
Binaries for MacOS X/PowerPC (43.7M)
+  LLVM-GCC 4 Front End 
Binaries for Linux/x86 (28.0M)
+  LLVM-GCC 4 Front End 
Binaries for Mingw32/x86 (15.1M)
+  LLVM-GCC 4 Front End Binaries 
for FreeBSD6/x86 (23.4M)
+  LLVM-GCC 4 Front End Source 
Code (43.7M)
 
 
 
@@ -65,33 +63,17 @@
 downloading:
 
 
-LLVM source code (4.5M)
-LLVM Test Suite (11.3M)
-
-  LLVM-GCC 3.4 
Front End
-  Binaries for Linux/x86 (6.1M)
-
-  LLVM-GCC 
3.4 Front End
-  Binaries for MacOS X/PowerPC (6.3M)
-
-  LLVM-GCC 3.4 Front End Source 
Code
-  (28.9M)
-
- LLVM-GCC 4 
Front End
-  Binaries for MacOS X/x86 (53.3M)
-
- LLVM-GCC 4 
Front End
-  Binaries for MacOS X/PowerPC (52.4M)
-
- LLVM-GCC 4 Front End
-  Source Code (43.6M)
-
-
+  LLVM source code (4.5M)
+  LLVM Test Suite (11.3M)
+  LLVM-GCC 3.4 
Front End Binaries for Linux/x86 (6.1M)
+  LLVM-GCC 
3.4 Front End Binaries for MacOS X/PowerPC (6.3M)
+  LLVM-GCC 3.4 Front End Source 
Code (28.9M)
+  LLVM-GCC 4 
Front End Binaries for MacOS X/x86 (53.3M)
+  LLVM-GCC 4 
Front End Binaries for MacOS X/PowerPC (52.4M)
+  LLVM-GCC 4 Front End Source 
Code (43.6M)
 
 
 
-
-
 
 Download LLVM 1.6
 
@@ -103,24 +85,14 @@
 
 
   LLVM source code (4.1M)
-
   LLVM Test Suite (9.6M)
-
-  LLVM-GCC Front 
End
-  Binaries for Linux/x86 (6.2M)
-
-  LLVM-GCC Front 
End
-  Binaries for Solaris/Sparc (6.7M)
-
-  LLVM-GCC 
Front End
-  Binaries for MacOS X/PowerPC (6.4M)
-
-  LLVM-GCC Front End Source 
Code
-  (28.9M)
+  LLVM-GCC Front 
End Binaries for Linux/x86 (6.2M)
+  LLVM-GCC Front 
End Binaries for Solaris/Sparc (6.7M)
+  LLVM-GCC 
Front End Binaries for MacOS X/PowerPC (6.4M)
+  LLVM-GCC Front End Source 
Code (28.9M)
 
 
 
-
 
 Download LLVM 1.5
 
@@ -132,25 +104,14 @@
 
 
   LLVM source code (3.7M)
-
   LLVM Test Suite (9.6M)
-
-  LLVM-GCC Front 
End
-  Binaries for Linux/x86 (6.2M)
-
-  LLVM-GCC Front 
End
-  Binaries for Solaris/Sparc (6.6M)
-
-  LLVM-GCC 
Front End
-  Binaries for MacOS X/PowerPC (6.7M)
-
-  LLVM-GCC Front End Source 
Code
-  (29.0M)
+  LLVM-GCC Front 
End Binaries for Linux/x86 (6.2M)
+  LLVM-GCC Front 
End Binaries for Solaris/Sparc (6.6M)
+  LLVM-GCC 
Front End Binaries for MacOS X/PowerPC (6.7M)
+  LLVM-GCC Front End Source 
Code (29.0M)
 
 
 
-
-
 
 Download LLVM 1.4
 
@@ -162,24 +123,14 @@
 
 
   LLVM source code (3.5M)
-
   LLVM Test Suite (8.0M)
-
-  LLVM-GCC Front 
End
-  Binaries for Linux/x86 (6.2M)
-
-  LLVM-GCC Front 
End
-  Binaries for Solaris/Sparc (6.6M)
-
-  LLVM-GCC 
Front End
-  Binaries for MacOS X/PowerPC (7.0M)
-
-  LLVM-GCC Front End Source 
Code
-  (30.0M)
+  LLVM-GCC Front 
End Binaries for Linux/x86 (6.2M)
+  LLVM-GCC Front 
End Binaries for Solaris/Sparc (6.6M)
+  LLVM-GCC 
Front End Binaries for MacOS X/PowerPC (7.0M)
+  LLVM-GCC Front End Source 
Code (30.0M)
 
 
 
-
 
 Download LLVM 1.3
 
@@ -191,25 +142,16 @@
 
 
   LLVM source code (10.3M)
-
-  LLVM-GCC Front 
End
-  Binaries for Linux/x86 (13.9M)
-
-  LLVM-GCC Front 
End
-  Binaries for Solaris/Sparc (16.1M)
-
-  LLVM-GCC 
Front End
-  Binaries for MacOS X/PowerPC (11.6M)
-
-  LLVM-GCC Front End Source 
Code
-  (32.4M)
+  LLVM-GCC Front 
End Binaries for Linux/x86 (13.9M)
+  LLVM-GCC Front 
End Binaries for Solaris/Sparc (16.1M)
+  LLVM-GCC 
Front End Binaries for MacOS X/PowerPC (11.6M)
+  LLVM-GCC Front End Source 
Code (32.4M)
 
 
 Contributed by users:
 
 
-  LLVM-GCC 
Front End
-  Binaries for FreeBSD/x86 (13M)
+  LLVM-GCC 
Front End Binaries for FreeBSD/x86 (13M)
 
 
 
@@ -225,18 +167,10 @@
 
 
   LLVM

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

2006-08-21 Thread Patrick Jenkins


Changes in directory llvm/utils:

NewNightlyTest.pl updated: 1.55 -> 1.56
---
Log message:

The new nightly tester should stop outputing a message stating the 
testresults directory is not present unless the script is run as verbose. 



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

 NewNightlyTest.pl |   46 --
 1 files changed, 24 insertions(+), 22 deletions(-)


Index: llvm/utils/NewNightlyTest.pl
diff -u llvm/utils/NewNightlyTest.pl:1.55 llvm/utils/NewNightlyTest.pl:1.56
--- llvm/utils/NewNightlyTest.pl:1.55   Fri Aug 18 13:00:21 2006
+++ llvm/utils/NewNightlyTest.plMon Aug 21 15:45:57 2006
@@ -227,7 +227,9 @@
 my $DejagnuTestsLog = "$Prefix-DejagnuTests-Log.txt";
 if (! -d $WebDir) {
   mkdir $WebDir, 0777;
-  warn "$WebDir did not exist; creating it.\n";
+  if($VERBOSE){
+warn "$WebDir did not exist; creating it.\n";
+  }
 }
 
 if ($VERBOSE) {
@@ -941,28 +943,28 @@
 @BUILD_DATA = ReadFile "$BuildLog";
 $build_data = join("\n", @BUILD_DATA);
 
-my @DEJAGNU_LOG;
-my @DEJAGNU_SUM;
-my $dejagnutests_log;
-my $dejagnutests_sum;
[EMAIL PROTECTED] = ReadFile "$DejagnuLog";
[EMAIL PROTECTED] = ReadFile "$DejagnuSum";
-$dejagnutests_log = join("\n", @DEJAGNU_LOG);
-$dejagnutests_sum = join("\n", @DEJAGNU_SUM);
-
-my @DEJAGNULOG_FULL;
-my $dejagnulog_full;
[EMAIL PROTECTED] = ReadFile "$DejagnuTestsLog";
-$dejagnulog_full = join("\n", @DEJAGNULOG_FULL);
-
-my $gcc_version_long="";
-if ($GCCPATH ne "") {
-  $gcc_version_long = `$GCCPATH/gcc --version`;
-} else {
-  $gcc_version_long = `gcc --version`;
+my (@DEJAGNU_LOG, @DEJAGNU_SUM, @DEJAGNULOG_FULL, @GCC_VERSION);
+my ($dejagnutests_log ,$dejagnutests_sum, $dejagnulog_full) = "";
+my ($gcc_version, $gcc_version_long) = "";
+
+if(!$BuildError){
+  @DEJAGNU_LOG = ReadFile "$DejagnuLog";
+  @DEJAGNU_SUM = ReadFile "$DejagnuSum";
+  $dejagnutests_log = join("\n", @DEJAGNU_LOG);
+  $dejagnutests_sum = join("\n", @DEJAGNU_SUM);
+
+  @DEJAGNULOG_FULL = ReadFile "$DejagnuTestsLog";
+  $dejagnulog_full = join("\n", @DEJAGNULOG_FULL);
+
+  $gcc_version_long="";
+  if ($GCCPATH ne "") {
+   $gcc_version_long = `$GCCPATH/gcc --version`;
+  } else {
+ $gcc_version_long = `gcc --version`;
+  }
+  @GCC_VERSION = split '\n', $gcc_version_long;
+  $gcc_version = $GCC_VERSION[0];
 }
[EMAIL PROTECTED] = split '\n', $gcc_version_long;
-my $gcc_version = $GCC_VERSION[0];
 
 ##
 #



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


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

2006-08-21 Thread Jim Laskey


Changes in directory llvm/docs:

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

Update debugging documents.


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

 SourceLevelDebugging.html |   14 +-
 1 files changed, 13 insertions(+), 1 deletion(-)


Index: llvm/docs/SourceLevelDebugging.html
diff -u llvm/docs/SourceLevelDebugging.html:1.23 
llvm/docs/SourceLevelDebugging.html:1.24
--- llvm/docs/SourceLevelDebugging.html:1.23Wed Jun 21 06:08:10 2006
+++ llvm/docs/SourceLevelDebugging.html Mon Aug 21 16:21:06 2006
@@ -591,6 +591,7 @@
   DW_TAG_union_type = 23
   DW_TAG_vector_type = 259
   DW_TAG_subroutine_type = 46
+  DW_TAG_inheritance = 26
 
 
 The vector flag indicates that an array type is a native packed vector.
@@ -611,6 +612,17 @@
 or composite type descriptors, each
 representing a field member of the structure or union.
 
+For C++ classes (tag = DW_TAG_structure_type), member descriptors
+provide information about base classes, static members and member functions. If
+a member is a derived type descriptor and 
has
+a tag of DW_TAG_inheritance, then the type represents a base class. If
+the member of is a global variable
+descriptor then it represents a static member.  And, if the member is a subprogram descriptor then it represents a 
member
+function.  For static members and member functions, getName() returns
+the members link or the C++ mangled name.  getDisplayName() the
+simplied version of the name.
+
 The first member of subroutine (tag = DW_TAG_subroutine_type)
 type elements is the return type for the subroutine.  The remaining
 elements are the formal arguments to the subroutine.
@@ -1755,7 +1767,7 @@
 
   mailto:[EMAIL PROTECTED]">Chris Lattner
   http://llvm.org";>LLVM Compiler Infrastructure
-  Last modified: $Date: 2006/06/21 11:08:10 $
+  Last modified: $Date: 2006/08/21 21:21:06 $
 
 
 



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


[llvm-commits] CVS: llvm/lib/Support/Dwarf.cpp

2006-08-21 Thread Jim Laskey


Changes in directory llvm/lib/Support:

Dwarf.cpp updated: 1.4 -> 1.5
---
Log message:

Adding new Dwarf constants.


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

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


Index: llvm/lib/Support/Dwarf.cpp
diff -u llvm/lib/Support/Dwarf.cpp:1.4 llvm/lib/Support/Dwarf.cpp:1.5
--- llvm/lib/Support/Dwarf.cpp:1.4  Wed Jul 26 11:18:00 2006
+++ llvm/lib/Support/Dwarf.cpp  Mon Aug 21 16:18:10 2006
@@ -189,6 +189,7 @@
 case DW_AT_elemental:  return "AT_elemental";
 case DW_AT_pure:   return "AT_pure";
 case DW_AT_recursive:  return "AT_recursive";
+case DW_AT_MIPS_linkage_name:  return "AT_MIPS_linkage_name";
 case DW_AT_sf_names:   return "AT_sf_names";
 case DW_AT_src_info:   return "AT_src_info";
 case DW_AT_mac_info:   return "AT_mac_info";



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


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

2006-08-21 Thread Jim Laskey


Changes in directory llvm/lib/CodeGen:

MachineDebugInfo.cpp updated: 1.46 -> 1.47
DwarfWriter.cpp updated: 1.69 -> 1.70
---
Log message:

Adding C++ member support.


---
Diffs of the changes:  (+152 -62)

 DwarfWriter.cpp  |  210 ---
 MachineDebugInfo.cpp |4 
 2 files changed, 152 insertions(+), 62 deletions(-)


Index: llvm/lib/CodeGen/MachineDebugInfo.cpp
diff -u llvm/lib/CodeGen/MachineDebugInfo.cpp:1.46 
llvm/lib/CodeGen/MachineDebugInfo.cpp:1.47
--- llvm/lib/CodeGen/MachineDebugInfo.cpp:1.46  Thu Jul 13 10:27:42 2006
+++ llvm/lib/CodeGen/MachineDebugInfo.cpp   Mon Aug 21 16:20:18 2006
@@ -497,7 +497,8 @@
   case DW_TAG_const_type:
   case DW_TAG_volatile_type:
   case DW_TAG_restrict_type:
-  case DW_TAG_member:   return new DerivedTypeDesc(Tag);
+  case DW_TAG_member:
+  case DW_TAG_inheritance:  return new DerivedTypeDesc(Tag);
   case DW_TAG_array_type:
   case DW_TAG_structure_type:
   case DW_TAG_union_type:
@@ -788,6 +789,7 @@
   case DW_TAG_volatile_type:
   case DW_TAG_restrict_type:
   case DW_TAG_member:
+  case DW_TAG_inheritance:
 return true;
   default: break;
   }


Index: llvm/lib/CodeGen/DwarfWriter.cpp
diff -u llvm/lib/CodeGen/DwarfWriter.cpp:1.69 
llvm/lib/CodeGen/DwarfWriter.cpp:1.70
--- llvm/lib/CodeGen/DwarfWriter.cpp:1.69   Thu Jul 13 10:27:42 2006
+++ llvm/lib/CodeGen/DwarfWriter.cppMon Aug 21 16:20:18 2006
@@ -1236,7 +1236,7 @@
 DIE *&DwarfWriter::getDieMapSlotFor(DebugInfoDesc *DD) {
   return DescToDieMap[DD];
 }
- 
+
 /// NewType - Create a new type DIE.
 ///
 DIE *DwarfWriter::NewType(DIE *Context, TypeDesc *TyDesc, CompileUnit *Unit) {
@@ -1249,8 +1249,6 @@
 return Die;
   }
   
-  // FIXME - Should handle other contexts that compile units.
-
   // Check for pre-existence.
   DIE *&Slot = Unit->getDieMapSlotFor(TyDesc);
   if (Slot) return Slot;
@@ -1326,71 +1324,161 @@
 }
 case DW_TAG_structure_type:
 case DW_TAG_union_type: {
-  // FIXME - this is just the basics.
   // Add elements to structure type.
   for(unsigned i = 0, N = Elements.size(); i < N; ++i) {
-DerivedTypeDesc *MemberDesc = cast(Elements[i]);
-
-// Extract the basic information.
-const std::string &Name = MemberDesc->getName();
-TypeDesc *MemTy = MemberDesc->getFromType();
-uint64_t Size = MemberDesc->getSize();
-uint64_t Align = MemberDesc->getAlign();
-uint64_t Offset = MemberDesc->getOffset();
-   
-// Construct member debug information entry.
-DIE *Member = new DIE(DW_TAG_member);
+DebugInfoDesc *Element = Elements[i];
 
-// Add name if not "".
-if (!Name.empty()) Member->AddString(DW_AT_name, DW_FORM_string, Name);
-// Add location if available.
-AddSourceLine(Member, MemberDesc->getFile(), MemberDesc->getLine());
-
-// Most of the time the field info is the same as the members.
-uint64_t FieldSize = Size;
-uint64_t FieldAlign = Align;
-uint64_t FieldOffset = Offset;
-
-if (TypeDesc *FromTy = MemberDesc->getFromType()) {
-  Member->AddDIEntry(DW_AT_type, DW_FORM_ref4,
- NewType(Context, FromTy, Unit));
-  FieldSize = FromTy->getSize();
-  FieldAlign = FromTy->getSize();
-}
+if (DerivedTypeDesc *MemberDesc = dyn_cast(Element)) {
+  // Add field or base class.
+  
+  unsigned Tag = MemberDesc->getTag();
 
-// Unless we have a bit field.
-if (FieldSize != Size) {
-  // Construct the alignment mask.
-  uint64_t AlignMask = ~(FieldAlign - 1);
-  // Determine the high bit + 1 of the declared size.
-  uint64_t HiMark = (Offset + FieldSize) & AlignMask;
-  // Work backwards to determine the base offset of the field.
-  FieldOffset = HiMark - FieldSize;
-  // Now normalize offset to the field.
-  Offset -= FieldOffset;
+  // Extract the basic information.
+  const std::string &Name = MemberDesc->getName();
+  TypeDesc *MemTy = MemberDesc->getFromType();
+  uint64_t Size = MemberDesc->getSize();
+  uint64_t Align = MemberDesc->getAlign();
+  uint64_t Offset = MemberDesc->getOffset();
+ 
+  // Construct member debug information entry.
+  DIE *Member = new DIE(Tag);
   
-  // Maybe we need to work from the other end.
-  if (TD->isLittleEndian()) Offset = FieldSize - (Offset + Size);
+  // Add name if not "".
+  if (!Name.empty())Member->AddString(DW_AT_name, DW_FORM_string, 
Name);
+  // Add location if available.
+  AddSourceLine(Member, MemberDesc->getFile(), MemberDesc->getLine());
   
-  Member->AddUInt(DW_AT_byte_size, 0, FieldSize >> 3);
-  Member->Ad

[llvm-commits] CVS: llvm/include/llvm/Support/Dwarf.h

2006-08-21 Thread Jim Laskey


Changes in directory llvm/include/llvm/Support:

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

Adding new Dwarf constants.


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

 Dwarf.h |5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)


Index: llvm/include/llvm/Support/Dwarf.h
diff -u llvm/include/llvm/Support/Dwarf.h:1.9 
llvm/include/llvm/Support/Dwarf.h:1.10
--- llvm/include/llvm/Support/Dwarf.h:1.9   Wed Jul 26 11:18:00 2006
+++ llvm/include/llvm/Support/Dwarf.h   Mon Aug 21 16:18:10 2006
@@ -202,7 +202,8 @@
   DW_AT_elemental = 0x66,
   DW_AT_pure = 0x67,
   DW_AT_recursive = 0x68,
-  DW_AT_sf_names = 0x2101,
+  DW_AT_MIPS_linkage_name = 0x2007,
+  DW_AT_sf_names   = 0x2101,
   DW_AT_src_info = 0x2102,
   DW_AT_mac_info = 0x2103,
   DW_AT_src_coords = 0x2104,
@@ -211,7 +212,7 @@
   DW_AT_GNU_vector = 0x2107,
   DW_AT_lo_user = 0x2000,
   DW_AT_hi_user = 0x3fff,
-
+ 
   // Attribute form encodings
   DW_FORM_addr = 0x01,
   DW_FORM_block2 = 0x03,



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


[llvm-commits] CVS: llvm/test/Regression/CodeGen/ARM/select.ll

2006-08-21 Thread Rafael Espindola


Changes in directory llvm/test/Regression/CodeGen/ARM:

select.ll added (r1.1)
---
Log message:

initial support for select


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

 select.ll |   15 +++
 1 files changed, 15 insertions(+)


Index: llvm/test/Regression/CodeGen/ARM/select.ll
diff -c /dev/null llvm/test/Regression/CodeGen/ARM/select.ll:1.1
*** /dev/null   Mon Aug 21 17:00:42 2006
--- llvm/test/Regression/CodeGen/ARM/select.ll  Mon Aug 21 17:00:32 2006
***
*** 0 
--- 1,15 
+ int %f(int %a) {
+ entry:
+   %tmp = seteq int %a, 4  ;  [#uses=1]
+   br bool %tmp, label %cond_false, label %cond_true
+ 
+ cond_true:; preds = %entry
+   br label %return
+ 
+ cond_false:   ; preds = %entry
+   br label %return
+ 
+ return:   ; preds = %cond_false, %cond_true
+   %retval.0 = phi int [ 2, %cond_true ], [ 3, %cond_false ]   
;  [#uses=1]
+   ret int %retval.0
+ }



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


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

2006-08-21 Thread Rafael Espindola


Changes in directory llvm/lib/Target/ARM:

ARMISelDAGToDAG.cpp updated: 1.32 -> 1.33
ARMInstrInfo.td updated: 1.17 -> 1.18
ARMTargetMachine.cpp updated: 1.5 -> 1.6
---
Log message:

initial support for select


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

 ARMISelDAGToDAG.cpp  |   26 +-
 ARMInstrInfo.td  |   14 ++
 ARMTargetMachine.cpp |3 +++
 3 files changed, 42 insertions(+), 1 deletion(-)


Index: llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp
diff -u llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp:1.32 
llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp:1.33
--- llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp:1.32Sat Aug 19 20:49:49 2006
+++ llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp Mon Aug 21 17:00:32 2006
@@ -51,6 +51,9 @@
   setOperationAction(ISD::GlobalAddress, MVT::i32,   Custom);
   setOperationAction(ISD::ConstantPool,  MVT::i32,   Custom);
 
+  setOperationAction(ISD::SETCC, MVT::i32, Expand);
+  setOperationAction(ISD::SELECT_CC, MVT::i32, Custom);
+
   setSchedulingPreference(SchedulingForRegPressure);
   computeRegisterProperties();
 }
@@ -64,7 +67,11 @@
   CALL,
 
   /// Return with a flag operand.
-  RET_FLAG
+  RET_FLAG,
+
+  CMP,
+
+  SELECT
 };
   }
 }
@@ -74,6 +81,8 @@
   default: return 0;
   case ARMISD::CALL:  return "ARMISD::CALL";
   case ARMISD::RET_FLAG:  return "ARMISD::RET_FLAG";
+  case ARMISD::SELECT:return "ARMISD::SELECT";
+  case ARMISD::CMP:   return "ARMISD::CMP";
   }
 }
 
@@ -290,6 +299,19 @@
   return DAG.getNode(ISD::MERGE_VALUES, RetVT, &ArgValues[0], 
ArgValues.size());
 }
 
+static SDOperand LowerSELECT_CC(SDOperand Op, SelectionDAG &DAG) {
+  SDOperand LHS = Op.getOperand(0);
+  SDOperand RHS = Op.getOperand(1);
+  ISD::CondCode CC = cast(Op.getOperand(4))->get();
+  SDOperand TrueVal = Op.getOperand(2);
+  SDOperand FalseVal = Op.getOperand(3);
+
+  assert(CC == ISD::SETEQ);
+
+  SDOperand Cmp = DAG.getNode(ARMISD::CMP, MVT::Flag, LHS, RHS);
+  return DAG.getNode(ARMISD::SELECT, MVT::i32, FalseVal, TrueVal, Cmp);
+}
+
 SDOperand ARMTargetLowering::LowerOperation(SDOperand Op, SelectionDAG &DAG) {
   switch (Op.getOpcode()) {
   default:
@@ -305,6 +327,8 @@
 return LowerCALL(Op, DAG);
   case ISD::RET:
 return LowerRET(Op, DAG);
+  case ISD::SELECT_CC:
+return LowerSELECT_CC(Op, DAG);
   }
 }
 


Index: llvm/lib/Target/ARM/ARMInstrInfo.td
diff -u llvm/lib/Target/ARM/ARMInstrInfo.td:1.17 
llvm/lib/Target/ARM/ARMInstrInfo.td:1.18
--- llvm/lib/Target/ARM/ARMInstrInfo.td:1.17Mon Aug 21 08:58:59 2006
+++ llvm/lib/Target/ARM/ARMInstrInfo.td Mon Aug 21 17:00:32 2006
@@ -48,6 +48,10 @@
[SDNPHasChain, SDNPOptInFlag, SDNPOutFlag]>;
 def retflag: SDNode<"ARMISD::RET_FLAG", SDTRet,
   [SDNPHasChain, SDNPOptInFlag]>;
+def armselect  : SDNode<"ARMISD::SELECT", SDTIntBinOp, [SDNPInFlag, 
SDNPOutFlag]>;
+
+def SDTVoidBinOp : SDTypeProfile<0, 2, [SDTCisSameAs<0, 1>]>;
+def armcmp   : SDNode<"ARMISD::CMP",  SDTVoidBinOp, [SDNPOutFlag]>;
 
 def ADJCALLSTACKUP : InstARM<(ops i32imm:$amt),
 "!ADJCALLSTACKUP $amt",
@@ -96,3 +100,13 @@
 def andrr : InstARM<(ops IntRegs:$dst, IntRegs:$a, IntRegs:$b),
   "and $dst, $a, $b",
   [(set IntRegs:$dst, (and IntRegs:$a, IntRegs:$b))]>;
+
+let isTwoAddress = 1 in {
+  def moveq: InstARM<(ops IntRegs:$dst, IntRegs:$false, IntRegs:$true),
+"moveq $dst, $true",
+[(set IntRegs:$dst, (armselect IntRegs:$true, 
IntRegs:$false))]>;
+}
+
+def cmp  : InstARM<(ops IntRegs:$a, IntRegs:$b),
+  "cmp $a, $b",
+  [(armcmp IntRegs:$a, IntRegs:$b)]>;


Index: llvm/lib/Target/ARM/ARMTargetMachine.cpp
diff -u llvm/lib/Target/ARM/ARMTargetMachine.cpp:1.5 
llvm/lib/Target/ARM/ARMTargetMachine.cpp:1.6
--- llvm/lib/Target/ARM/ARMTargetMachine.cpp:1.5Wed Aug 16 09:43:33 2006
+++ llvm/lib/Target/ARM/ARMTargetMachine.cppMon Aug 21 17:00:32 2006
@@ -61,6 +61,9 @@
   if (!Fast)
 PM.add(createLoopStrengthReducePass());
 
+  if (!Fast)
+PM.add(createCFGSimplificationPass());
+
   // 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/popup.js test.php

2006-08-21 Thread Patrick Jenkins


Changes in directory nightlytest-serverside:

popup.js updated: 1.1 -> 1.2
test.php updated: 1.17 -> 1.18
---
Log message:

A button entitled "Check All" now appears next to the buttons that allow
the user to graph long term results. When this button is clicked it will
select all the checkboxes in the corresponding table. Upon being clicked,
the button will also rename itself to "Uncheck All" and when it is clicked
a second time will deselect all boxes.



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

 popup.js |   22 +-
 test.php |   13 ++---
 2 files changed, 27 insertions(+), 8 deletions(-)


Index: nightlytest-serverside/popup.js
diff -u nightlytest-serverside/popup.js:1.1 nightlytest-serverside/popup.js:1.2
--- nightlytest-serverside/popup.js:1.1 Fri Jul  7 19:32:18 2006
+++ nightlytest-serverside/popup.js Mon Aug 21 16:56:57 2006
@@ -110,4 +110,24 @@

document.layers[whichLayer+"_"].innerHTML="(+)"+link.substring(3,link.length);
}
}
-}//end function
\ No newline at end of file
+}//end function
+
+var checkflag="false";
+function check(field) {
+  if (checkflag == "false") {
+for (i = 0; i < field.length; i++) {
+  field[i].checked = true;
+}
+checkflag = "true";
+return "Uncheck all"; 
+  }  
+  else {
+for (i = 0; i < field.length; i++) {
+  if(field[i].type == 'checkbox'){
+field[i].checked = false; 
+  }
+}
+checkflag = "false";
+return "Check all"; 
+  }
+}
\ No newline at end of file


Index: nightlytest-serverside/test.php
diff -u nightlytest-serverside/test.php:1.17 
nightlytest-serverside/test.php:1.18
--- nightlytest-serverside/test.php:1.17Mon Aug 21 15:21:55 2006
+++ nightlytest-serverside/test.php Mon Aug 21 16:56:57 2006
@@ -27,11 +27,9 @@
 die();
 }
 
-
 $mysql_link=mysql_connect("127.0.0.1","llvm","ll2002vm") or die("Error: could 
not connect to database!\n");
 mysql_select_db("nightlytestresults");
 
-
 $row = getMachineInfo($machine_id,$mysql_link);
 $today_row = getNightInfo($night_id,$mysql_link);
 $cur_date=$today_row['added'];
@@ -41,9 +39,7 @@
 $yesterday_row = mysql_fetch_array($today_query);
 $oldday_row = mysql_fetch_array($today_query);
 mysql_free_result($today_query);
-
-$previous_succesful_id = getPreviousWorkingNight($night_id, $mysql_link);
-
+$previous_succesful_id = $yesterday_row['id'];
 ?>
 
 
@@ -124,7 +120,7 @@
 
 /*
  *
- * Printing the times table
+ * Printing the build status
  *
  **/
 if(strpos($today_row['buildstatus'], "OK")===FALSE){
@@ -176,6 +172,7 @@
   $disp="";
   $sign="(+)";
 }
+
 print "$sign Test Suite Changes\n";
 print "\n";
 print"Test suite changes:\n";
@@ -582,7 +579,7 @@
 
 print "\t\n";
 if(strcmp($d, "Total Sum")!=0){
-  print "\t\t\n";
+  print "\t\t\n";
 }
 else{
   print "\t\t\n";
@@ -605,6 +602,7 @@
 print "\n";
 print "\n"; #ending black border around table  
 print " | ";
+print " | \n"; 
 print "\n";
 print "\n";
 print "\n";
@@ -719,6 +717,7 @@
   print "\n";
   print "\n"; #ending black border around table  
   print " | 
";
+  print " | \n"; 
   print "\n";
   print "\n";
   print "\n";



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


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

2006-08-21 Thread Jim Laskey


Changes in directory llvm/docs:

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

Update info on mangled names.


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

 SourceLevelDebugging.html |   12 +---
 1 files changed, 9 insertions(+), 3 deletions(-)


Index: llvm/docs/SourceLevelDebugging.html
diff -u llvm/docs/SourceLevelDebugging.html:1.24 
llvm/docs/SourceLevelDebugging.html:1.25
--- llvm/docs/SourceLevelDebugging.html:1.24Mon Aug 21 16:21:06 2006
+++ llvm/docs/SourceLevelDebugging.html Mon Aug 21 17:57:31 2006
@@ -389,6 +389,7 @@
 {  }*,  ;; Global variable anchor = cast (%llvm.dbg.anchor.type* %llvm.dbg.global_variables to {  }*),  
 {  }*,  ;; Reference to context descriptor
 sbyte*, ;; Name
+sbyte*, ;; Display name (unmangled name if Name is the C++ mangled name)
 {  }*,  ;; Reference to compile unit where defined
 uint,   ;; Line number where defined
 {  }*,  ;; Reference to type descriptor
@@ -416,6 +417,7 @@
 {  }*,  ;; Subprogram anchor = cast (%llvm.dbg.anchor.type* %llvm.dbg.subprograms to {  }*),  
 {  }*,  ;; Reference to context descriptor
 sbyte*, ;; Name
+sbyte*, ;; Display name (unmangled name if Name is the C++ mangled name)
 {  }*,  ;; Reference to compile unit where defined
 uint,   ;; Line number where defined
 {  }*,  ;; Reference to type descriptor
@@ -1140,6 +1142,7 @@
 {  }* cast (%llvm.dbg.anchor.type* %llvm.dbg.global_variables to {  }*), 
 {  }* cast (%llvm.dbg.compile_unit.type* %llvm.dbg.compile_unit to {  }*), 
 sbyte* getelementptr ([9 x sbyte]* %str1, int 0, int 0), 
+sbyte* getelementptr ([1 x sbyte]* %str2, int 0, int 0), 
 {  }* cast (%llvm.dbg.compile_unit.type* %llvm.dbg.compile_unit to {  }*), 
 uint 1,
 {  }* cast (%llvm.dbg.basictype.type* %llvm.dbg.basictype to {  }*), 
@@ -1154,7 +1157,7 @@
 %llvm.dbg.basictype = internal constant %llvm.dbg.basictype.type {
 uint add(uint 36, uint 262144), 
 {  }* cast (%llvm.dbg.compile_unit.type* %llvm.dbg.compile_unit to {  }*), 
-sbyte* getelementptr ([4 x sbyte]* %str2, int 0, int 0), 
+sbyte* getelementptr ([4 x sbyte]* %str3, int 0, int 0), 
 {  }* null, 
 int 0, 
 uint 32, 
@@ -1166,7 +1169,8 @@
 ;; Define the names of the global variable and basic type.
 ;;
 %str1 = internal constant [9 x sbyte] c"MyGlobal\00", section "llvm.metadata"
-%str2 = internal constant [4 x sbyte] c"int\00", section "llvm.metadata"
+%str2 = internal constant [1 x sbyte] c"\00", section "llvm.metadata"
+%str3 = internal constant [4 x sbyte] c"int\00", section "llvm.metadata"
 
 
 
@@ -1213,6 +1217,7 @@
 {  }* cast (%llvm.dbg.anchor.type* %llvm.dbg.subprograms to {  }*), 
 {  }* cast (%llvm.dbg.compile_unit.type* %llvm.dbg.compile_unit to {  }*), 
 sbyte* getelementptr ([5 x sbyte]* %str1, int 0, int 0), 
+sbyte* getelementptr ([1 x sbyte]* %str2, int 0, int 0), 
 {  }* cast (%llvm.dbg.compile_unit.type* %llvm.dbg.compile_unit to {  }*),
 uint 1,
 {  }* null, 
@@ -1223,6 +1228,7 @@
 ;; Define the name of the subprogram.
 ;;
 %str1 = internal constant [5 x sbyte] c"main\00", section "llvm.metadata"
+%str2 = internal constant [1 x sbyte] c"\00", section "llvm.metadata"
 
 ;;
 ;; Define the subprogram itself.
@@ -1767,7 +1773,7 @@
 
   mailto:[EMAIL PROTECTED]">Chris Lattner
   http://llvm.org";>LLVM Compiler Infrastructure
-  Last modified: $Date: 2006/08/21 21:21:06 $
+  Last modified: $Date: 2006/08/21 22:57:31 $
 
 
 



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


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

2006-08-21 Thread Chris Lattner


Changes in directory llvm/lib/CodeGen:

LiveIntervalAnalysis.cpp updated: 1.164 -> 1.165
---
Log message:

Print physreg names symbolically in dumps


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

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


Index: llvm/lib/CodeGen/LiveIntervalAnalysis.cpp
diff -u llvm/lib/CodeGen/LiveIntervalAnalysis.cpp:1.164 
llvm/lib/CodeGen/LiveIntervalAnalysis.cpp:1.165
--- llvm/lib/CodeGen/LiveIntervalAnalysis.cpp:1.164 Mon Aug 21 17:56:29 2006
+++ llvm/lib/CodeGen/LiveIntervalAnalysis.cpp   Mon Aug 21 18:03:54 2006
@@ -735,8 +735,9 @@
   assert(SrcInt.reg == SrcReg && DestInt.reg == DestReg &&
  "Register mapping is horribly broken!");
 
-  DEBUG(std::cerr << "\t\tInspecting " << SrcInt << " and " << DestInt
-  << ": ");
+  DEBUG(std::cerr << "\t\tInspecting "; SrcInt.print(std::cerr, mri_);
+std::cerr << " and "; DestInt.print(std::cerr, mri_);
+std::cerr << ": ");
 
   // If two intervals contain a single value and are joined by a copy, it
   // does not matter if the intervals overlap, they can always be joined.



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


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

2006-08-21 Thread Chris Lattner


Changes in directory llvm/lib/CodeGen:

LiveIntervalAnalysis.cpp updated: 1.163 -> 1.164
---
Log message:

Print debug info as:

*** Register mapping ***
  reg 1024 -> %reg1028
  reg 1026 -> EAX
  reg 1027 -> %reg1028

instead of:

*** Register mapping ***
  reg 1024 -> reg 1028
  reg 1026 -> reg 15
  reg 1027 -> reg 1028



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

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


Index: llvm/lib/CodeGen/LiveIntervalAnalysis.cpp
diff -u llvm/lib/CodeGen/LiveIntervalAnalysis.cpp:1.163 
llvm/lib/CodeGen/LiveIntervalAnalysis.cpp:1.164
--- llvm/lib/CodeGen/LiveIntervalAnalysis.cpp:1.163 Fri Jul 21 16:15:20 2006
+++ llvm/lib/CodeGen/LiveIntervalAnalysis.cpp   Mon Aug 21 17:56:29 2006
@@ -820,8 +820,11 @@
 
   DEBUG(std::cerr << "*** Register mapping ***\n");
   DEBUG(for (int i = 0, e = r2rMap_.size(); i != e; ++i)
-  if (r2rMap_[i])
- std::cerr << "  reg " << i << " -> reg " << r2rMap_[i] << "\n");
+  if (r2rMap_[i]) {
+std::cerr << "  reg " << i << " -> ";
+printRegName(r2rMap_[i]);
+std::cerr << "\n";
+  });
 }
 
 /// Return true if the two specified registers belong to different register



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

2006-08-21 Thread Chris Lattner


Changes in directory llvm/include/llvm/CodeGen:

LiveInterval.h updated: 1.16 -> 1.17
---
Log message:

move LiveInterval state all together


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

 LiveInterval.h |4 +++-
 1 files changed, 3 insertions(+), 1 deletion(-)


Index: llvm/include/llvm/CodeGen/LiveInterval.h
diff -u llvm/include/llvm/CodeGen/LiveInterval.h:1.16 
llvm/include/llvm/CodeGen/LiveInterval.h:1.17
--- llvm/include/llvm/CodeGen/LiveInterval.h:1.16   Thu Jan 26 14:41:32 2006
+++ llvm/include/llvm/CodeGen/LiveInterval.hMon Aug 21 18:15:12 2006
@@ -76,6 +76,9 @@
 unsigned reg;// the register of this interval
 float weight;// weight of this interval
 Ranges ranges;   // the ranges in which this register is live
+  private:
+unsigned NumValues;  // the number of distinct values in this interval.
+  public:
 
 LiveInterval(unsigned Reg, float Weight)
   : reg(Reg), weight(Weight), NumValues(0) {
@@ -189,7 +192,6 @@
 void dump() const;
 
   private:
-unsigned NumValues;  // the number of distinct values in this interval.
 Ranges::iterator addRangeFrom(LiveRange LR, Ranges::iterator From);
 void extendIntervalEndTo(Ranges::iterator I, unsigned NewEnd);
 Ranges::iterator extendIntervalStartTo(Ranges::iterator I, unsigned 
NewStr);



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


Re: [llvm-commits] CVS: llvm/test/Regression/CodeGen/ARM/select.ll

2006-08-21 Thread Bill Wendling

Hi,

This testcase doesn't have a "RUN" line in it. It's failing the
regression tests.

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


[llvm-commits] CVS: llvm/test/Regression/Other/2002-01-31-CallGraph.ll 2002-01-31-PostDomSet-2.ll 2002-01-31-PostDomSet.ll 2002-08-02-DomSetProblem.ll 2003-02-19-LoopInfoNestingBug.ll

2006-08-21 Thread Bill Wendling


Changes in directory llvm/test/Regression/Other:

2002-01-31-CallGraph.ll updated: 1.1 -> 1.2
2002-01-31-PostDomSet-2.ll updated: 1.1 -> 1.2
2002-01-31-PostDomSet.ll updated: 1.2 -> 1.3
2002-08-02-DomSetProblem.ll updated: 1.1 -> 1.2
2003-02-19-LoopInfoNestingBug.ll updated: 1.2 -> 1.3
---
Log message:

Modified the RUN line from "analyze ..." to "opt -analyze ..." because
Reid removed the analyze tool and incorporated it into the opt tool.


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

 2002-01-31-CallGraph.ll  |2 +-
 2002-01-31-PostDomSet-2.ll   |2 +-
 2002-01-31-PostDomSet.ll |2 +-
 2002-08-02-DomSetProblem.ll  |2 +-
 2003-02-19-LoopInfoNestingBug.ll |2 +-
 5 files changed, 5 insertions(+), 5 deletions(-)


Index: llvm/test/Regression/Other/2002-01-31-CallGraph.ll
diff -u llvm/test/Regression/Other/2002-01-31-CallGraph.ll:1.1 
llvm/test/Regression/Other/2002-01-31-CallGraph.ll:1.2
--- llvm/test/Regression/Other/2002-01-31-CallGraph.ll:1.1  Thu Jan 31 
23:04:58 2002
+++ llvm/test/Regression/Other/2002-01-31-CallGraph.ll  Mon Aug 21 23:37:51 2006
@@ -1,6 +1,6 @@
 ;  Call graph construction crash: Not handling indirect calls right
 ;
-; RUN: analyze -callgraph %s
+; RUN: opt -analyze -callgraph %s
 ;
 
 %FunTy = type int(int)


Index: llvm/test/Regression/Other/2002-01-31-PostDomSet-2.ll
diff -u llvm/test/Regression/Other/2002-01-31-PostDomSet-2.ll:1.1 
llvm/test/Regression/Other/2002-01-31-PostDomSet-2.ll:1.2
--- llvm/test/Regression/Other/2002-01-31-PostDomSet-2.ll:1.1   Tue Jul 23 
13:28:03 2002
+++ llvm/test/Regression/Other/2002-01-31-PostDomSet-2.ll   Mon Aug 21 
23:37:51 2006
@@ -1,6 +1,6 @@
 ; Crash in post dominator set construction.
 ;
-; RUN: analyze -postdomset %s
+; RUN: opt -analyze -postdomset %s
 ;
 
 implementation


Index: llvm/test/Regression/Other/2002-01-31-PostDomSet.ll
diff -u llvm/test/Regression/Other/2002-01-31-PostDomSet.ll:1.2 
llvm/test/Regression/Other/2002-01-31-PostDomSet.ll:1.3
--- llvm/test/Regression/Other/2002-01-31-PostDomSet.ll:1.2 Thu Jan 31 
22:44:38 2002
+++ llvm/test/Regression/Other/2002-01-31-PostDomSet.ll Mon Aug 21 23:37:51 2006
@@ -1,6 +1,6 @@
 ; Crash in post dominator set construction.
 ;
-; RUN: analyze -postdomset %s
+; RUN: opt -analyze -postdomset %s
 ;
 
 implementation


Index: llvm/test/Regression/Other/2002-08-02-DomSetProblem.ll
diff -u llvm/test/Regression/Other/2002-08-02-DomSetProblem.ll:1.1 
llvm/test/Regression/Other/2002-08-02-DomSetProblem.ll:1.2
--- llvm/test/Regression/Other/2002-08-02-DomSetProblem.ll:1.1  Fri Aug  2 
11:41:21 2002
+++ llvm/test/Regression/Other/2002-08-02-DomSetProblem.ll  Mon Aug 21 
23:37:51 2006
@@ -2,7 +2,7 @@
 ; blocks.  These blocks should at least dominate themselves.  This is 
 ; fouling up the verify pass.
 ;
-; RUN: analyze -domset %s | grep BB
+; RUN: opt -analyze -domset %s | grep BB
 
 void %test() {
ret void


Index: llvm/test/Regression/Other/2003-02-19-LoopInfoNestingBug.ll
diff -u llvm/test/Regression/Other/2003-02-19-LoopInfoNestingBug.ll:1.2 
llvm/test/Regression/Other/2003-02-19-LoopInfoNestingBug.ll:1.3
--- llvm/test/Regression/Other/2003-02-19-LoopInfoNestingBug.ll:1.2 Tue Jul 
 1 16:03:30 2003
+++ llvm/test/Regression/Other/2003-02-19-LoopInfoNestingBug.ll Mon Aug 21 
23:37:51 2006
@@ -2,7 +2,7 @@
 ; figure out that loop "Inner" should be nested inside of leep "LoopHeader", 
 ; and instead nests it just inside loop "Top"
 ;
-; RUN: analyze -loops %s | grep ' Loop Containing:[ ]*%Inner'
+; RUN: opt -analyze -loops %s | grep ' Loop Containing:[ ]*%Inner'
 ;
 
 implementation



___
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-21 Thread Reid Spencer


Changes in directory llvm/lib/System/Unix:

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

Make an error message a little more intelligible.


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

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


Index: llvm/lib/System/Unix/Path.inc
diff -u llvm/lib/System/Unix/Path.inc:1.51 llvm/lib/System/Unix/Path.inc:1.52
--- llvm/lib/System/Unix/Path.inc:1.51  Mon Aug  7 00:20:05 2006
+++ llvm/lib/System/Unix/Path.inc   Tue Aug 22 00:28:38 2006
@@ -352,7 +352,7 @@
 Path::getFileStatus(FileStatus &info, std::string *ErrStr) const {
   struct stat buf;
   if (0 != stat(path.c_str(), &buf))
-return GetErrno(path + ": can't determine type of path object: ", ErrStr);
+return GetErrno(path + ": can't get status of file '" + path + "'", 
ErrStr);
   info.fileSize = buf.st_size;
   info.modTime.fromEpochTime(buf.st_mtime);
   info.mode = buf.st_mode;



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


[llvm-commits] CVS: llvm/test/Regression/CodeGen/ARM/select.ll

2006-08-21 Thread Reid Spencer


Changes in directory llvm/test/Regression/CodeGen/ARM:

select.ll updated: 1.1 -> 1.2
---
Log message:

Add a simple RUN line so this doesn't always fail. XFAIL this until
Rafael can get a chance to fix it.


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

 select.ll |2 ++
 1 files changed, 2 insertions(+)


Index: llvm/test/Regression/CodeGen/ARM/select.ll
diff -u llvm/test/Regression/CodeGen/ARM/select.ll:1.1 
llvm/test/Regression/CodeGen/ARM/select.ll:1.2
--- llvm/test/Regression/CodeGen/ARM/select.ll:1.1  Mon Aug 21 17:00:32 2006
+++ llvm/test/Regression/CodeGen/ARM/select.ll  Tue Aug 22 00:37:43 2006
@@ -1,3 +1,5 @@
+; RUN llvm-as %s -o /dev/null -f
+; XFAIL: ALL
 int %f(int %a) {
 entry:
%tmp = seteq int %a, 4  ;  [#uses=1]



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


[llvm-commits] CVS: llvm/test/Regression/CodeGen/ARM/select.ll

2006-08-21 Thread Reid Spencer


Changes in directory llvm/test/Regression/CodeGen/ARM:

select.ll updated: 1.2 -> 1.3
---
Log message:

Use the correct syntax.
Note to self: test before committing things!


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

 select.ll |4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)


Index: llvm/test/Regression/CodeGen/ARM/select.ll
diff -u llvm/test/Regression/CodeGen/ARM/select.ll:1.2 
llvm/test/Regression/CodeGen/ARM/select.ll:1.3
--- llvm/test/Regression/CodeGen/ARM/select.ll:1.2  Tue Aug 22 00:37:43 2006
+++ llvm/test/Regression/CodeGen/ARM/select.ll  Tue Aug 22 00:40:51 2006
@@ -1,5 +1,5 @@
-; RUN llvm-as %s -o /dev/null -f
-; XFAIL: ALL
+; RUN: llvm-as %s -o /dev/null -f
+; XFAIL: *
 int %f(int %a) {
 entry:
%tmp = seteq int %a, 4  ;  [#uses=1]



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


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

2006-08-21 Thread Chris Lattner


Changes in directory llvm/include/llvm/ADT:

SmallVector.h updated: 1.14 -> 1.15
---
Log message:

add a bunch more operations, including swap, insert, erase, front(), and 
bugfixes for operator=.


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

 SmallVector.h |  128 --
 1 files changed, 115 insertions(+), 13 deletions(-)


Index: llvm/include/llvm/ADT/SmallVector.h
diff -u llvm/include/llvm/ADT/SmallVector.h:1.14 
llvm/include/llvm/ADT/SmallVector.h:1.15
--- llvm/include/llvm/ADT/SmallVector.h:1.14Wed Aug 16 17:09:24 2006
+++ llvm/include/llvm/ADT/SmallVector.h Tue Aug 22 01:27:16 2006
@@ -48,8 +48,7 @@
   
   ~SmallVectorImpl() {
 // Destroy the constructed elements in the vector.
-for (iterator I = Begin, E = End; I != E; ++I)
-  I->~T();
+destroy_range(Begin, End);
 
 // If this wasn't grown from the inline copy, deallocate the old space.
 if (!isSmall())
@@ -78,6 +77,13 @@
 return Begin[idx];
   }
   
+  reference front() {
+return begin()[0];
+  }
+  const_reference front() const {
+return begin()[0];
+  }
+  
   reference back() {
 return end()[-1];
   }
@@ -102,9 +108,44 @@
   }
   
   void clear() {
-while (End != Begin) {
-  End->~T();
-  --End;
+destroy_range(Begin, End);
+End = Begin;
+  }
+  
+  void swap(SmallVectorImpl &RHS) {
+if (this == &RHS) return;
+
+// We can only avoid copying elements if neither vector is small.
+if (!isSmall() && !RHS.isSmall()) {
+  std::swap(Begin, RHS.Begin);
+  std::swap(End, RHS.End);
+  std::swap(Capacity, RHS.Capacity);
+  return;
+}
+if (Begin+RHS.size() > Capacity)
+  grow(RHS.size());
+if (RHS.begin()+size() > RHS.Capacity)
+  RHS.grow(size());
+
+// Swap the shared elements.
+unsigned NumShared = size();
+if (NumShared > RHS.size()) NumShared = RHS.size();
+for (unsigned i = 0; i != NumShared; ++i)
+  std::swap(Begin[i], RHS[i]);
+
+// Copy over the extra elts.
+if (size() > RHS.size()) {
+  unsigned EltDiff = size() - RHS.size();
+  std::uninitialized_copy(Begin+NumShared, End, RHS.End);
+  RHS.End += EltDiff;
+  destroy_range(Begin+NumShared, End);
+  End = Begin+NumShared;
+} else if (RHS.size() > size()) {
+  unsigned EltDiff = RHS.size() - size();
+  std::uninitialized_copy(RHS.Begin+NumShared, RHS.End, End);
+  End += EltDiff;
+  destroy_range(RHS.Begin+NumShared, RHS.End);
+  RHS.End = RHS.Begin+NumShared;
 }
   }
   
@@ -131,6 +172,42 @@
   new (Begin+NumElts-1) T(Elt);
   }
   
+  void erase(iterator I) {
+// Shift all elts down one.
+std::copy(I+1, End, I);
+// Drop the last elt.
+pop_back();
+  }
+  
+  void erase(iterator S, iterator E) {
+// Shift all elts down.
+iterator I = std::copy(E, End, S);
+// Drop the last elts.
+destroy_range(I, End);
+End = I;
+  }
+  
+  iterator insert(iterator I, const T &Elt) {
+if (I == End) {  // Important special case for empty vector.
+  push_back(Elt);
+  return end()-1;
+}
+
+if (End < Capacity) {
+  Retry:
+  new (End) T(back());
+  ++End;
+  // Push everything else over.
+  std::copy_backward(I, End-1, End);
+  *I = Elt;
+  return I;
+}
+unsigned EltNo = I-Begin;
+grow();
+I = Begin+EltNo;
+goto Retry;
+  }
+  
   const SmallVectorImpl &operator=(const SmallVectorImpl &RHS);
   
 private:
@@ -143,6 +220,13 @@
   /// grow - double the size of the allocated memory, guaranteeing space for at
   /// least one more element or MinSize if specified.
   void grow(unsigned MinSize = 0);
+  
+  void destroy_range(T *S, T *E) {
+while (S != E) {
+  E->~T();
+  --E;
+}
+  }
 };
 
 // Define this out-of-line to dissuade the C++ compiler from inlining it.
@@ -159,8 +243,7 @@
   std::uninitialized_copy(Begin, End, NewElts);
   
   // Destroy the original elements.
-  for (iterator I = Begin, E = End; I != E; ++I)
-I->~T();
+  destroy_range(Begin, End);
   
   // If this wasn't grown from the inline copy, deallocate the old space.
   if (!isSmall())
@@ -183,14 +266,13 @@
   unsigned CurSize = size();
   if (CurSize >= RHSSize) {
 // Assign common elements.
-std::copy(RHS.Begin, RHS.Begin+RHSSize, Begin);
+iterator NewEnd = std::copy(RHS.Begin, RHS.Begin+RHSSize, Begin);
 
 // Destroy excess elements.
-for (unsigned i = RHSSize; i != CurSize; ++i)
-  Begin[i].~T();
+destroy_range(NewEnd, End);
 
 // Trim.
-End = Begin + RHSSize;
+End = NewEnd;
 return *this;
   }
   
@@ -198,8 +280,7 @@
   // This allows us to avoid copying them during the grow.
   if (unsigned(Capacity-Begin) < RHSSize) {
 // Destroy current elements.
-for (iterator I = Begin, E = End; I != E; ++I)
-  I->~T();
+destroy_range(Begin, End);
 End = Begin;
 CurSize = 0;
 grow(RHSSize);
@@ -255,8 +336,29 @@
   S

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

2006-08-21 Thread Chris Lattner


Changes in directory llvm/include/llvm/CodeGen:

LiveInterval.h updated: 1.17 -> 1.18
---
Log message:

Switch to using smallvector for liveintervals.  This speeds up live interval
analysis 11% on kc++.


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

 LiveInterval.h |3 ++-
 1 files changed, 2 insertions(+), 1 deletion(-)


Index: llvm/include/llvm/CodeGen/LiveInterval.h
diff -u llvm/include/llvm/CodeGen/LiveInterval.h:1.17 
llvm/include/llvm/CodeGen/LiveInterval.h:1.18
--- llvm/include/llvm/CodeGen/LiveInterval.h:1.17   Mon Aug 21 18:15:12 2006
+++ llvm/include/llvm/CodeGen/LiveInterval.hTue Aug 22 01:32:56 2006
@@ -21,6 +21,7 @@
 #ifndef LLVM_CODEGEN_LIVEINTERVAL_H
 #define LLVM_CODEGEN_LIVEINTERVAL_H
 
+#include "llvm/ADT/SmallVector.h"
 #include 
 #include 
 #include 
@@ -72,7 +73,7 @@
   /// register or value.  This class also contains a bit of register allocator
   /// state.
   struct LiveInterval {
-typedef std::vector Ranges;
+typedef SmallVector Ranges;
 unsigned reg;// the register of this interval
 float weight;// weight of this interval
 Ranges ranges;   // the ranges in which this register is live



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


[llvm-commits] CVS: llvm/test/Regression/CodeGen/ARM/select.ll

2006-08-21 Thread Chris Lattner


Changes in directory llvm/test/Regression/CodeGen/ARM:

select.ll updated: 1.3 -> 1.4
---
Log message:

This passes.


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

 select.ll |2 +-
 1 files changed, 1 insertion(+), 1 deletion(-)


Index: llvm/test/Regression/CodeGen/ARM/select.ll
diff -u llvm/test/Regression/CodeGen/ARM/select.ll:1.3 
llvm/test/Regression/CodeGen/ARM/select.ll:1.4
--- llvm/test/Regression/CodeGen/ARM/select.ll:1.3  Tue Aug 22 00:40:51 2006
+++ llvm/test/Regression/CodeGen/ARM/select.ll  Tue Aug 22 01:43:24 2006
@@ -1,5 +1,5 @@
 ; RUN: llvm-as %s -o /dev/null -f
-; XFAIL: *
+
 int %f(int %a) {
 entry:
%tmp = seteq int %a, 4  ;  [#uses=1]



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