LLVM  4.0.0
Namespaces | Macros | Functions | Variables
HexagonISelDAGToDAG.cpp File Reference
#include "Hexagon.h"
#include "HexagonISelLowering.h"
#include "HexagonMachineFunctionInfo.h"
#include "HexagonTargetMachine.h"
#include "llvm/CodeGen/FunctionLoweringInfo.h"
#include "llvm/CodeGen/MachineInstrBuilder.h"
#include "llvm/CodeGen/SelectionDAGISel.h"
#include "llvm/IR/Intrinsics.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/Debug.h"
#include "HexagonGenDAGISel.inc"
Include dependency graph for HexagonISelDAGToDAG.cpp:

Go to the source code of this file.

Namespaces

 llvm
 Compute iterated dominance frontiers using a linear time algorithm.
 

Macros

#define DEBUG_TYPE   "hexagon-isel"
 

Functions

FunctionPassllvm::createHexagonISelDag (HexagonTargetMachine &TM, CodeGenOpt::Level OptLevel)
 
static bool doesIntrinsicReturnPredicate (unsigned ID)
 
static bool isOpcodeHandled (const SDNode *N)
 
static unsigned getPowerOf2Factor (SDValue Val)
 
static bool willShiftRightEliminate (SDValue V, unsigned Amount)
 
static bool isTargetConstant (const SDValue &V)
 

Variables

static cl::opt< boolEnableAddressRebalancing ("isel-rebalance-addr", cl::Hidden, cl::init(true), cl::desc("Rebalance address calculation trees to improve ""instruction selection"))
 
static cl::opt< boolRebalanceOnlyForOptimizations ("rebalance-only-opt", cl::Hidden, cl::init(false), cl::desc("Rebalance address tree only if this allows optimizations"))
 
static cl::opt< boolRebalanceOnlyImbalancedTrees ("rebalance-only-imbal", cl::Hidden, cl::init(false), cl::desc("Rebalance address tree only if it is imbalanced"))
 

Macro Definition Documentation

#define DEBUG_TYPE   "hexagon-isel"

Definition at line 26 of file HexagonISelDAGToDAG.cpp.

Function Documentation

static bool doesIntrinsicReturnPredicate ( unsigned  ID)
static

Definition at line 151 of file HexagonISelDAGToDAG.cpp.

static unsigned getPowerOf2Factor ( SDValue  Val)
static
static bool isOpcodeHandled ( const SDNode N)
static
static bool isTargetConstant ( const SDValue V)
static
static bool willShiftRightEliminate ( SDValue  V,
unsigned  Amount 
)
static
Returns
true if V>>Amount will eliminate V's operation on its child

Definition at line 1515 of file HexagonISelDAGToDAG.cpp.

References llvm::SDValue::getConstantOperandVal(), llvm::SDValue::getOpcode(), llvm::SDValue::getOperand(), i, llvm::ISD::MUL, and llvm::ISD::SHL.

Variable Documentation

cl::opt<bool> EnableAddressRebalancing("isel-rebalance-addr", cl::Hidden, cl::init(true), cl::desc("Rebalance address calculation trees to improve ""instruction selection"))
static
cl::opt<bool> RebalanceOnlyForOptimizations("rebalance-only-opt", cl::Hidden, cl::init(false), cl::desc("Rebalance address tree only if this allows optimizations"))
static
cl::opt<bool> RebalanceOnlyImbalancedTrees("rebalance-only-imbal", cl::Hidden, cl::init(false), cl::desc("Rebalance address tree only if it is imbalanced"))
static