Home | History | Annotate | Download | only in CodeGen

Lines Matching refs:emission

124 /// EmitVarDecl - This method handles emission of any variable declaration
131 // FIXME: We need to force the emission/use of a guard variable for
238 // If constant emission failed, then this should be a C++ static
823 AutoVarEmission emission = EmitAutoVarAlloca(D);
824 EmitAutoVarInit(emission);
825 EmitAutoVarCleanups(emission);
834 AutoVarEmission emission(D);
837 emission.IsByRef = isByRef;
840 emission.Alignment = alignment;
872 emission.Address = nullptr; // signal this condition to later callbacks
873 assert(emission.wasEmittedAsGlobal());
874 return emission;
878 emission.IsConstantAggregate = true;
903 emission.NRVOFlag = NRVOFlag;
926 emission.SizeForLifetimeMarkers = sizeV;
931 assert(!emission.useLifetimeMarkers());
969 emission.Address = DeclPtr;
982 EmitVarAnnotations(&D, emission.Address);
984 return emission;
1051 void CodeGenFunction::EmitAutoVarInit(const AutoVarEmission &emission) {
1052 assert(emission.Variable && "emission was not valid!");
1055 if (emission.wasEmittedAsGlobal()) return;
1057 const VarDecl &D = *emission.Variable;
1071 if (emission.IsByRef)
1072 emitByrefStructureInit(emission);
1077 CharUnits alignment = emission.Alignment;
1082 bool capturedByInit = emission.IsByRef && isCapturedBy(D, Init);
1085 capturedByInit ? emission.Address : emission.getObjectAddress(*this);
1088 if (emission.IsConstantAggregate || D.isConstexpr()) {
1099 if (!emission.IsConstantAggregate) {
1202 const CodeGenFunction::AutoVarEmission &emission,
1208 llvm::Value *addr = emission.getObjectAddress(*this);
1210 const VarDecl *var = emission.Variable;
1221 // If there's an NRVO flag on the emission, we need a different
1223 if (emission.NRVOFlag) {
1227 emission.NRVOFlag);
1258 void CodeGenFunction::EmitAutoVarCleanups(const AutoVarEmission &emission) {
1259 assert(emission.Variable && "emission was not valid!");
1262 if (emission.wasEmittedAsGlobal()) return;
1268 const VarDecl &D = *emission.Variable;
1272 if (emission.useLifetimeMarkers()) {
1274 emission.getAllocatedAddress(),
1275 emission.getSizeForLifetimeMarkers());
1280 emitAutoVarTypeCleanup(emission, dtorKind);
1301 if (emission.IsByRef)
1302 enterByrefCleanup(emission);