Propagate dump flags in pass_manager::register_pass
2016-03-16 Tom de Vries <tom@codesourcery.com>
PR other/70183
* passes.c (pass_manager::register_pass): Propagate pflags.
* gcc.target/i386/vzeroupper-dump-flags.c: New test.
---
gcc/passes.c | 6 +++++-
gcc/testsuite/gcc.target/i386/vzeroupper-dump-flags.c | 10 ++++++++++
2 files changed, 15 insertions(+), 1 deletion(-)
@@ -1497,8 +1497,12 @@ pass_manager::register_pass (struct register_pass_info *pass_info)
tdi = TDI_rtl_all;
/* Check if dump-all flag is specified. */
if (dumps->get_dump_file_info (tdi)->pstate)
- dumps->get_dump_file_info (added_pass_nodes->pass->static_pass_number)
+ {
+ dumps->get_dump_file_info (added_pass_nodes->pass->static_pass_number)
->pstate = dumps->get_dump_file_info (tdi)->pstate;
+ dumps->get_dump_file_info (added_pass_nodes->pass->static_pass_number)
+ ->pflags = dumps->get_dump_file_info (tdi)->pflags;
+ }
XDELETE (added_pass_nodes);
added_pass_nodes = next_node;
}
new file mode 100644
@@ -0,0 +1,10 @@
+/* { dg-do compile } */
+/* { dg-options " -fdump-rtl-all-slim -mavx -mvzeroupper -fexpensive-optimizations" } */
+
+int
+foo (void)
+{
+ return 0;
+}
+
+/* { dg-final { scan-rtl-dump-not "\\(insn " "vzeroupper" } } */