Home | History | Annotate | Download | only in SelectionDAG

Lines Matching defs:To

70 STATISTIC(NumDAGIselRetries,"Number of times dag isel has to try another path");
73 "Number of entry blocks where fast isel failed to lower arguments");
176 "fails to lower an instruction: 0 disable the abort, 1 will "
179 "to SelectionDAG."));
193 cl::desc("Pop up a window to show dags before the first "
197 cl::desc("Pop up a window to show dags before legalize types"));
200 cl::desc("Pop up a window to show dags before legalize"));
203 cl::desc("Pop up a window to show dags before the second "
207 cl::desc("Pop up a window to show dags before the post legalize types"
211 cl::desc("Pop up a window to show isel dags as they are selected"));
214 cl::desc("Pop up a window to show sched dags as they are processed"));
217 cl::desc("Pop up a window to show SUnit dags after they are processed"));
252 /// \brief This class is used by SelectionDAGISel to temporarily override
301 // Try first to see if the Target has its own way of selecting a scheduler
324 // instructions are special in various ways, which require special support to
326 // basic blocks, and this method is called to expand it into a sequence of
328 // When new basic blocks are inserted and the edges from MBB to its successors
387 /// may trap on it. In this case we have to split the edge so that the path
388 /// through the predecessor block that doesn't go to the phi block doesn't
400 // For each block with a PHI node, check to see if any of the input values
402 // the only potentially trapping value that can occur as the argument to a
409 // The only case we have to worry about is when the edge is critical.
411 // edges: check to see if the pred has multiple successors.
416 // Okay, we have to split this edge.
439 // it wants to look at it.
441 // Reset OptLevel to None for optnone functions.
504 // If the first basic block in the function has live ins that need to be
521 // Insert DBG_VALUE instructions for function arguments to the entry block.
540 // If Reg is live-in then update debug info to track its copy in a vreg.
553 "Expected inlined-at fields to agree");
554 // Def is never a terminator here, so it is ok to increment InsertPos.
575 // declared, rather than whatever is attached to CopyUseMI.
603 // Determine if there is a call to setjmp in the machine function.
613 unsigned To = I->second;
614 // If To is also scheduled to be replaced, find what its ultimate
617 DenseMap<unsigned, unsigned>::iterator J = FuncInfo->RegFixups.find(To);
619 To = J->second;
623 TargetRegisterInfo::isVirtualRegister(To))
624 MRI.constrainRegClass(To, MRI.getRegClass(From));
629 // We need to conservatively clear the kill flags as a kill on the old
631 if (!MRI.use_empty(To))
633 MRI.replaceRegWith(From, To);
659 // Make sure the root of the DAG is up-to-date.
684 // Otherwise, add all chain operands to the worklist.
833 // Third, instruction select all of the operations to machine code, adding the
834 // code to the MachineBasicBlock.
856 // Emit machine code to BB. This can change 'BB' to the last block being
862 // FuncInfo->InsertPt is passed by reference and set to the end of the
867 // If the block was split, make sure we update any references that are used to
884 /// ISelUpdater - helper class to handle updates of the instruction selection
914 // Create a dummy node (which is not added to allnodes), that adds
915 // a reference to the root node, preventing it from being deleted,
931 // Skip dead nodes. DAGCombiner is expected to eliminate all dead nodes,
933 // makes it theoretically possible to disable the DAGCombiner.
939 // FIXME: This is pretty gross. 'Select' should be changed to not return
989 // Get or create the virtual register to hold the pointer or code. Mark
1005 // Add a label to mark the beginning of the landing pad. Deletion of the
1009 // Assign the call site to the landing pad's begin label.
1029 /// Return false if it needs to be emitted.
1043 // will not add up to what is reported by NumFastIselFailures.
1212 // Fast isel failed to lower these arguments
1225 to emit subsequent instructions
1248 // Try to select the instruction with FastISel.
1254 // Try to fold the load if so.
1301 // We also need to delete any previously emitted instructions.
1380 // Sometimes DBG_VALUE MI sneak in between the copies from the vregs to the
1382 // of our mbb. We want to include said debug info in our terminator
1418 /// Find the split point at which to splice the end of BB into its success stack
1421 /// On many platforms, due to ABI constraints, terminators, even before register
1455 DEBUG(dbgs() << "Total amount of phi nodes to update: "
1478 // Find the split point to split the parent mbb. At the same time copy all
1481 // point. This prevents us needing to deal with Live-ins and many other
1492 // Add compare/jump on neq/jump to the parent BB.
1518 // Set the current basic block to the mbb we wish to insert the code into
1531 // Set the current basic block to the mbb we wish to insert the code into
1536 // If all cases cover a contiguous range, it is not necessary to jump to
1570 // This is "default" BB. We have two jumps to it. From "header" BB and
1588 // If the JumpTable record is filled in, then we need to emit a jump table.
1589 // Updating the PHI nodes is tricky in this case, since we need to determine
1594 // Set the current basic block to the mbb we wish to insert the code into
1605 // Set the current basic block to the mbb we wish to insert the code into
1635 // Set the current basic block to the mbb we wish to
1657 // occur multiple times in PHINodesToUpdate. We have to be very careful to
1697 // Calls to these methods are generated by tblgen.
1699 /// CheckAndMask - The isel is trying to match something like (and X, 255). If
1700 /// the dag combiner simplified the 255, we still want to match. RHS is the
1722 // TODO: check to see if missing bits are just not demanded.
1728 /// CheckOrMask - The isel is trying to match something like (or X, 255). If
1729 /// the dag combiner simplified the 255, we still want to match. RHS is the
1752 // If all the missing bits in the or are already known to be set, match!
1756 // TODO: check to see if missing bits are just not demanded.
1762 /// SelectInlineAsmMemoryOperands - Calls to this are automatically generated
1791 // We need the constraint ID from the operand this is tied to.
1800 // Otherwise, this is a memory operand. Ask the target to select it.
1808 // Add this to the output node.
1841 // The NodeID's are given uniques ID's where a node ID is guaranteed to be
1842 // greater than all of its (recursive) operands. If we scan to a point where
1847 // happen because we scan down to newly selected nodes in the case of glue
1877 /// IsProfitableToFold - Returns true if it's profitable to fold the specific
1906 // * indicates nodes to be folded together.
1909 // will be "glued" together with its glue use in the scheduler, we need to
1934 // If the node has glue, walk down the graph to the "lowest" node in the
2021 /// interior glue and chain results to use the new glue and chain results.
2104 /// The walk we do here is guaranteed to be small because we quickly get down to
2133 // If their node ID got reset to -1 then they've already been selected.
2167 // If we found a TokenFactor, there are two cases to consider: first if the
2169 // uses of the TF are in our pattern) we just want to ignore it. Second,
2189 // To distinguish these two cases, do a recursive walk down the uses.
2196 // If the uses of the TokenFactor lead to nodes that are not part of our
2205 // is now going to be considered part of the pattern so that we rewrite its
2208 // inputs as inputs to the ultimate TokenFactor we create.
2221 /// must determine if this is a valid thing to cover (i.e. matching it won't
2229 // in between chained nodes to the chained and interior nodes list.
2241 // Add the input chain of this node to the InputChains list (which will be
2255 // If we have a token factor, we want to add all inputs of the token factor
2274 // It is possible we're using MorphNodeTo to replace a node with no
2277 // In this case we need to shift the operands down.
2291 // Call the underlying SelectionDAG routine to do the transmogrification. Note
2297 // updates the node in place to have the requested operands.
2299 // If we updated the node in place, reset the node ID. To the isel,
2457 /// scope, evaluate the current node. If the current predicate is known to
2459 /// known to pass, set Result=false and return the MatcherIndex to continue
2461 /// MatcherIndex to continue with.
2536 /// FailIndex - If this match fails, this is the index to continue with.
2555 /// \\brief A DAG update listener to keep the matching state
2556 /// (i.e. RecordedNodes and MatchScope) uptodate if the target is allowed to
2571 // Some early-returns here to avoid the search if we deleted the node or
2573 // do, so it's unnecessary to update matching state at that point).
2579 // run this code. You'd have to have a CSE during complex pattern
2643 // indicates where to continue checking.
2671 // Determine where to start the interpreter. Normally we start at opcode #0,
2673 // accelerate the first lookup (which is guaranteed to be hot) with the
2681 DEBUG(dbgs() << " Initial Opcode index to " << MatcherIndex << "\n");
2695 // Get the opcode, add the index to the table.
2718 // then evaluate the first child. However, pushing a scope only to have
2748 DEBUG(dbgs() << " Skipped scope entry (due to false predicate) at "
2753 // Otherwise, we know that this case of the Scope is guaranteed to fail,
2754 // move to the next case.
2758 // If the whole scope failed to match, bail.
2761 // Push a MatchScope which indicates where to go if the first child fails
2762 // to match.
2897 << " to " << MatcherIndex << "\n");
2929 << "] from " << SwitchStart << " to " << MatcherIndex<<'\n');
2977 // Check to see that the target thinks this is profitable to fold and that
3021 // Convert from IMM/FPIMM to target version.
3065 break; // Failed to merge.
3073 // chains. We want to token factor all of the input chains to these nodes
3076 // Ignore these because the newly token factored chain should not refer to
3107 break; // Failed to merge.
3180 // If there are variadic operands to add, handle them now.
3182 // Determine the start index to copy from.
3207 // add the results to the RecordedNodes list.
3211 // Add all the non-glue/non-chain results to the RecordedNodes list.
3316 // created. Patch up references to the matched dag to use the newly
3331 "Invalid number of results to complete!");
3341 // If the root node defines glue, add it to the glue nodes to update list.
3353 // above. We should fix this to not return an SDNode* anymore.
3359 // another child to try in the current 'Scope', otherwise pop it until we
3360 // find a case to check.
3369 // Restore the interpreter state back to the point where the scope was
3390 // Check to see what the offset is at the new MatcherIndex. If it is zero
3392 // in the current scope to try.
3397 // If we have another child in this scope to match, update FailIndex and