Ensure points-to information is maintained for prefetch.

gcc/
        PR tree-optimization/77654
        * tree-ssa-alias.c (issue_prefetch_ref): Add call
        to duplicate_ssa_name_ptr_info.

From-SVN: r240439
This commit is contained in:
Doug Gilmore 2016-09-23 15:48:01 +00:00 committed by Matthew Fortune
parent 0af06385d3
commit ed481942e3
2 changed files with 18 additions and 0 deletions

View File

@ -1,3 +1,9 @@
2016-09-23 Doug Gilmore <doug.gilmore@imgtec.com>
PR tree-optimization/77654
* tree-ssa-alias.c (issue_prefetch_ref): Add call
to duplicate_ssa_name_ptr_info.
2016-09-23 David Malcolm <dmalcolm@redhat.com>
PR preprocessor/77672

View File

@ -39,6 +39,7 @@ along with GCC; see the file COPYING3. If not see
#include "tree-ssa-loop-manip.h"
#include "tree-ssa-loop-niter.h"
#include "tree-ssa-loop.h"
#include "ssa.h"
#include "tree-into-ssa.h"
#include "cfgloop.h"
#include "tree-scalar-evolution.h"
@ -1160,6 +1161,17 @@ issue_prefetch_ref (struct mem_ref *ref, unsigned unroll_factor, unsigned ahead)
addr = force_gimple_operand_gsi (&bsi, unshare_expr (addr), true,
NULL, true, GSI_SAME_STMT);
}
if (TREE_CODE (addr_base) == SSA_NAME
&& TREE_CODE (addr) == SSA_NAME)
{
duplicate_ssa_name_ptr_info (addr, SSA_NAME_PTR_INFO (addr_base));
/* As this isn't a plain copy we have to reset alignment
information. */
if (SSA_NAME_PTR_INFO (addr))
mark_ptr_info_alignment_unknown (SSA_NAME_PTR_INFO (addr));
}
/* Create the prefetch instruction. */
prefetch = gimple_build_call (builtin_decl_explicit (BUILT_IN_PREFETCH),
3, addr, write_p, local);