[llvm] r269266 - [Layout] Add a new option (NFC)

Xinliang David Li via llvm-commits llvm-commits at lists.llvm.org
Thu May 12 09:46:04 PDT 2016


Fixed.

David

On Thu, May 12, 2016 at 5:32 AM, Teresa Johnson <tejohnson at google.com>
wrote:

>
>
> On Wed, May 11, 2016 at 7:04 PM, Xinliang David Li via llvm-commits <
> llvm-commits at lists.llvm.org> wrote:
>
>> Author: davidxl
>> Date: Wed May 11 21:04:41 2016
>> New Revision: 269266
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=269266&view=rev
>> Log:
>> [Layout] Add a new option (NFC)
>>
>> Currently cost based loop rotation algo can only be turned on with
>> two conditions: the function has real profile data, and
>> -precise-rotation-cost
>> flag is turned on. This is not convenient for developers to experiment
>> when profile is not available. Add a new option to force the new
>> rotation algorithm -force-precise-rotation-cost
>>
>>
>>
>> Modified:
>>     llvm/trunk/lib/CodeGen/MachineBlockPlacement.cpp
>>
>> Modified: llvm/trunk/lib/CodeGen/MachineBlockPlacement.cpp
>> URL:
>> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/MachineBlockPlacement.cpp?rev=269266&r1=269265&r2=269266&view=diff
>>
>> ==============================================================================
>> --- llvm/trunk/lib/CodeGen/MachineBlockPlacement.cpp (original)
>> +++ llvm/trunk/lib/CodeGen/MachineBlockPlacement.cpp Wed May 11 21:04:41
>> 2016
>> @@ -99,6 +99,11 @@ static cl::opt<bool>
>>                          cl::desc("Model the cost of loop rotation more "
>>                                   "precisely by using profile data."),
>>                          cl::init(false), cl::Hidden);
>> +static cl::opt<bool>
>> +    ForcePreciseRotationCost("force-precise-rotation-cost",
>> +                             cl::desc("Model the cost of loop rotation
>> more "
>> +                                      "precisely by using profile
>> data."),
>>
>
> This is the same description as PreciseRotationCost. Is the idea that
> there may be some profile data just not in the entry block? When would that
> happen in practice? If just for experimentation, would another approach be
> to add a profile count to the entry block or is that not feasible?
> Otherwise, maybe change this to something like "Force the modeling of loop
> rotating costs using possibly incomplete profile data"?
>
>
>
>> +                             cl::init(false), cl::Hidden);
>>
>>  static cl::opt<unsigned> MisfetchCost(
>>      "misfetch-cost",
>> @@ -1126,7 +1131,8 @@ void MachineBlockPlacement::buildLoopCha
>>    // this loop by modeling costs more precisely which requires the
>> profile data
>>    // for better layout.
>>    bool RotateLoopWithProfile =
>> -      PreciseRotationCost && F.getFunction()->getEntryCount();
>> +      ForcePreciseRotationCost ||
>> +      (PreciseRotationCost && F.getFunction()->getEntryCount());
>>
>>    // First check to see if there is an obviously preferable top block
>> for the
>>    // loop. This will default to the header, but may end up as one of the
>>
>>
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at lists.llvm.org
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>>
>
>
>
> --
> Teresa Johnson |  Software Engineer |  tejohnson at google.com |
> 408-460-2413
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160512/c3170c35/attachment.html>


More information about the llvm-commits mailing list