diff options
author | Peter Szecsi <szepet95@gmail.com> | 2017-07-20 07:35:11 +0000 |
---|---|---|
committer | Peter Szecsi <szepet95@gmail.com> | 2017-07-20 07:35:11 +0000 |
commit | 58a8b6b4af16bb59ef94038c6aff48745c4266d4 (patch) | |
tree | 43bc7c62714536fc48b294831665429a7bb98285 /clang/test | |
parent | 33225ef314503cfc0aa744a3199c86e9887e9eec (diff) | |
download | bcm5719-llvm-58a8b6b4af16bb59ef94038c6aff48745c4266d4.tar.gz bcm5719-llvm-58a8b6b4af16bb59ef94038c6aff48745c4266d4.zip |
Revert "[StaticAnalyzer] Completely unrolling specific loops with known bound option"
Revert r308561 and r308558.
Clang-ppc64be-linux seems to crash while running the test cases.
llvm-svn: 308592
Diffstat (limited to 'clang/test')
-rw-r--r-- | clang/test/Analysis/analyzer-config.c | 3 | ||||
-rw-r--r-- | clang/test/Analysis/analyzer-config.cpp | 3 | ||||
-rw-r--r-- | clang/test/Analysis/loop-unrolling.cpp | 181 |
3 files changed, 2 insertions, 185 deletions
diff --git a/clang/test/Analysis/analyzer-config.c b/clang/test/Analysis/analyzer-config.c index 7bed7cb5e3b..0d8d34fbf6b 100644 --- a/clang/test/Analysis/analyzer-config.c +++ b/clang/test/Analysis/analyzer-config.c @@ -27,7 +27,6 @@ void foo() { // CHECK-NEXT: min-cfg-size-treat-functions-as-large = 14 // CHECK-NEXT: mode = deep // CHECK-NEXT: region-store-small-struct-limit = 2 -// CHECK-NEXT: unroll-loops = false // CHECK-NEXT: widen-loops = false // CHECK-NEXT: [stats] -// CHECK-NEXT: num-entries = 18 +// CHECK-NEXT: num-entries = 17 diff --git a/clang/test/Analysis/analyzer-config.cpp b/clang/test/Analysis/analyzer-config.cpp index 155ee02e839..4166a730cf5 100644 --- a/clang/test/Analysis/analyzer-config.cpp +++ b/clang/test/Analysis/analyzer-config.cpp @@ -38,7 +38,6 @@ public: // CHECK-NEXT: min-cfg-size-treat-functions-as-large = 14 // CHECK-NEXT: mode = deep // CHECK-NEXT: region-store-small-struct-limit = 2 -// CHECK-NEXT: unroll-loops = false // CHECK-NEXT: widen-loops = false // CHECK-NEXT: [stats] -// CHECK-NEXT: num-entries = 23 +// CHECK-NEXT: num-entries = 22 diff --git a/clang/test/Analysis/loop-unrolling.cpp b/clang/test/Analysis/loop-unrolling.cpp deleted file mode 100644 index be5a5235025..00000000000 --- a/clang/test/Analysis/loop-unrolling.cpp +++ /dev/null @@ -1,181 +0,0 @@ -// REQUIRES: asserts -// RUN: %clang_analyze_cc1 -analyzer-checker=core,debug.ExprInspection -analyzer-config unroll-loops=true -analyzer-stats -verify -std=c++11 %s 2>&1 | FileCheck %s - -void clang_analyzer_numTimesReached(); - -int getNum(); -void foo(int &); -// Testing for loops. -int simple_unroll1() { - int a[9]; - int k = 42; - for (int i = 0; i < 9; i++) { - clang_analyzer_numTimesReached(); // expected-warning {{9}} - a[i] = 42; - } - int b = 22 / (k - 42); // expected-warning {{Division by zero}} - return 0; -} - -int simple_unroll2() { - int a[9]; - int k = 42; - int i; - for (i = 0; i < 9; i++) { - clang_analyzer_numTimesReached(); // expected-warning {{9}} - a[i] = 42; - } - int b = 22 / (k - 42); // expected-warning {{Division by zero}} - return 0; -} - -int simple_no_unroll1() { - int a[9]; - int k = 42; - for (int i = 0; i < 9; i++) { - clang_analyzer_numTimesReached(); // expected-warning {{4}} - a[i] = 42; - foo(i); - } - int b = 22 / (k - 42); // expected-warning {{Division by zero}} - return 0; -} - -int simple_no_unroll2() { - int a[9]; - int k = 42; - int i; - for (i = 0; i < 9; i++) { - clang_analyzer_numTimesReached(); // expected-warning {{4}} - a[i] = 42; - i += getNum(); - } - int b = 22 / (k - 42); // expected-warning {{Division by zero}} - return 0; -} - -int simple_no_unroll3() { - int a[9]; - int k = 42; - int i; - for (i = 0; i < 9; i++) { - clang_analyzer_numTimesReached(); // expected-warning {{4}} - a[i] = 42; - (void)&i; - } - int b = 22 / (k - 42); // no-warning - return 0; -} - -int simple_no_unroll4() { - int a[9]; - int k = 42; - int i; - for (i = 0; i < 9; i++) { - clang_analyzer_numTimesReached(); // expected-warning {{4}} - a[i] = 42; - int &j = i; - } - int b = 22 / (k - 42); // no-warning - return 0; -} - -int simple_no_unroll5() { - int a[9]; - int k = 42; - int i; - for (i = 0; i < 9; i++) { - clang_analyzer_numTimesReached(); // expected-warning {{4}} - a[i] = 42; - int &j{i}; - } - int b = 22 / (k - 42); // no-warning - return 0; -} - -int nested_outer_unrolled() { - int a[9]; - int k = 42; - int j = 0; - for (int i = 0; i < 9; i++) { - clang_analyzer_numTimesReached(); // expected-warning {{16}} - for (j = 0; j < getNum(); ++j) { - clang_analyzer_numTimesReached(); // expected-warning {{15}} - a[j] = 22; - } - a[i] = 42; - } - int b = 22 / (k - 42); // no-warning - return 0; -} - -int nested_inner_unrolled() { - int a[9]; - int k = 42; - int j = 0; - for (int i = 0; i < getNum(); i++) { - clang_analyzer_numTimesReached(); // expected-warning {{4}} - for (j = 0; j < 8; ++j) { - clang_analyzer_numTimesReached(); // expected-warning {{32}} - a[j] = 22; - } - a[i] = 42; - } - int b = 22 / (k - 42); // expected-warning {{Division by zero}} - return 0; -} - -int nested_both_unrolled() { - int a[9]; - int k = 42; - int j = 0; - for (int i = 0; i < 7; i++) { - clang_analyzer_numTimesReached(); // expected-warning {{7}} - for (j = 0; j < 6; ++j) { - clang_analyzer_numTimesReached(); // expected-warning {{42}} - a[j] = 22; - } - a[i] = 42; - } - int b = 22 / (k - 42); // expected-warning {{Division by zero}} - return 0; -} - -int simple_known_bound_loop() { - for (int i = 2; i < 12; i++) { - // This function is inlined in nested_inlined_unroll1() - clang_analyzer_numTimesReached(); // expected-warning {{90}} - } - return 0; -} - -int simple_unknown_bound_loop() { - for (int i = 2; i < getNum(); i++) { - clang_analyzer_numTimesReached(); // expected-warning {{10}} - } - return 0; -} - -int nested_inlined_unroll1() { - int k; - for (int i = 0; i < 9; i++) { - clang_analyzer_numTimesReached(); // expected-warning {{9}} - k = simple_known_bound_loop(); // no reevaluation without inlining - } - int a = 22 / k; // expected-warning {{Division by zero}} - return 0; -} - -int nested_inlined_no_unroll1() { - int k; - for (int i = 0; i < 9; i++) { - clang_analyzer_numTimesReached(); // expected-warning {{26}} - k = simple_unknown_bound_loop(); // reevaluation without inlining - } - int a = 22 / k; // no-warning - return 0; -} - -// CHECK: ... Statistics Collected ... -// CHECK: 5 ExprEngine - The # of times we re-evaluated a call without inlining -// CHECK: 9 LoopUnrolling - The # of times a loop has got completely unrolled |