[cfe-commits] r108172 - /cfe/trunk/tools/c-index-test/c-index-test.c

Douglas Gregor dgregor at apple.com
Mon Jul 12 11:38:41 PDT 2010


Author: dgregor
Date: Mon Jul 12 13:38:41 2010
New Revision: 108172

URL: http://llvm.org/viewvc/llvm-project?rev=108172&view=rev
Log:
Add a -code-completion-timing= mode to c-index-test, so that we can
test the performance of code-completion without testing the
performance of printf().

Modified:
    cfe/trunk/tools/c-index-test/c-index-test.c

Modified: cfe/trunk/tools/c-index-test/c-index-test.c
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/c-index-test/c-index-test.c?rev=108172&r1=108171&r2=108172&view=diff
==============================================================================
--- cfe/trunk/tools/c-index-test/c-index-test.c (original)
+++ cfe/trunk/tools/c-index-test/c-index-test.c Mon Jul 12 13:38:41 2010
@@ -799,7 +799,7 @@
           clang_getCompletionPriority(completion_result->CompletionString));
 }
 
-int perform_code_completion(int argc, const char **argv) {
+int perform_code_completion(int argc, const char **argv, int timing_only) {
   const char *input = argv[1];
   char *filename = 0;
   unsigned line;
@@ -810,7 +810,11 @@
   int num_unsaved_files = 0;
   CXCodeCompleteResults *results = 0;
 
-  input += strlen("-code-completion-at=");
+  if (timing_only)
+    input += strlen("-code-completion-timing=");
+  else
+    input += strlen("-code-completion-at=");
+
   if ((errorCode = parse_file_line_column(input, &filename, &line, &column,
                                           0, 0)))
     return errorCode;
@@ -827,8 +831,9 @@
 
   if (results) {
     unsigned i, n = results->NumResults;
-    for (i = 0; i != n; ++i)
-      print_completion_result(results->Results + i, stdout);
+    if (!timing_only)
+      for (i = 0; i != n; ++i)
+        print_completion_result(results->Results + i, stdout);
     n = clang_codeCompleteGetNumDiagnostics(results);
     for (i = 0; i != n; ++i) {
       CXDiagnostic diag = clang_codeCompleteGetDiagnostic(results, i);
@@ -1204,6 +1209,7 @@
 static void print_usage(void) {
   fprintf(stderr,
     "usage: c-index-test -code-completion-at=<site> <compiler arguments>\n"
+    "       c-index-test -code-completion-timing=<site> <compiler arguments>\n"
     "       c-index-test -cursor-at=<site> <compiler arguments>\n"
     "       c-index-test -test-file-scan <AST file> <source file> "
           "[FileCheck prefix]\n"
@@ -1211,9 +1217,9 @@
           "[FileCheck prefix]\n"
     "       c-index-test -test-load-tu-usrs <AST file> <symbol filter> "
            "[FileCheck prefix]\n"
-    "       c-index-test -test-load-source <symbol filter> {<args>}*\n"
-    "       c-index-test -test-load-source-usrs <symbol filter> {<args>}*\n");
+    "       c-index-test -test-load-source <symbol filter> {<args>}*\n");
   fprintf(stderr,
+    "       c-index-test -test-load-source-usrs <symbol filter> {<args>}*\n"
     "       c-index-test -test-annotate-tokens=<range> {<args>}*\n"
     "       c-index-test -test-inclusion-stack-source {<args>}*\n"
     "       c-index-test -test-inclusion-stack-tu <AST file>\n"
@@ -1235,7 +1241,9 @@
 int main(int argc, const char **argv) {
   clang_enableStackTraces();
   if (argc > 2 && strstr(argv[1], "-code-completion-at=") == argv[1])
-    return perform_code_completion(argc, argv);
+    return perform_code_completion(argc, argv, 0);
+  if (argc > 2 && strstr(argv[1], "-code-completion-timing=") == argv[1])
+    return perform_code_completion(argc, argv, 1);
   if (argc > 2 && strstr(argv[1], "-cursor-at=") == argv[1])
     return inspect_cursor_at(argc, argv);
   else if (argc >= 4 && strncmp(argv[1], "-test-load-tu", 13) == 0) {





More information about the cfe-commits mailing list