Lines Matching full:objects
55 /// of abstract objects on the stack frame.
58 /// objects requested clients. These identifiers are negative integers for
59 /// fixed stack objects (such as arguments passed on the stack) or nonnegative
60 /// for objects that may be reordered. Instructions which refer to stack
61 /// objects use a special MO_FrameIndex operand to represent these frame
69 /// variable sized stack objects, it is safe to decide whether there will be
70 /// any variable sized objects before all stack objects are known (for
72 /// objects).
97 // default, fixed objects are immutable unless marked otherwise.
101 // cannot alias any other memory objects.
120 // Normally, spill slots and fixed-offset objects don't alias IR-accessible
121 // objects, but there are exceptions (on PowerPC, for example, some byval
145 /// lowering. All non-alloca stack objects have their alignment clamped to the
158 /// The list of stack objects allocated.
159 std::vector<StackObject> Objects; variable
161 /// This contains the number of fixed objects contained on
162 /// the stack. Because fixed objects are stored at a negative index in the
163 /// Objects list, this is also the index to the 0th object in the list.
167 /// sized objects have been allocated yet.
187 /// offsets for all of the fixed size objects, updating the Objects list
195 /// SP-relative and FP-relative offsets. E.G., if objects are accessed via
203 /// The prolog/epilog code inserter may process objects that require greater
206 /// needed by the objects on the current frame. If this is greater than the
253 /// PEI should ignore the isPreAllocated flags on the stack objects and
271 /// True if this function contains a tail call. If so immutable objects like
273 /// stack objects like arguments so we can't treat them as immutable.
287 /// Return true if there are any stack objects in this function.
288 bool hasStackObjects() const { return !Objects.empty(); } in hasStackObjects()
292 /// contains any variable sized objects.
333 int getObjectIndexEnd() const { return (int)Objects.size()-NumFixedObjects; } in getObjectIndexEnd()
335 /// Return the number of fixed objects.
338 /// Return the number of objects.
339 unsigned getNumObjects() const { return Objects.size(); } in getNumObjects()
344 Objects[ObjectIndex + NumFixedObjects].PreAllocated = true; in mapLocalFrameObject()
354 /// Return the number of objects allocated into the local object block.
385 assert(unsigned(ObjectIdx+NumFixedObjects) < Objects.size() && in isObjectPreAllocated()
387 return Objects[ObjectIdx+NumFixedObjects].PreAllocated; in isObjectPreAllocated()
392 assert(unsigned(ObjectIdx+NumFixedObjects) < Objects.size() && in getObjectSize()
394 return Objects[ObjectIdx+NumFixedObjects].Size; in getObjectSize()
399 assert(unsigned(ObjectIdx+NumFixedObjects) < Objects.size() && in setObjectSize()
401 Objects[ObjectIdx+NumFixedObjects].Size = Size; in setObjectSize()
406 assert(unsigned(ObjectIdx+NumFixedObjects) < Objects.size() && in getObjectAlignment()
408 return Objects[ObjectIdx+NumFixedObjects].Alignment; in getObjectAlignment()
413 assert(unsigned(ObjectIdx+NumFixedObjects) < Objects.size() && in setObjectAlignment()
415 Objects[ObjectIdx+NumFixedObjects].Alignment = Align; in setObjectAlignment()
422 assert(unsigned(ObjectIdx+NumFixedObjects) < Objects.size() && in getObjectAllocation()
424 return Objects[ObjectIdx+NumFixedObjects].Alloca; in getObjectAllocation()
430 assert(unsigned(ObjectIdx+NumFixedObjects) < Objects.size() && in getObjectOffset()
434 return Objects[ObjectIdx+NumFixedObjects].SPOffset; in getObjectOffset()
438 assert(unsigned(ObjectIdx+NumFixedObjects) < Objects.size() && in isObjectZExt()
440 return Objects[ObjectIdx+NumFixedObjects].isZExt; in isObjectZExt()
444 assert(unsigned(ObjectIdx+NumFixedObjects) < Objects.size() && in setObjectZExt()
446 Objects[ObjectIdx+NumFixedObjects].isZExt = IsZExt; in setObjectZExt()
450 assert(unsigned(ObjectIdx+NumFixedObjects) < Objects.size() && in isObjectSExt()
452 return Objects[ObjectIdx+NumFixedObjects].isSExt; in isObjectSExt()
456 assert(unsigned(ObjectIdx+NumFixedObjects) < Objects.size() && in setObjectSExt()
458 Objects[ObjectIdx+NumFixedObjects].isSExt = IsSExt; in setObjectSExt()
464 assert(unsigned(ObjectIdx+NumFixedObjects) < Objects.size() && in setObjectOffset()
468 Objects[ObjectIdx+NumFixedObjects].SPOffset = SPOffset; in setObjectOffset()
472 /// all of the fixed size frame objects. This is only valid after
539 /// All fixed objects should be created before other objects are created for
540 /// efficiency. By default, fixed objects are not pointed to by LLVM IR
557 assert(unsigned(ObjectIdx+NumFixedObjects) < Objects.size() && in isAliasedObjectIndex()
559 return Objects[ObjectIdx+NumFixedObjects].isAliased; in isAliasedObjectIndex()
568 assert(unsigned(ObjectIdx+NumFixedObjects) < Objects.size() && in isImmutableObjectIndex()
570 return Objects[ObjectIdx+NumFixedObjects].isImmutable; in isImmutableObjectIndex()
575 assert(unsigned(ObjectIdx+NumFixedObjects) < Objects.size() && in isSpillSlotObjectIndex()
577 return Objects[ObjectIdx+NumFixedObjects].isSpillSlot; in isSpillSlotObjectIndex()
581 assert(unsigned(ObjectIdx+NumFixedObjects) < Objects.size() && in isStatepointSpillSlotObjectIndex()
583 return Objects[ObjectIdx+NumFixedObjects].isStatepointSpillSlot; in isStatepointSpillSlotObjectIndex()
588 assert(unsigned(ObjectIdx+NumFixedObjects) < Objects.size() && in isDeadObjectIndex()
590 return Objects[ObjectIdx+NumFixedObjects].Size == ~0ULL; in isDeadObjectIndex()
596 assert(unsigned(ObjectIdx + NumFixedObjects) < Objects.size() && in isVariableSizedObjectIndex()
598 return Objects[ObjectIdx + NumFixedObjects].Size == 0; in isVariableSizedObjectIndex()
602 assert(unsigned(ObjectIdx+NumFixedObjects) < Objects.size() && in markAsStatepointSpillSlotObjectIndex()
604 Objects[ObjectIdx+NumFixedObjects].isStatepointSpillSlot = true; in markAsStatepointSpillSlotObjectIndex()
620 Objects[ObjectIdx+NumFixedObjects].Size = ~0ULL; in RemoveStackObject()
660 /// stack objects. Implemented in MachineFunction.cpp.