LLVM API Documentation
#include "ARM.h"
#include "ARMBaseInstrInfo.h"
#include "ARMTargetMachine.h"
#include "MCTargetDesc/ARMAddressingModes.h"
#include "llvm/CodeGen/MachineFrameInfo.h"
#include "llvm/CodeGen/MachineFunction.h"
#include "llvm/CodeGen/MachineInstrBuilder.h"
#include "llvm/CodeGen/MachineRegisterInfo.h"
#include "llvm/CodeGen/SelectionDAG.h"
#include "llvm/CodeGen/SelectionDAGISel.h"
#include "llvm/IR/CallingConv.h"
#include "llvm/IR/Constants.h"
#include "llvm/IR/DerivedTypes.h"
#include "llvm/IR/Function.h"
#include "llvm/IR/Intrinsics.h"
#include "llvm/IR/LLVMContext.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/Compiler.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Target/TargetLowering.h"
#include "llvm/Target/TargetOptions.h"
#include "ARMGenDAGISel.inc"
Go to the source code of this file.
Defines | |
#define | DEBUG_TYPE "arm-isel" |
Enumerations | |
enum | AddrMode2Type |
Functions | |
static bool | isInt32Immediate (SDNode *N, unsigned &Imm) |
static bool | isInt32Immediate (SDValue N, unsigned &Imm) |
static bool | isOpcWithIntImmediate (SDNode *N, unsigned Opc, unsigned &Imm) |
static bool | isScaledConstantInRange (SDValue Node, int Scale, int RangeMin, int RangeMax, int &ScaledConstant) |
Check whether a particular node is a constant value representable as (N * Scale) where (N in [RangeMin , RangeMax ). | |
static SDValue | getAL (SelectionDAG *CurDAG) |
getAL - Returns a ARMCC::AL immediate node. | |
static bool | isVLDfixed (unsigned Opc) |
static bool | isVSTfixed (unsigned Opc) |
static unsigned | getVLDSTRegisterUpdateOpcode (unsigned Opc) |
Variables | |
static cl::opt< bool > | DisableShifterOp ("disable-shifter-op", cl::Hidden, cl::desc("Disable isel of shifter-op"), cl::init(false)) |
static cl::opt< bool > | CheckVMLxHazard ("check-vmlx-hazard", cl::Hidden, cl::desc("Check fp vmla / vmls hazard at isel time"), cl::init(true)) |
#define DEBUG_TYPE "arm-isel" |
Definition at line 39 of file ARMISelDAGToDAG.cpp.
enum AddrMode2Type |
Definition at line 57 of file ARMISelDAGToDAG.cpp.
static SDValue getAL | ( | SelectionDAG * | CurDAG | ) | [inline, static] |
getAL - Returns a ARMCC::AL immediate node.
Definition at line 1438 of file ARMISelDAGToDAG.cpp.
References llvm::ARMCC::AL, llvm::SelectionDAG::getTargetConstant(), and llvm::MVT::i32.
static unsigned getVLDSTRegisterUpdateOpcode | ( | unsigned | Opc | ) | [static] |
Definition at line 1722 of file ARMISelDAGToDAG.cpp.
References isVLDfixed(), and isVSTfixed().
static bool isInt32Immediate | ( | SDNode * | N, |
unsigned & | Imm | ||
) | [static] |
isInt32Immediate - This method tests to see if the node is a 32-bit constant operand. If so Imm will receive the 32-bit value.
Definition at line 281 of file ARMISelDAGToDAG.cpp.
References llvm::ISD::Constant, llvm::SDNode::getOpcode(), llvm::SDNode::getValueType(), and llvm::MVT::i32.
Referenced by isInt32Immediate(), and isOpcWithIntImmediate().
static bool isInt32Immediate | ( | SDValue | N, |
unsigned & | Imm | ||
) | [static] |
Definition at line 291 of file ARMISelDAGToDAG.cpp.
References llvm::SDValue::getNode(), and isInt32Immediate().
static bool isOpcWithIntImmediate | ( | SDNode * | N, |
unsigned | Opc, | ||
unsigned & | Imm | ||
) | [static] |
Definition at line 298 of file ARMISelDAGToDAG.cpp.
References llvm::SDValue::getNode(), llvm::SDNode::getOpcode(), llvm::SDNode::getOperand(), and isInt32Immediate().
static bool isScaledConstantInRange | ( | SDValue | Node, |
int | Scale, | ||
int | RangeMin, | ||
int | RangeMax, | ||
int & | ScaledConstant | ||
) | [static] |
Check whether a particular node is a constant value representable as (N * Scale) where (N in [RangeMin
, RangeMax
).
ScaledConstant | [out] - On success, the pre-scaled constant value. |
Definition at line 307 of file ARMISelDAGToDAG.cpp.
References llvm::CallingConv::C, llvm::dyn_cast(), llvm::ConstantSDNode::getZExtValue(), and Node.
static bool isVLDfixed | ( | unsigned | Opc | ) | [static] |
Definition at line 1670 of file ARMISelDAGToDAG.cpp.
Referenced by getVLDSTRegisterUpdateOpcode().
static bool isVSTfixed | ( | unsigned | Opc | ) | [static] |
Definition at line 1697 of file ARMISelDAGToDAG.cpp.
Referenced by getVLDSTRegisterUpdateOpcode().
cl::opt<bool> CheckVMLxHazard("check-vmlx-hazard", cl::Hidden, cl::desc("Check fp vmla / vmls hazard at isel time"), cl::init(true)) [static] |
cl::opt<bool> DisableShifterOp("disable-shifter-op", cl::Hidden, cl::desc("Disable isel of shifter-op"), cl::init(false)) [static] |