[ObjCARC] Prevent code motion into a catchswitch

A catchswitch must be the only non-phi instruction in its basic block;
attempting to move a retain or release into a catchswitch basic block
will result in invalid IR. Explicitly mark a CFG hazard in this case to
prevent the code motion.

Differential Revision: https://reviews.llvm.org/D46482

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@332430 91177308-0d34-0410-b5e6-96231b3b80d8
3 files changed