[PatchableFunction] Use an empty DebugLoc

The current FirstMI.getDebugLoc() is actually null in almost all cases.
If it isn't, the generated .loc will be considered initial. The .loc
will have the prologue_end flag and terminate the prologue prematurely.

Also use an overload of BuildMI that will not prepend
PATCHABLE_FUNCTION_ENTRY to a MachineInstr bundle.
diff --git a/llvm/lib/CodeGen/PatchableFunction.cpp b/llvm/lib/CodeGen/PatchableFunction.cpp
index a846639..ca44b7a 100644
--- a/llvm/lib/CodeGen/PatchableFunction.cpp
+++ b/llvm/lib/CodeGen/PatchableFunction.cpp
@@ -58,14 +58,9 @@
   if (MF.getFunction().hasFnAttribute("patchable-function-entry")) {
     MachineBasicBlock &FirstMBB = *MF.begin();
     const TargetInstrInfo *TII = MF.getSubtarget().getInstrInfo();
-    if (FirstMBB.empty()) {
-      BuildMI(&FirstMBB, DebugLoc(),
-              TII->get(TargetOpcode::PATCHABLE_FUNCTION_ENTER));
-    } else {
-      MachineInstr &FirstMI = *FirstMBB.begin();
-      BuildMI(FirstMBB, FirstMI, FirstMI.getDebugLoc(),
-              TII->get(TargetOpcode::PATCHABLE_FUNCTION_ENTER));
-    }
+    // The initial .loc covers PATCHABLE_FUNCTION_ENTER.
+    BuildMI(FirstMBB, FirstMBB.begin(), DebugLoc(),
+            TII->get(TargetOpcode::PATCHABLE_FUNCTION_ENTER));
     return true;
   }