Follow-up on: https://reviews.llvm.org/D71435
We basically use checkForAllInstructions to loop through all the instructions in a function that access memory through a pointer: load, store, atomicrmw, atomiccmpxchg
Note that we can now use the getPointerOperand() that gets us the pointer operand for an instruction that belongs to the aforementioned set.
Question: This function returns nullptr if the instruction is volatile. Why?
Guess: Because if it is volatile, we don't want to do any transformation to it.
Another subtle point is that I had to add AtomicRMW, AtomicCmpXchg to initializeInformationCache(). Following checkAllInstructions() path, that
seemed the most reasonable place to add it and correct the fact that these instructions were ignored (they were not in OpcodeInstMap etc.). Is that ok?
nit: I think you should update these comments (line 2021) as well.