|
LLVM 22.0.0git
|
#include "AArch64.h"#include "AArch64CallingConvention.h"#include "AArch64MachineFunctionInfo.h"#include "AArch64RegisterInfo.h"#include "AArch64Subtarget.h"#include "MCTargetDesc/AArch64AddressingModes.h"#include "Utils/AArch64BaseInfo.h"#include "Utils/AArch64SMEAttributes.h"#include "llvm/ADT/APFloat.h"#include "llvm/ADT/APInt.h"#include "llvm/ADT/DenseMap.h"#include "llvm/ADT/SmallVector.h"#include "llvm/Analysis/BranchProbabilityInfo.h"#include "llvm/CodeGen/CallingConvLower.h"#include "llvm/CodeGen/FastISel.h"#include "llvm/CodeGen/FunctionLoweringInfo.h"#include "llvm/CodeGen/ISDOpcodes.h"#include "llvm/CodeGen/MachineBasicBlock.h"#include "llvm/CodeGen/MachineConstantPool.h"#include "llvm/CodeGen/MachineFrameInfo.h"#include "llvm/CodeGen/MachineInstr.h"#include "llvm/CodeGen/MachineInstrBuilder.h"#include "llvm/CodeGen/MachineMemOperand.h"#include "llvm/CodeGen/MachineRegisterInfo.h"#include "llvm/CodeGen/ValueTypes.h"#include "llvm/CodeGenTypes/MachineValueType.h"#include "llvm/IR/Argument.h"#include "llvm/IR/Attributes.h"#include "llvm/IR/BasicBlock.h"#include "llvm/IR/CallingConv.h"#include "llvm/IR/Constant.h"#include "llvm/IR/Constants.h"#include "llvm/IR/DataLayout.h"#include "llvm/IR/DerivedTypes.h"#include "llvm/IR/Function.h"#include "llvm/IR/GetElementPtrTypeIterator.h"#include "llvm/IR/GlobalValue.h"#include "llvm/IR/InstrTypes.h"#include "llvm/IR/Instruction.h"#include "llvm/IR/Instructions.h"#include "llvm/IR/IntrinsicInst.h"#include "llvm/IR/Intrinsics.h"#include "llvm/IR/IntrinsicsAArch64.h"#include "llvm/IR/Module.h"#include "llvm/IR/Operator.h"#include "llvm/IR/Type.h"#include "llvm/IR/User.h"#include "llvm/IR/Value.h"#include "llvm/MC/MCInstrDesc.h"#include "llvm/MC/MCSymbol.h"#include "llvm/Support/AtomicOrdering.h"#include "llvm/Support/Casting.h"#include "llvm/Support/CodeGen.h"#include "llvm/Support/Compiler.h"#include "llvm/Support/ErrorHandling.h"#include "llvm/Support/MathExtras.h"#include <algorithm>#include <cassert>#include <cstdint>#include <iterator>#include <utility>#include "AArch64GenFastISel.inc"Go to the source code of this file.
Functions | |
| static bool | isIntExtFree (const Instruction *I) |
| Check if the sign-/zero-extend will be a noop. | |
| static unsigned | getImplicitScaleFactor (MVT VT) |
| Determine the implicit scale factor that is applied by a memory operation for a given value type. | |
| static bool | isMulPowOf2 (const Value *I) |
| Check if the multiply is by a power-of-2 constant. | |
| static AArch64CC::CondCode | getCompareCC (CmpInst::Predicate Pred) |
| static bool | isZExtLoad (const MachineInstr *LI) |
| static bool | isSExtLoad (const MachineInstr *LI) |
|
static |
Definition at line 2210 of file AArch64FastISel.cpp.
References llvm::AArch64CC::AL, llvm::AArch64CC::EQ, llvm::CmpInst::FCMP_OEQ, llvm::CmpInst::FCMP_OGE, llvm::CmpInst::FCMP_OGT, llvm::CmpInst::FCMP_OLE, llvm::CmpInst::FCMP_OLT, llvm::CmpInst::FCMP_ONE, llvm::CmpInst::FCMP_ORD, llvm::CmpInst::FCMP_UEQ, llvm::CmpInst::FCMP_UGE, llvm::CmpInst::FCMP_UGT, llvm::CmpInst::FCMP_ULE, llvm::CmpInst::FCMP_ULT, llvm::CmpInst::FCMP_UNE, llvm::CmpInst::FCMP_UNO, llvm::AArch64CC::GE, llvm::AArch64CC::GT, llvm::AArch64CC::HI, llvm::AArch64CC::HS, llvm::CmpInst::ICMP_EQ, llvm::CmpInst::ICMP_NE, llvm::CmpInst::ICMP_SGE, llvm::CmpInst::ICMP_SGT, llvm::CmpInst::ICMP_SLE, llvm::CmpInst::ICMP_SLT, llvm::CmpInst::ICMP_UGE, llvm::CmpInst::ICMP_UGT, llvm::CmpInst::ICMP_ULE, llvm::CmpInst::ICMP_ULT, llvm::AArch64CC::LE, llvm::AArch64CC::LO, llvm::AArch64CC::LS, llvm::AArch64CC::LT, llvm::AArch64CC::MI, llvm::AArch64CC::NE, llvm::AArch64CC::PL, llvm::AArch64CC::VC, and llvm::AArch64CC::VS.
Determine the implicit scale factor that is applied by a memory operation for a given value type.
Definition at line 314 of file AArch64FastISel.cpp.
References llvm::MVT::SimpleTy.
|
static |
Check if the sign-/zero-extend will be a noop.
Definition at line 294 of file AArch64FastISel.cpp.
References assert(), llvm::dyn_cast(), I, and llvm::isa().
Check if the multiply is by a power-of-2 constant.
Definition at line 574 of file AArch64FastISel.cpp.
References llvm::CallingConv::C, llvm::dyn_cast(), I, and MI.
|
static |
Definition at line 4488 of file AArch64FastISel.cpp.
References llvm::MachineInstr::getOpcode().
|
static |
Definition at line 4468 of file AArch64FastISel.cpp.
References llvm::MachineInstr::getOpcode().