Files
gps/tools/local/circt/include/llvm/IR/FunctionProperties.def
T
2026-07-12 11:01:51 +03:00

116 lines
6.1 KiB
Modula-2

//===-- llvm/FunctionProperties.def - File that describes Function Properties
//
// 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
//
//===----------------------------------------------------------------------===//
//
// This file contains descriptions of the various LLVM function properties. This
// is used as a central place for enumerating the different function properties
// and should eventually be the place to put comments about the function
// properties.
//
//===----------------------------------------------------------------------===//
// NOTE: NO INCLUDE GUARD DESIRED!
// Provide definitions of macros so that users of this file do not have to
// define everything to use it.
//
// Basic/Standard Properties
#ifndef FUNCTION_PROPERTY
#define FUNCTION_PROPERTY(Name, Description)
#endif
// Detailed Properties (only processed if DETAILED_FUNCTION_PROPERTY is defined)
#ifndef DETAILED_FUNCTION_PROPERTY
#define DETAILED_FUNCTION_PROPERTY(Name, Description)
#endif
FUNCTION_PROPERTY(BasicBlockCount, "Number of basic blocks")
FUNCTION_PROPERTY(BlocksReachedFromConditionalInstruction,
"Number of blocks reached from a conditional instruction, or "
"that are 'cases' of a SwitchInstr")
FUNCTION_PROPERTY(Uses, "Number of uses of this function, plus 1 if the "
"function is callable outside the module")
FUNCTION_PROPERTY(DirectCallsToDefinedFunctions,
"Number of direct calls made from this function to other "
"functions defined in this module")
FUNCTION_PROPERTY(LoadInstCount, "Load Instruction Count")
FUNCTION_PROPERTY(StoreInstCount, "Store Instruction Count")
FUNCTION_PROPERTY(MaxLoopDepth, "Maximum Loop Depth in the Function")
FUNCTION_PROPERTY(TopLevelLoopCount,
"Number of Top Level Loops in the Function")
FUNCTION_PROPERTY(TotalInstructionCount, "Number of instructions of all types")
DETAILED_FUNCTION_PROPERTY(BasicBlocksWithSingleSuccessor,
"Basic blocks with one successors")
DETAILED_FUNCTION_PROPERTY(BasicBlocksWithTwoSuccessors,
"Basic blocks with two successors")
DETAILED_FUNCTION_PROPERTY(BasicBlocksWithMoreThanTwoSuccessors,
"Basic blocks with more than two successors")
DETAILED_FUNCTION_PROPERTY(BasicBlocksWithSinglePredecessor,
"Basic blocks with one predecessors")
DETAILED_FUNCTION_PROPERTY(BasicBlocksWithTwoPredecessors,
"Basic blocks with two predecessors")
DETAILED_FUNCTION_PROPERTY(BasicBlocksWithMoreThanTwoPredecessors,
"Basic blocks with more than two predecessors")
DETAILED_FUNCTION_PROPERTY(BigBasicBlocks, "Number of big basic blocks")
DETAILED_FUNCTION_PROPERTY(MediumBasicBlocks, "Number of medium basic blocks")
DETAILED_FUNCTION_PROPERTY(SmallBasicBlocks, "Number of small basic blocks")
DETAILED_FUNCTION_PROPERTY(
CastInstructionCount, "The number of cast instructions inside the function")
DETAILED_FUNCTION_PROPERTY(
FloatingPointInstructionCount,
"The number of floating point instructions inside the function")
DETAILED_FUNCTION_PROPERTY(
IntegerInstructionCount,
"The number of integer instructions inside the function")
DETAILED_FUNCTION_PROPERTY(ConstantIntOperandCount,
"Constant Int Operand Count")
DETAILED_FUNCTION_PROPERTY(ConstantFPOperandCount, "Constant FP Operand Count")
DETAILED_FUNCTION_PROPERTY(ConstantOperandCount, "Constant Operand Count")
DETAILED_FUNCTION_PROPERTY(InstructionOperandCount, "Instruction Operand Count")
DETAILED_FUNCTION_PROPERTY(BasicBlockOperandCount, "Basic Block Operand Count")
DETAILED_FUNCTION_PROPERTY(GlobalValueOperandCount,
"Global Value Operand Count")
DETAILED_FUNCTION_PROPERTY(InlineAsmOperandCount, "Inline Asm Operand Count")
DETAILED_FUNCTION_PROPERTY(ArgumentOperandCount, "Argument Operand Count")
DETAILED_FUNCTION_PROPERTY(UnknownOperandCount, "Unknown Operand Count")
DETAILED_FUNCTION_PROPERTY(CriticalEdgeCount, "Critical Edge Count")
DETAILED_FUNCTION_PROPERTY(ControlFlowEdgeCount,
"Number of basic block successors")
DETAILED_FUNCTION_PROPERTY(UnconditionalBranchCount,
"Number of unconditional branch instructions")
DETAILED_FUNCTION_PROPERTY(ConditionalBranchCount,
"Number of conditional branch instructions")
DETAILED_FUNCTION_PROPERTY(BranchInstructionCount,
"Number of branch instructions")
DETAILED_FUNCTION_PROPERTY(BranchSuccessorCount, "Number of branch successors")
DETAILED_FUNCTION_PROPERTY(SwitchInstructionCount,
"Number of switch instructions")
DETAILED_FUNCTION_PROPERTY(SwitchSuccessorCount, "Number of switch successors")
DETAILED_FUNCTION_PROPERTY(IntrinsicCount, "Intrinsic Count")
DETAILED_FUNCTION_PROPERTY(NoReturnCallCount, "No Return Call Count")
DETAILED_FUNCTION_PROPERTY(DirectCallCount, "Direct Call Count")
DETAILED_FUNCTION_PROPERTY(IndirectCallCount, "Indirect Call Count")
DETAILED_FUNCTION_PROPERTY(CallReturnsIntegerCount,
"Call Returns Integer Count")
DETAILED_FUNCTION_PROPERTY(CallReturnsFloatCount, "Call Returns Float Count")
DETAILED_FUNCTION_PROPERTY(CallReturnsPointerCount,
"Call Returns Pointer Count")
DETAILED_FUNCTION_PROPERTY(CallReturnsVectorIntCount,
"Call Returns Vector Int Count")
DETAILED_FUNCTION_PROPERTY(CallReturnsVectorFloatCount,
"Call Returns Vector Float Count")
DETAILED_FUNCTION_PROPERTY(CallReturnsVectorPointerCount,
"Call Returns Vector Pointer Count")
DETAILED_FUNCTION_PROPERTY(CallWithManyArgumentsCount,
"Call With Many Arguments Count")
DETAILED_FUNCTION_PROPERTY(CallWithPointerArgumentCount,
"Call With Pointer Argument Count")
#undef FUNCTION_PROPERTY
#undef DETAILED_FUNCTION_PROPERTY