diff options
Diffstat (limited to 'llvm/lib/CodeGen/PatchableFunction.cpp')
| -rw-r--r-- | llvm/lib/CodeGen/PatchableFunction.cpp | 10 | 
1 files changed, 10 insertions, 0 deletions
| diff --git a/llvm/lib/CodeGen/PatchableFunction.cpp b/llvm/lib/CodeGen/PatchableFunction.cpp index 529fde84e39a3..1d6069c505541 100644 --- a/llvm/lib/CodeGen/PatchableFunction.cpp +++ b/llvm/lib/CodeGen/PatchableFunction.cpp @@ -18,6 +18,7 @@  #include "llvm/CodeGen/TargetFrameLowering.h"  #include "llvm/CodeGen/TargetInstrInfo.h"  #include "llvm/CodeGen/TargetSubtargetInfo.h" +#include "llvm/InitializePasses.h"  using namespace llvm; @@ -54,6 +55,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)); +    return true; +  } +    if (!MF.getFunction().hasFnAttribute("patchable-function"))      return false; | 
