aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/PatchableFunction.cpp
diff options
context:
space:
mode:
authorFangrui Song <maskray@google.com>2020-02-01 13:28:19 -0800
committerFangrui Song <maskray@google.com>2020-02-01 14:12:06 -0800
commit5932f7b8f2c9a5f3640cffa3e99a45923acb7201 (patch)
tree91461a7f05bec42826e9a08d4474601d052c484e /llvm/lib/CodeGen/PatchableFunction.cpp
parentd82e993cd34ae6fda1eeb57c1b4d3d2629960664 (diff)
downloadllvm-5932f7b8f2c9a5f3640cffa3e99a45923acb7201.zip
llvm-5932f7b8f2c9a5f3640cffa3e99a45923acb7201.tar.gz
llvm-5932f7b8f2c9a5f3640cffa3e99a45923acb7201.tar.bz2
[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.
Diffstat (limited to 'llvm/lib/CodeGen/PatchableFunction.cpp')
-rw-r--r--llvm/lib/CodeGen/PatchableFunction.cpp11
1 files changed, 3 insertions, 8 deletions
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 @@ bool PatchableFunction::runOnMachineFunction(MachineFunction &MF) {
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;
}