Home | History | Annotate | Download | only in CodeGen

Lines Matching defs: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;
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(); }
292 /// contains any variable sized objects.
333 int getObjectIndexEnd() const { return (int)Objects.size()-NumFixedObjects; }
335 /// Return the number of fixed objects.
338 /// Return the number of objects.
339 unsigned getNumObjects() const { return Objects.size(); }
344 Objects[ObjectIndex + NumFixedObjects].PreAllocated = true;
354 /// Return the number of objects allocated into the local object block.
385 assert(unsigned(ObjectIdx+NumFixedObjects) < Objects.size() &&
387 return Objects[ObjectIdx+NumFixedObjects].PreAllocated;
392 Objects.size() &&
394 return Objects[ObjectIdx+NumFixedObjects].Size;
399 assert(unsigned(ObjectIdx+NumFixedObjects) < Objects.size() &&
401 Objects[ObjectIdx+NumFixedObjects].Size = Size;
406 assert(unsigned(ObjectIdx+NumFixedObjects) < Objects.size() &&
408 return Objects[ObjectIdx+NumFixedObjects].Alignment;
413 assert(unsigned(ObjectIdx+NumFixedObjects) < Objects.size() &&
415 Objects[ObjectIdx+NumFixedObjects].Alignment = Align;
422 assert(unsigned(ObjectIdx+NumFixedObjects) < Objects.size() &&
424 return Objects[ObjectIdx+NumFixedObjects].Alloca;
430 assert(unsigned(ObjectIdx+NumFixedObjects) < Objects.size() &&
434 return Objects[ObjectIdx+NumFixedObjects].SPOffset;
438 assert(unsigned(ObjectIdx+NumFixedObjects) < Objects.size() &&
440 return Objects[ObjectIdx+NumFixedObjects].isZExt;
444 assert(unsigned(ObjectIdx+NumFixedObjects) < Objects.size() &&
446 Objects[ObjectIdx+NumFixedObjects].isZExt = IsZExt;
450 assert(unsigned(ObjectIdx+NumFixedObjects) < Objects.size() &&
452 return Objects[ObjectIdx+NumFixedObjects].isSExt;
456 assert(unsigned(ObjectIdx+NumFixedObjects) < Objects.size() &&
458 Objects[ObjectIdx+NumFixedObjects].isSExt = IsSExt;
464 assert(unsigned(ObjectIdx+NumFixedObjects) < Objects.size() &&
468 Objects[ObjectIdx+NumFixedObjects].SPOffset = SPOffset;
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() &&
559 return Objects[ObjectIdx+NumFixedObjects].isAliased;
568 assert(unsigned(ObjectIdx+NumFixedObjects) < Objects.size() &&
570 return Objects[ObjectIdx+NumFixedObjects].isImmutable;
575 assert(unsigned(ObjectIdx+NumFixedObjects) < Objects.size() &&
577 return Objects[ObjectIdx+NumFixedObjects].isSpillSlot;
581 assert(unsigned(ObjectIdx+NumFixedObjects) < Objects.size() &&
583 return Objects[ObjectIdx+NumFixedObjects].isStatepointSpillSlot;
588 assert(unsigned(ObjectIdx+NumFixedObjects) < Objects.size() &&
590 return Objects[ObjectIdx+NumFixedObjects].Size == ~0ULL;
596 assert(unsigned(ObjectIdx + NumFixedObjects) < Objects.size() &&
598 return Objects[ObjectIdx + NumFixedObjects].Size == 0;
602 assert(unsigned(ObjectIdx+NumFixedObjects) < Objects.size() &&
604 Objects[ObjectIdx+NumFixedObjects].isStatepointSpillSlot = true;
620 Objects[ObjectIdx+NumFixedObjects].Size = ~0ULL;
660 /// stack objects. Implemented in MachineFunction.cpp.