These are interesting because lack of precision in alias information
could be standing in the way of this optimization.
An example is the case in the test suite that I showed in the DevMeeting
talk:
canSinkOrHoistInst is also used from LoopSink, which does not use
opt-remarks so we need to take ORE as an optional argument.
Can we hoist a load without a loop-invariant address? It seems like we shouldn't be making aliasing queries for loads we can't possibly hoist, and so I don't understand why we specifically need the CurLoop->isLoopInvariant check here.