[cfe-dev] Possible problem with loop-unrolling, templates and optimisation

Friedman, Eli via cfe-dev cfe-dev at lists.llvm.org
Tue Jan 30 10:35:41 PST 2018


On 1/30/2018 6:26 AM, Martin J. O'Riordan via cfe-dev wrote:
>
> Hi CFE-Devs,
>
> I am investigating a number of regressions in my out-of-tree target 
> since I migrated from LLVM v4 to v5.  They have been there a while, 
> but waiting for me to have time to analyse.  In all cases the enabling 
> of the loop-unroller seems to cause the problem.
>
> There are 14 failures are in 
> ‘tests/std/containers/unord/unord[multimap]’ and 1 other 
> ‘tests/src/utilities/exchange/exchange.pass.cpp’.  All appear to be to 
> do with the list constructors and the list iteration.  I can’t see any 
> particular issue with my backend, except that it is for 
> non-interlocked VLIW so scheduling tends to be more sensitive to tiny 
> differences in dependencies than for more traditional targets.
>
> Disabling unrolling, or disabling function inlining seems to fix the 
> problem.
>

I would generally assume this indicates an optimization bug.  (That 
isn't always true; the source code could have undefined behavior. But if 
the test doesn't have any asan or ubsan failures, there isn't any good 
way to track down undefined behavior anyway.)

You probably want to start with https://llvm.org/docs/OptBisect.html.

-Eli

-- 
Employee of Qualcomm Innovation Center, Inc.
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20180130/445ea9a0/attachment.html>


More information about the cfe-dev mailing list