LLVM API Documentation

Defines | Enumerations | Functions | Variables
ARMSubtarget.cpp File Reference
#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"
Include dependency graph for ARMSubtarget.cpp:

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< AlignModeAlign (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< ITModeIT (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< boolReserveR9 ("arm-reserve-r9", cl::Hidden, cl::desc("Reserve R9, making it unavailable as GPR"))
static cl::opt< boolArmUseMOVT ("arm-use-movt", cl::init(true), cl::Hidden)
static cl::opt< boolUseFusedMulOps ("arm-use-mulops", cl::init(true), cl::Hidden)

Define Documentation

#define DEBUG_TYPE   "arm-subtarget"

Definition at line 35 of file ARMSubtarget.cpp.

Definition at line 38 of file ARMSubtarget.cpp.

Definition at line 37 of file ARMSubtarget.cpp.


Enumeration Type Documentation

enum AlignMode

Definition at line 53 of file ARMSubtarget.cpp.

enum ITMode
Enumerator:
DefaultIT 
RestrictedIT 
NoRestrictedIT 

Definition at line 73 of file ARMSubtarget.cpp.


Function Documentation

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]
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]

Variable Documentation

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]