Home | History | Annotate | Download | only in CodeGen

Lines Matching defs:vla

967 /// \param sizeInChars - the total size of the VLA, in chars
981 llvm::Value *begin = Builder.CreateBitCast(dest, i8p, "vla.begin");
982 llvm::Value *end = Builder.CreateInBoundsGEP(dest, sizeInChars, "vla.end");
985 llvm::BasicBlock *loopBB = CGF.createBasicBlock("vla-init.loop");
986 llvm::BasicBlock *contBB = CGF.createBasicBlock("vla-init.cont");
988 // Make a loop over the VLA. C99 guarantees that the VLA element
992 llvm::PHINode *cur = Builder.CreatePHI(i8p, 2, "vla.cur");
1001 llvm::Value *next = Builder.CreateConstInBoundsGEP1_32(cur, 1, "vla.next");
1003 // Leave if that's the end of the VLA.
1004 llvm::Value *done = Builder.CreateICmpEQ(next, end, "vla-init.isdone");
1035 const VariableArrayType *vla;
1039 // But note that getTypeInfo returns 0 for a VLA.
1051 vla = vlaType;
1057 vla = 0;
1065 // For a VLA, emit a single element, then splat that over the VLA.
1066 if (vla) Ty = getContext().getBaseElementType(vla);
1078 if (vla) return emitNonZeroVLAInit(*this, Ty, DestPtr, SrcPtr, SizeVal);
1126 // If it's a VLA, we have to load the stored size. Note that
1127 // this is the size of the VLA in bytes, not its size in elements.
1133 // which has type T* where T is the first non-VLA element type.
1138 // If we only have VLA components, 'addr' requires no adjustment.
1146 // inside the VLA.
1204 // If we had any VLA dimensions, factor them in.
1213 const VariableArrayType *vla = getContext().getAsVariableArrayType(type);
1214 assert(vla && "type was not a variable array type!");
1215 return getVLASize(vla);
1227 assert(vlaSize && "no size for VLA!");
1248 // We're going to walk down into the type and look for VLA