Prevent memory objects of different address spaces to be part of
the same load/store groups when analysing interleaved accesses.
This is fixing pr31900.
Differential D29717
[LoopVectorize] Added address space check when analysing interleaved accesses Ka-Ka on Feb 8 2017, 6:21 AM. Authored by
Details
Prevent memory objects of different address spaces to be part of This is fixing pr31900.
Diff Detail Event TimelineComment Actions Makes sense. I have comment about the test, though. Thanks!
Comment Actions This looks good to me (aside from a very minor nit about the test run line). Please give Michael and Eli a chance to respond to your questions, though.
Comment Actions This LGTM to me too, in the sense that I think this check is a good idea here regardless of what SCEV does. Comment Actions Sorry I wasn't clear. You should check the address spaces of pointers before passing them to getMinusSCEV because the operands of getMinusSCEV are required to have the same bit-width. So this patch is correct as-is. Comment Actions Pointers in different address spaces may or may not have different bitwidths. Will getMinusSCEV assert if the pointers are in different address spaces but have the same bitwidth? And what's the right behavior? In any case, that's mostly academic. This LGTM. Comment Actions The general rule is that SCEV doesn't know anything about pointers; it just handles them as if you converted them to integers using ptrtoint. Comment Actions I had to revert this change due to a buildbot failure. I'm trying to recreate the fault locally ... |
Hold on.
Shouldn't this fail the distance check? How can we have pointers in different address spaces where we succeed in computing the distance?