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.belina...@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.dg/parallel-early-constant.c | 22 ++++++++++++++++++ gcc/testsuite/gcc.dg/parallel-static-1.c | 21 +++++++++++++++++ gcc/testsuite/gcc.dg/parallel-static-2.c | 21 +++++++++++++++++ .../gcc.dg/parallel-static-clash-1.c | 23 +++++++++++++++++++ .../gcc.dg/parallel-static-clash-aux.c | 14 +++++++++++ 5 files changed, 101 insertions(+) create mode 100644 gcc/testsuite/gcc.dg/parallel-early-constant.c create mode 100644 gcc/testsuite/gcc.dg/parallel-static-1.c create mode 100644 gcc/testsuite/gcc.dg/parallel-static-2.c create mode 100644 gcc/testsuite/gcc.dg/parallel-static-clash-1.c create mode 100644 gcc/testsuite/gcc.dg/parallel-static-clash-aux.c diff --git a/gcc/testsuite/gcc.dg/parallel-early-constant.c b/gcc/testsuite/gcc.dg/parallel-early-constant.c new file mode 100644 index 00000000000..fc8c5a986ec --- /dev/null +++ b/gcc/testsuite/gcc.dg/parallel-early-constant.c @@ -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 index 00000000000..cf1cc7df93d --- /dev/null +++ b/gcc/testsuite/gcc.dg/parallel-static-1.c @@ -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 index 00000000000..44f5b0d5a02 --- /dev/null +++ b/gcc/testsuite/gcc.dg/parallel-static-2.c @@ -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 index 00000000000..37a01e28b1b --- /dev/null +++ b/gcc/testsuite/gcc.dg/parallel-static-clash-1.c @@ -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 index 00000000000..aac473933a9 --- /dev/null +++ b/gcc/testsuite/gcc.dg/parallel-static-clash-aux.c @@ -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 (); +} -- 2.28.0