[llvm] r256715 - [PGO] Cleanup: Use covmap header definition in the template file

Xinliang David Li via llvm-commits llvm-commits at lists.llvm.org
Mon Jan 4 10:54:11 PST 2016


ok. will update.

David

On Mon, Jan 4, 2016 at 10:33 AM, Vedant Kumar <vsk at apple.com> wrote:
> Hi David,
>
> Please update http://llvm.org/docs/CoverageMappingFormat.html accordingly.
>
> thanks
> vedant
>
>
>> On Jan 3, 2016, at 11:26 AM, Xinliang David Li via llvm-commits <llvm-commits at lists.llvm.org> wrote:
>>
>> Author: davidxl
>> Date: Sun Jan  3 13:26:07 2016
>> New Revision: 256715
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=256715&view=rev
>> Log:
>> [PGO] Cleanup: Use covmap header definition in the template file
>>
>> This is one last remaining instrumentatation related structure
>> that needs to be migrate to use the centralized template
>> definition.  With this change, instrumentation code
>> related to coverage module header will be kept in sync
>> with the coverage mapping reader. The remaining code
>> which makes implicit assumption about covmap control
>> structure layout in the the lowering pass will cleaned
>> up in a different patch. This patch is not intended to
>> have no functional change.
>>
>>
>>
>> Modified:
>>    llvm/trunk/lib/Transforms/Instrumentation/InstrProfiling.cpp
>>
>> Modified: llvm/trunk/lib/Transforms/Instrumentation/InstrProfiling.cpp
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Instrumentation/InstrProfiling.cpp?rev=256715&r1=256714&r2=256715&view=diff
>> ==============================================================================
>> --- llvm/trunk/lib/Transforms/Instrumentation/InstrProfiling.cpp (original)
>> +++ llvm/trunk/lib/Transforms/Instrumentation/InstrProfiling.cpp Sun Jan  3 13:26:07 2016
>> @@ -238,12 +238,12 @@ void InstrProfiling::lowerCoverageData(G
>>   CoverageData->setAlignment(8);
>>
>>   Constant *Init = CoverageData->getInitializer();
>> -  // We're expecting { i32, i32, i32, i32, [n x { i8*, i32, i32 }], [m x i8] }
>> +  // We're expecting { [4 x 32], [n x { i8*, i32, i32 }], [m x i8] }
>>   // for some C. If not, the frontend's given us something broken.
>> -  assert(Init->getNumOperands() == 6 && "bad number of fields in coverage map");
>> -  assert(isa<ConstantArray>(Init->getAggregateElement(4)) &&
>> +  assert(Init->getNumOperands() == 3 && "bad number of fields in coverage map");
>> +  assert(isa<ConstantArray>(Init->getAggregateElement(1)) &&
>>          "invalid function list in coverage map");
>> -  ConstantArray *Records = cast<ConstantArray>(Init->getAggregateElement(4));
>> +  ConstantArray *Records = cast<ConstantArray>(Init->getAggregateElement(1));
>>   for (unsigned I = 0, E = Records->getNumOperands(); I < E; ++I) {
>>     Constant *Record = Records->getOperand(I);
>>     Value *V = const_cast<Value *>(Record->getOperand(0))->stripPointerCasts();
>>
>>
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at lists.llvm.org
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>


More information about the llvm-commits mailing list