LLVM API Documentation
#include "ARMSubtarget.h"
#include "ARMFrameLowering.h"
#include "ARMISelLowering.h"
#include "ARMInstrInfo.h"
#include "ARMSelectionDAGInfo.h"
#include "ARMMachineFunctionInfo.h"
#include "Thumb1FrameLowering.h"
#include "Thumb1InstrInfo.h"
#include "Thumb2InstrInfo.h"
#include "llvm/IR/Attributes.h"
#include "llvm/IR/Function.h"
#include "llvm/IR/GlobalValue.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Target/TargetInstrInfo.h"
#include "llvm/Target/TargetOptions.h"
#include "llvm/Target/TargetRegisterInfo.h"
#include "llvm/CodeGen/MachineRegisterInfo.h"
#include "ARMGenSubtargetInfo.inc"
Go to the source code of this file.
Defines | |
#define | DEBUG_TYPE "arm-subtarget" |
#define | GET_SUBTARGETINFO_TARGET_DESC |
#define | GET_SUBTARGETINFO_CTOR |
Enumerations | |
enum | AlignMode |
enum | ITMode { DefaultIT, RestrictedIT, NoRestrictedIT } |
Functions | |
static cl::opt< AlignMode > | Align (cl::desc("Load/store alignment support"), cl::Hidden, cl::init(DefaultAlign), cl::values(clEnumValN(DefaultAlign,"arm-default-align","Generate unaligned accesses only on hardware/OS ""combinations that are known to support them"), clEnumValN(StrictAlign,"arm-strict-align","Disallow all unaligned memory accesses"), clEnumValN(NoStrictAlign,"arm-no-strict-align","Allow unaligned memory accesses"), clEnumValEnd)) |
static cl::opt< ITMode > | IT (cl::desc("IT block support"), cl::Hidden, cl::init(DefaultIT), cl::ZeroOrMore, cl::values(clEnumValN(DefaultIT,"arm-default-it","Generate IT block based on arch"), clEnumValN(RestrictedIT,"arm-restrict-it","Disallow deprecated IT based on ARMv8"), clEnumValN(NoRestrictedIT,"arm-no-restrict-it","Allow IT blocks based on ARMv7"), clEnumValEnd)) |
static std::string | computeDataLayout (ARMSubtarget &ST) |
Variables | |
static cl::opt< bool > | ReserveR9 ("arm-reserve-r9", cl::Hidden, cl::desc("Reserve R9, making it unavailable as GPR")) |
static cl::opt< bool > | ArmUseMOVT ("arm-use-movt", cl::init(true), cl::Hidden) |
static cl::opt< bool > | UseFusedMulOps ("arm-use-mulops", cl::init(true), cl::Hidden) |
#define DEBUG_TYPE "arm-subtarget" |
Definition at line 35 of file ARMSubtarget.cpp.
#define GET_SUBTARGETINFO_CTOR |
Definition at line 38 of file ARMSubtarget.cpp.
#define GET_SUBTARGETINFO_TARGET_DESC |
Definition at line 37 of file ARMSubtarget.cpp.
enum AlignMode |
Definition at line 53 of file ARMSubtarget.cpp.
enum ITMode |
Definition at line 73 of file ARMSubtarget.cpp.
static cl::opt<AlignMode> Align | ( | cl:: | desc"Load/store alignment support", |
cl::Hidden | , | ||
cl:: | initDefaultAlign, | ||
cl:: | valuesclEnumValN(DefaultAlign,"arm-default-align","Generate unaligned accesses only on hardware/OS ""combinations that are known to support them"), clEnumValN(StrictAlign,"arm-strict-align","Disallow all unaligned memory accesses"), clEnumValN(NoStrictAlign,"arm-no-strict-align","Allow unaligned memory accesses"), clEnumValEnd | ||
) | [static] |
static std::string computeDataLayout | ( | ARMSubtarget & | ST | ) | [static] |
Definition at line 90 of file ARMSubtarget.cpp.
References llvm::DataLayout::getManglingComponent(), llvm::ARMSubtarget::getTargetTriple(), llvm::ARMSubtarget::isAAPCS_ABI(), llvm::ARMSubtarget::isAPCS_ABI(), llvm::ARMSubtarget::isLittle(), llvm::ARMSubtarget::isTargetNaCl(), llvm::ARMSubtarget::isThumb(), and llvm::MipsISD::Ret.
static cl::opt<ITMode> IT | ( | cl:: | desc"IT block support", |
cl::Hidden | , | ||
cl:: | initDefaultIT, | ||
cl::ZeroOrMore | , | ||
cl:: | valuesclEnumValN(DefaultIT,"arm-default-it","Generate IT block based on arch"), clEnumValN(RestrictedIT,"arm-restrict-it","Disallow deprecated IT based on ARMv8"), clEnumValN(NoRestrictedIT,"arm-no-restrict-it","Allow IT blocks based on ARMv7"), clEnumValEnd | ||
) | [static] |
cl::opt<bool> ArmUseMOVT("arm-use-movt", cl::init(true), cl::Hidden) [static] |
cl::opt<bool> ReserveR9("arm-reserve-r9", cl::Hidden, cl::desc("Reserve R9, making it unavailable as GPR")) [static] |
cl::opt<bool> UseFusedMulOps("arm-use-mulops", cl::init(true), cl::Hidden) [static] |