Code review comment for lp:~linaro-toolchain-dev/gcc-linaro/neon-shifts-4.7

Revision history for this message
Andrew Stubbs (ams-codesourcery) wrote :

Ok. I've checked what's going on here. This testcase uses several "atomic_*" insns from sync.md.

The insns typically split into about 7 new insns, AFAICS, and none of the patterns in sync.md have a length attribute, so they'll have been counted as only one machine instruction. This is not a problem, presumably, when optimization is enabled because the constant pools are not laid down until the machine reorg pass, which is quite late, and they're very likely to have already split by that stage. Unfortunately, when optimization is not enabled, as in this testcase, the split does not occur until the very last opportunity, and this is after reorg. Therefore, whether the test passes or not is entirely down to chance, and my patch happened to perturb things sufficiently change the result.

The problem are new and were not present in the sources I used to develop the patch, hence why I had trouble reproducing the problem initially.

« Back to merge proposal