Hi,

On Tue, Apr 08 2025, Jan Hubicka wrote:
>> In order to replace the use of somewhat unweildy
>> expr_type_first_operand_type_p we need to record and stream the types
>> of results of operations recorded in arithmetic jump functions.  This
>> is necessary so that we can then simulate them at the IPA stage with
>> the corresponding precision and signedness.  This patch does the
>> recorsing and streaming, the following one adds the use of the date.
>> 
>> Bootstrapped and tested and LTO bootstrapped on x86_64-linux. OK for
>> master?
>> 
>> Thanks,
>> 
>> Martin
>> 
>> 
>> gcc/ChangeLog:
>> 
>> 2025-03-20  Martin Jambor  <mjam...@suse.cz>
>> 
>>      PR ipa/118097
>>      PR ipa/118785
>>      PR ipa/119318
>>      * ipa-prop.h (ipa_pass_through_data): New field op_type.
>>      (ipa_get_jf_pass_through_op_type): New function.
>>      * ipa-prop.cc (ipa_dump_jump_function): Dump also pass-through
>>      operation types, if any.  Dump pass-through operands only if not NULL.
>>      (ipa_set_jf_simple_pass_through): Set op_type accordingly.
>>      (compute_complex_assign_jump_func): Set op_type of arithmetic
>>      pass-through jump_functions.
>>      (analyze_agg_content_value): Update lhs when walking assighment
>>      copies.  Set op_type of aggregate arithmetic pass-through
>>      jump_functions.
>>      (update_jump_functions_after_inlining): Also transfer the operation
>>      type from the source arithmentic pass-through jump function to the
>>      destination jump function.
>>      (ipa_write_jump_function): Stream also the op_type when necessary.
>>      (ipa_read_jump_function): Likewise.
>>      (ipa_agg_pass_through_jf_equivalent_p): Also compare operation types.
>
> I wonder if we can force variably modified types this way into the
> global stream?  All other types are in global stream anyway, but
> streaming VLAs may lead to bit of a surprises.

The newly stored and streamed types are types of SSA_NAMEs, so I hope
not.

Thanks,

Martin

Reply via email to