Allow sinking of invariant loads across critical edges during Sink
pass when amdgpu-aggressive-load-sinking attribute is set to true.
This should always be safe.
Typically it reduces VGPR pressure, but can increase SGPR pressure.
If amdgpu-always-sink-loads is *also* set true then allow sinking
of all loads.
The intention is that the frontend sets this after validating the
shader has no memory writes and no EXEC manipulation (e.g. kills).
It seems wrong that we have to handle this here. There should be some other mechanism to prevent sinking in this case, otherwise we would have pre-existing bugs. For example InstCombine will sink loads if it is not moving them past any stores.