diff options
author | Alan Lawrence <alan.lawrence@arm.com> | 2016-01-18 12:29:02 +0000 |
---|---|---|
committer | Alan Lawrence <alalaw01@gcc.gnu.org> | 2016-01-18 12:29:02 +0000 |
commit | 88bed19634d9419cb95ca0062e6a03405cfbaf98 (patch) | |
tree | 7851c3d73521e5ceff55c173e0ff37a942ce966a /gcc/tree-scalar-evolution.c | |
parent | 13092f619889805136f945718288a3c17c6beae1 (diff) | |
download | gcc-88bed19634d9419cb95ca0062e6a03405cfbaf98.zip gcc-88bed19634d9419cb95ca0062e6a03405cfbaf98.tar.gz gcc-88bed19634d9419cb95ca0062e6a03405cfbaf98.tar.bz2 |
Make SRA scalarize constant-pool loads
PR target/63679
gcc/ChangeLog:
* tree-sra.c (disqualified_constants, constant_decl_p): New.
(sra_initialize): Allocate disqualified_constants.
(sra_deinitialize): Free disqualified_constants.
(disqualify_candidate): Update disqualified_constants when appropriate.
(create_access): Scan for constant-pool entries as we go along.
(scalarizable_type_p): Add check against type_contains_placeholder_p.
(maybe_add_sra_candidate): Allow constant-pool entries.
(load_assign_lhs_subreplacements): Bind debug for constant pool vars.
(initialize_constant_pool_replacements): New.
(sra_modify_assign): Avoid mangling assignments created by previous,
and don't generate writes into constant pool.
(sra_modify_function_body): Call initialize_constant_pool_replacements.
gcc/testsuite/:
* gcc.dg/tree-ssa/sra-17.c: New.
* gcc.dg/tree-ssa/sra-18.c: New.
From-SVN: r232506
Diffstat (limited to 'gcc/tree-scalar-evolution.c')
0 files changed, 0 insertions, 0 deletions