Page MenuHomePhabricator

[SelectionDAG] Re-calculate scoped AA metadata when merging stores.
Needs ReviewPublic

Authored by hliao on May 19 2021, 7:02 PM.

Diff Detail

Event Timeline

hliao created this revision.May 19 2021, 7:02 PM
hliao requested review of this revision.May 19 2021, 7:02 PM
Herald added a project: Restricted Project. · View Herald TranscriptMay 19 2021, 7:02 PM
llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
16879

(And move the merge logic to IR/Metadata.h)

Also note that I am not sure if it is safe to merge the TBAA part in this way. (Especially when using new struct path tbaa)

hliao updated this revision to Diff 357323.Thu, Jul 8, 12:35 PM

Move the AAMDNodes merging into a common place.

hliao marked an inline comment as done.Thu, Jul 8, 1:05 PM

Maybe also a testcase using new struct path tbaa would be handy ?

llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
16892

You are merging aa information of adjacent stores here. For the pure 'struct path tbaa' this should be fine. For the 'new' struct path tbaa, there is a problem, as that one also tracks the offset/size of the the tbaa tag information. For that reason, I think that a (new) 'mergeAdjacent' is better, as that one can throw away the tbaa info (or adapt the offset/size when compatible) when in 'new struct path tbaa' mode.