driver: drop flag_var_tracking_assignments flag
Checks
Commit Message
The revision r13-259-g76db543db88727 moved a condition from one
file to another, but now we do not drop x_flag_var_tracking_assignments
as it was done before the mentioned revision.
Patch can bootstrap on x86_64-linux-gnu and survives regression tests.
Ready to be installed?
Thanks,
Martin
PR driver/108241
gcc/ChangeLog:
* opts.cc (finish_options): Drop also
x_flag_var_tracking_assignments.
gcc/testsuite/ChangeLog:
* gcc.dg/pr108241.c: New test.
* gcc.dg/pr79570.c: Add also -g option.
---
gcc/opts.cc | 1 +
gcc/testsuite/gcc.dg/pr108241.c | 63 +++++++++++++++++++++++++++++++++
gcc/testsuite/gcc.dg/pr79570.c | 2 +-
3 files changed, 65 insertions(+), 1 deletion(-)
create mode 100644 gcc/testsuite/gcc.dg/pr108241.c
Comments
On Mon, Apr 3, 2023 at 10:46 AM Martin Liška <mliska@suse.cz> wrote:
>
> The revision r13-259-g76db543db88727 moved a condition from one
> file to another, but now we do not drop x_flag_var_tracking_assignments
> as it was done before the mentioned revision.
>
> Patch can bootstrap on x86_64-linux-gnu and survives regression tests.
>
> Ready to be installed?
OK.
> Thanks,
> Martin
>
> PR driver/108241
>
> gcc/ChangeLog:
>
> * opts.cc (finish_options): Drop also
> x_flag_var_tracking_assignments.
>
> gcc/testsuite/ChangeLog:
>
> * gcc.dg/pr108241.c: New test.
> * gcc.dg/pr79570.c: Add also -g option.
> ---
> gcc/opts.cc | 1 +
> gcc/testsuite/gcc.dg/pr108241.c | 63 +++++++++++++++++++++++++++++++++
> gcc/testsuite/gcc.dg/pr79570.c | 2 +-
> 3 files changed, 65 insertions(+), 1 deletion(-)
> create mode 100644 gcc/testsuite/gcc.dg/pr108241.c
>
> diff --git a/gcc/opts.cc b/gcc/opts.cc
> index f102c1328b9..fb2e5388ab1 100644
> --- a/gcc/opts.cc
> +++ b/gcc/opts.cc
> @@ -1384,6 +1384,7 @@ finish_options (struct gcc_options *opts, struct gcc_options *opts_set,
> }
> opts->x_flag_var_tracking = 0;
> opts->x_flag_var_tracking_uninit = 0;
> + opts->x_flag_var_tracking_assignments = 0;
> }
>
> /* One could use EnabledBy, but it would lead to a circular dependency. */
> diff --git a/gcc/testsuite/gcc.dg/pr108241.c b/gcc/testsuite/gcc.dg/pr108241.c
> new file mode 100644
> index 00000000000..06d210fae68
> --- /dev/null
> +++ b/gcc/testsuite/gcc.dg/pr108241.c
> @@ -0,0 +1,63 @@
> +/* PR driver/108241 */
> +/* { dg-options "-Os -frounding-math -fvar-tracking-assignments -fno-dce -fno-trapping-math -fno-tree-dce -fno-tree-dse" } */
> +
> +long int n1;
> +int n2, n3, n4;
> +char n5;
> +
> +void
> +foo (long int x1, long int x2, int x3, int x4, int x5, char x6, char x7)
> +{
> + char a01 = n2, a02 = x4, a03 = 0;
> + short int a04;
> + unsigned short int a05 = x5;
> + int a06, a07, a08 = a05, a09 = x3, a10 = 0;
> + long int a11, a12 = x4;
> +
> + if (x1)
> + {
> + a07 = x6 + (float)0x1000001;
> + a03 = a12 = a01 = a06 = ~0;
> +
> + if (x5)
> + a11 = n5;
> + }
> + else
> + {
> + a10 = x3 = n3;
> + if (n3)
> + a06 = a05 = x7;
> + }
> +
> + if (n3 < n5)
> + {
> + n4 = (x2 == x4) + !n1;
> + if (n4 % (n1 % x3))
> + {
> + a04 = n4;
> + a02 = n2;
> + }
> +
> + if (x3)
> + {
> + a05 = !n1 % n2;
> + a08 = n1;
> + a04 = x5 + a06;
> + }
> +
> + if (a12)
> + a09 = n3 + n4;
> +
> + a12 = a07;
> + n3 = a11 % x1;
> + n5 += x6;
> + n1 = a04;
> + }
> +
> + n4 = x2 % x5 % a11;
> + a06 = a10 + a08 % a02 == n4;
> + a09 = a09 == a01 * x7;
> + n4 = x4;
> + a12 += x4 / 0xc000000000000000 + !a03;
> + a03 = !a05;
> +}
> diff --git a/gcc/testsuite/gcc.dg/pr79570.c b/gcc/testsuite/gcc.dg/pr79570.c
> index 00841b9487a..a15be9f201d 100644
> --- a/gcc/testsuite/gcc.dg/pr79570.c
> +++ b/gcc/testsuite/gcc.dg/pr79570.c
> @@ -1,6 +1,6 @@
> /* PR target/79570 */
> /* { dg-do compile { target powerpc*-*-* ia64-*-* i?86-*-* x86_64-*-* } } */
> -/* { dg-options "-O2 -fselective-scheduling2 -fvar-tracking-assignments" } */
> +/* { dg-options "-O2 -fselective-scheduling2 -fvar-tracking-assignments -g" } */
> /* { dg-warning "changes selective scheduling" "" { target *-*-* } 0 } */
>
> #include "pr69956.c"
> --
> 2.40.0
>
@@ -1384,6 +1384,7 @@ finish_options (struct gcc_options *opts, struct gcc_options *opts_set,
}
opts->x_flag_var_tracking = 0;
opts->x_flag_var_tracking_uninit = 0;
+ opts->x_flag_var_tracking_assignments = 0;
}
/* One could use EnabledBy, but it would lead to a circular dependency. */
new file mode 100644
@@ -0,0 +1,63 @@
+/* PR driver/108241 */
+/* { dg-options "-Os -frounding-math -fvar-tracking-assignments -fno-dce -fno-trapping-math -fno-tree-dce -fno-tree-dse" } */
+
+long int n1;
+int n2, n3, n4;
+char n5;
+
+void
+foo (long int x1, long int x2, int x3, int x4, int x5, char x6, char x7)
+{
+ char a01 = n2, a02 = x4, a03 = 0;
+ short int a04;
+ unsigned short int a05 = x5;
+ int a06, a07, a08 = a05, a09 = x3, a10 = 0;
+ long int a11, a12 = x4;
+
+ if (x1)
+ {
+ a07 = x6 + (float)0x1000001;
+ a03 = a12 = a01 = a06 = ~0;
+
+ if (x5)
+ a11 = n5;
+ }
+ else
+ {
+ a10 = x3 = n3;
+ if (n3)
+ a06 = a05 = x7;
+ }
+
+ if (n3 < n5)
+ {
+ n4 = (x2 == x4) + !n1;
+ if (n4 % (n1 % x3))
+ {
+ a04 = n4;
+ a02 = n2;
+ }
+
+ if (x3)
+ {
+ a05 = !n1 % n2;
+ a08 = n1;
+ a04 = x5 + a06;
+ }
+
+ if (a12)
+ a09 = n3 + n4;
+
+ a12 = a07;
+ n3 = a11 % x1;
+ n5 += x6;
+ n1 = a04;
+ }
+
+ n4 = x2 % x5 % a11;
+ a06 = a10 + a08 % a02 == n4;
+ a09 = a09 == a01 * x7;
+ n4 = x4;
+ a12 += x4 / 0xc000000000000000 + !a03;
+ a03 = !a05;
+}
@@ -1,6 +1,6 @@
/* PR target/79570 */
/* { dg-do compile { target powerpc*-*-* ia64-*-* i?86-*-* x86_64-*-* } } */
-/* { dg-options "-O2 -fselective-scheduling2 -fvar-tracking-assignments" } */
+/* { dg-options "-O2 -fselective-scheduling2 -fvar-tracking-assignments -g" } */
/* { dg-warning "changes selective scheduling" "" { target *-*-* } 0 } */
#include "pr69956.c"