This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
On 04/01/2016 07:26 AM, Christophe Lyon wrote:
On 1 April 2016 at 15:12, Kyrill Tkachov <kyrylo.tkachov@foss.arm.com> wrote:Hi Christophe, Andrey, On 01/04/16 14:09, Christophe Lyon wrote:On 1 April 2016 at 10:54, Andrey Belevantsev <abel@ispras.ru> wrote:Hi Christophe, On 01.04.2016 10:33, Christophe Lyon wrote:On 31 March 2016 at 16:43, Andrey Belevantsev <abel@ispras.ru> wrote:Hello, On 14.03.2016 12:10, Andrey Belevantsev wrote:Hello, In this thread I will be posting the patches for the fixed selective scheduling PRs (except the one that was already kindly checked in by Jeff). The patches were tested both on x86-64 and ia64 with the following combination: 1) the usual bootstrap/regtest, which only utilizes sel-sched on its own tests, made by default to run on arm/ppc/x86-64/ia64; 2) the bootstrap/regtest with the second scheduler forced to sel-sched; 3) both schedulers forced to sel-sched. In all cases everything seemed to be fine. Three of the PRs are regressions, the other two showed different errors across the variety of releases tested by submitters; I think all of them are appropriate at this stage -- they do not touch anything outside of selective scheduling except the first patch where a piece of code from sched-deps.c needs to be refactored into a function to be called from sel-sched.c.I've backported all regression PRs to gcc-5-branch after testing there again with selective scheduling force enabled: PRs 64411, 66660, 69032, 69102. The first one was not marked as a regression as such but the test for PR 70292, which is duplicate, works for me on gcc 5.1 thus making it a regression, too.Hi, The backport for pr69102 shows that the new testcase fails to compile (ICE) when GCC is configured as: --target=arm-none-linux-gnueabihf --with-float=hard --with-mode=arm --with-cpu=cortex-a15 --with-fpu=neon-vfpv4 /aci-gcc-fsf/sources/gcc-fsf/gccsrc/gcc/testsuite/gcc.c-torture/compile/pr69102.c: In function 'foo': /aci-gcc-fsf/sources/gcc-fsf/gccsrc/gcc/testsuite/gcc.c-torture/compile/pr69102.c:21:1: internal compiler error: Segmentation fault 0xa64d15 crash_signal /aci-gcc-fsf/sources/gcc-fsf/gccsrc/gcc/toplev.c:383 0xfa41d7 autopref_multipass_dfa_lookahead_guard(rtx_insn*, int) /aci-gcc-fsf/sources/gcc-fsf/gccsrc/gcc/haifa-sched.c:5752 0xa31cd2 invoke_dfa_lookahead_guard /aci-gcc-fsf/sources/gcc-fsf/gccsrc/gcc/sel-sched.c:4212 0xa31cd2 find_best_expr /aci-gcc-fsf/sources/gcc-fsf/gccsrc/gcc/sel-sched.c:4415 0xa343fb fill_insns /aci-gcc-fsf/sources/gcc-fsf/gccsrc/gcc/sel-sched.c:5570 0xa343fb schedule_on_fences /aci-gcc-fsf/sources/gcc-fsf/gccsrc/gcc/sel-sched.c:7395 0xa36010 sel_sched_region_2 /aci-gcc-fsf/sources/gcc-fsf/gccsrc/gcc/sel-sched.c:7533 0xa36f2a sel_sched_region_1 /aci-gcc-fsf/sources/gcc-fsf/gccsrc/gcc/sel-sched.c:7575 0xa36f2a sel_sched_region(int) /aci-gcc-fsf/sources/gcc-fsf/gccsrc/gcc/sel-sched.c:7676 0xa37589 run_selective_scheduling() /aci-gcc-fsf/sources/gcc-fsf/gccsrc/gcc/sel-sched.c:7752 0xa14aed rest_of_handle_sched2 /aci-gcc-fsf/sources/gcc-fsf/gccsrc/gcc/sched-rgn.c:3647 0xa14aed execute /aci-gcc-fsf/sources/gcc-fsf/gccsrc/gcc/sched-rgn.c:3791 See http://people.linaro.org/~christophe.lyon/cross-validation/gcc/gcc-5-branch/234625/arm-none-linux-gnueabihf/diff-gcc-rh60-arm-none-linux-gnueabihf-arm-cortex-a15-neon-vfpv4.txt Can you have a look?That's because A15 is the only place which enables autopref_multipass_dfa_lookahead_guard as the DFA lookahead guard hook. But autoprefetch modeling doesn't work for selective scheduling, it uses haifa structures that are not kept up to date during sel-sched. So this is not supposed to work as soon as the param value for prefetcher lookahead depth is positive. The following patch works for me. Could you check it with your testing? If it works fine for you, I would install the patch both for trunk and gcc-5. It would be great to force sel-sched to be enabled, too. I could do that but I don't have the hardware or cross-arm target tools at the moment. * haifa-sched.c (autopref_multipass_dfa_lookahead_guard): Disable for selective scheduler.It does work for me, it also fixes the other ICE I reported (on pr69307). But note that both tests pass on trunk.This looks to me like PR rtl-optimization/68236 which I fixed on trunk.You are right: I've just checked that backporting your patch r230088 does fix the problems in the gcc-5 branch. Can I commit it ? I guess the question is for Jakub?
Yes, you can commit it to the branch. jeff
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |