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 <algorithm>
#include <cmath>
#include <iostream>
Include dependency graph for DAGCombiner.cpp:
Go to the source code of this file.
Classes | |
struct | ms |
struct | mu |
Defines | |
#define | DEBUG_TYPE "dagcombine" |
Functions | |
static ms | magic32 (int32_t d) |
static mu | magicu32 (uint32_t d) |
static ms | magic64 (int64_t d) |
static mu | magicu64 (uint64_t d) |
static bool | isSetCCEquivalent (SDOperand N, SDOperand &LHS, SDOperand &RHS, SDOperand &CC) |
static bool | isOneUseSetCC (SDOperand N) |
static bool | isCommutativeBinOp (unsigned Opcode) |
Variables | |
Statistic | NodesCombined ("dagcombiner","Number of dag nodes combined") |
SelectionDAG & | DAG |
TargetLowering & | TLI |
bool | AfterLegalize |
std::vector< SDNode * > | WorkList |
#define DEBUG_TYPE "dagcombine" |
Definition at line 32 of file DAGCombiner.cpp.
static bool isCommutativeBinOp | ( | unsigned | Opcode | ) | [static] |
Definition at line 481 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 472 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 448 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().
static ms magic32 | ( | int32_t | d | ) | [static] |
magic - calculate the magic numbers required to codegen an integer sdiv as a sequence of multiply and shifts. Requires that the divisor not be 0, 1, or -1.
Definition at line 285 of file DAGCombiner.cpp.
static ms magic64 | ( | int64_t | d | ) | [static] |
magic - calculate the magic numbers required to codegen an integer sdiv as a sequence of multiply and shifts. Requires that the divisor not be 0, 1, or -1.
Definition at line 365 of file DAGCombiner.cpp.
static mu magicu32 | ( | uint32_t | d | ) | [static] |
magicu - calculate the magic numbers required to codegen an integer udiv as a sequence of multiply, add and shifts. Requires that the divisor not be 0.
Definition at line 324 of file DAGCombiner.cpp.
static mu magicu64 | ( | uint64_t | d | ) | [static] |
magicu - calculate the magic numbers required to codegen an integer udiv as a sequence of multiply, add and shifts. Requires that the divisor not be 0.
Definition at line 404 of file DAGCombiner.cpp.
bool AfterLegalize |
Definition at line 49 of file DAGCombiner.cpp.
Definition at line 47 of file DAGCombiner.cpp.
Referenced by CommuteVectorShuffle(), llvm::createBFS_DAGScheduler(), llvm::createBURRListDAGScheduler(), llvm::createSimpleDAGScheduler(), llvm::createTDListDAGScheduler(), llvm::AlphaTargetLowering::CustomPromoteOperation(), llvm::PPC::get_VSPLTI_elt(), getMemBasePlusOffset(), getMemsetStringVal(), getMemsetValue(), llvm::X86TargetLowering::getReturnAddressFrameIndex(), llvm::SelectionDAGLowering::getRoot(), llvm::X86TargetLowering::LowerArguments(), llvm::TargetLowering::LowerArguments(), llvm::PPCTargetLowering::LowerArguments(), llvm::IA64TargetLowering::LowerArguments(), llvm::AlphaTargetLowering::LowerArguments(), llvm::X86TargetLowering::LowerCallTo(), llvm::PPCTargetLowering::LowerCallTo(), llvm::IA64TargetLowering::LowerCallTo(), llvm::AlphaTargetLowering::LowerCallTo(), llvm::X86TargetLowering::LowerFrameReturnAddress(), llvm::TargetLowering::LowerFrameReturnAddress(), llvm::X86TargetLowering::LowerOperation(), llvm::PPCTargetLowering::LowerOperation(), llvm::IA64TargetLowering::LowerOperation(), llvm::AlphaTargetLowering::LowerOperation(), llvm::PPCTargetLowering::PerformDAGCombine(), llvm::SelectionDAGISel::ScheduleAndEmitDAG(), and llvm::SelectionDAGISel::SelectInlineAsmMemoryOperands().
Statistic NodesCombined("dagcombiner","Number of dag nodes combined") [static] |
Definition at line 48 of file DAGCombiner.cpp.
Referenced by llvm::createLoopStrengthReducePass(), getMemsetStringVal(), llvm::SDNode::getOperationName(), isAllocatableRegister(), isTargetConstant(), MeetsMaxMemopRequirement(), MoveImmediateValues(), and SetValueTypeAction().
Definition at line 52 of file DAGCombiner.cpp.