================ @@ -0,0 +1,247 @@ +//===---- X86FixupBufferSecurityCheck.cpp Fix Buffer Security Check Call---===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// +// Buffer Security Check implementation inserts platform specific callback into +// code. For windows __security_check_cookie call gets call everytime function +// is return without fixup. Since this function is defined in runtime library, +// it incures cost of call in dll which simply does comparison and returns most +// time. With Fixup, We selective move to call in DLL only if comparison fails. +//===----------------------------------------------------------------------===// + +#include "X86.h" +#include "X86FrameLowering.h" +#include "X86InstrInfo.h" +#include "X86Subtarget.h" +#include "llvm/CodeGen/LivePhysRegs.h" +#include "llvm/CodeGen/MachineFunctionPass.h" +#include "llvm/CodeGen/MachineInstrBuilder.h" +#include "llvm/CodeGen/MachineRegisterInfo.h" +#include "llvm/IR/Module.h" +#include <iterator> + +using namespace llvm; + +#define DEBUG_TYPE "x86-fixup-bscheck" + +namespace { + +class X86WinFixupBufferSecurityCheckPass : public MachineFunctionPass { +public: + static char ID; + + X86WinFixupBufferSecurityCheckPass() : MachineFunctionPass(ID) {} + + StringRef getPassName() const override { + return "X86 Fixup Buffer Security Check"; ---------------- mahesh-attarde wrote:
done. https://github.com/llvm/llvm-project/pull/95904 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits