LLVM API Documentation
#include "llvm/ADT/Statistic.h"
#include "llvm/CodeGen/SelectionDAG.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/MathExtras.h"
#include "llvm/Target/TargetLowering.h"
#include "llvm/Support/Visibility.h"
#include <algorithm>
#include <cmath>
#include <iostream>
Include dependency graph for DAGCombiner.cpp:
Go to the source code of this file.
Defines | |
#define | DEBUG_TYPE "dagcombine" |
Functions | |
static bool | isSetCCEquivalent (SDOperand N, SDOperand &LHS, SDOperand &RHS, SDOperand &CC) |
static bool | isOneUseSetCC (SDOperand N) |
static bool | isCommutativeBinOp (unsigned Opcode) |
Variables | |
static Statistic | NodesCombined ("dagcombiner","Number of dag nodes combined") |
#define DEBUG_TYPE "dagcombine" |
Definition at line 32 of file DAGCombiner.cpp.
static bool isCommutativeBinOp | ( | unsigned | Opcode | ) | [static] |
Definition at line 314 of file DAGCombiner.cpp.
References llvm::ISD::ADD, llvm::ISD::AND, llvm::ISD::MUL, llvm::ISD::OR, and llvm::ISD::XOR.
Referenced by llvm::SelectionDAG::getNode().
static bool isOneUseSetCC | ( | SDOperand | N | ) | [static] |
Definition at line 305 of file DAGCombiner.cpp.
References llvm::SDNode::hasOneUse(), isSetCCEquivalent(), and llvm::SDOperand::Val.
static bool isSetCCEquivalent | ( | SDOperand | N, | |
SDOperand & | LHS, | |||
SDOperand & | RHS, | |||
SDOperand & | CC | |||
) | [static] |
Definition at line 281 of file DAGCombiner.cpp.
References llvm::ISD::Constant, llvm::SDOperand::getOpcode(), llvm::SDOperand::getOperand(), llvm::ISD::SELECT_CC, and llvm::ISD::SETCC.
Referenced by isOneUseSetCC().
bool AfterLegalize |
Definition at line 51 of file DAGCombiner.cpp.
Definition at line 49 of file DAGCombiner.cpp.
Referenced by BuildIntrinsicOp(), llvm::TargetLowering::BuildSDIV(), BuildSplatI(), llvm::TargetLowering::BuildUDIV(), BuildVSLDOI(), CommuteVectorShuffle(), llvm::createBFS_DAGScheduler(), llvm::createBURRListDAGScheduler(), llvm::createSimpleDAGScheduler(), llvm::createTDListDAGScheduler(), llvm::createTDRRListDAGScheduler(), llvm::AlphaTargetLowering::CustomPromoteOperation(), GeneratePerfectShuffle(), llvm::PPC::get_VSPLTI_elt(), getMemBasePlusOffset(), getMemsetStringVal(), getMemsetValue(), getMOVLMask(), llvm::X86TargetLowering::getReturnAddressFrameIndex(), llvm::SelectionDAGLowering::getRoot(), getShuffleScalarElt(), getShuffleVectorZeroOrUndef(), getUnpackhMask(), getUnpacklMask(), getZeroVector(), isBLACompatibleAddress(), llvm::TargetLowering::LowerArguments(), llvm::IA64TargetLowering::LowerArguments(), LowerBUILD_VECTOR(), LowerBuildVectorv16i8(), LowerBuildVectorv8i16(), LowerCALL(), llvm::TargetLowering::LowerCallTo(), llvm::IA64TargetLowering::LowerCallTo(), llvm::AlphaTargetLowering::LowerCallTo(), LowerConstantPool(), LowerFORMAL_ARGUMENT(), LowerFORMAL_ARGUMENTS(), LowerFP_TO_SINT(), llvm::X86TargetLowering::LowerFrameReturnAddress(), llvm::TargetLowering::LowerFrameReturnAddress(), LowerGlobalAddress(), LowerINTRINSIC_WO_CHAIN(), LowerJumpTable(), LowerMUL(), llvm::X86TargetLowering::LowerOperation(), llvm::PPCTargetLowering::LowerOperation(), llvm::IA64TargetLowering::LowerOperation(), llvm::AlphaTargetLowering::LowerOperation(), LowerRET(), LowerSCALAR_TO_VECTOR(), LowerSELECT_CC(), LowerSETCC(), LowerSHL(), LowerSINT_TO_FP(), LowerSRA(), LowerSRL(), LowerVASTART(), LowerVECTOR_SHUFFLE(), NormalizeMask(), llvm::X86TargetLowering::PerformDAGCombine(), llvm::PPCTargetLowering::PerformDAGCombine(), PerformShuffleCombine(), PromoteSplat(), llvm::SelectionDAGISel::ScheduleAndEmitDAG(), and llvm::SelectionDAGISel::SelectInlineAsmMemoryOperands().
Statistic NodesCombined("dagcombiner","Number of dag nodes combined") [static] |
Definition at line 50 of file DAGCombiner.cpp.
Referenced by llvm::createLoopStrengthReducePass(), getMemsetStringVal(), llvm::SDNode::getOperationName(), isAllocatableRegister(), isTargetConstant(), MeetsMaxMemopRequirement(), MoveImmediateValues(), and SetValueTypeAction().
Definition at line 54 of file DAGCombiner.cpp.