diff options
author | Fangrui Song <maskray@google.com> | 2020-01-23 14:46:28 -0800 |
---|---|---|
committer | Fangrui Song <maskray@google.com> | 2020-01-24 09:42:48 -0800 |
commit | 50a3ff30e1587235d1830fec9694c1239302ab9f (patch) | |
tree | 9c7e69792347dab8aad8ba16c5db5a80196f739c /llvm/lib/CodeGen/PatchableFunction.cpp | |
parent | 0d61cd25a6927a7700bfb1636faca1ef16c46428 (diff) | |
download | llvm-50a3ff30e1587235d1830fec9694c1239302ab9f.zip llvm-50a3ff30e1587235d1830fec9694c1239302ab9f.tar.gz llvm-50a3ff30e1587235d1830fec9694c1239302ab9f.tar.bz2 |
[PatchableFunction] Allow empty entry MachineBasicBlock
Reviewed By: nickdesaulniers
Differential Revision: https://reviews.llvm.org/D73301
Diffstat (limited to 'llvm/lib/CodeGen/PatchableFunction.cpp')
-rw-r--r-- | llvm/lib/CodeGen/PatchableFunction.cpp | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/llvm/lib/CodeGen/PatchableFunction.cpp b/llvm/lib/CodeGen/PatchableFunction.cpp index 1d6069c..a846639 100644 --- a/llvm/lib/CodeGen/PatchableFunction.cpp +++ b/llvm/lib/CodeGen/PatchableFunction.cpp @@ -57,10 +57,15 @@ static bool doesNotGeneratecode(const MachineInstr &MI) { bool PatchableFunction::runOnMachineFunction(MachineFunction &MF) { if (MF.getFunction().hasFnAttribute("patchable-function-entry")) { MachineBasicBlock &FirstMBB = *MF.begin(); - MachineInstr &FirstMI = *FirstMBB.begin(); const TargetInstrInfo *TII = MF.getSubtarget().getInstrInfo(); - BuildMI(FirstMBB, FirstMI, FirstMI.getDebugLoc(), - TII->get(TargetOpcode::PATCHABLE_FUNCTION_ENTER)); + 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)); + } return true; } |