|
LLVM 22.0.0git
|
This file describes how to lower LLVM code to machine code. More...
#include "llvm/ADT/APInt.h"#include "llvm/ADT/ArrayRef.h"#include "llvm/ADT/DenseMap.h"#include "llvm/ADT/SmallVector.h"#include "llvm/ADT/StringRef.h"#include "llvm/CodeGen/DAGCombine.h"#include "llvm/CodeGen/ISDOpcodes.h"#include "llvm/CodeGen/LowLevelTypeUtils.h"#include "llvm/CodeGen/MachineRegisterInfo.h"#include "llvm/CodeGen/RuntimeLibcallUtil.h"#include "llvm/CodeGen/SelectionDAG.h"#include "llvm/CodeGen/SelectionDAGNodes.h"#include "llvm/CodeGen/TargetCallingConv.h"#include "llvm/CodeGen/ValueTypes.h"#include "llvm/CodeGenTypes/MachineValueType.h"#include "llvm/IR/Attributes.h"#include "llvm/IR/CallingConv.h"#include "llvm/IR/DataLayout.h"#include "llvm/IR/DerivedTypes.h"#include "llvm/IR/Function.h"#include "llvm/IR/InlineAsm.h"#include "llvm/IR/Instruction.h"#include "llvm/IR/Instructions.h"#include "llvm/IR/RuntimeLibcalls.h"#include "llvm/IR/Type.h"#include "llvm/Support/Alignment.h"#include "llvm/Support/AtomicOrdering.h"#include "llvm/Support/Casting.h"#include "llvm/Support/Compiler.h"#include "llvm/Support/ErrorHandling.h"#include "llvm/Support/KnownFPClass.h"#include <algorithm>#include <cassert>#include <climits>#include <cstdint>#include <iterator>#include <map>#include <string>#include <utility>#include <vector>#include "llvm/IR/ConstrainedOps.def"Go to the source code of this file.
Classes | |
| struct | llvm::MemOp |
| class | llvm::TargetLoweringBase |
| This base class for TargetLowering contains the SelectionDAG-independent parts that can be used from the rest of CodeGen. More... | |
| class | llvm::TargetLoweringBase::ArgListEntry |
| struct | llvm::TargetLoweringBase::CondMergingParams |
| class | llvm::TargetLoweringBase::ValueTypeActionImpl |
| struct | llvm::TargetLoweringBase::IntrinsicInfo |
| struct | llvm::TargetLoweringBase::AddrMode |
| This represents an addressing mode of: BaseGV + BaseOffs + BaseReg + Scale*ScaleReg + ScalableOffset*vscale If BaseGV is null, there is no BaseGV. More... | |
| class | llvm::TargetLowering |
| This class defines information used to lower LLVM code to legal SelectionDAG operators that the target instruction selector can accept natively. More... | |
| struct | llvm::TargetLowering::TargetLoweringOpt |
| A convenience struct that encapsulates a DAG, and two SDValues for returning information from TargetLowering to its clients that want to combine. More... | |
| struct | llvm::TargetLowering::DAGCombinerInfo |
| struct | llvm::TargetLowering::PtrAuthInfo |
| This structure contains the information necessary for lowering pointer-authenticating indirect calls. More... | |
| struct | llvm::TargetLowering::CallLoweringInfo |
| This structure contains all information that is necessary for lowering calls. More... | |
| struct | llvm::TargetLowering::MakeLibCallOptions |
| This structure is used to pass arguments to makeLibCall function. More... | |
| struct | llvm::TargetLowering::AsmOperandInfo |
| This contains information for each constraint that we are lowering. More... | |
Namespaces | |
| namespace | llvm |
| This is an optimization pass for GlobalISel generic memory operations. | |
| namespace | llvm::Sched |
Macros | |
| #define | DAG_INSTRUCTION(NAME, NARG, ROUND_MODE, INTRINSIC, DAGN) |
| #define | CMP_INSTRUCTION(NAME, NARG, ROUND_MODE, INTRINSIC, DAGN) |
Enumerations | |
| enum | llvm::Sched::Preference : uint8_t { llvm::Sched::None , llvm::Sched::Source , llvm::Sched::RegPressure , llvm::Sched::Hybrid , llvm::Sched::ILP , llvm::Sched::VLIW , llvm::Sched::Fast , llvm::Sched::Linearize , llvm::Sched::Last = Linearize } |
Functions | |
| LLVM_ABI void | llvm::GetReturnInfo (CallingConv::ID CC, Type *ReturnType, AttributeList attr, SmallVectorImpl< ISD::OutputArg > &Outs, const TargetLowering &TLI, const DataLayout &DL) |
| Given an LLVM IR type and return type attributes, compute the return value EVTs and flags, and optionally also the offsets, if the return value is being lowered to memory. | |
This file describes how to lower LLVM code to machine code.
This has two main components:
In addition it has a few other components, like information about FP immediates.
Definition in file TargetLowering.h.
| #define CMP_INSTRUCTION | ( | NAME, | |
| NARG, | |||
| ROUND_MODE, | |||
| INTRINSIC, | |||
| DAGN ) |
| #define DAG_INSTRUCTION | ( | NAME, | |
| NARG, | |||
| ROUND_MODE, | |||
| INTRINSIC, | |||
| DAGN ) |