This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [tree-ssa] vdefs question (to make vectorizer pass verify ssa)



The lines marked with '*' are the new source lines I added that solved the
problem and allowed the vectorized code to pass the verifiers.


The lines marked with '->' are not required in order to successfully pass
verify_ssa, but update the may-aliases and result in vector loads/stores
that have vdefs/vuses. However, I did not find an API exposed out side of
tree-dfa.c that lets you create new mem-tags and compute may-aliases on
demand; so for now I called compute_may_aliases(), which resulted in over
conservative vdefs/vuses - the pointers I created ended-up aliasing all the
arrays in the function,

Yeah, you'd need to enable flag_tree_points_to = PTA_ANDERSEN to get better results (because TBAA is type based, obviously).


whereas if I could explicitely set their may-alias
set in the vectorizer I would make each pointer alias only the array it
points to. Is there an API that lets you do that?

You'll probably have to expose parts of the aliasing API in order to do this, since it's all internal ATM.
If they all share the same aliasing properties, you only need to create a memory tag and set the variables to use that memory tag.



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]