LLVM API Documentation

SelectionDAG.cpp File Reference

#include "llvm/CodeGen/SelectionDAG.h"
#include "llvm/Constants.h"
#include "llvm/GlobalValue.h"
#include "llvm/Intrinsics.h"
#include "llvm/Assembly/Writer.h"
#include "llvm/CodeGen/MachineBasicBlock.h"
#include "llvm/Support/MathExtras.h"
#include "llvm/Target/MRegisterInfo.h"
#include "llvm/Target/TargetLowering.h"
#include "llvm/Target/TargetInstrInfo.h"
#include "llvm/Target/TargetMachine.h"
#include "llvm/ADT/SetVector.h"
#include "llvm/ADT/StringExtras.h"
#include <iostream>
#include <set>
#include <cmath>
#include <algorithm>

Include dependency graph for SelectionDAG.cpp:

Go to the source code of this file.

Functions

static bool isCommutativeBinOp (unsigned Opcode)
static bool isInvertibleForFree (SDOperand N)
static int isSignedOp (ISD::CondCode Opcode)
static void DumpNodes (const SDNode *N, unsigned indent, const SelectionDAG *G)


Function Documentation

static void DumpNodes ( const SDNode N,
unsigned  indent,
const SelectionDAG G 
) [static]

Definition at line 3065 of file SelectionDAG.cpp.

References llvm::SDNode::dump(), G, llvm::SDNode::getNumOperands(), llvm::SDNode::getOperand(), llvm::SDNode::hasOneUse(), and llvm::SDOperand::Val.

Referenced by llvm::SelectionDAG::dump().

static bool isCommutativeBinOp ( unsigned  Opcode  )  [static]

Definition at line 33 of file SelectionDAG.cpp.

References ADD, AND, llvm::ISD::FADD, llvm::ISD::FMUL, MUL, llvm::ISD::MULHS, llvm::ISD::MULHU, OR, and XOR.

static bool isInvertibleForFree ( SDOperand  N  )  [static]

Definition at line 50 of file SelectionDAG.cpp.

References llvm::SDNode::getOpcode(), llvm::SDNode::hasOneUse(), llvm::X86ISD::SETCC, and llvm::SDOperand::Val.

static int isSignedOp ( ISD::CondCode  Opcode  )  [static]

isSignedOp - For an integer comparison, return 1 if the comparison is a signed operation and 2 if the result is an unsigned comparison. Return zero if the operation does not depend on the sign of the input (setne and seteq).

Definition at line 189 of file SelectionDAG.cpp.

References llvm::ISD::SETEQ, llvm::ISD::SETGE, llvm::ISD::SETGT, llvm::ISD::SETLE, llvm::ISD::SETLT, llvm::ISD::SETNE, llvm::ISD::SETUGE, llvm::ISD::SETUGT, llvm::ISD::SETULE, and llvm::ISD::SETULT.

Referenced by llvm::ISD::getSetCCAndOperation(), and llvm::ISD::getSetCCOrOperation().