Lines Matching full:emission
123 /// EmitVarDecl - This method handles emission of any variable declaration
135 // FIXME: We need to force the emission/use of a guard variable for
234 // If constant emission failed, then this should be a C++ static
818 AutoVarEmission emission = EmitAutoVarAlloca(D);
819 EmitAutoVarInit(emission);
820 EmitAutoVarCleanups(emission);
829 AutoVarEmission emission(D);
832 emission.IsByRef = isByRef;
835 emission.Alignment = alignment;
867 emission.Address = 0; // signal this condition to later callbacks
868 assert(emission.wasEmittedAsGlobal());
869 return emission;
873 emission.IsConstantAggregate = true;
898 emission.NRVOFlag = NRVOFlag;
921 emission.SizeForLifetimeMarkers = sizeV;
926 assert(!emission.useLifetimeMarkers());
964 emission.Address = DeclPtr;
977 EmitVarAnnotations(&D, emission.Address);
979 return emission;
1049 void CodeGenFunction::EmitAutoVarInit(const AutoVarEmission &emission) {
1050 assert(emission.Variable && "emission was not valid!");
1053 if (emission.wasEmittedAsGlobal()) return;
1055 const VarDecl &D = *emission.Variable;
1069 if (emission.IsByRef)
1070 emitByrefStructureInit(emission);
1075 CharUnits alignment = emission.Alignment;
1080 bool capturedByInit = emission.IsByRef && isCapturedBy(D, Init);
1083 capturedByInit ? emission.Address : emission.getObjectAddress(*this);
1086 if (emission.IsConstantAggregate || D.isConstexpr()) {
1097 if (!emission.IsConstantAggregate) {
1200 const CodeGenFunction::AutoVarEmission &emission,
1206 llvm::Value *addr = emission.getObjectAddress(*this);
1208 const VarDecl *var = emission.Variable;
1219 // If there's an NRVO flag on the emission, we need a different
1221 if (emission.NRVOFlag) {
1225 emission.NRVOFlag);
1256 void CodeGenFunction::EmitAutoVarCleanups(const AutoVarEmission &emission) {
1257 assert(emission.Variable && "emission was not valid!");
1260 if (emission.wasEmittedAsGlobal()) return;
1266 const VarDecl &D = *emission.Variable;
1270 if (emission.useLifetimeMarkers()) {
1272 emission.getAllocatedAddress(),
1273 emission.getSizeForLifetimeMarkers());
1278 emitAutoVarTypeCleanup(emission, dtorKind);
1299 if (emission.IsByRef)
1300 enterByrefCleanup(emission);