[RFC] Syncing Asm Goto with Outputs with GCC

Updated list:

  1. :gear: D135997 [Dominators] check indirect branches of callbr
  2. :gear: D140166 [IR] return nullptr in Instruction::getInsertionPointAfterDef for CallBrInst
  3. :gear: D139861 [llvm] boilerplate for new callbrprepare codegen IR pass
  4. :gear: D139872 [llvm][CallBrPrepare] split critical edges
  5. :gear: D139883 [llvm][CallBrPrepare] add llvm.callbr.landingpad intrinsic
  6. :gear: D139970 [llvm][CallBrPrepare] use SSAUpdater to use intrinsic value
  7. :gear: D140160 [llvm][SelectionDAGBuilder] codegen callbr.landingpad intrinsic
  8. ⚙ D140180 [llvm] add CallBrPrepare pass to pipelines
  9. :gear: D137113 [Clang] refactor CodeGenFunction::EmitAsmStmt NFC
  10. :gear: D136497 [Clang] support for outputs along indirect edges of asm goto
  11. ⚙ D142940 [llvm][SelectionDAGBuilder] change callbr.landingpad intrinsic to accept explicit param
  12. ⚙ D140508 [clang] fix -Wuninitialized for asm goto outputs on indirect edges.
  13. ⚙ D143205 [clang] add __has_extension(gnu_asm_goto_with_outputs_full)
  14. ⚙ D143961 [llvm][SelectionDAGBuilder] use getRegistersForValue to generate legal copies