Problem:
In certain situations during ALLOCA promotion, the promoteSingleBlockAlloca() function attempts to replace an instruction by the same instruction. This causes the assertion crash described in PR30416.
Solution:
Disable SROA for a Basic Block that can cause circular dependency.