Re: [PATCH 1/2] Enable setting sign and unsigned promoted mode (SPR_SIGNED_AND_UNSIGNED)

2014-07-07 Thread Kugan
On 01/07/14 18:21, Kugan wrote: On 26/06/14 20:12, Jakub Jelinek wrote: On Thu, Jun 26, 2014 at 07:41:22PM +1000, Kugan wrote: 2014-06-26 Kugan Vivekanandarajah kug...@linaro.org * calls.c (precompute_arguments): Use new SUBREG_PROMOTED_SET instead of SUBREG_PROMOTED_UNSIGNED_SET

Re: [PATCH 1/2] Enable setting sign and unsigned promoted mode (SPR_SIGNED_AND_UNSIGNED)

2014-07-07 Thread Jakub Jelinek
On Mon, Jul 07, 2014 at 04:52:39PM +1000, Kugan wrote: Ok with following nit: +/* Checks if RTX of SUBREG_PROMOTED_VAR_P() is promoted for given SIGN. */ +#define SUBREG_CHECK_PROMOTED_SIGN(RTX, SIGN)\ +((SIGN) == SRP_POINTER ? SUBREG_PROMOTED_GET (RTX) == SRP_POINTER\ + :

Re: [PATCH 1/2] Enable setting sign and unsigned promoted mode (SPR_SIGNED_AND_UNSIGNED)

2014-07-01 Thread Kugan
On 26/06/14 20:12, Jakub Jelinek wrote: On Thu, Jun 26, 2014 at 07:41:22PM +1000, Kugan wrote: 2014-06-26 Kugan Vivekanandarajah kug...@linaro.org * calls.c (precompute_arguments): Use new SUBREG_PROMOTED_SET instead of SUBREG_PROMOTED_UNSIGNED_SET Missing full stop. ---

Re: [PATCH 1/2] Enable setting sign and unsigned promoted mode (SPR_SIGNED_AND_UNSIGNED)

2014-07-01 Thread Kugan
On 26/06/14 20:25, Andreas Schwab wrote: Kugan kugan.vivekanandara...@linaro.org writes: @@ -5203,24 +5203,25 @@ store_expr (tree exp, rtx target, int call_param_p, bool nontemporal) == TYPE_PRECISION (TREE_TYPE (exp))) { if (TYPE_UNSIGNED (TREE_TYPE (exp)) -

Re: [PATCH 1/2] Enable setting sign and unsigned promoted mode (SPR_SIGNED_AND_UNSIGNED)

2014-06-26 Thread Kugan
On 26/06/14 15:50, Jakub Jelinek wrote: On Thu, Jun 26, 2014 at 11:06:26AM +1000, Kugan wrote: Since our aim is to perform single bit checks, why don’t we just use this representation internally (i.e. _rtx-unchanging = 1 if SRP_SIGNED and _rtx-volatil = 1 if SRP_UNSIGNED). As for

Re: [PATCH 1/2] Enable setting sign and unsigned promoted mode (SPR_SIGNED_AND_UNSIGNED)

2014-06-26 Thread Jakub Jelinek
On Thu, Jun 26, 2014 at 07:41:22PM +1000, Kugan wrote: 2014-06-26 Kugan Vivekanandarajah kug...@linaro.org * calls.c (precompute_arguments): Use new SUBREG_PROMOTED_SET instead of SUBREG_PROMOTED_UNSIGNED_SET Missing full stop. --- a/gcc/cfgexpand.c +++ b/gcc/cfgexpand.c @@

Re: [PATCH 1/2] Enable setting sign and unsigned promoted mode (SPR_SIGNED_AND_UNSIGNED)

2014-06-26 Thread Andreas Schwab
Kugan kugan.vivekanandara...@linaro.org writes: @@ -5203,24 +5203,25 @@ store_expr (tree exp, rtx target, int call_param_p, bool nontemporal) == TYPE_PRECISION (TREE_TYPE (exp))) { if (TYPE_UNSIGNED (TREE_TYPE (exp)) - != SUBREG_PROMOTED_UNSIGNED_P

Re: [PATCH 1/2] Enable setting sign and unsigned promoted mode (SPR_SIGNED_AND_UNSIGNED)

2014-06-26 Thread Jakub Jelinek
On Thu, Jun 26, 2014 at 12:12:03PM +0200, Jakub Jelinek wrote: @@ -5234,14 +5235,14 @@ store_expr (tree exp, rtx target, int call_param_p, bool nontemporal) if (CONSTANT_P (temp) GET_MODE (temp) == VOIDmode) { temp = convert_modes (GET_MODE (target), TYPE_MODE

Re: [PATCH 1/2] Enable setting sign and unsigned promoted mode (SPR_SIGNED_AND_UNSIGNED)

2014-06-25 Thread Kugan
+const unsigned int SRP_POINTER = -1; +const unsigned int SRP_SIGNED = 0; +const unsigned int SRP_UNSIGNED = 1; +const unsigned int SRP_SIGNED_AND_UNSIGNED = 2; But most importantly, I thought Richard Henderson suggested to use SRP_POINTER 0, SRP_SIGNED 1, SRP_UNSIGNED 2,

Re: [PATCH 1/2] Enable setting sign and unsigned promoted mode (SPR_SIGNED_AND_UNSIGNED)

2014-06-25 Thread Jakub Jelinek
On Wed, Jun 25, 2014 at 05:21:08PM +1000, Kugan wrote: The problem with SRP_POINTER 0, SRP_SIGNED 1, SRP_UNSIGNED 2, SRP_SIGNED_AND_UNSIGNED 3 (as I understand) is that, it will be incompatible with TYPE_UNSIGNED (tree) and defines of POINTER_EXTEND_UNSIGNED values. We will have to then

Re: [PATCH 1/2] Enable setting sign and unsigned promoted mode (SPR_SIGNED_AND_UNSIGNED)

2014-06-25 Thread Kugan
On 26/06/14 11:06, Kugan wrote: On 25/06/14 17:50, Jakub Jelinek wrote: On Wed, Jun 25, 2014 at 05:21:08PM +1000, Kugan wrote: The problem with SRP_POINTER 0, SRP_SIGNED 1, SRP_UNSIGNED 2, SRP_SIGNED_AND_UNSIGNED 3 (as I understand) is that, it will be incompatible with TYPE_UNSIGNED (tree)

[PATCH 1/2] Enable setting sign and unsigned promoted mode (SPR_SIGNED_AND_UNSIGNED)

2014-06-24 Thread Kugan
Changes the the SUBREG flags to be able to set promoted for sign (SRP_SIGNED), unsigned (SRP_UNSIGNED), sign and unsigned (SPR_SIGNED_AND_UNSIGNED) in SUBREG_PROMOTED_VAR_P. Thanks, Kugan gcc/ 2014-06-24 Kugan Vivekanandarajah kug...@linaro.org * gcc/calls.c (precompute_arguments):

Re: [PATCH 1/2] Enable setting sign and unsigned promoted mode (SPR_SIGNED_AND_UNSIGNED)

2014-06-24 Thread Jakub Jelinek
On Tue, Jun 24, 2014 at 09:51:51PM +1000, Kugan wrote: Changes the the SUBREG flags to be able to set promoted for sign (SRP_SIGNED), unsigned (SRP_UNSIGNED), sign and unsigned (SPR_SIGNED_AND_UNSIGNED) in SUBREG_PROMOTED_VAR_P. 2014-06-24 Kugan Vivekanandarajah kug...@linaro.org