Question on getLoad() and its parameters


I'm trying to understand SelectionDAG::getLoad() and the relation between the pointer and MachineMemOp.
What does the MachineMemOp do in the getLoad()?
Why is both pointer (parameters SDValue Ptr, SDValue Offset)
and the MMO (parameters const Value *SV, int SVOffset) needed?
And the Alignment parameter seems to be the alignment of the SV without the Offset, aswell as the generated LOAD node?
Can Ptr and SV point to different places? What happens in that case?
(and what obvious question did I not ask here?)

thank you in advance,