[llvm-commits] CVS: llvm/lib/Target/ARM/ARMInstrInfo.td
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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