Home | History | Annotate | Download | only in CodeGen

Lines Matching defs:emission

107 /// EmitVarDecl - This method handles emission of any variable declaration
216 // If constant emission failed, then this should be a C++ static
755 AutoVarEmission emission = EmitAutoVarAlloca(D);
756 EmitAutoVarInit(emission);
757 EmitAutoVarCleanups(emission);
766 AutoVarEmission emission(D);
769 emission.IsByRef = isByRef;
772 emission.Alignment = alignment;
805 emission.Address = 0; // signal this condition to later callbacks
806 assert(emission.wasEmittedAsGlobal());
807 return emission;
811 emission.IsConstantAggregate = true;
836 emission.NRVOFlag = NRVOFlag;
895 emission.Address = DeclPtr;
908 EmitVarAnnotations(&D, emission.Address);
910 emission;
980 void CodeGenFunction::EmitAutoVarInit(const AutoVarEmission &emission) {
981 assert(emission.Variable && "emission was not valid!");
984 if (emission.wasEmittedAsGlobal()) return;
986 const VarDecl &D = *emission.Variable;
1000 if (emission.IsByRef)
1001 emitByrefStructureInit(emission);
1006 CharUnits alignment = emission.Alignment;
1011 bool capturedByInit = emission.IsByRef && isCapturedBy(D, Init);
1014 capturedByInit ? emission.Address : emission.getObjectAddress(*this);
1017 if (emission.IsConstantAggregate) {
1112 const CodeGenFunction::AutoVarEmission &emission,
1118 llvm::Value *addr = emission.getObjectAddress(*this);
1120 const VarDecl *var = emission.Variable;
1131 // If there's an NRVO flag on the emission, we need a different
1133 if (emission.NRVOFlag) {
1137 emission.NRVOFlag);
1168 void CodeGenFunction::EmitAutoVarCleanups(const AutoVarEmission &emission) {
1169 assert(emission.Variable && "emission was not valid!");
1172 if (emission.wasEmittedAsGlobal()) return;
1178 const VarDecl &D = *emission.Variable;
1182 emitAutoVarTypeCleanup(emission, dtorKind);
1203 if (emission.IsByRef)
1204 enterByrefCleanup(emission);