summaryrefslogtreecommitdiffstats
path: root/clang/test
diff options
context:
space:
mode:
authorPeter Szecsi <szepet95@gmail.com>2017-07-20 07:35:11 +0000
committerPeter Szecsi <szepet95@gmail.com>2017-07-20 07:35:11 +0000
commit58a8b6b4af16bb59ef94038c6aff48745c4266d4 (patch)
tree43bc7c62714536fc48b294831665429a7bb98285 /clang/test
parent33225ef314503cfc0aa744a3199c86e9887e9eec (diff)
downloadbcm5719-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.c3
-rw-r--r--clang/test/Analysis/analyzer-config.cpp3
-rw-r--r--clang/test/Analysis/loop-unrolling.cpp181
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
OpenPOWER on IntegriCloud