Backend changes to enable WLS/LE low-overhead loops for armv8.1-m:
- Use TTI to communicate to the HardwareLoop pass that we should try to generate intrinsics that guard the loop entry, as well as setting the loop trip count.
- Lower the BRCOND that uses said intrinsic to an Arm specific node: ARMWLS.
- ISelDAGToDAG the node to a new pseudo instruction: t2WhileLoopStart.
- Add support in ArmLowOverheadLoops to handle the new pseudo instruction.
@samparker This is problematic on several levels... - we have an unused variable warning in NDEBUG builds and the else case only occurs if Const == NULL