LLVM API Documentation
#include "X86.h"#include "X86InstrBuilder.h"#include "X86ISelLowering.h"#include "X86RegisterInfo.h"#include "X86Subtarget.h"#include "X86TargetMachine.h"#include "llvm/GlobalValue.h"#include "llvm/Instructions.h"#include "llvm/Intrinsics.h"#include "llvm/Support/CFG.h"#include "llvm/CodeGen/MachineConstantPool.h"#include "llvm/CodeGen/MachineFunction.h"#include "llvm/CodeGen/MachineFrameInfo.h"#include "llvm/CodeGen/MachineInstrBuilder.h"#include "llvm/CodeGen/SSARegMap.h"#include "llvm/CodeGen/SelectionDAGISel.h"#include "llvm/Target/TargetMachine.h"#include "llvm/Support/Debug.h"#include "llvm/ADT/Statistic.h"#include <iostream>#include <set>#include "X86GenDAGISel.inc"Include dependency graph for X86ISelDAGToDAG.cpp:

Go to the source code of this file.
Defines | |
| #define | DEBUG_TYPE "isel" |
Functions | |
| static void | EmitSpecialCodeForMain (MachineBasicBlock *BB, MachineFrameInfo *MFI) |
| static bool | isRegister0 (SDOperand Op) |
| FunctionPass * | llvm::createX86ISelDag (X86TargetMachine &TM) |
Variables | |
| enum { ... } ::X86ISelAddressMode::@196 | BaseType |
| SDOperand | Reg |
| int | FrameIndex |
| { ... } ::X86ISelAddressMode::@197 | Base |
| unsigned | Scale |
| SDOperand | IndexReg |
| unsigned | Disp |
| GlobalValue * | GV |
| Constant * | CP |
| unsigned | Align |
| Statistic | NumFPKill ("x86-codegen","Number of FP_REG_KILL instructions added") |
| bool | ContainsFPCode |
| X86TargetLowering | X86Lowering |
| const X86Subtarget * | Subtarget |
| unsigned | GlobalBaseReg |
| std::map< SDOperand, SDOperand > | CodeGenMap |
| std::map< SDOperand, SDOperand > | HandleMap |
| std::map< SDOperand, SDOperand > | ReplaceMap |
| unsigned | Indent |
| #define DEBUG_TYPE "isel" |
Definition at line 15 of file X86ISelDAGToDAG.cpp.
| static void EmitSpecialCodeForMain | ( | MachineBasicBlock * | BB, | |
| MachineFrameInfo * | MFI | |||
| ) | [static] |
EmitSpecialCodeForMain - Emit any code that needs to be executed only in the main function.
Definition at line 250 of file X86ISelDAGToDAG.cpp.
References llvm::addFrameReference(), llvm::MachineInstrBuilder::addImm(), BB, llvm::BuildMI(), and llvm::MachineFrameInfo::CreateStackObject().
| static bool isRegister0 | ( | SDOperand | Op | ) | [static] |
| unsigned Align |
Definition at line 63 of file X86ISelDAGToDAG.cpp.
Referenced by llvm::X86SharedAsmPrinter::doFinalization(), llvm::X86RegisterInfo::eliminateCallFramePseudoInstr(), llvm::PPCRegisterInfo::eliminateCallFramePseudoInstr(), llvm::IA64RegisterInfo::eliminateCallFramePseudoInstr(), llvm::AlphaRegisterInfo::eliminateCallFramePseudoInstr(), llvm::X86RegisterInfo::emitPrologue(), llvm::PPCRegisterInfo::emitPrologue(), llvm::IA64RegisterInfo::emitPrologue(), llvm::AlphaRegisterInfo::emitPrologue(), llvm::FunctionLoweringInfo::FunctionLoweringInfo(), GetKnownAlignment(), llvm::TargetData::getTypeAlignment(), llvm::TargetData::getTypeAlignmentShift(), llvm::TargetData::getTypeSize(), llvm::X86TargetLowering::LowerOperation(), llvm::BytecodeReader::ParseInstruction(), llvm::ELFCodeEmitter::startFunction(), llvm::SelectionDAGLowering::visitAlloca(), and llvm::SelectionDAGLowering::visitMemIntrinsic().
| struct { ... } Base |
| enum { ... } BaseType |
Referenced by llvm::ConvertExpressionToType(), and llvm::ExpressionConvertibleToType().
| std::map<SDOperand, SDOperand> CodeGenMap |
Definition at line 131 of file X86ISelDAGToDAG.cpp.
| bool ContainsFPCode |
ContainsFPCode - Every instruction we select that uses or defines a FP register should set this to true.
Definition at line 83 of file X86ISelDAGToDAG.cpp.
Definition at line 62 of file X86ISelDAGToDAG.cpp.
Referenced by CastConstantPacked(), llvm::ConstantFoldCastInstruction(), llvm::ConstantFoldLoadThroughGEPConstantExpr(), llvm::SDNode::dump(), llvm::AsmPrinter::EmitConstantPool(), llvm::AsmPrinter::EmitGlobalConstant(), FindScalarElement(), getAggregateConstantElement(), getValType(), llvm::SelectionDAGLowering::getValue(), llvm::ExecutionEngine::InitializeMemory(), isFloatingPointZero(), llvm::X86TargetLowering::LowerOperation(), llvm::PPCTargetLowering::LowerOperation(), llvm::AlphaTargetLowering::LowerOperation(), llvm::MapValue(), RemapOperand(), and WriteConstantInt().
| unsigned Disp |
Definition at line 60 of file X86ISelDAGToDAG.cpp.
| int FrameIndex |
Definition at line 55 of file X86ISelDAGToDAG.cpp.
| unsigned GlobalBaseReg |
Definition at line 93 of file X86ISelDAGToDAG.cpp.
Definition at line 61 of file X86ISelDAGToDAG.cpp.
Referenced by llvm::DSNode::addGlobal(), llvm::MachineInstrBuilder::addGlobalAddress(), llvm::MachineInstr::addGlobalAddressOperand(), llvm::ExecutionEngine::addGlobalMapping(), AddressIsTaken(), AllUsesOfLoadedValueWillTrapIfNull(), DIVerifyVisitor::Apply(), DISerializeVisitor::Apply(), DIDeserializeVisitor::Apply(), llvm::DSGraph::AssertNodeContainsGlobal(), ByteswapSCANFResults(), CallersAllIgnoreReturnValue(), llvm::CloneModule(), CommitValueTo(), ComputeLoadResult(), ConstantFold(), llvm::ConstantFoldCastInstruction(), llvm::ConvertConstantToIntType(), llvm::ConvertExpressionToType(), createSlotMachine(), DarwinGVRequiresExtraLoad(), llvm::CompileUnitDesc::DebugVersionFromGlobal(), llvm::DIDeserializer::Deserialize(), llvm::ilist_traits< GlobalVariable >::destroySentinel(), llvm::DSGraph::DSGraph(), EliminateUsesOfECGlobals(), llvm::AsmPrinter::EmitAlignment(), llvm::AsmPrinter::EmitConstantValueOnly(), llvm::ExecutionEngine::EmitGlobalVariable(), llvm::AsmPrinter::EmitSpecialLLVMGlobal(), llvm::DSScalarMap::erase(), EvaluateExpression(), llvm::Interpreter::exitCalled(), llvm::DSScalarMap::find(), FindStaticTors(), ForceRenaming(), GetAddressedElementFromGlobal(), llvm::MachineDebugInfo::getAnchoredDescriptors(), getConstantStringLength(), llvm::ExecutionEngine::getConstantValue(), llvm::DbgStopPointInst::getDirectory(), getEncodedLinkage(), llvm::DbgStopPointInst::getFileName(), llvm::ProgramInfo::getFunction(), llvm::SelectionDAG::getGlobalAddress(), getGlobalVariable(), getGlobalVariableClass(), getGlobalVariablesUsing(), GetKnownAlignment(), llvm::DSScalarMap::getLeaderForGlobal(), getModuleFromVal(), getNextStopPoint(), llvm::JIT::getOrEmitGlobalVariable(), llvm::ExecutionEngine::getOrEmitGlobalVariable(), llvm::ExecutionEngine::getPointerToGlobal(), llvm::ExecutionEngine::getPointerToGlobalIfAvailable(), llvm::AsmPrinter::getPreferredAlignmentLog(), llvm::DSScalarMap::getRawEntryRef(), getStringRef(), llvm::Constant::getStringValue(), llvm::SelectionDAG::getTargetGlobalAddress(), getUIntOperand(), getUnderlyingObject(), llvm::SelectionDAGLowering::getValue(), llvm::Mangler::getValueName(), llvm::DSScalarMap::global_count(), GV_to_size_t(), llvm::GVTOP(), llvm::X86TargetLowering::isLegalAddressImmediate(), isSimpleEnoughPointerToCommit(), isStringValue(), lle_i_clock(), lle_X_atexit(), lle_X_atoi(), lle_X_exp(), lle_X_fclose(), lle_X_feof(), lle_X_ferror(), lle_X_fflush(), lle_X_floor(), lle_X_fprintf(), lle_X_fputc(), lle_X_getc(), lle_X_log(), lle_X_pow(), lle_X_printf(), lle_X_puts(), lle_X_rand(), lle_X_scanf(), lle_X_sprintf(), lle_X_sqrt(), lle_X_sscanf(), lle_X_ungetc(), llvm::X86TargetLowering::LowerOperation(), llvm::PPCTargetLowering::LowerOperation(), llvm::AlphaTargetLowering::LowerOperation(), maybeAddInternalValueToVector(), llvm::CachedWriter::operator<<(), llvm::DSScalarMap::operator[](), OptimizeAwayTrappingUsesOfLoads(), OptimizeGlobalAddressOfMalloc(), OptimizeOnceStoredGlobal(), llvm::BytecodeReader::ParseConstantPoolValue(), ParseGlobalCtors(), ParseGlobalVariable(), llvm::BytecodeReader::ParseModule(), llvm::BytecodeReader::ParseModuleGlobalInfo(), llvm::X86IntelAsmPrinter::printOp(), llvm::X86ATTAsmPrinter::printOperand(), ProcessGlobalsWithSameName(), RemoveDeadConstant(), llvm::DSNode::removeGlobal(), llvm::ExecutionEngine::runStaticConstructorsDestructors(), llvm::DISerializer::Serialize(), llvm::GlobalVariableDesc::setGlobalVariable(), llvm::Value::setName(), ShrinkGlobalToBoolean(), llvm::SourceFunctionInfo::SourceFunctionInfo(), SRAGlobal(), llvm::DbgInfoIntrinsic::StripCast(), llvm::AsmPrinter::SwitchSection(), llvm::DebugInfoDesc::TagFromGlobal(), SCCPSolver::TrackValueOfGlobalVariable(), llvm::ExecutionEngine::updateGlobalMapping(), ValueIsOnlyUsedLocallyOrStoredToOneGlobal(), llvm::DIVerifier::Verify(), and llvm::SelectionDAGLowering::visitMemIntrinsic().
Definition at line 134 of file X86ISelDAGToDAG.cpp.
| unsigned Indent |
Definition at line 59 of file X86ISelDAGToDAG.cpp.
Referenced by llvm::X86IntelAsmPrinter::printMemReference(), and llvm::X86ATTAsmPrinter::printMemReference().
Definition at line 54 of file X86ISelDAGToDAG.cpp.
Referenced by llvm::FunctionLoweringInfo::CreateRegForValue(), llvm::ScheduleDAG::EmitNode(), llvm::SelectionDAG::getCopyToReg(), getFPReg(), llvm::RegisterSDNode::getReg(), llvm::SelectionDAG::getRegister(), llvm::SelectionDAGLowering::GetRegistersForValue(), AvailableSpills::ModifyStackSlot(), and llvm::SelectionDAGLowering::visitInlineAsm().
| std::map<SDOperand, SDOperand> ReplaceMap |
Definition at line 137 of file X86ISelDAGToDAG.cpp.
| unsigned Scale |
Definition at line 58 of file X86ISelDAGToDAG.cpp.
Referenced by EmitGEPOffset(), llvm::SCEVMulExpr::get(), and llvm::SelectionDAGLowering::visitGetElementPtr().
| const X86Subtarget* Subtarget |
Subtarget - Keep a pointer to the X86Subtarget around so that we can make the right decision when generating code for different targets.
Definition at line 91 of file X86ISelDAGToDAG.cpp.
X86Lowering - This object fully describes how to lower LLVM code to an X86-specific SelectionDAG.
Definition at line 87 of file X86ISelDAGToDAG.cpp.