r241218 - InstrProf: Pack the coverage mapping structs that we write out

Justin Bogner mail at justinbogner.com
Thu Jul 2 13:47:57 PDT 2015


"Duncan P. N. Exon Smith" <dexonsmith at apple.com> writes:
>> On 2015-Jul-01, at 17:42, Justin Bogner <mail at justinbogner.com> wrote:
>> 
>> Author: bogner
>> Date: Wed Jul  1 19:42:32 2015
>> New Revision: 241218
>> 
>> URL: http://llvm.org/viewvc/llvm-project?rev=241218&view=rev
>> Log:
>> InstrProf: Pack the coverage mapping structs that we write out
>> 
>> When we read this data we treat it as unaligned and packed, so we
>> should really be explicit about that when we write it.
>> 
>> Modified:
>>    cfe/trunk/lib/CodeGen/CoverageMappingGen.cpp
>>    cfe/trunk/test/CoverageMapping/ir.c
>> 
>> Modified: cfe/trunk/lib/CodeGen/CoverageMappingGen.cpp
>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CoverageMappingGen.cpp?rev=241218&r1=241217&r2=241218&view=diff
>> ==============================================================================
>> --- cfe/trunk/lib/CodeGen/CoverageMappingGen.cpp (original)
>> +++ cfe/trunk/lib/CodeGen/CoverageMappingGen.cpp Wed Jul  1 19:42:32 2015
>> @@ -932,7 +932,7 @@ void CoverageMappingModuleGen::addFuncti
>>   if (!FunctionRecordTy) {
>>     llvm::Type *FunctionRecordTypes[] = {Int8PtrTy, Int32Ty, Int32Ty, Int64Ty};
>>     FunctionRecordTy =
>> -        llvm::StructType::get(Ctx, makeArrayRef(FunctionRecordTypes));
>> +        llvm::StructType::get(Ctx, makeArrayRef(FunctionRecordTypes), true);
>
> Does this mean it's packed?  (Can you add a comment?)

Yes. r241296.

>>   }
>> 
>>   llvm::Constant *FunctionRecordVals[] = {
>> 
>> Modified: cfe/trunk/test/CoverageMapping/ir.c
>> URL:
>> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CoverageMapping/ir.c?rev=241218&r1=241217&r2=241218&view=diff
>> ==============================================================================
>> --- cfe/trunk/test/CoverageMapping/ir.c (original)
>> +++ cfe/trunk/test/CoverageMapping/ir.c Wed Jul  1 19:42:32 2015
>> @@ -9,4 +9,4 @@ int main(void) {
>>   return 0;
>> }
>> 
>> -// CHECK: @__llvm_coverage_mapping = internal constant { i32, i32,
>> i32, i32, [2 x { i8*, i32, i32, i64 }], [{{[0-9]+}} x i8] } { i32 2,
>> i32 {{[0-9]+}}, i32 {{[0-9]+}}, i32 0, [2 x { i8*, i32, i32, i64 }]
>> [{ i8*, i32, i32, i64 } { i8* getelementptr inbounds ([3 x i8], [3 x
>> i8]* @__llvm_profile_name_foo, i32 0, i32 0), i32 3, i32 9, i64
>> {{[0-9]+}} }, { i8*, i32, i32, i64 } { i8* getelementptr inbounds
>> ([4 x i8], [4 x i8]* @__llvm_profile_name_main, i32 0, i32 0), i32
>> 4, i32 9, i64 {{[0-9]+}} }]
>> +// CHECK: @__llvm_coverage_mapping = internal constant { i32, i32,
>> i32, i32, [2 x <{ i8*, i32, i32, i64 }>], [{{[0-9]+}} x i8] } { i32
>> 2, i32 {{[0-9]+}}, i32 {{[0-9]+}}, i32 0, [2 x <{ i8*, i32, i32, i64
>> }>] [<{ i8*, i32, i32, i64 }> <{ i8* getelementptr inbounds ([3 x
>> i8], [3 x i8]* @__llvm_profile_name_foo, i32 0, i32 0), i32 3, i32
>> 9, i64 {{[0-9]+}} }>, <{ i8*, i32, i32, i64 }> <{ i8* getelementptr
>> inbounds ([4 x i8], [4 x i8]* @__llvm_profile_name_main, i32 0, i32
>> 0), i32 4, i32 9, i64 {{[0-9]+}} }>]
>> 
>> 
>> _______________________________________________
>> cfe-commits mailing list
>> cfe-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits



More information about the cfe-commits mailing list