llvm-project
b2d3db9b - [SCEV] Derive element size from the access's own pointer address space (#209824)

Commit
21 days ago
[SCEV] Derive element size from the access's own pointer address space (#209824) ScalarEvolution::getElementSize always derived the element-size SCEV using a generic address-space-0 pointer index type. On targets whose data layout uses different pointer index widths per address space (for example, where some address spaces use 32-bit pointers and others 64-bit), a load/store through a narrow address space produced an access function SCEV of one width but an element-size SCEV of another. Delinearization then called SCEVDivision::divide with numerator and denominator of mismatched types, tripping the assertion added in a9d295d615a8 once the implicit sign-extension was removed in 23a32bcedb91. Derive the index type from the memory access's actual pointer operand address space so the element-size SCEV matches the width of the access function's SCEV.
Author
Parents
Loading