Replaces
unsigned getShiftAmountThreshold(EVT VT)
by
bool shouldAvoidTransformToShift(EVT VT, unsigned amount)
thus giving more flexibility for targets to decide whether particular shift amounts must be considered expensive or not.
Updates the MSP430 target with a custom implementation.
This continues D69116, D69120, D69326 and updates them, so all of them must be committed before this.
Existing tests apply, a few more have been added.
formatting: amount -> Amount
http://llvm.org/docs/CodingStandards.html#name-types-functions-variables-and-enumerators-properly