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.
Before I go digging deeper, has anybody else come across issues with the loop-unroller and these tests in their targets using the v5.0.0 sources?
I am emailing CFE rather than LLVM, because on the surface it looks like an IR emission issue from CLang, but I won’t know for sure until I start digging deeper. If it transpires that it is not CLang, I will start a new conversation on LLVM-Dev.