Re: [PATCH] Revert a hunk from r261322 (PR lto/88876).

2019-02-04 Thread Martin Liška
On 1/25/19 7:59 PM, Jan Hubicka wrote:
>> Hi.
>>
>> The patch puts back ::get_create for a node that can be seen first time.
>> It's due to -O0 optimize attribute. It was unable to write properly
>> LTO test-case for it.
>>
>> Patch can bootstrap on x86_64-linux-gnu and survives regression tests.
>>
>> Ready to be installed?
>> Thanks,
>> Martin
>>
>> gcc/ChangeLog:
>>
>> 2019-01-18  Martin Liska  
>>
>>  PR lto/88876
>>  * ipa-pure-const.c (propagate_pure_const): Revert hunk as
>>  we need default values of funct_state for a function that
>>  is not optimized.
> 
> I think you want to test if y enables pure_const prior calling get
> becuase get_create will just create empty info that will likely have
> IPA_CONST (which is 0) and not IPA_NEITHER.

No, it creates proper state:

  funct_state_d (): pure_const_state (IPA_NEITHER),
state_previously_known (IPA_NEITHER), looping_previously_known (true),
looping (true), can_throw (true), can_free (true),
malloc_state (STATE_MALLOC_BOTTOM) {}

Note that working with funct_state_d fields is quite complex and if you
want to not call get_create, then I would leave the patch to you :)

Martin

There are multiple copies
> of this code in other propagators and I think they all needs to check if
> the pass is enabled for particular symbol and if not resort to
> propagating nothing.
> 
> Honza
>> ---
>>  gcc/ipa-pure-const.c | 3 ++-
>>  1 file changed, 2 insertions(+), 1 deletion(-)
>>
>>
> 
>> diff --git a/gcc/ipa-pure-const.c b/gcc/ipa-pure-const.c
>> index 8227eed29bc..b8fd08c0a7e 100644
>> --- a/gcc/ipa-pure-const.c
>> +++ b/gcc/ipa-pure-const.c
>> @@ -1498,7 +1498,8 @@ propagate_pure_const (void)
>>  }
>>if (avail > AVAIL_INTERPOSABLE)
>>  {
>> -  funct_state y_l = funct_state_summaries->get (y);
>> +  funct_state y_l = funct_state_summaries->get_create (y);
>> +
>>if (dump_file && (dump_flags & TDF_DETAILS))
>>  {
>>fprintf (dump_file,
>>
> 



Re: [PATCH] Revert a hunk from r261322 (PR lto/88876).

2019-01-25 Thread Jan Hubicka
> Hi.
> 
> The patch puts back ::get_create for a node that can be seen first time.
> It's due to -O0 optimize attribute. It was unable to write properly
> LTO test-case for it.
> 
> Patch can bootstrap on x86_64-linux-gnu and survives regression tests.
> 
> Ready to be installed?
> Thanks,
> Martin
> 
> gcc/ChangeLog:
> 
> 2019-01-18  Martin Liska  
> 
>   PR lto/88876
>   * ipa-pure-const.c (propagate_pure_const): Revert hunk as
>   we need default values of funct_state for a function that
>   is not optimized.

I think you want to test if y enables pure_const prior calling get
becuase get_create will just create empty info that will likely have
IPA_CONST (which is 0) and not IPA_NEITHER.  There are multiple copies
of this code in other propagators and I think they all needs to check if
the pass is enabled for particular symbol and if not resort to
propagating nothing.

Honza
> ---
>  gcc/ipa-pure-const.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> 

> diff --git a/gcc/ipa-pure-const.c b/gcc/ipa-pure-const.c
> index 8227eed29bc..b8fd08c0a7e 100644
> --- a/gcc/ipa-pure-const.c
> +++ b/gcc/ipa-pure-const.c
> @@ -1498,7 +1498,8 @@ propagate_pure_const (void)
>   }
> if (avail > AVAIL_INTERPOSABLE)
>   {
> -   funct_state y_l = funct_state_summaries->get (y);
> +   funct_state y_l = funct_state_summaries->get_create (y);
> +
> if (dump_file && (dump_flags & TDF_DETAILS))
>   {
> fprintf (dump_file,
> 



[PATCH] Revert a hunk from r261322 (PR lto/88876).

2019-01-21 Thread Martin Liška
Hi.

The patch puts back ::get_create for a node that can be seen first time.
It's due to -O0 optimize attribute. It was unable to write properly
LTO test-case for it.

Patch can bootstrap on x86_64-linux-gnu and survives regression tests.

Ready to be installed?
Thanks,
Martin

gcc/ChangeLog:

2019-01-18  Martin Liska  

PR lto/88876
* ipa-pure-const.c (propagate_pure_const): Revert hunk as
we need default values of funct_state for a function that
is not optimized.
---
 gcc/ipa-pure-const.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)


diff --git a/gcc/ipa-pure-const.c b/gcc/ipa-pure-const.c
index 8227eed29bc..b8fd08c0a7e 100644
--- a/gcc/ipa-pure-const.c
+++ b/gcc/ipa-pure-const.c
@@ -1498,7 +1498,8 @@ propagate_pure_const (void)
 		}
 	  if (avail > AVAIL_INTERPOSABLE)
 		{
-		  funct_state y_l = funct_state_summaries->get (y);
+		  funct_state y_l = funct_state_summaries->get_create (y);
+
 		  if (dump_file && (dump_flags & TDF_DETAILS))
 		{
 		  fprintf (dump_file,