LLVM 22.0.0git
XCoreISelDAGToDAG.cpp File Reference
#include "XCore.h"
#include "XCoreTargetMachine.h"
#include "llvm/CodeGen/MachineFrameInfo.h"
#include "llvm/CodeGen/MachineFunction.h"
#include "llvm/CodeGen/SelectionDAG.h"
#include "llvm/CodeGen/SelectionDAGISel.h"
#include "llvm/CodeGen/TargetLowering.h"
#include "llvm/IR/Constants.h"
#include "llvm/IR/Function.h"
#include "llvm/IR/Intrinsics.h"
#include "llvm/IR/IntrinsicsXCore.h"
#include "llvm/IR/LLVMContext.h"
#include "llvm/Support/ErrorHandling.h"
#include "XCoreGenDAGISel.inc"

Go to the source code of this file.

Macros

#define DEBUG_TYPE   "xcore-isel"
#define PASS_NAME   "XCore DAG->DAG Pattern Instruction Selection"

Functions

static SDValue replaceInChain (SelectionDAG *CurDAG, SDValue Chain, SDValue Old, SDValue New)
 Given a chain return a new chain where any appearance of Old is replaced by New.

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "xcore-isel"

Definition at line 28 of file XCoreISelDAGToDAG.cpp.

◆ PASS_NAME

#define PASS_NAME   "XCore DAG->DAG Pattern Instruction Selection"

Definition at line 29 of file XCoreISelDAGToDAG.cpp.

Function Documentation

◆ replaceInChain()

SDValue replaceInChain ( SelectionDAG * CurDAG,
SDValue Chain,
SDValue Old,
SDValue New )
static

Given a chain return a new chain where any appearance of Old is replaced by New.

There must be at most one instruction between Old and Chain and this instruction must be a TokenFactor. Returns an empty SDValue if these conditions don't hold.

Definition at line 185 of file XCoreISelDAGToDAG.cpp.

References AbstractManglingParser< Derived, Alloc >::Ops, llvm::SelectionDAG::getNode(), llvm::SDNode::getNumOperands(), llvm::SDNode::getOpcode(), llvm::SDNode::getOperand(), SDValue(), and llvm::ISD::TokenFactor.