]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
New tests for parallel compilation feature
authorGiuliano Belinassi <giuliano.belinassi@usp.br>
Tue, 18 Aug 2020 19:52:39 +0000 (16:52 -0300)
committerGiuliano Belinassi <giuliano.belinassi@usp.br>
Thu, 20 Aug 2020 19:51:07 +0000 (16:51 -0300)
Adds new tests for testing the parallel compilation engine.
They mainly test issues with regard to symbol promotion clash and
incorrect early assembler output.

2020-08-20  Giuliano Belinassi  <giuliano.belinassi@usp.br>

* gcc.dg/parallel-early-constant.c: New test.
* gcc.dg/parallel-static-1.c: New test.
* gcc.dg/parallel-static-2.c: New test.
* gcc.dg/parallel-static-clash-1.c: New test.
* gcc.dg/parallel-static-clash-aux.c: New test.

gcc/testsuite/gcc.dg/parallel-early-constant.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/parallel-static-1.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/parallel-static-2.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/parallel-static-clash-1.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/parallel-static-clash-aux.c [new file with mode: 0644]

diff --git a/gcc/testsuite/gcc.dg/parallel-early-constant.c b/gcc/testsuite/gcc.dg/parallel-early-constant.c
new file mode 100644 (file)
index 0000000..fc8c5a9
--- /dev/null
@@ -0,0 +1,22 @@
+/* { dg-do compile } */
+/* { dg-options "-fparallel-jobs=2 --param=balance-partitions=0" } */
+
+#define A "This is a long test that tests the structure initialization"
+#define B A,A
+#define C B,B,B,B
+#define D C,C,C,C
+
+const char *foo1 ()
+{
+  return A;
+}
+
+int foo2 ()
+{
+  return 42;
+}
+
+int main()
+{
+  char *subs[]={ D, D, D, D, D, D, D, D, D, D, D, D, D, D, D};
+}
diff --git a/gcc/testsuite/gcc.dg/parallel-static-1.c b/gcc/testsuite/gcc.dg/parallel-static-1.c
new file mode 100644 (file)
index 0000000..cf1cc7d
--- /dev/null
@@ -0,0 +1,21 @@
+/* { dg-do compile } */
+/* { dg-options "-fparallel-jobs=2 --param=balance-partitions=0" } */
+
+static int global_var;
+
+int foo1(void)
+{
+  global_var = 1;
+}
+
+int foo2(void)
+{
+  global_var = 2;
+}
+
+int main ()
+{
+  foo1 ();
+  foo2 ();
+  return 0;
+}
diff --git a/gcc/testsuite/gcc.dg/parallel-static-2.c b/gcc/testsuite/gcc.dg/parallel-static-2.c
new file mode 100644 (file)
index 0000000..44f5b0d
--- /dev/null
@@ -0,0 +1,21 @@
+/* { dg-do compile } */
+/* { dg-options "-fparallel-jobs=2 --param=balance-partitions=0" } */
+
+int foo1(void)
+{
+  static int var;
+  var = 1;
+}
+
+int foo2(void)
+{
+  static int var;
+  var = 2;
+}
+
+int main ()
+{
+  foo1 ();
+  foo2 ();
+  return 0;
+}
diff --git a/gcc/testsuite/gcc.dg/parallel-static-clash-1.c b/gcc/testsuite/gcc.dg/parallel-static-clash-1.c
new file mode 100644 (file)
index 0000000..37a01e2
--- /dev/null
@@ -0,0 +1,23 @@
+/* { dg-do run } */
+/* { dg-options "-fparallel-jobs=2 --param=balance-partitions=0 --param=promote-statics=1" } */
+/* { dg-additional-sources "parallel-static-clash-aux.c" } */
+
+int file2_c ();
+
+static int __attribute__ ((noinline))
+private ()
+{
+  return 42;
+}
+
+int
+file1_c ()
+{
+  return private ();
+}
+
+int
+main ()
+{
+  return file1_c () + file2_c ();
+}
diff --git a/gcc/testsuite/gcc.dg/parallel-static-clash-aux.c b/gcc/testsuite/gcc.dg/parallel-static-clash-aux.c
new file mode 100644 (file)
index 0000000..aac4739
--- /dev/null
@@ -0,0 +1,14 @@
+/* { dg-do compile } */
+/* { dg-options "-fparallel-jobs=2 --param=balance-partitions=0" } */
+
+static int __attribute__ ((noinline))
+private ()
+{
+  return -42;
+}
+
+int
+file2_c ()
+{
+  return private ();
+}