This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug ipa/58721] [4.9 Regression] The subroutine perdida is no longer inlined in fatigue.f90


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58721

--- Comment #23 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Author: jakub
Date: Tue Mar 18 11:31:04 2014
New Revision: 208641

URL: http://gcc.gnu.org/viewcvs?rev=208641&root=gcc&view=rev
Log:
    PR ipa/58721
gcc/
    * internal-fn.c: Include diagnostic-core.h.
    (expand_BUILTIN_EXPECT): New function.
    * gimplify.c (gimplify_call_expr): Use false instead of FALSE.
    (gimplify_modify_expr): Gimplify 3 argument __builtin_expect into
    IFN_BUILTIN_EXPECT call instead of __builtin_expect builtin call.
    * ipa-inline-analysis.c (find_foldable_builtin_expect): Handle
    IFN_BUILTIN_EXPECT.
    * predict.c (expr_expected_value_1): Handle IFN_BUILTIN_EXPECT.
    Revert 3 argument __builtin_expect code.
    (strip_predict_hints): Handle IFN_BUILTIN_EXPECT.
    * gimple-fold.c (gimple_fold_call): Likewise.
    * tree.h (fold_builtin_expect): New prototype.
    * builtins.c (build_builtin_expect_predicate): Add predictor
    argument, if non-NULL, create 3 argument __builtin_expect.
    (fold_builtin_expect): No longer static.  Add ARG2 argument,
    pass it through to build_builtin_expect_predicate.
    (fold_builtin_2): Adjust caller.
    (fold_builtin_3): Handle BUILT_IN_EXPECT.
    * internal-fn.def (BUILTIN_EXPECT): New.
gcc/fortran/
    * trans.c (gfc_unlikely, gfc_likely): Don't add __builtin_expect
    if !optimize.

2014-03-18  Tobias Burnus  <burnus@net-b.de>

    PR ipa/58721
gcc/
    * predict.def (PRED_FORTRAN_OVERFLOW, PRED_FORTRAN_FAIL_ALLOC,
    PRED_FORTRAN_FAIL_IO, PRED_FORTRAN_WARN_ONCE, PRED_FORTRAN_SIZE_ZERO,
    PRED_FORTRAN_INVALID_BOUND, PRED_FORTRAN_ABSENT_DUMMY): Add.
gcc/fortran/
    * trans.h (gfc_unlikely, gfc_likely): Add predictor as argument.
    (gfc_trans_io_runtime_check): Remove.
    * trans-io.c (gfc_trans_io_runtime_check): Make static; add has_iostat
    as argument, add predictor to block.
    (set_parameter_value, gfc_trans_open, gfc_trans_close, build_filepos,
    gfc_trans_inquire, gfc_trans_wait, build_dt): Update calls.
    * trans.c (gfc_unlikely, gfc_likely): Add predictor as argument.
    (gfc_trans_runtime_check, gfc_allocate_using_malloc,
    gfc_allocate_allocatable, gfc_deallocate_with_status): Set explicitly
    branch predictor.
    * trans-expr.c (gfc_conv_procedure_call): Ditto.
    * trans-stmt.c (gfc_trans_allocate): Ditto.
    * trans-array.c (gfc_array_init_size, gfc_array_allocate): Ditto.

2014-03-18  Jan Hubicka  <hubicka@ucw.cz>

    PR ipa/58721
gcc/
    * predict.c (combine_predictions_for_bb): Fix up formatting.
    (expr_expected_value_1, expr_expected_value): Add predictor argument,
    fill what it points to if non-NULL.
    (tree_predict_by_opcode): Adjust caller, use the predictor.
    * predict.def (PRED_COMPARE_AND_SWAP): Add.

Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/builtins.c
    trunk/gcc/fortran/ChangeLog
    trunk/gcc/fortran/trans-array.c
    trunk/gcc/fortran/trans-expr.c
    trunk/gcc/fortran/trans-intrinsic.c
    trunk/gcc/fortran/trans-io.c
    trunk/gcc/fortran/trans-stmt.c
    trunk/gcc/fortran/trans.c
    trunk/gcc/fortran/trans.h
    trunk/gcc/gimple-fold.c
    trunk/gcc/gimplify.c
    trunk/gcc/internal-fn.c
    trunk/gcc/internal-fn.def
    trunk/gcc/ipa-inline-analysis.c
    trunk/gcc/predict.c
    trunk/gcc/predict.def
    trunk/gcc/tree.h


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]