[Attributor] Introduce assumption accesses in AAPointerInfo
Assumptions can help us reason about memory content. This patch teaches AAPointerInfo to reason about memory assumptions of the following form: ``` %x = load %ptr ... code not writing memory, may include branches ... %c = %x == %val ... code not writing memory, may include branches ... llvm.assume(%c) ``` Assumption accesses are recognized from the involved load (%x above). Assumption accesses are treated special and neither as ordinary read or write. We use read encoding with an extra flag. Reads are not impacting other reads or writes. Writes could do that. We don't want assumptions to impact other writes as they themselves only confirm a value, not write it. So the "other" write might be required as the assumption only confirms the effect of that write.
Loading
Please sign in to comment