Add more casts to the IRBuilder.
[oota-llvm.git] / utils / userloc.pl
index c6972be327155eda03a8157e0009891408f0bd57..4da2f4029250163d1cf06d25e17592e7f6e28823 100755 (executable)
@@ -17,6 +17,9 @@
 #               Report details about lines of code in each file for each user
 #           -html
 #               Generate HTML output instead of text output
+#           -topdir
+#               Specify where the top llvm source directory is. Otherwise the
+#               llvm-config tool is used to find it.
 # Directories:
 #   The directories passed after the options should be relative paths to
 #   directories of interest from the top of the llvm source tree, e.g. "lib"
@@ -29,6 +32,7 @@ my $tag = "";
 my $html = 0;
 my $debug = 0;
 my $filedetails = "";
+my $srcroot = "";
 while ( defined($ARGV[0]) && substr($ARGV[0],0,1) eq '-' )
 {
   if ($ARGV[0] =~ /-tag=.*/) {
@@ -40,14 +44,22 @@ while ( defined($ARGV[0]) && substr($ARGV[0],0,1) eq '-' )
     $html = 1;
   } elsif ($ARGV[0] eq "-debug") {
     $debug = 1;
+  } elsif ($ARGV[0] eq "-topdir") {
+    shift; $srcroot = $ARGV[0]; shift;
   } else {
     die "Invalid option: $ARGV[0]";
   }
   shift;
 }
 
-chomp(my $srcroot = `llvm-config --src-root`);
-my $llvmdo = "$srcroot/utils/llvmdo";
+if (length($srcroot) == 0) {
+  chomp($srcroot = `llvm-config --src-root`);
+}
+if (! -d "$srcroot") {
+  die "Invalid source root: $srcroot\n";
+}
+chdir($srcroot);
+my $llvmdo = "$srcroot/utils/llvmdo -topdir '$srcroot'";
 my %Stats;
 my %FileStats;
 
@@ -62,9 +74,10 @@ sub GetCVSFiles
   my $d = $_[0];
   my $files ="";
   open FILELIST, 
-    "$llvmdo -dirs \"$d\" echo |" || die "Can't get list of files with llvmdo";
+    "$llvmdo -dirs \"$d\" -code-only echo |" || die "Can't get list of files with llvmdo";
   while ( defined($line = <FILELIST>) ) {
     chomp($file = $line);
+    print "File: $file\n" if ($debug);
     $files = "$files $file";
   }
   return $files;
@@ -85,6 +98,7 @@ sub ScanDir
     if ($line =~ '^Annotations for.*') {
       $curfile = $line;
       $curfile =~ s#^Annotations for ([[:print:]]*)#$1#;
+      print "Scanning: $curfile\n" if ($debug);
     } elsif ($line =~ /^[0-9.]*[ \t]*\([^)]*\):/) {
       $uname = $line;
       $uname =~ s#^[0-9.]*[ \t]*\(([a-zA-Z0-9_.-]*) [^)]*\):.*#$1#;
@@ -108,6 +122,7 @@ sub printStats
   foreach $user (keys %Stats) { $total += $Stats{$user}; }
 
   if ($html) { 
+    print "<p>Total Source Lines: $total<br/></p>\n";
     print "<table>";
     print " <tr><th style=\"text-align:right\">LOC</th>\n";
     print " <th style=\"text-align:right\">\%LOC</th>\n";
@@ -192,6 +207,7 @@ if ($#ARGV > 0) {
 }
   
 for $Index ( 0 .. $#DIRS) { 
+  print "Scanning Dir: $DIRS[$Index]\n" if ($debug);
   ScanDir($DIRS[$Index]); 
 }