aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/PatchableFunction.cpp
diff options
context:
space:
mode:
authorFangrui Song <maskray@google.com>2020-01-23 14:46:28 -0800
committerFangrui Song <maskray@google.com>2020-01-24 09:42:48 -0800
commit50a3ff30e1587235d1830fec9694c1239302ab9f (patch)
tree9c7e69792347dab8aad8ba16c5db5a80196f739c /llvm/lib/CodeGen/PatchableFunction.cpp
parent0d61cd25a6927a7700bfb1636faca1ef16c46428 (diff)
downloadllvm-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.cpp11
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;
}