[llvm] r248354 - Fixed an issue on updating profile data when lowering switch statement.
Cong Hou via llvm-commits
llvm-commits at lists.llvm.org
Tue Sep 22 17:34:35 PDT 2015
I composed a test case but I thought it may be just a duplication of the
one I checked in previously. However, after thinking about it again, I
found it is still different and can reflect the previous bug. I will check
in it soon.
Thank you for pointing it out!
thanks,
Cong
On Tue, Sep 22, 2015 at 5:24 PM, David Blaikie <dblaikie at gmail.com> wrote:
> Test case?
>
> On Tue, Sep 22, 2015 at 5:20 PM, Cong Hou via llvm-commits <
> llvm-commits at lists.llvm.org> wrote:
>
>> Author: conghou
>> Date: Tue Sep 22 19:20:27 2015
>> New Revision: 248354
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=248354&view=rev
>> Log:
>> Fixed an issue on updating profile data when lowering switch statement.
>>
>> Fixed the issue that when there is an edge from the jump table to the
>> default statement, we should check it directly instead of checking if the
>> sibling of the jump table header is a successor of the jump table header,
>> which may not be the default statment but a successor of it.
>>
>>
>> Modified:
>> llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
>>
>> Modified: llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
>> URL:
>> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp?rev=248354&r1=248353&r2=248354&view=diff
>>
>> ==============================================================================
>> --- llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp (original)
>> +++ llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp Tue Sep
>> 22 19:20:27 2015
>> @@ -8146,13 +8146,13 @@ void SelectionDAGBuilder::lowerWorkItem(
>> uint32_t JumpWeight = I->Weight;
>> uint32_t FallthroughWeight = UnhandledWeights;
>>
>> - // If Fallthrough is a target of the jump table, we evenly
>> distribute
>> - // the weight on the edge to Fallthrough to successors of CurMBB.
>> - // Also update the weight on the edge from JumpMBB to
>> Fallthrough.
>> + // If the default statement is a target of the jump table, we
>> evenly
>> + // distribute the default weight to successors of CurMBB. Also
>> update
>> + // the weight on the edge from JumpMBB to Fallthrough.
>> for (MachineBasicBlock::succ_iterator SI = JumpMBB->succ_begin(),
>> SE = JumpMBB->succ_end();
>> SI != SE; ++SI) {
>> - if (*SI == Fallthrough) {
>> + if (*SI == DefaultMBB) {
>> JumpWeight += DefaultWeight / 2;
>> FallthroughWeight -= DefaultWeight / 2;
>> JumpMBB->setSuccWeight(SI, DefaultWeight / 2);
>>
>>
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at lists.llvm.org
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150922/ccbe2c25/attachment.html>
More information about the llvm-commits
mailing list