[llvm-commits] [llvm] r162868 - /llvm/trunk/lib/Transforms/Utils/SimplifyCFG.cpp

Manman Ren mren at apple.com
Fri Sep 7 18:10:51 PDT 2012


Yeah, I got that assertion failure when running PGO on SPEC and didn't find time to look into that yet.

Thanks for fixing it.
Manman



On Sep 7, 2012, at 5:10 PM, Andrew Trick <atrick at apple.com> wrote:

> On Sep 7, 2012, at 4:57 PM, Alastair Murray <alastairmurray42 at gmail.com> wrote:
> 
>> Hi Andrew, Michael,
>> 
>> I believe this change (r162868) introduced an incorrect assert.
>> 
>> Please see the attached one line patch to remove it and associated test case (fails on svn trunk, passes with the assert removed).  I do not have commit access, so if the patch is okay then please commit it.
>> 
>> This assert trigger on 13 benchmarks in projects/test-suite when compiling with profiling data.
>> 
>> The test case was created by first letting bugpoint reduce a version of MultiSource/Applications/SPASS/SPASS which had branch weight metadata set by -profile-metadata-loader.  Then I further reduced it by hand (without a working simplifycfg bugpoint was limited).
>> 
>> I think the key to triggering the assert is to have partial weight metadata.  If the second branch in the test case is given metadata (even all 0 weights) then the assert does not trigger.  The metadata is missing due to an earlier pass not preserving it, but that is valid behaviour (though sub-optimal).
> 
> Committed r163437. Thanks for the test case!
> 
> Michael, since you've already created unit tests, it would be nice to have them checked into preserve-branchweights.ll too!
> 
> -Andy
> 
>> Regards,
>> Alastair.
>> 
>> On 29/08/12 17:46, Andrew Trick wrote:
>>> Author: atrick
>>> Date: Wed Aug 29 16:46:38 2012
>>> New Revision: 162868
>>> 
>>> URL: http://llvm.org/viewvc/llvm-project?rev=162868&view=rev
>>> Log:
>>> Preserve branch profile metadata during switch formation.
>>> 
>>> Patch by Michael Ilseman!
>>> This fixes SimplifyCFGOpt::FoldValueComparisonIntoPredecessors to preserve metata when folding conditional branches into switches.
>>> *snip*
>> 
>> <simplify_cfg_weights_fix.patch>
> 
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits




More information about the llvm-commits mailing list