The main change is that now we generate TBAA info before constructing the resulting lvalue instead of constructing lvalue with some default TBAA info and fixing it as necessary afterwards. We also keep the TBAA info close to lvalue base info, which is supposed to simplify their future merging.
This patch should not bring in any functional changes.
This is part of D38126 reworked to be a separate patch to simplify review.
The new name here doesn't make sense; the base is not an expression, it's an l-value. That and the change in capitalization make it hard to track down the changes you've made to each branch here. I believe all you're doing for the other path is sinking some code past the isBitField() block.