Home | History | Annotate | Download | only in CodeGen

Lines Matching defs:To

12 // which represent the possible lifetime of stack slots. It attempts to
16 // TODO: In the future we plan to improve stack coloring in the following ways:
67 /// zone. This can happen when the user returns a reference to a local
68 /// data-structure. We can detect these cases and decide not to optimize the
69 /// code. If this flag is enabled, we try to save the user.
77 STATISTIC(StackSpaceSaved, "Number of bytes saved due to merging slots.");
110 /// Maps serial numbers to basic blocks.
112 /// Maps basic blocks to a serial number.
124 /// The list of lifetime markers found. These markers are to be removed
159 /// slots to use the joint slots.
163 /// markers. This can happen due to a bug in the compiler or due to a bug in
164 /// user code (for example, returning a reference to a local variable).
170 /// Map entries which point to other entries to their destination.
229 // Scan the function to find all lifetime markers.
230 // NOTE: We use a reverse-post-order iteration to ensure that we obtain a
235 // Assign a serial number to this basic block.
239 // Keep a reference to avoid repeated lookups.
269 // specially when computing the LiveIntervals to avoid pessimizing
285 // Perform a standard reverse dataflow computation to solve for
286 // global liveness. The BEGIN set here is equivalent to KILL in the standard
287 // formulation, and END is equivalent to GEN. The result of this computation
288 // is a map from blocks to bitvectors where the bitvectors represent which
303 // Use an iterator to avoid repeated lookups.
311 // Forward propagation from begins to ends.
321 // Reverse propagation from ends to begins.
334 // After adopting the live bits, we need to turn-off the bits which
343 // Want to enable the LIVE_IN and LIVE_OUT of slots that have both
407 // Create the interval of the blocks that we previously found to be 'alive'.
460 // Remap debug information that refers to stack slots.
472 // Keep a list of *allocas* which need to be remapped.
476 const AllocaInst *To = MFI->getObjectAllocation(SI.second);
477 assert(To && From && "Invalid allocation object");
478 Allocas[From] = To;
480 // AA might be used later for instruction scheduling, and we need it to be
481 // able to deduce the correct aliasing releationships between pointers
484 // somehow, is to directly update the IR to reflect the change being made
486 Instruction *Inst = const_cast<AllocaInst *>(To);
487 if (From->getType() != To->getType()) {
493 // Allow the stack protector to adjust its value map to account for the
495 SP->adjustForColoring(From, To);
503 // Remap all instructions to the new stack slots.
511 // Update the MachineMemOperand to use the new alloca.
513 // FIXME: In order to enable the use of TBAA when using AA in CodeGen,
514 // we'll also need to update the TBAA nodes in MMOs with values
515 // derived from the merged allocas. When doing this, we'll need to use
521 // need to replace direct uses here.
627 // As long as our target is mapped to something else, follow it.
656 // If there are no stack slots then there are no markers to remove.
679 // stack is too small, or we are told not to optimize the slots.
681 DEBUG(dbgs()<<"Will not try to merge slots.\n");
703 // Maps old slots to new slots.
720 // Sort the slots according to their size. Place unused slots at the end.
721 // Use stable sort to guarantee deterministic code generation.
724 // We use -1 to denote a uninteresting slot. Place these slots at the end.
727 // Sort according to size.
779 // indices to use the remapped frame index.