This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
RE: [PATCH, MIPS] Compact branch support for MIPS32R6/MIPS64R6
- From: "Moore, Catherine" <Catherine_Moore at mentor dot com>
- To: Matthew Fortune <Matthew dot Fortune at imgtec dot com>, "'gcc-patches at gcc dot gnu dot org' (gcc-patches at gcc dot gnu dot org)" <gcc-patches at gcc dot gnu dot org>
- Date: Fri, 21 Aug 2015 20:24:12 +0000
- Subject: RE: [PATCH, MIPS] Compact branch support for MIPS32R6/MIPS64R6
- Authentication-results: sourceware.org; auth=none
- References: <6D39441BF12EF246A7ABCE6654B02353211F2232 at LEMAIL01 dot le dot imgtec dot org> <FD3DCEAC5B03E9408544A1E416F112420192C94C41 at NA-MBX-04 dot mgc dot mentorg dot com> <6D39441BF12EF246A7ABCE6654B023532122F2E0 at LEMAIL01 dot le dot imgtec dot org>
Hi Matthew:
> -----Original Message-----
> From: Matthew Fortune [mailto:Matthew.Fortune@imgtec.com]
> Sent: Monday, August 17, 2015 6:47 PM
> To: Moore, Catherine; 'gcc-patches@gcc.gnu.org' (gcc-patches@gcc.gnu.org)
> Subject: RE: [PATCH, MIPS] Compact branch support for MIPS32R6/MIPS64R6
>
One comment on the updated patch:
> diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index
> 27be317..d7d9586 100644
> --- a/gcc/doc/invoke.texi
> +++ b/gcc/doc/invoke.texi
> @@ -781,6 +781,7 @@ Objective-C and Objective-C++ Dialects}.
> -mgp32 -mgp64 -mfp32 -mfpxx -mfp64 -mhard-float -msoft-float @gol -
> mno-float -msingle-float -mdouble-float @gol -modd-spreg -mno-odd-
> spreg @gol
> +-mcompact-branches=@var{policy} @gol
> -mabs=@var{mode} -mnan=@var{encoding} @gol -mdsp -mno-dsp -
> mdspr2 -mno-dspr2 @gol -mmcu -mmno-mcu @gol @@ -17387,6 +17388,27
> @@ for the o32 ABI. This is the default for processors that are known to
> support these registers. When using the o32 FPXX ABI, @option{-mno-odd-
> spreg} is set by default.
>
> +@item -mcompact-branches=never
> +@itemx -mcompact-branches=optimal
> +@itemx -mcompact-branches=always
> +@opindex mcompact-branches=never
> +@opindex mcompact-branches=optimal
> +@opindex mcompact-branches=always
> +These options control which form of branches will be generated. The
> +default is @option{-mcompact-branches=optimal}.
> +
> +The @option{-mcompact-branches=never} option
Change:
ensures that no compact branch instructions are generated.
> +
To:
ensures that compact branch instructions will never be generated.
> +The @option{-mcompact-branches=always} option
Change:
ensures that only compact branch instructions are used unless there is only a delay slot form of a branch.
To:
ensures that a compact branch instruction will be generated if available. If a compact branch instruction is not available, a delay slot form of the branch will be used instead.
This option is supported from MIPS Release 6 onwards.
> +The @option{-mcompact-branches=optimal} option
Change:
will use delay slot
> +branches if available in the current ISA and the delay slot filler
> +successfully fills a delay slot. Otherwise, a compact branch will be
> +used if available.
> +
To:
Will cause a delay slot branch to be used if one is available in the current ISA and the delay slot is successfully filled.
If the delay slot is not filled, a compact branch will be chosen if one is available.
Thanks,
Catherine