Lines Matching defs:emission
125 /// EmitVarDecl - This method handles emission of any variable declaration
132 // FIXME: We need to force the emission/use of a guard variable for
281 // If constant emission failed, then this should be a C++ static
862 AutoVarEmission emission = EmitAutoVarAlloca(D);
863 EmitAutoVarInit(emission);
864 EmitAutoVarCleanups(emission);
873 AutoVarEmission emission(D);
876 emission.IsByRef = isByRef;
879 emission.Alignment = alignment;
911 emission.Address = nullptr; // signal this condition to later callbacks
912 assert(emission.wasEmittedAsGlobal());
913 return emission;
917 emission.IsConstantAggregate = true;
942 emission.NRVOFlag = NRVOFlag;
965 emission.SizeForLifetimeMarkers = sizeV;
970 assert(!emission.useLifetimeMarkers());
1008 emission.Address = DeclPtr;
1021 EmitVarAnnotations(&D, emission.Address);
1023 return emission;
1090 void CodeGenFunction::EmitAutoVarInit(const AutoVarEmission &emission) {
1091 assert(emission.Variable && "emission was not valid!");
1094 if (emission.wasEmittedAsGlobal()) return;
1096 const VarDecl &D = *emission.Variable;
1111 if (emission.IsByRef)
1112 emitByrefStructureInit(emission);
1117 CharUnits alignment = emission.Alignment;
1122 bool capturedByInit = emission.IsByRef && isCapturedBy(D, Init);
1125 capturedByInit ? emission.Address : emission.getObjectAddress(*this);
1128 if (emission.IsConstantAggregate || D.isConstexpr()) {
1139 if (!emission.IsConstantAggregate) {
1240 const CodeGenFunction::AutoVarEmission &emission,
1246 llvm::Value *addr = emission.getObjectAddress(*this);
1248 const VarDecl *var = emission.Variable;
1259 // If there's an NRVO flag on the emission, we need a different
1261 if (emission.NRVOFlag) {
1265 emission.NRVOFlag);
1296 void CodeGenFunction::EmitAutoVarCleanups(const AutoVarEmission &emission) {
1297 assert(emission.Variable && "emission was not valid!");
1300 if (emission.wasEmittedAsGlobal()) return;
1306 const VarDecl &D = *emission.Variable;
1310 if (emission.useLifetimeMarkers()) {
1312 emission.getAllocatedAddress(),
1313 emission.getSizeForLifetimeMarkers());
1318 emitAutoVarTypeCleanup(emission, dtorKind);
1339 if (emission.IsByRef)
1340 enterByrefCleanup(emission);