]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Add testcases for std::vector optimization
authorJan Hubicka <hubicka@ucw.cz>
Thu, 14 Nov 2024 13:19:04 +0000 (14:19 +0100)
committerJan Hubicka <hubicka@ucw.cz>
Thu, 14 Nov 2024 13:19:04 +0000 (14:19 +0100)
gcc/testsuite/ChangeLog:

PR tree-optimization/110819
PR tree-optimization/116868
PR tree-optimization/58483

* g++.dg/tree-ssa/pr96945.C: cleanup
* g++.dg/tree-ssa/pr110819.C: New test.
* g++.dg/tree-ssa/pr116868.C: New test.
* g++.dg/tree-ssa/pr58483.C: New test.

gcc/testsuite/g++.dg/tree-ssa/pr110819.C [new file with mode: 0644]
gcc/testsuite/g++.dg/tree-ssa/pr116868.C [new file with mode: 0644]
gcc/testsuite/g++.dg/tree-ssa/pr58483.C [new file with mode: 0644]
gcc/testsuite/g++.dg/tree-ssa/pr96945.C

diff --git a/gcc/testsuite/g++.dg/tree-ssa/pr110819.C b/gcc/testsuite/g++.dg/tree-ssa/pr110819.C
new file mode 100644 (file)
index 0000000..04a074f
--- /dev/null
@@ -0,0 +1,14 @@
+// { dg-do compile { target c++14 } }
+// { dg-options "-O1 -fdump-tree-optimized" }
+#include<vector>
+
+void f(int);
+
+void use_idx_const_size_reserve() {
+    std::vector<int> v;
+    v.reserve(100000);
+    auto s = v.size();
+    for (std::vector<int>::size_type i = 0; i < s; i++)
+        f(v[i]);
+}
+// { dg-final { scan-tree-dump-not "delete" "optimized" } }
diff --git a/gcc/testsuite/g++.dg/tree-ssa/pr116868.C b/gcc/testsuite/g++.dg/tree-ssa/pr116868.C
new file mode 100644 (file)
index 0000000..d89c7a3
--- /dev/null
@@ -0,0 +1,12 @@
+// { dg-do compile { target c++14 } }
+// { dg-options "-O2 -fdump-tree-optimized" }
+#include <vector>
+int sumVector() {
+    const std::vector<int> vec = {1};
+    int sum = 0;
+    for (int i = 0; i < vec.size(); i++) {
+        sum += vec[i];
+    }
+    return sum;
+}
+// { dg-final { scan-tree-dump-not "delete" "optimized" } }
diff --git a/gcc/testsuite/g++.dg/tree-ssa/pr58483.C b/gcc/testsuite/g++.dg/tree-ssa/pr58483.C
new file mode 100644 (file)
index 0000000..c99664b
--- /dev/null
@@ -0,0 +1,15 @@
+// { dg-do compile { target c++14 } }
+// { dg-do compile }
+// { dg-options "-O1 -fdump-tree-optimized" }
+#include<vector>
+
+void f(int);
+
+void use_idx_const_size_reserve() {
+    std::vector<int> v;
+    v.reserve(100000);
+    auto s = v.size();
+    for (std::vector<int>::size_type i = 0; i < s; i++)
+        f(v[i]);
+}
+// { dg-final { scan-tree-dump-not "delete" "optimized" } }
index 4cb234c2f7118ef6d782004df015cd0fbb78a3bb..63d55672e0c28ee91b94eb7777f65f4f0d4e766c 100644 (file)
@@ -1,5 +1,5 @@
-/* { dg-do compile } */
-// { dg-options "-O1 -fdump-tree-optimized -std=c++14" }
+// { dg-do compile { target c++14 } }
+// { dg-options "-O1 -fdump-tree-optimized" }
 #include <vector>
 struct c {
     c() = default;