1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-19 11:02:59 +02:00

Add ops() method to SDNode that returns an ArrayRef<SDUse>. Use it to simplify some code.

llvm-svn: 211993
This commit is contained in:
Craig Topper 2014-06-29 00:40:57 +00:00
parent bd93e82ca8
commit 4c15d35f50
4 changed files with 10 additions and 12 deletions

View File

@ -593,6 +593,7 @@ public:
typedef SDUse* op_iterator;
op_iterator op_begin() const { return OperandList; }
op_iterator op_end() const { return OperandList+NumOperands; }
ArrayRef<SDUse> ops() const { return makeArrayRef(op_begin(), op_end()); }
SDVTList getVTList() const {
SDVTList X = { ValueList, NumValues };

View File

@ -557,7 +557,7 @@ static void AddNodeIDNode(FoldingSetNodeID &ID, const SDNode *N) {
// Add the return value info.
AddNodeIDValueTypes(ID, N->getVTList());
// Add the operand info.
AddNodeIDOperands(ID, makeArrayRef(N->op_begin(), N->op_end()));
AddNodeIDOperands(ID, N->ops());
// Handle SDNode leafs with special info.
AddNodeIDCustom(ID, N);

View File

@ -7337,10 +7337,9 @@ static bool findConsecutiveLoad(LoadSDNode *LD, SelectionDAG &DAG) {
if (!Visited.count(ChainLD->getChain().getNode()))
Queue.push_back(ChainLD->getChain().getNode());
} else if (ChainNext->getOpcode() == ISD::TokenFactor) {
for (SDNode::op_iterator O = ChainNext->op_begin(),
OE = ChainNext->op_end(); O != OE; ++O)
if (!Visited.count(O->getNode()))
Queue.push_back(O->getNode());
for (const SDUse &O : ChainNext->ops())
if (!Visited.count(O.getNode()))
Queue.push_back(O.getNode());
} else
LoadRoots.insert(ChainNext);
}
@ -8236,12 +8235,11 @@ SDValue PPCTargetLowering::PerformDAGCombine(SDNode *N,
++UI;
SmallVector<SDValue, 8> Ops;
for (SDNode::op_iterator O = User->op_begin(),
OE = User->op_end(); O != OE; ++O) {
if (*O == Use)
for (const SDUse &O : User->ops()) {
if (O == Use)
Ops.push_back(To);
else
Ops.push_back(*O);
Ops.push_back(O);
}
DAG.UpdateNodeOperands(User, Ops);

View File

@ -2178,9 +2178,8 @@ SDNode *R600TargetLowering::PostISelFolding(MachineSDNode *Node,
SDValue FakeOp;
std::vector<SDValue> Ops;
for(SDNode::op_iterator I = Node->op_begin(), E = Node->op_end();
I != E; ++I)
Ops.push_back(*I);
for (const SDUse &I : Node->ops())
Ops.push_back(I);
if (Opcode == AMDGPU::DOT_4) {
int OperandIdx[] = {