Lines Matching full:glue
165 static bool AddGlue(SDNode *N, SDValue Glue, bool AddGlue, SelectionDAG *DAG) { in AddGlue() argument
166 SDNode *GlueDestNode = Glue.getNode(); in AddGlue()
168 // Don't add glue from a node to itself. in AddGlue()
171 // Don't add a glue operand to something that already uses glue. in AddGlue()
173 N->getOperand(N->getNumOperands()-1).getValueType() == MVT::Glue) { in AddGlue()
176 // Don't add glue to something that already has a glue value. in AddGlue()
177 if (N->getValueType(N->getNumValues() - 1) == MVT::Glue) return false; in AddGlue()
181 VTs.push_back(MVT::Glue); in AddGlue()
183 CloneNodeWithValues(N, DAG, VTs, Glue); in AddGlue()
191 assert((N->getValueType(N->getNumValues() - 1) == MVT::Glue && in RemoveUnusedGlue()
193 "expected an unused glue value"); in RemoveUnusedGlue()
201 /// offsets are not far apart (target specific), it add MVT::Glue inputs and
214 // added glue may introduce a cycle. in ClusterNeighboringLoads()
290 // Cluster loads by adding MVT::Glue outputs and inputs. This also in ClusterNeighboringLoads()
300 // If AddGlue fails, we could leave an unsused glue value. This should not in ClusterNeighboringLoads()
370 // nodes. Nodes can have at most one glue input and one glue output. Glue in BuildSchedUnits()
376 N->getOperand(N->getNumOperands()-1).getValueType() == MVT::Glue) { in BuildSchedUnits()
386 while (N->getValueType(N->getNumValues()-1) == MVT::Glue) { in BuildSchedUnits()
389 // There are either zero or one users of the Glue result. in BuildSchedUnits()
413 // If there are glue operands involved, N is now the bottom-most node in BuildSchedUnits()
487 assert(OpVT != MVT::Glue && "Glued nodes should be in same sunit!"); in AddSchedEdges()