Use APInt safe isOne() method on ConstantInt instead of getZExtValue()==1
[oota-llvm.git] / utils / NewNightlyTest.pl
index db78195a9c85f7883bf0b5580188e0bc9ccd4dc9..956a952626e4fa4eaaf1a7e4d2aca00ccd39b1fd 100755 (executable)
@@ -29,7 +29,9 @@ use Socket;
 #  -nodejagnu       Do not run feature or regression tests
 #  -parallel        Run two parallel jobs with GNU Make.
 #  -release         Build an LLVM Release version
+#  -release-asserts Build an LLVM ReleaseAsserts version
 #  -enable-llcbeta  Enable testing of beta features in llc.
+#  -enable-lli      Enable testing of lli (interpreter) features, default is off
 #  -disable-llc     Disable LLC tests in the nightly tester.
 #  -disable-jit     Disable JIT tests in the nightly tester.
 #  -disable-cbe     Disable C backend tests in the nightly tester.
@@ -67,7 +69,7 @@ use Socket;
 #                   webserver
 #  -submit-script   Specifies which script to call on the submit server. If
 #                   this option is not specified it defaults to
-#                   /nightlytest/NightlyTestAccept.cgi. This is basically 
+#                   /nightlytest/NightlyTestAccept.php. This is basically 
 #                   everything after the www.yourserver.org.
 #
 # CVSROOT is the CVS repository from which the tree will be checked out,
@@ -117,7 +119,7 @@ $NOTEST=0;
 $NORUNNINGTESTS=0;
 $MAKECMD="make";
 $SUBMITSERVER = "llvm.org";
-$SUBMITSCRIPT = "/nightlytest/NightlyTestAccept.cgi";
+$SUBMITSCRIPT = "/nightlytest/NightlyTestAccept.php";
 
 while (scalar(@ARGV) and ($_ = $ARGV[0], /^[-+]/)) {
   shift;
@@ -133,7 +135,13 @@ while (scalar(@ARGV) and ($_ = $ARGV[0], /^[-+]/)) {
   if (/^-parallel$/)       { $MAKEOPTS = "$MAKEOPTS -j2 -l3.0"; next; }
   if (/^-release$/)        { $MAKEOPTS = "$MAKEOPTS ENABLE_OPTIMIZED=1 ".
                              "OPTIMIZE_OPTION=-O2"; $BUILDTYPE="release"; next;}
+  if (/^-release-asserts$/){ $MAKEOPTS = "$MAKEOPTS ENABLE_OPTIMIZED=1 ".
+                             "DISABLE-ASSERTIONS=1 ".
+                             "OPTIMIZE_OPTION=-O2"; 
+                             $BUILDTYPE="release-asserts"; next;}
   if (/^-enable-llcbeta$/) { $PROGTESTOPTS .= " ENABLE_LLCBETA=1"; next; }
+  if (/^-enable-lli$/)     { $PROGTESTOPTS .= " ENABLE_LLI=1";
+                             $CONFIGUREARGS .= " --enable-lli"; next; } 
   if (/^-disable-llc$/)    { $PROGTESTOPTS .= " DISABLE_LLC=1";
                              $CONFIGUREARGS .= " --disable-llc_diffs"; next; } 
   if (/^-disable-jit$/)    { $PROGTESTOPTS .= " DISABLE_JIT=1";
@@ -206,7 +214,7 @@ if ($nickname eq "") {
        "\"-nickname <nickname>\"");
 }
 
-if ($BUILDTYPE ne "release") {
+if ($BUILDTYPE ne "release" && $BUILDTYPE ne "release-asserts") {
   $BUILDTYPE = "debug";
 }
 
@@ -385,9 +393,8 @@ sub GetDejagnuTestResults { # (filename, log)
         while ( <SRCHFILE> ) {
             if ( length($_) > 1 ) {
                 chomp($_);
-                if ( m/^PASS:/ || m/^XPASS:/ ||
-                     m/^FAIL:/ || m/^XFAIL:/) {
-                    push(@lines, "$_");
+                if ( m/^(PASS|XPASS|FAIL|XFAIL): .*\/llvm\/test\/(.*)$/ ) {
+                    push(@lines, "$1: test/$2");
                 }
             }
         }
@@ -470,11 +477,15 @@ if (!$NOCHECKOUT) {
         print "Build directory exists! Removing it\n";
       }
       system "rm -rf $BuildDir";
+      mkdir $BuildDir or die "Could not create CVS checkout directory $BuildDir!";
     } else {
-       die "CVS checkout directory $BuildDir already exists!";
+      if ( $VERBOSE ) {
+        print "Build directory exists!\n";
+      }
     }
+  } else {
+    mkdir $BuildDir or die "Could not create CVS checkout directory $BuildDir!";
   }
-  mkdir $BuildDir or die "Could not create CVS checkout directory $BuildDir!";
 }
 ChangeDir( $BuildDir, "CVS checkout directory" );
 
@@ -488,7 +499,7 @@ my $CVSOPT = "";
 # Use compression if going over ssh.
 $CVSOPT = "-z3" 
   if $CVSRootDir =~ /^:ext:/;
-my $CVSCMD = "$NICE cvs $CVSOPT -d $CVSRootDir co $CVSCOOPT";
+my $CVSCMD = "$NICE cvs $CVSOPT -d $CVSRootDir co -P $CVSCOOPT";
 if (!$NOCHECKOUT) {
   if ( $VERBOSE ) { 
     print "CHECKOUT STAGE:\n"; 
@@ -500,10 +511,6 @@ if (!$NOCHECKOUT) {
   ChangeDir( $BuildDir , "CVS Checkout directory") ;
 }
 ChangeDir( "llvm" , "llvm source directory") ;
-if (!$NOCHECKOUT) {
-  if ( $VERBOSE ) { print "UPDATE STAGE\n"; }
-  system "$NICE cvs update -PdRA >> $CVSLog 2>&1" ;
-}
 
 ##############################################################
 #
@@ -658,6 +665,8 @@ if (!$BuildError) {
   $afiles.= `find tools/ -iname '*.a' -ls`;
   if($BUILDTYPE eq "release"){
     $afiles.= `find Release/ -iname '*.a' -ls`;
+  } elsif($BUILDTYPE eq "release-asserts") {
+   $afiles.= `find Release-Asserts/ -iname '*.a' -ls`;
   } else {
    $afiles.= `find Debug/ -iname '*.a' -ls`;
   }
@@ -667,6 +676,8 @@ if (!$BuildError) {
   $ofiles.= `find tools/ -iname '*.o' -ls`;
   if($BUILDTYPE eq "release"){
     $ofiles.= `find Release/ -iname '*.o' -ls`;
+  } elsif($BUILDTYPE eq "release-asserts") {
+    $ofiles.= `find Release-Asserts/ -iname '*.o' -ls`;
   } else {
     $ofiles.= `find Debug/ -iname '*.o' -ls`;
   }
@@ -768,8 +779,7 @@ if (!$NODEJAGNU) {
 #
 ##############################################################
 sub TestDirectory {
-  my $SubDir = shift;
-  
+  my $SubDir = shift;  
   ChangeDir( "$BuildDir/llvm/projects/llvm-test/$SubDir", 
              "Programs Test Subdirectory" ) || return ("", "");
   
@@ -850,35 +860,34 @@ if (!$BuildError) {
                "$Prefix-MultiSource-Performance.txt ".
                " | sort > $Prefix-Performance.txt";
   }
-}
-
-##############################################################
-#
-# 
-# gathering tests added removed broken information here
-#
-#
-##############################################################
-my $dejagnu_test_list = ReadFile "$Prefix-Tests.txt";
-my @DEJAGNU = split "\n", $dejagnu_test_list;
-
-my $passes="",
-my $fails="";
-my $xfails="";
 
-if(!$NODEJAGNU) {
-  for ($x=0; $x<@DEJAGNU; $x++) {
-    if ($DEJAGNU[$x] =~ m/^PASS:/) {
-      $passes.="$DEJAGNU[$x]\n";
-    }
-    elsif ($DEJAGNU[$x] =~ m/^FAIL:/) {
-      $fails.="$DEJAGNU[$x]\n";
-    }
-    elsif ($DEJAGNU[$x] =~ m/^XFAIL:/) {
-      $xfails.="$DEJAGNU[$x]\n";
+  ##############################################################
+  #
+  # 
+  # gathering tests added removed broken information here 
+  #
+  #
+  ##############################################################
+  my $dejagnu_test_list = ReadFile "$Prefix-Tests.txt";
+  my @DEJAGNU = split "\n", $dejagnu_test_list;
+  my ($passes, $fails, $xfails) = "";
+
+  if(!$NODEJAGNU) {
+    for ($x=0; $x<@DEJAGNU; $x++) {
+      if ($DEJAGNU[$x] =~ m/^PASS:/) {
+        $passes.="$DEJAGNU[$x]\n";
+      }
+      elsif ($DEJAGNU[$x] =~ m/^FAIL:/) {
+        $fails.="$DEJAGNU[$x]\n";
+      }
+      elsif ($DEJAGNU[$x] =~ m/^XFAIL:/) {
+        $xfails.="$DEJAGNU[$x]\n";
+      }
     }
   }
-}
+  
+} #end if !$BuildError
+
 
 ##############################################################
 #
@@ -947,6 +956,15 @@ my (@DEJAGNU_LOG, @DEJAGNU_SUM, @DEJAGNULOG_FULL, @GCC_VERSION);
 my ($dejagnutests_log ,$dejagnutests_sum, $dejagnulog_full) = "";
 my ($gcc_version, $gcc_version_long) = "";
 
+$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];
+
 if(!$BuildError){
   @DEJAGNU_LOG = ReadFile "$DejagnuLog";
   @DEJAGNU_SUM = ReadFile "$DejagnuSum";
@@ -955,15 +973,6 @@ if(!$BuildError){
 
   @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];
 }
 
 ##############################################################