https://gcc.gnu.org/g:20faea418d580d4db99aa5293c976ab16867aca5

commit r15-5238-g20faea418d580d4db99aa5293c976ab16867aca5
Author: Jan Hubicka <hubi...@ucw.cz>
Date:   Thu Nov 14 14:19:04 2024 +0100

    Add testcases for std::vector optimization
    
    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.

Diff:
---
 gcc/testsuite/g++.dg/tree-ssa/pr110819.C | 14 ++++++++++++++
 gcc/testsuite/g++.dg/tree-ssa/pr116868.C | 12 ++++++++++++
 gcc/testsuite/g++.dg/tree-ssa/pr58483.C  | 15 +++++++++++++++
 gcc/testsuite/g++.dg/tree-ssa/pr96945.C  |  4 ++--
 4 files changed, 43 insertions(+), 2 deletions(-)

diff --git a/gcc/testsuite/g++.dg/tree-ssa/pr110819.C 
b/gcc/testsuite/g++.dg/tree-ssa/pr110819.C
new file mode 100644
index 000000000000..04a074f1cb22
--- /dev/null
+++ b/gcc/testsuite/g++.dg/tree-ssa/pr110819.C
@@ -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
index 000000000000..d89c7a3b09cc
--- /dev/null
+++ b/gcc/testsuite/g++.dg/tree-ssa/pr116868.C
@@ -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
index 000000000000..c99664b57577
--- /dev/null
+++ b/gcc/testsuite/g++.dg/tree-ssa/pr58483.C
@@ -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" } }
diff --git a/gcc/testsuite/g++.dg/tree-ssa/pr96945.C 
b/gcc/testsuite/g++.dg/tree-ssa/pr96945.C
index 4cb234c2f711..63d55672e0c2 100644
--- a/gcc/testsuite/g++.dg/tree-ssa/pr96945.C
+++ b/gcc/testsuite/g++.dg/tree-ssa/pr96945.C
@@ -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;

Reply via email to