-
- Downloads
Fix reverse scalar storage order issues in IPA-SRA
The IPA-SRA pass introduced in GCC 10 does not always play nice with the reverse scalar storage order that can be used in structures/records/unions. Reading the code, the pass apparently correctly detects it but fails to propagate the information to the rewriting phase in some cases and, in particular, does not stream it for LTO. gcc/ * ipa-param-manipulation.c (ipa_dump_adjusted_parameters): Dump reverse flag as "reverse" for the sake of consistency. * ipa-sra.c: Fix copyright year. (ipa_sra_function_summaries::duplicate): Copy the reverse flag. (dump_isra_access): Tweak dump line. (isra_write_node_summary): Write the reverse flag. (isra_read_node_info): Read it. (pull_accesses_from_callee): Test its consistency and copy it. gcc/testsuite/ * gnat.dg/lto25.adb: New test. * gnat.dg/opt96.adb: Likewise. * gnat.dg/opt96_pkg.ads, gnat.dg/opt96_pkg.adb: New helper.
Showing
- gcc/ipa-param-manipulation.c 1 addition, 1 deletiongcc/ipa-param-manipulation.c
- gcc/ipa-sra.c 28 additions, 28 deletionsgcc/ipa-sra.c
- gcc/testsuite/gnat.dg/lto25.adb 14 additions, 0 deletionsgcc/testsuite/gnat.dg/lto25.adb
- gcc/testsuite/gnat.dg/opt96.adb 14 additions, 0 deletionsgcc/testsuite/gnat.dg/opt96.adb
- gcc/testsuite/gnat.dg/opt96_pkg.adb 16 additions, 0 deletionsgcc/testsuite/gnat.dg/opt96_pkg.adb
- gcc/testsuite/gnat.dg/opt96_pkg.ads 32 additions, 0 deletionsgcc/testsuite/gnat.dg/opt96_pkg.ads
Loading
Please register or sign in to comment