diff --git a/clang-tools-extra/docs/_templates/clangd_redirect.html b/clang-tools-extra/docs/_templates/clangd_redirect.html --- a/clang-tools-extra/docs/_templates/clangd_redirect.html +++ b/clang-tools-extra/docs/_templates/clangd_redirect.html @@ -8,7 +8,7 @@

The clangd documentation has moved to clangd.llvm.org

- The new site + The new site diff --git a/clang/docs/LibASTMatchersReference.html b/clang/docs/LibASTMatchersReference.html --- a/clang/docs/LibASTMatchersReference.html +++ b/clang/docs/LibASTMatchersReference.html @@ -47,13 +47,12 @@ by category and node type they match. You can click on matcher names to show the matcher's source documentation.

-

There are three different basic categories of matchers: +

There are three different basic categories of matchers:

-

Within each category the matchers are ordered by node type they match on. Note that if a matcher can match multiple node types, it will appear @@ -66,14 +65,13 @@

Note that the categorization of matchers is a great help when you combine them into matcher expressions. You will usually want to form matcher expressions that read like english sentences by alternating between node matchers and -narrowing or traversal matchers, like this: +narrowing or traversal matchers, like this:

 recordDecl(hasDescendant(
     ifStmt(hasTrueExpression(
         expr(hasDescendant(
             ifStmt()))))))
 
-

Traverse Mode

@@ -101,21 +99,19 @@ to be less error-prone for experienced AST users, as difficult cases do not need to be encountered and matcher expressions adjusted for these cases.

-

In clang-query, the mode can be changed with +

In clang-query, the mode can be changed with

 set traversal IgnoreUnlessSpelledInSource
 
-

-This affects both matchers and AST dump output in results. +

This affects both matchers and AST dump output in results.

When using the C++ API such as in clang-tidy checks, the -traverse() matcher is used to set the mode: +traverse() matcher is used to set the mode:

-Finder->addMatcher(traverse(TK_IgnoreUnlessSpelledInSource,
+Finder->addMatcher(traverse(TK_IgnoreUnlessSpelledInSource,
   returnStmt(hasReturnValue(integerLiteral(equals(0))))
   ), this);
 
-

The following table compares the AsIs mode with the IgnoreUnlessSpelledInSource mode:

@@ -518,12 +514,12 @@ class HasSpaceship { public: int x; - bool operator==(const HasSpaceship&) const = default; - std::strong_ordering operator<=>(const HasSpaceship&) const = default; + bool operator==(const HasSpaceship&) const = default; + std::strong_ordering operator<=>(const HasSpaceship&) const = default; }; -bool isLess(const HasSpaceship& a, const HasSpaceship& b) { - return a < b; +bool isLess(const HasSpaceship& a, const HasSpaceship& b) { + return a < b; } @@ -531,7 +527,7 @@ 1 match found.
-   return a < b;
+   return a < b;
           ^~~~~
 
@@ -561,13 +557,12 @@

It is important to remember that the arguments to node matchers are predicates on the same node, just with additional information about the type. This is often useful to make matcher expression more readable by inlining bind -calls into redundant node matchers inside another node matcher: +calls into redundant node matchers inside another node matcher:

 // This binds the CXXRecordDecl to "id", as the decl() matcher will stay on
 // the same node.
 recordDecl(decl().bind("id"), hasName("::MyClass"))
 
-

diff --git a/clang/www/OpenProjects.html b/clang/www/OpenProjects.html --- a/clang/www/OpenProjects.html +++ b/clang/www/OpenProjects.html @@ -161,7 +161,7 @@ that demonstrates the problem down to something small. There are many ways to do this; ask on Discourse, Discord, -or for advice.

+or
IRC for advice.

diff --git a/clang/www/analyzer/alpha_checks.html b/clang/www/analyzer/alpha_checks.html --- a/clang/www/analyzer/alpha_checks.html +++ b/clang/www/analyzer/alpha_checks.html @@ -54,14 +54,14 @@ int max(int a, int b) { // warn log(); - if (a > b) + if (a > b) return a; return b; } int maxClone(int x, int y) { // similar code here log(); - if (x > y) + if (x > y) return x; return y; } @@ -96,16 +96,16 @@
 void test(void) {
   int t;
-  int &p = t;
-  int &s = p;
-  int &q = s;
+  int &p = t;
+  int &s = p;
+  int &q = s;
   foo(q); // warn
 }
 
 void test(void) {
   int x;
-  foo(&x); // warn
+  foo(&x); // warn
 }
 
@@ -155,19 +155,19 @@ @@ -284,7 +284,7 @@ Check that addresses to stack memory do not escape the function that involves dispatch_after or dispatch_async. This checker is a part of core.StackAddressEscape, but is -temporarily disabled until some +temporarily disabled until some false positives are fixed. @@ -1028,19 +1028,19 @@ alpha.unix.cstring.NotNullTerminated (C)
Check for arguments which are not null-terminated strings; applies -to:
+to:
strlen
strnlen
strcpy
strncpy
strcat
-strncat
+strncat + diff --git a/clang/www/analyzer/available_checks.html b/clang/www/analyzer/available_checks.html --- a/clang/www/analyzer/available_checks.html +++ b/clang/www/analyzer/available_checks.html @@ -218,7 +218,7 @@ void test() { C *pc = 0; - int k = pc->x; // warn + int k = pc->x; // warn }
@@ -488,7 +488,7 @@
 
 - (nonnull id)firstChild {
   id result = nil;
-  if ([_children count] > 0)
+  if ([_children count] > 0)
     result = _children[0];
 
   // Warning: nil returned from a method that is expected
@@ -514,7 +514,7 @@
 void updateNextData(struct LinkedList *list, int newData) {
   struct LinkedList *next = getNext(list);
   // Warning: Nullable pointer is dereferenced
-  next->data = 7;
+  next->data = 7;
 }
 
@@ -587,15 +587,15 @@ struct A { struct B { - int x; // note: uninitialized field 'this->b.x' - // note: uninitialized field 'this->bptr->x' - int y; // note: uninitialized field 'this->b.y' - // note: uninitialized field 'this->bptr->y' + int x; // note: uninitialized field 'this->b.x' + // note: uninitialized field 'this->bptr->x' + int y; // note: uninitialized field 'this->b.y' + // note: uninitialized field 'this->bptr->y' }; - int *iptr; // note: uninitialized pointer 'this->iptr' + int *iptr; // note: uninitialized pointer 'this->iptr' B b; B *bptr; - char *cptr; // note: uninitialized pointee 'this->cptr' + char *cptr; // note: uninitialized pointee 'this->cptr' A (B *bptr, char *cptr) : bptr(bptr), cptr(cptr) {} }; @@ -603,7 +603,7 @@ void f() { A::B b; char c; - A a(&b, &c); // warning: 6 uninitialized fields + A a(&b, &c); // warning: 6 uninitialized fields // after the constructor call }
@@ -628,7 +628,7 @@ void f() { A::B b; char c; - A a(&b, &c); // no warning + A a(&b, &c); // no warning }
@@ -637,10 +637,10 @@
 
 struct A {
   struct B {
-    int x; // note: uninitialized field 'this->b.x'
-    int y; // note: uninitialized field 'this->b.y'
+    int x; // note: uninitialized field 'this->b.x'
+    int y; // note: uninitialized field 'this->b.y'
   };
-  int *iptr; // note: uninitialized pointer 'this->iptr'
+  int *iptr; // note: uninitialized pointer 'this->iptr'
   B b;
   B *bptr;
   char *cptr;
@@ -651,7 +651,7 @@
 void f() {
   A::B b;
   char c;
-  A a(&b, &c); // warning: 3 uninitialized fields
+  A a(&b, &c); // warning: 3 uninitialized fields
                //          after the constructor call
 }
 
@@ -693,26 +693,26 @@ void test() { double buf = 0; MPI_Request sendReq1; - MPI_Ireduce(MPI_IN_PLACE, &buf, 1, MPI_DOUBLE, MPI_SUM, - 0, MPI_COMM_WORLD, &sendReq1); + MPI_Ireduce(MPI_IN_PLACE, &buf, 1, MPI_DOUBLE, MPI_SUM, + 0, MPI_COMM_WORLD, &sendReq1); } // warn: request 'sendReq1' has no matching wait.
 void test() {
   double buf = 0;
   MPI_Request sendReq;
-  MPI_Isend(&buf, 1, MPI_DOUBLE, 0, 0, MPI_COMM_WORLD, &sendReq);
-  MPI_Irecv(&buf, 1, MPI_DOUBLE, 0, 0, MPI_COMM_WORLD, &sendReq); // warn
-  MPI_Isend(&buf, 1, MPI_DOUBLE, 0, 0, MPI_COMM_WORLD, &sendReq); // warn
-  MPI_Wait(&sendReq, MPI_STATUS_IGNORE);
+  MPI_Isend(&buf, 1, MPI_DOUBLE, 0, 0, MPI_COMM_WORLD, &sendReq);
+  MPI_Irecv(&buf, 1, MPI_DOUBLE, 0, 0, MPI_COMM_WORLD, &sendReq); // warn
+  MPI_Isend(&buf, 1, MPI_DOUBLE, 0, 0, MPI_COMM_WORLD, &sendReq); // warn
+  MPI_Wait(&sendReq, MPI_STATUS_IGNORE);
 }
 
 void missingNonBlocking() {
   int rank = 0;
-  MPI_Comm_rank(MPI_COMM_WORLD, &rank);
+  MPI_Comm_rank(MPI_COMM_WORLD, &rank);
   MPI_Request sendReq1[10][10][10];
-  MPI_Wait(&sendReq1[1][7][9], MPI_STATUS_IGNORE); // warn
+  MPI_Wait(&sendReq1[1][7][9], MPI_STATUS_IGNORE); // warn
 }
 
@@ -783,7 +783,7 @@ NSNumber *photoCount = [albumDescriptor objectForKey:@"PhotoCount"]; // Warning: Comparing a pointer value of type 'NSNumber *' // to a scalar integer value -if (photoCount > 0) { +if (photoCount > 0) { [self displayPhotos]; } @@ -1077,7 +1077,7 @@ Check for type errors when using Objective-C generics @@ -1480,7 +1480,7 @@ calloc
malloc
realloc
-alloca
+alloca
diff --git a/clang/www/analyzer/open_projects.html b/clang/www/analyzer/open_projects.html --- a/clang/www/analyzer/open_projects.html +++ b/clang/www/analyzer/open_projects.html @@ -19,7 +19,7 @@ power. Most of the projects listed here are infrastructure-related so this list is an addition to the potential checkers list. If you are interested in tackling one of these, please send an email -to the cfe-dev +to the cfe-dev mailing list to notify other members of the community.

@@ -182,8 +182,8 @@ an unknown. This problem was previously discussed - on the mailing list, but no solution was implemented. -

(Difficulty: Medium)

+ on the mailing list, but no solution was implemented.

+

(Difficulty: Medium)

  • Floating-point support. @@ -192,8 +192,8 @@ for constant floats, generalizing the constraint manager to handle floats, and auditing existing code to make sure it doesn't make incorrect assumptions (most notably, that X == X - is always true, since it does not hold for NaN). -

    (Difficulty: Medium)

    + is always true, since it does not hold for NaN).

    +

    (Difficulty: Medium)

  • Improved loop execution modeling. @@ -205,9 +205,8 @@ project was completed to make the loop bound parameterizable, but the widening - problem still remains open. - -

    (Difficulty: Hard)

    + problem still remains open.

    +

    (Difficulty: Hard)

  • Basic function summarization support @@ -218,8 +217,8 @@ (e.g. "this function is pure") would be enough to be a large improvement over conservative evaluation. Such summaries could be obtained either syntactically, - or using a dataflow framework. -

    (Difficulty: Hard)

    + or using a dataflow framework.

    +

    (Difficulty: Hard)

  • Implement a dataflow flamework. @@ -236,16 +235,16 @@ Clang already implements a few dataflow analyses (most notably, liveness), but they implemented in an ad-hoc fashion. - A proper framework would enable us writing many more useful checkers. -

    (Difficulty: Hard)

    + A proper framework would enable us writing many more useful checkers.

    +

    (Difficulty: Hard)

  • Track type information through casts more precisely.

    The DynamicTypePropagation checker is in charge of inferring a region's dynamic type based on what operations the code is performing. - Casts are a rich source of type information that the analyzer currently ignores. -

    (Difficulty: Medium)

    + Casts are a rich source of type information that the analyzer currently ignores.

    +

    (Difficulty: Medium)

  • @@ -255,8 +254,8 @@

    Apart from the open projects listed above, contributors are welcome to fix any of the outstanding bugs - in the Bugzilla. -

    (Difficulty: Anything)

    + in the Bugzilla.

    +

    (Difficulty: Anything)

    diff --git a/clang/www/analyzer/potential_checkers.html b/clang/www/analyzer/potential_checkers.html --- a/clang/www/analyzer/potential_checkers.html +++ b/clang/www/analyzer/potential_checkers.html @@ -348,7 +348,7 @@ int readWrapper(int fd, int *count) { int lcount = read(fd, globalBuf, sizeof(globalBuf)); - if (lcount < 0) + if (lcount < 0) return errno; *count = lcount; return 0; @@ -497,7 +497,7 @@ void test() { A *a = new A; new(a) B; - a->~A(); + a->~A(); }
    @@ -578,7 +578,7 @@
     
     void test() {
       B b;
    -  new (&b) A;
    +  new (&b) A;
     } // warn
     
    @@ -659,7 +659,7 @@
     void test() {
       const C cb;
     
    -  C* cp = const_cast<C *>(&cb);
    +  C* cp = const_cast<C *>(&cb);
       cp->i = 1; // warn
     }
     
    @@ -1173,7 +1173,7 @@ undefbehavior.ValarrayZeroLength (C++)
    Undefined behavior: calling sum()/min()/ -max() methods of a zero length valarray the behavior is +max() methods of a zero length valarray the behavior is undefined.

    Source: C++03 26.3.2.7p2, p3, p4; C++11 26.6.2.8p5, p6, p7.

    @@ -1245,7 +1245,7 @@ }; public: my_stream2() { - this->init(new my_streambuf); + this->init(new my_streambuf); } }; @@ -1282,15 +1282,15 @@ }; public: my_stream2() { - this->init(new my_streambuf); + this->init(new my_streambuf); } }; void test() { my_stream1<char> *p1 = new my_stream1<char>; my_stream2<char> *p2 = new my_stream2<char>; - p1->narrow('a', 'b'); // warn - p2->narrow('a', 'b'); // ok + p1->narrow('a', 'b'); // warn + p2->narrow('a', 'b'); // ok } @@ -1392,7 +1392,7 @@ void test() { struct S *p = f(); - if (p->i && p) {}; // warn + if (p->i && p) {}; // warn } @@ -1417,8 +1417,8 @@ int i; int j; public: - void setI(int& ii) { i = ii; } - void setJ(int& jj) { i = jj; } // warn + void setI(int& ii) { i = ii; } + void setJ(int& jj) { i = jj; } // warn }; @@ -1435,7 +1435,7 @@ public: int i; // warn int getI() { return i; } - void setI(int& ii) { i = ii; } + void setI(int& ii) { i = ii; } }; @@ -1847,7 +1847,7 @@ (C)
    CreateProcess(): if the first parameter lpApplicationName is NULL then the executable name must be in the -white space-delimited string pointed to by lpCommandLine. +white space-delimited string pointed to by lpCommandLine. If the executable or path name has a space in it, there is a risk that a different executable could be run because of the way the function parses spaces. @@ -1861,7 +1861,7 @@ STARTUPINFO si; PROCESS_INFORMATION pi; CreateProcess(NULL, TEXT("C:\\Program Files\\App -L -S"), - NULL, NULL, TRUE, 0, NULL, NULL, &si, &pi); + NULL, NULL, TRUE, 0, NULL, NULL, &si, &pi); // warn }
    diff --git a/clang/www/analyzer/release_notes.html b/clang/www/analyzer/release_notes.html --- a/clang/www/analyzer/release_notes.html +++ b/clang/www/analyzer/release_notes.html @@ -15,7 +15,7 @@

    Release notes for checker-XXX builds

    checker-279

    -

    built: November 14, 2016
    +

    built: November 14, 2016
    download: checker-279.tar.bz2

    highlights:

    checker-278

    -

    built: February 5, 2016
    +

    built: February 5, 2016
    download: checker-278.tar.bz2

    highlights:

    checker-277

    -

    built: October 28, 2015
    +

    built: October 28, 2015
    download: checker-277.tar.bz2

    highlights:

    checker-276

    -

    built: February 19, 2014
    +

    built: February 19, 2014
    download: checker-276.tar.bz2

    highlights:

    checker-275

    -

    built: May 23, 2013
    +

    built: May 23, 2013
    download: checker-275.tar.bz2

    highlights:

    checker-274

    -

    built: April 23, 2013
    +

    built: April 23, 2013
    download: checker-274.tar.bz2

    highlights:

    checker-273

    -

    built: April 8, 2013
    +

    built: April 8, 2013
    download: checker-273.tar.bz2

    highlights:

    Return typeNameParameters
    scan-build uses the 'clang' executable relative to itself for static analysis. One can override this behavior with this option by using the 'clang' packaged with Xcode (on OS X) or -from the PATH.

    +from the PATH.

    A complete list of options can be obtained by running scan-build with no arguments.

    diff --git a/clang/www/c_dr_status.html b/clang/www/c_dr_status.html --- a/clang/www/c_dr_status.html +++ b/clang/www/c_dr_status.html @@ -177,13 +177,13 @@ 22 C89 - What is the result of: strtod("100ergs", &ptr);? + What is the result of: strtod("100ergs", &ptr);? N/A 23 NAD - what is the result of strtod("0.0e99999", &ptr);? + what is the result of strtod("0.0e99999", &ptr);? N/A @@ -750,7 +750,7 @@ 116 NAD - Implicit unary & applied to register arrays + Implicit unary & applied to register arrays Yes @@ -1379,7 +1379,7 @@ 241 C99 - Make the base standard and Annex F consistent for pow(0, <0) + Make the base standard and Annex F consistent for pow(0, <0) N/A @@ -1632,7 +1632,7 @@ 282 C99 - Flexible array members & struct padding + Flexible array members & struct padding Yes diff --git a/clang/www/c_status.html b/clang/www/c_status.html --- a/clang/www/c_status.html +++ b/clang/www/c_status.html @@ -927,7 +927,7 @@ Yes - char16_t & char32_t string literals shall be UTF-16 & UTF-32 + char16_t & char32_t string literals shall be UTF-16 & UTF-32 N2728 Yes diff --git a/clang/www/compatibility.html b/clang/www/compatibility.html --- a/clang/www/compatibility.html +++ b/clang/www/compatibility.html @@ -212,10 +212,10 @@
     int fetch_object_state(struct MyObject *c) {
    -  if (!c->active) goto error;
    +  if (!c->active) goto error;
     
       __block int result;
    -  run_specially_somehow(^{ result = c->state; });
    +  run_specially_somehow(^{ result = c->state; });
       return result;
     
      error:
    @@ -234,7 +234,7 @@
     t.c:3:5: error: goto into protected scope
         goto error;
         ^
    -t.c:5:15: note: jump bypasses setup of __block variable
    +t.c:5:15: note: jump bypasses setup of __block variable
       __block int result;
                   ^
     
    @@ -245,7 +245,7 @@
       {
         __block int result;
    -    run_specially_somehow(^{ result = c->state; });
    +    run_specially_somehow(^{ result = c->state; });
         return result;
       }
     
    @@ -377,7 +377,7 @@ t.mm:11:2: error: no matching function for call to 'f' f((struct objc_object *)p); ^ -t.mm:5:6: note: candidate function not viable: no known conversion from 'struct objc_object *' to 'id' for 1st argument +t.mm:5:6: note: candidate function not viable: no known conversion from 'struct objc_object *' to 'id' for 1st argument void f(id x); ^ @@ -582,14 +582,14 @@ DoThis(x); ^ this-> -my_file.cpp:2:8: note: must qualify identifier to find this declaration in dependent base class +my_file.cpp:2:8: note: must qualify identifier to find this declaration in dependent base class void DoThis(T x) {} ^ my_file.cpp:9:5: error: use of undeclared identifier 'DoThat' DoThat(x); ^ this-> -my_file.cpp:3:15: note: must qualify identifier to find this declaration in dependent base class +my_file.cpp:3:15: note: must qualify identifier to find this declaration in dependent base class static void DoThat(T x) {} @@ -671,7 +671,7 @@ ... template <class T> void process() { Processor<T> processor; - processor.innit(); // <-- should be 'init()' + processor.innit(); // <-- should be 'init()' ... } @@ -818,7 +818,7 @@ downcast.mm:6:3: error: no matching function for call to 'f' f(p); ^ -downcast.mm:4:6: note: candidate function not viable: cannot convert from +downcast.mm:4:6: note: candidate function not viable: cannot convert from superclass 'Base *' to subclass 'Derived *' for 1st argument void f(Derived *p); ^ diff --git a/clang/www/cxx_status.html b/clang/www/cxx_status.html --- a/clang/www/cxx_status.html +++ b/clang/www/cxx_status.html @@ -109,11 +109,11 @@ Rvalue references N2118 Clang 2.9 + P1825R0 (DR) Clang 13 -     Rvalue references for *this N2439 @@ -1434,7 +1434,7 @@ __reference_converts_from_temporary builtins should be provided, following the normal cross-vendor convention to implement traits requiring compiler support directly. - + @@ -1482,7 +1482,7 @@ longer have to be constexpr compatible but rather support a less restricted requirements for constexpr functions. Which include allowing non-literal types as return values and parameters, allow calling of non-constexpr functions and constructors. - + @@ -1594,27 +1594,27 @@ SD-6 N/A - Clang 3.4 (N3745)
    + Clang 3.4 (N3745) - Clang 3.6 (N4200) + Clang 3.6 (N4200) - Clang 4 (P0096R3) + Clang 4 (P0096R3) - Clang 5 (P0096R4) + Clang 5 (P0096R4) - Clang 7 (P0096R5) + Clang 7 (P0096R5) @@ -1624,7 +1624,7 @@ - Clang 10 (P1902R1) + Clang 10 (P1902R1) -

    The compiler-rt project consists of: +

    The compiler-rt project consists of:

    -

    All of the code in the compiler-rt project is dual licensed diff --git a/libclc/www/index.html b/libclc/www/index.html --- a/libclc/www/index.html +++ b/libclc/www/index.html @@ -10,7 +10,7 @@ OpenCL C programming language, as specified by the OpenCL 1.1 Specification. The following sections of the specification -impose library requirements: +impose library requirements:

    -

    libclc is intended to be used with the Clang diff --git a/llvm/test/tools/llvm-original-di-preservation/Inputs/expected-compressed.html b/llvm/test/tools/llvm-original-di-preservation/Inputs/expected-compressed.html --- a/llvm/test/tools/llvm-original-di-preservation/Inputs/expected-compressed.html +++ b/llvm/test/tools/llvm-original-di-preservation/Inputs/expected-compressed.html @@ -20,7 +20,6 @@ Function Name Basic Block Name Action - test.ll @@ -107,4 +106,4 @@ - \ No newline at end of file + diff --git a/llvm/test/tools/llvm-original-di-preservation/Inputs/expected-sample.html b/llvm/test/tools/llvm-original-di-preservation/Inputs/expected-sample.html --- a/llvm/test/tools/llvm-original-di-preservation/Inputs/expected-sample.html +++ b/llvm/test/tools/llvm-original-di-preservation/Inputs/expected-sample.html @@ -20,7 +20,6 @@ Function Name Basic Block Name Action - test.ll @@ -123,4 +122,4 @@ - \ No newline at end of file + diff --git a/llvm/test/tools/llvm-original-di-preservation/Inputs/expected-skipped.html b/llvm/test/tools/llvm-original-di-preservation/Inputs/expected-skipped.html --- a/llvm/test/tools/llvm-original-di-preservation/Inputs/expected-skipped.html +++ b/llvm/test/tools/llvm-original-di-preservation/Inputs/expected-skipped.html @@ -20,7 +20,6 @@ Function Name Basic Block Name Action - wrstabs.c @@ -81,7 +80,6 @@ Variable Function Action - debug.c @@ -179,4 +177,4 @@ - \ No newline at end of file + diff --git a/llvm/test/tools/opt-viewer/Outputs/basic/basic_or.h.html b/llvm/test/tools/opt-viewer/Outputs/basic/basic_or.h.html --- a/llvm/test/tools/opt-viewer/Outputs/basic/basic_or.h.html +++ b/llvm/test/tools/opt-viewer/Outputs/basic/basic_or.h.html @@ -27,11 +27,11 @@ - + + + + @@ -68,7 +68,7 @@ - + @@ -104,7 +104,7 @@ - + @@ -229,5 +229,6 @@
    Line -Hotness -Optimization -Source -Inline Context +LineHotnessOptimizationSourceInline Context
    5
      for (i = 0; i < 1600; i++) {
      for (i = 0; i < 1600; i++) {
    9
      for (i = 0; i < 16; i++) {
      for (i = 0; i < 16; i++) {
    + diff --git a/llvm/test/tools/opt-viewer/Outputs/basic/basic_or.c.html b/llvm/test/tools/opt-viewer/Outputs/basic/basic_or.c.html --- a/llvm/test/tools/opt-viewer/Outputs/basic/basic_or.c.html +++ b/llvm/test/tools/opt-viewer/Outputs/basic/basic_or.c.html @@ -27,11 +27,11 @@ - + + + + @@ -111,7 +111,7 @@ - + @@ -161,7 +161,7 @@ - + @@ -286,5 +286,6 @@
    Line -Hotness -Optimization -Source -Inline Context +LineHotnessOptimizationSourceInline Context
    10
      for (i = 0; i < 1600; i++) {
      for (i = 0; i < 1600; i++) {
    14
      for (i = 0; i < 16; i++) {
      for (i = 0; i < 16; i++) {
    + diff --git a/llvm/test/tools/opt-viewer/Outputs/basic/index.html b/llvm/test/tools/opt-viewer/Outputs/basic/index.html --- a/llvm/test/tools/opt-viewer/Outputs/basic/index.html +++ b/llvm/test/tools/opt-viewer/Outputs/basic/index.html @@ -155,5 +155,6 @@ + diff --git a/llvm/test/tools/opt-viewer/Outputs/filter/basic_or.h.html b/llvm/test/tools/opt-viewer/Outputs/filter/basic_or.h.html --- a/llvm/test/tools/opt-viewer/Outputs/filter/basic_or.h.html +++ b/llvm/test/tools/opt-viewer/Outputs/filter/basic_or.h.html @@ -27,11 +27,11 @@ - + + + + @@ -68,7 +68,7 @@ - + @@ -96,7 +96,7 @@ - + @@ -213,5 +213,6 @@
    Line -Hotness -Optimization -Source -Inline Context +LineHotnessOptimizationSourceInline Context
    5
      for (i = 0; i < 1600; i++) {
      for (i = 0; i < 1600; i++) {
    9
      for (i = 0; i < 16; i++) {
      for (i = 0; i < 16; i++) {
    + diff --git a/llvm/test/tools/opt-viewer/Outputs/filter/basic_or.c.html b/llvm/test/tools/opt-viewer/Outputs/filter/basic_or.c.html --- a/llvm/test/tools/opt-viewer/Outputs/filter/basic_or.c.html +++ b/llvm/test/tools/opt-viewer/Outputs/filter/basic_or.c.html @@ -27,11 +27,11 @@ - + + + + @@ -111,7 +111,7 @@ - + @@ -139,7 +139,7 @@ - + @@ -256,5 +256,6 @@
    Line -Hotness -Optimization -Source -Inline Context +LineHotnessOptimizationSourceInline Context
    10
      for (i = 0; i < 1600; i++) {
      for (i = 0; i < 1600; i++) {
    14
      for (i = 0; i < 16; i++) {
      for (i = 0; i < 16; i++) {
    + diff --git a/llvm/test/tools/opt-viewer/Outputs/filter/index.html b/llvm/test/tools/opt-viewer/Outputs/filter/index.html --- a/llvm/test/tools/opt-viewer/Outputs/filter/index.html +++ b/llvm/test/tools/opt-viewer/Outputs/filter/index.html @@ -120,5 +120,6 @@ + diff --git a/llvm/test/tools/opt-viewer/Outputs/suppress/index.html b/llvm/test/tools/opt-viewer/Outputs/suppress/index.html --- a/llvm/test/tools/opt-viewer/Outputs/suppress/index.html +++ b/llvm/test/tools/opt-viewer/Outputs/suppress/index.html @@ -22,5 +22,6 @@ + diff --git a/llvm/test/tools/opt-viewer/Outputs/suppress/s.swift.html b/llvm/test/tools/opt-viewer/Outputs/suppress/s.swift.html --- a/llvm/test/tools/opt-viewer/Outputs/suppress/s.swift.html +++ b/llvm/test/tools/opt-viewer/Outputs/suppress/s.swift.html @@ -27,11 +27,11 @@ - + + + + @@ -75,7 +75,7 @@ - + @@ -130,5 +130,6 @@
    Line -Hotness -Optimization -Source -Inline Context +LineHotnessOptimizationSourceInline Context
    6
      for i in 0..<4 {
      for i in 0..<4 {
    + diff --git a/llvm/test/tools/opt-viewer/Outputs/unicode-function-name/index.html b/llvm/test/tools/opt-viewer/Outputs/unicode-function-name/index.html --- a/llvm/test/tools/opt-viewer/Outputs/unicode-function-name/index.html +++ b/llvm/test/tools/opt-viewer/Outputs/unicode-function-name/index.html @@ -22,5 +22,6 @@ + diff --git a/llvm/test/tools/opt-viewer/Outputs/unicode-function-name/s.swift.html b/llvm/test/tools/opt-viewer/Outputs/unicode-function-name/s.swift.html --- a/llvm/test/tools/opt-viewer/Outputs/unicode-function-name/s.swift.html +++ b/llvm/test/tools/opt-viewer/Outputs/unicode-function-name/s.swift.html @@ -27,11 +27,11 @@ - + + + + @@ -54,7 +54,7 @@ - + @@ -89,7 +89,7 @@ - + @@ -137,5 +137,6 @@
    Line -Hotness -Optimization -Source -Inline Context +LineHotnessOptimizationSourceInline Context
    3
    func • (a: Int, b: Int) -> Int {
    func • (a: Int, b: Int) -> Int {
    8
    func g(a: Int) -> Int{
    func g(a: Int) -> Int{
    + diff --git a/polly/www/changelog.html b/polly/www/changelog.html --- a/polly/www/changelog.html +++ b/polly/www/changelog.html @@ -53,7 +53,7 @@ No changelog available. Please look at the commit history. - + diff --git a/polly/www/get_started.html b/polly/www/get_started.html --- a/polly/www/get_started.html +++ b/polly/www/get_started.html @@ -32,7 +32,7 @@

    Build Polly

    -mkdir build && cd build
    +mkdir build && cd build
     cmake '-DLLVM_ENABLE_PROJECTS=clang;polly' ../llvm
     cmake --build .
     
    diff --git a/polly/www/index.html b/polly/www/index.html --- a/polly/www/index.html +++ b/polly/www/index.html @@ -57,6 +57,7 @@

    The performance evaluation of GEMM


    + 2017

    January

    @@ -95,23 +96,23 @@
  • Schedule trees: A tree-based mathematical program description that enables us to perform loop transformations on an abstract level, while issues like the generation of the correct loop structure and loop - bounds will be taken care of by our AST generator. + bounds will be taken care of by our AST generator.
  • Polyhedral unrolling: We discuss techniques that allow the unrolling of non-trivial loops in the context of parameteric loop bounds, complex tile shapes and conditionally executed statements. Such unrolling support enables the generation of predicated code e.g. in the context of - GPGPU computing. + GPGPU computing.
  • Isolation for full/partial tile separation: We discuss native support for handling full/partial tile separation and -- in general -- native support for isolation of boundary cases to enable smooth code - generation for core computations. + generation for core computations.
  • AST generation with modulo constraints: We discuss how modulo - mappings are lowered to efficient C/LLVM code. + mappings are lowered to efficient C/LLVM code.
  • User-defined constraint sets for run-time checks We discuss how arbitrary sets of constraints can be used to automatically create run-time checks that ensure a set of constraints actually hold. This feature is very useful to verify at run-time various assumptions that have been taken - program optimization. + program optimization.
  • @@ -262,7 +263,6 @@ a BSD licensed replacement is a tractable engineering project we would be very interested in. For more information about isl see the isl manual. -

    July

    @@ -277,8 +277,6 @@ following week of joint work at IISC Bangalore and in cooperation with AMD India. - -

    February

    Polly is an official LLVM project, reachable at ISL and CLooG are integrated.

    - -

    January

    The RegionInfo pass is finished.

    @@ -441,8 +437,7 @@

    End of the year

    Work on the infrastructure started.

    - - + diff --git a/polly/www/publications.html b/polly/www/publications.html --- a/polly/www/publications.html +++ b/polly/www/publications.html @@ -183,7 +183,7 @@ Muthu Manikandan Baskaran, J. Ramanujam and P. Sadayappan
    CC 2010 -
  • Putting Automatic Polyhedral Compilation for GPGPU to Work +
  • Putting Automatic Polyhedral Compilation for GPGPU to Work Soufiane Baghdadi, Armin Größlinger, and Albert Cohen.
    In Proc. of Compilers for Parallel Computers (CPC), 2010.
  • diff --git a/polly/www/todo.html b/polly/www/todo.html --- a/polly/www/todo.html +++ b/polly/www/todo.html @@ -24,7 +24,7 @@
  • Phase 1 - Get Something Working (Finished October 2010)
  • -

    Individual Phases

    +

    Individual Phases

    Phase 4

    @@ -43,6 +43,7 @@ + + + + + + + -
        - Add isl C++ bindings generator to isl Open @@ -60,6 +61,7 @@
        - Optimize isl_int for small integers Done @@ -71,6 +73,7 @@
        - Reconsider pass-ordering (move Polly later) Open @@ -182,7 +185,7 @@ integer wrapping Done Johannes -
     
    Optimize Julia @@ -194,6 +197,7 @@ Owner
    Integrate Polly into Julia Open @@ -211,6 +215,7 @@
        - Actually eliminate statements Done @@ -226,6 +231,7 @@ Owner
    Multi-level tiling Open @@ -243,6 +249,7 @@ Done
    Loop interchange after vectorization to maximize stride-one accesses Open @@ -431,7 +438,7 @@ Tobias, Andreas
    +
    @@ -553,36 +560,37 @@ Owner + Region detection - Done + Done Ether Access Functions - Done + Done John, Ether Alias sets - Done + Done Ether Scalar evolution to affine expression - Done + Done Ether SCoP extraction - Done + Done Tobias, Ether SCoPs to polyhedral model - Done + Done Tobias, Ether   @@ -594,7 +602,7 @@ Define polyhedral description - Done + Done Tobias @@ -607,7 +615,7 @@ Create LLVM-IR using CLooG - Done + Done Tobias @@ -621,12 +629,12 @@ Setup git repositories - Done + Done Tobias Add CLooG/isl to build system - Done + Done Tobias