LLVM
8.0.1
|
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/STLExtras.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/Analysis/LegacyDivergenceAnalysis.h"
#include "llvm/CodeGen/DAGCombine.h"
#include "llvm/CodeGen/ISDOpcodes.h"
#include "llvm/CodeGen/RuntimeLibcalls.h"
#include "llvm/CodeGen/SelectionDAG.h"
#include "llvm/CodeGen/SelectionDAGNodes.h"
#include "llvm/CodeGen/TargetCallingConv.h"
#include "llvm/CodeGen/ValueTypes.h"
#include "llvm/IR/Attributes.h"
#include "llvm/IR/CallSite.h"
#include "llvm/IR/CallingConv.h"
#include "llvm/IR/DataLayout.h"
#include "llvm/IR/DerivedTypes.h"
#include "llvm/IR/Function.h"
#include "llvm/IR/IRBuilder.h"
#include "llvm/IR/InlineAsm.h"
#include "llvm/IR/Instruction.h"
#include "llvm/IR/Instructions.h"
#include "llvm/IR/Type.h"
#include "llvm/MC/MCRegisterInfo.h"
#include "llvm/Support/AtomicOrdering.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/MachineValueType.h"
#include "llvm/Target/TargetMachine.h"
#include <algorithm>
#include <cassert>
#include <climits>
#include <cstdint>
#include <iterator>
#include <map>
#include <string>
#include <utility>
#include <vector>
Go to the source code of this file.
Classes | |
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 |
class | llvm::TargetLoweringBase::ValueTypeActionImpl |
struct | llvm::TargetLoweringBase::IntrinsicInfo |
struct | llvm::TargetLoweringBase::AddrMode |
This represents an addressing mode of: BaseGV + BaseOffs + BaseReg + Scale*ScaleReg 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::CallLoweringInfo |
This structure contains all information that is necessary for lowering calls. More... | |
struct | llvm::TargetLowering::AsmOperandInfo |
This contains information for each constraint that we are lowering. More... | |
Namespaces | |
llvm | |
This class represents lattice values for constants. | |
llvm::Sched | |
Enumerations | |
enum | llvm::Sched::Preference { llvm::Sched::None, llvm::Sched::Source, llvm::Sched::RegPressure, llvm::Sched::Hybrid, llvm::Sched::ILP, llvm::Sched::VLIW } |
Functions | |
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. More... | |
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.