LLVM: lib/Target/AArch64/GISel/AArch64CallLowering.h Source File (original) (raw)

1

2

3

4

5

6

7

8

9

10

11

12

13

14#ifndef LLVM_LIB_TARGET_AARCH64_AARCH64CALLLOWERING_H

15#define LLVM_LIB_TARGET_AARCH64_AARCH64CALLLOWERING_H

16

20#include

21#include

22

23namespace llvm {

24

29

31public:

33

36 Register SwiftErrorVReg) const override;

37

40 bool IsVarArg) const override;

41

43

47

50

51

52 bool

57

59

61

62private:

65

66 using MemHandler =

68

72

75

76 bool

77 doCallerAndCalleePassArgsTheSameWay(CallLoweringInfo &Info,

80

81 bool

82 areCalleeOutgoingArgsTailCallable(CallLoweringInfo &Info, MachineFunction &MF,

84};

85

86}

87

88#endif

Analysis containing CSE Info

This file describes how to lower LLVM calls to machine code calls.

bool lowerReturn(MachineIRBuilder &MIRBuilder, const Value *Val, ArrayRef< Register > VRegs, FunctionLoweringInfo &FLI, Register SwiftErrorVReg) const override

This hook must be implemented to lower outgoing return values, described by Val, into the specified v...

bool canLowerReturn(MachineFunction &MF, CallingConv::ID CallConv, SmallVectorImpl< BaseArgInfo > &Outs, bool IsVarArg) const override

This hook must be implemented to check whether the return values described by Outs can fit into the r...

bool fallBackToDAGISel(const MachineFunction &MF) const override

bool isTypeIsValidForThisReturn(EVT Ty) const override

For targets which support the "returned" parameter attribute, returns true if the given type is a val...

bool supportSwiftError() const override

Definition AArch64CallLowering.h:58

bool isEligibleForTailCallOptimization(MachineIRBuilder &MIRBuilder, CallLoweringInfo &Info, SmallVectorImpl< ArgInfo > &InArgs, SmallVectorImpl< ArgInfo > &OutArgs) const

Returns true if the call can be lowered as a tail call.

AArch64CallLowering(const AArch64TargetLowering &TLI)

bool lowerCall(MachineIRBuilder &MIRBuilder, CallLoweringInfo &Info) const override

This hook must be implemented to lower the given call instruction, including argument and return valu...

bool lowerFormalArguments(MachineIRBuilder &MIRBuilder, const Function &F, ArrayRef< ArrayRef< Register > > VRegs, FunctionLoweringInfo &FLI) const override

This hook must be implemented to lower the incoming (formal) arguments, described by VRegs,...

ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory),...

CCState - This class holds information needed while lowering arguments and return values.

CCValAssign - Represent assignment of one arg/retval to a location.

CallLowering(const TargetLowering *TLI)

FunctionLoweringInfo - This contains information that is global to a function that is used when lower...

Helper class to build MachineInstr.

Wrapper class representing virtual and physical registers.

This class consists of common code factored out of the SmallVector class to reduce code duplication b...

The instances of the Type class are immutable: once they are created, they are never changed.

LLVM Value Representation.

unsigned ID

LLVM IR allows to use arbitrary numbers as calling convention identifiers.

This is an optimization pass for GlobalISel generic memory operations.

Base class for ValueHandlers used for arguments coming into the current function, or for return value...