summaryrefslogtreecommitdiffstats
path: root/llvm/lib
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 10:38:40 -0800
commit4d5a200f31d565cf7762a3cde30375f5d8a309c6 (patch)
treec10e55b1b6c7aab5ea10da68cd568d7243024460 /llvm/lib
parent5d1fe1a1a9f18c5009e9e282b755e52c5e7ce5a2 (diff)
downloadbcm5719-llvm-4d5a200f31d565cf7762a3cde30375f5d8a309c6.tar.gz
bcm5719-llvm-4d5a200f31d565cf7762a3cde30375f5d8a309c6.zip
[PatchableFunction] Allow empty entry MachineBasicBlock
Reviewed By: nickdesaulniers Differential Revision: https://reviews.llvm.org/D73301 (cherry picked from commit 50a3ff30e1587235d1830fec9694c1239302ab9f)
Diffstat (limited to 'llvm/lib')
-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 1d6069c5055..a8466396f9b 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;
}
OpenPOWER on IntegriCloud