Path: blob/main/contrib/llvm-project/llvm/lib/Target/X86/GISel/X86CallLowering.h
35294 views
//===- llvm/lib/Target/X86/X86CallLowering.h - Call lowering ----*- C++ -*-===//1//2// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.3// See https://llvm.org/LICENSE.txt for license information.4// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception5//6//===----------------------------------------------------------------------===//7//8/// \file9/// This file describes how to lower LLVM calls to machine code calls.10//11//===----------------------------------------------------------------------===//1213#ifndef LLVM_LIB_TARGET_X86_X86CALLLOWERING_H14#define LLVM_LIB_TARGET_X86_X86CALLLOWERING_H1516#include "llvm/CodeGen/GlobalISel/CallLowering.h"17#include <functional>1819namespace llvm {2021template <typename T> class ArrayRef;22class X86TargetLowering;2324class X86CallLowering : public CallLowering {25public:26X86CallLowering(const X86TargetLowering &TLI);2728bool lowerReturn(MachineIRBuilder &MIRBuilder, const Value *Val,29ArrayRef<Register> VRegs,30FunctionLoweringInfo &FLI) const override;3132bool lowerFormalArguments(MachineIRBuilder &MIRBuilder, const Function &F,33ArrayRef<ArrayRef<Register>> VRegs,34FunctionLoweringInfo &FLI) const override;3536bool lowerCall(MachineIRBuilder &MIRBuilder,37CallLoweringInfo &Info) const override;3839bool canLowerReturn(MachineFunction &MF, CallingConv::ID CallConv,40SmallVectorImpl<BaseArgInfo> &Outs,41bool IsVarArg) const override;42};4344} // end namespace llvm4546#endif // LLVM_LIB_TARGET_X86_X86CALLLOWERING_H474849