https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82808

--- Comment #9 from Martin Jambor <jamborm at gcc dot gnu.org> ---
Author: jamborm
Date: Tue Nov 28 18:52:49 2017
New Revision: 255212

URL: https://gcc.gnu.org/viewcvs?rev=255212&root=gcc&view=rev
Log:
[PR 82808] Use proper result types for arithmetic jump functions

2017-11-28  Prathamesh Kulkarni  <prathamesh.kulka...@linaro.org>
            Martin Jambor  <mjam...@suse.cz>

        PR ipa/82808
        * tree.h (expr_type_first_operand_type_p): Declare
        * tree.c (expr_type_first_operand_type_p): New function.
        * ipa-prop.h (ipa_get_type): Allow i to be out of bounds.
        (ipa_value_from_jfunc): Adjust declaration.
        * ipa-cp.c (ipa_get_jf_pass_through_result): New parameter RES_TYPE.
        Use it as result type for arithmetics, unless it is NULL in which case
        be more conservative.
        (ipa_value_from_jfunc): New parameter PARM_TYPE, pass it to
        ipa_get_jf_pass_through_result.
        (propagate_vals_across_pass_through): Likewise.
        (propagate_scalar_across_jump_function): New parameter PARM_TYPE, pass
        is to propagate_vals_across_pass_through.
        (propagate_constants_across_call): Pass PARM_TYPE to
        propagate_scalar_across_jump_function.
        (find_more_scalar_values_for_callers_subset): Pass parameter type to
        ipa_value_from_jfunc.
        (cgraph_edge_brings_all_scalars_for_node): Likewise.
        * ipa-fnsummary.c (evaluate_properties_for_edge): Renamed parms_info
        to caller_parms_info, pass parameter type to ipa_value_from_jfunc.
        * ipa-prop.c (try_make_edge_direct_simple_call): New parameter
        target_type, pass it to ipa_value_from_jfunc.
        (update_indirect_edges_after_inlining): Pass parameter type to
        try_make_edge_direct_simple_call.

testsuite/
        * gcc.dg/ipa/pr82808.c: New test.


Added:
    trunk/gcc/testsuite/gcc.dg/ipa/pr82808.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/ipa-cp.c
    trunk/gcc/ipa-fnsummary.c
    trunk/gcc/ipa-prop.c
    trunk/gcc/ipa-prop.h
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/tree.c
    trunk/gcc/tree.h

Reply via email to