[Bug ipa/70646] [4.9/5/6 Regression] Corrupt truncated function

jamborm at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Thu May 19 14:57:00 GMT 2016


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

--- Comment #34 from Martin Jambor <jamborm at gcc dot gnu.org> ---
Author: jamborm
Date: Thu May 19 14:56:35 2016
New Revision: 236462

URL: https://gcc.gnu.org/viewcvs?rev=236462&root=gcc&view=rev
Log:
[PR 70646] Store size to inlining predicate conditions

2016-05-19  Martin Jambor  <mjambor@suse.cz>

        PR ipa/70646
        * ipa-inline.h (condition): New field size.
        * ipa-inline-analysis.c (add_condition): New parameter SIZE, use it
        for comaprison and store it into the new condition.
        (evaluate_conditions_for_known_args): Use condition size to check
        access sizes for all but CHANGED conditions.
        (unmodified_parm_1): New parameter size_p, store access size into it.
        (unmodified_parm): Likewise.
        (unmodified_parm_or_parm_agg_item): Likewise.
        (eliminated_by_inlining_prob): Pass NULL to unmodified_parm as size_p.
        (set_cond_stmt_execution_predicate): Extract access sizes and store
        them to conditions.
        (set_switch_stmt_execution_predicate): Likewise.
        (will_be_nonconstant_expr_predicate): Likewise.
        (will_be_nonconstant_predicate): Likewise.
        (inline_read_section): Stream condition size.
        (inline_write_summary): Likewise.
        * lto-streamer.h (LTO_minor_version): Bump.

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


Added:
    branches/gcc-6-branch/gcc/testsuite/gcc.dg/ipa/pr70646.c
Modified:
    branches/gcc-6-branch/gcc/ChangeLog
    branches/gcc-6-branch/gcc/ipa-inline-analysis.c
    branches/gcc-6-branch/gcc/ipa-inline.h
    branches/gcc-6-branch/gcc/lto-streamer.h
    branches/gcc-6-branch/gcc/testsuite/ChangeLog


More information about the Gcc-bugs mailing list