Lines Matching full:locations

13 /// This pass propagates variable locations between basic blocks, resolving
44 /// DBG_VALUE instructions specifying those locations. Variable locations may
66 /// because we're determining which machine locations contain which values.
67 /// The "locations" are constant: what's unknown is what value they contain.
139 // Act more like the VarLoc implementation, by propagating some locations too
161 /// Tracker for converting machine value locations and variable values into
162 /// variable locations (the output of LiveDebugValues), recorded as DBG_VALUEs
163 /// specifying block live-in locations and transfers within blocks.
168 /// out variable locations for the live-in variable values (if there _is_ a
170 /// stepped through, transfers of values between machine locations are
182 /// value mapping for all machine locations. TransferTracker only reads
189 /// Record of all changes in variable locations at a block position. Awkwardly
200 /// Stores the resolved operands (machine locations and constants) and
225 /// between TransferTrackers view of variable locations and MLocTrackers. For
366 // entry, ResolvedDbgOps will contain the machine locations/constants for in loadVarInloc()
447 /// values. This method picks variable locations for the live-in variables,
449 /// object fields to track variable locations as we step through the block.
462 // Mapping of the preferred locations for each value. Collected into this in loadInlocs()
466 // Initialized the preferred-location map with illegal locations, to be in loadInlocs()
482 for (auto Location : MTracker->locations()) { in loadInlocs()
530 // Map of values to the locations that store them for every value used by in checkInstForNewValues()
555 for (auto Location : MTracker->locations()) { in checkInstForNewValues()
573 // Using the map of values to locations, produce a final set of values for in checkInstForNewValues()
699 // Ignore non-register locations, we don't transfer those. in redefVar()
799 /// locations that will be terminated: and try to recover them by using
813 /// \p MLoc has changed and the TransferTracker's locations have not been
823 // Examine the remaining variable locations: if we can find the same value in clobberMloc()
826 for (auto Loc : MTracker->locations()) in clobberMloc()
833 // Try and recover a few more locations with entry values. in clobberMloc()
871 // Update machine locations <=> variable locations maps. Defer updating in clobberMloc()
895 // We lazily track what locations have which values; if we've found a new in clobberMloc()
914 // clobbered in the meantime, and our variable locations are stale. in transferMlocs()
1116 for (auto Location : locations()) { in writeRegMask()
1174 for (auto Location : locations()) { in dump()
1182 for (auto Location : locations()) { in dump_mloc_map()
1238 // If all locations are valid, accumulate them into our list of in emitLoc()
1239 // MachineOperands. For any spilled locations, either update the indirectness in emitLoc()
1425 // locations are already solved, and we report this DBG_VALUE and the value in transferDebugValue()
1553 // a stack write: we can't currently express register locations within in getValueForInstrRef()
1674 // Initialized the preferred-location map with illegal locations, to be in transferDebugInstrRef()
1683 for (auto Location : MTracker->locations()) { in transferDebugInstrRef()
1913 // When committing variable values to locations: tell transfer tracker that in transferRegisterDef()
1923 // Look for any clobbers performed by a register mask. Only test locations in transferRegisterDef()
1926 for (auto L : MTracker->locations()) { in transferRegisterDef()
1927 // Stack locations can't be clobbered by regmasks. in transferRegisterDef()
2060 // Un-set this location and clobber, so that earlier locations don't in transferSpillOrRestoreInst()
2168 // For InstrRefBasedImpl, we can track multiple locations per value, so in transferRegisterCopy()
2178 // the locations about to be overwritten, so that we can recover any in transferRegisterCopy()
2199 // alternative locations (or else terminating those variables). in transferRegisterCopy()
2321 // Set all machine locations to a PHI value. For transfer function in produceMLocTransferFunction()
2355 for (auto Location : MTracker->locations()) { in produceMLocTransferFunction()
2377 for (auto Location : MTracker->locations()) { in produceMLocTransferFunction()
2450 // Step through all machine locations, look at each predecessor and test in mlocJoin()
2452 for (auto Location : MTracker->locations()) { in mlocJoin()
2541 for (auto Location : MTracker->locations()) { in placeMLocPHIs()
2602 // For locations with no reg units, just place PHIs. in placeMLocPHIs()
2677 for (auto Location : MTracker->locations()) in buildMLocValueMap()
2743 for (auto Location : MTracker->locations()) { in buildMLocValueMap()
2822 // No-values cannot have locations we can join on. in pickVPHILoc()
2835 // An unjoined PHI has no defined locations, and so a shared location must in pickVPHILoc()
2882 // Collect a set of locations from predecessor where its live-out value can in pickOperandPHILoc()
2895 // Create new empty vector of locations. in pickOperandPHILoc()
2898 // If the live-in value is a def, find the locations where that value is in pickOperandPHILoc()
2915 // locations feed back into themselves. Therefore, add all self-looping in pickOperandPHILoc()
2916 // machine-value PHI locations. in pickOperandPHILoc()
2924 // We should have found locations for all predecessors, or returned. in pickOperandPHILoc()
2927 // Starting with the first set of locations, take the intersection with in pickOperandPHILoc()
2975 // able to join any locations. in vlocJoin()
3071 // VarLoc LiveDebugValues tracks variable locations that are defined in in getBlocksForScope()
3079 // To avoid needlessly dropping large volumes of variable locations, propagate in getBlocksForScope()
3540 // No scopes? No variable locations. in depthFirstVLocAndEmit()
3948 /// Table of live-in machine value numbers for blocks / locations.