Hi, all,

It is reported that the nds32 port on trunk cannot perform sibling call
optimization because there are missing "sibcall" and "sibcall_value"
named patterns.  So we define those named patterns to fix the issue.

This patch was committed last week before stage 4:
  https://gcc.gnu.org/r219712


gcc/ChangeLog

2015-01-16  Chung-Ju Wu  <jasonw...@gmail.com>

        * config/nds32/nds32-protos.h (nds32_expand_epilogue): Change
        prototype.
        (nds32_expand_epilogue_v3pop): Likewise.
        * config/nds32/nds32.md (sibcall): Define this for sibling call
        optimization.
        (sibcall_register): Likewise.
        (sibcall_immediate): Likewise.
        (sibcall_value): Likewise.
        (sibcall_value_register): Likewise.
        (sibcall_value_immediate): Likewise.
        (sibcall_epilogue): Likewise.
        (epilogue): Pass false to indicate this is not a sibcall epilogue.
        * config/nds32/nds32.c (nds32_expand_epilogue): Consider sibcall case.
        (nds32_expand_epilogue_v3pop): Likewise.

Best regards,
jasonwucj

Attachment: 0009-Implement-necessary-named-patterns-to-support-siblin.patch
Description: Binary data

Reply via email to