aboutsummaryrefslogtreecommitdiff
path: root/gcc
AgeCommit message (Collapse)AuthorFilesLines
2017-11-20[PR c++/82878] pass-by-invisiref in lambdaNathan Sidwell8-14/+58
https://gcc.gnu.org/ml/gcc-patches/2017-11/msg01115.html PR c++/82878 PR c++/78495 * call.c (build_call_a): Don't set CALL_FROM_THUNK_P for inherited ctor. * cp-gimplify.c (cp_genericize_r): Restore THUNK dereference inhibibition check removed in previous c++/78495 change. PR c++/82878 * g++.dg/cpp0x/pr82878.C: New. * g++.dg/cpp1z/inh-ctor38.C: Check moves too. From-SVN: r254958
2017-11-20tree-predcom.c: Add general comment on Store-Store chains.Bin Cheng4-23/+177
* tree-predcom.c: Add general comment on Store-Store chains. (split_data_refs_to_components): Postpone clearing eliminate_store_p flag in component. (get_chain_last_ref_at): Rename into... (get_chain_last_write_at): ...this. (get_chain_last_write_before_load): New function. (add_ref_to_chain): Promote type of chain from CT_STORE_LOAD to CT_STORE_STORE when write reference is added. (determine_roots_comp): Support load ref in CT_STORE_STORE chains. (is_inv_store_elimination_chain): Update get_chain_last_write_at call. (initialize_root_vars_store_elim_1): Ditto. (initialize_root_vars_store_elim_2): Ditto. Replace rhs once default definition is created. (execute_pred_commoning_chain): Support load ref in CT_STORE_STORE chain by replacing it with dominant stored value. gcc/testsuite * gcc.dg/tree-ssa/predcom-dse-12.c: New test. From-SVN: r254956
2017-11-20* tree-predcom.c (add_ref_to_chain): Remove check on distance.Bin Cheng2-5/+4
From-SVN: r254955
2017-11-20VRP: x+1 and -x cannot be INT_MINMarc Glisse11-125/+279
2017-11-20 Marc Glisse <marc.glisse@inria.fr> gcc/ * vr-values.c (extract_range_from_binary_expr): Use a full range for VR_VARYING. gcc/testsuite/ PR testsuite/82951 * gcc.c-torture/execute/20040409-1.c: Move invalid tests... * gcc.c-torture/execute/20040409-1w.c: ... here with -fwrapv. * gcc.c-torture/execute/20040409-2.c: Move invalid tests... * gcc.c-torture/execute/20040409-2w.c: ... here with -fwrapv. * gcc.c-torture/execute/20040409-3.c: Move invalid tests... * gcc.c-torture/execute/20040409-3w.c: ... here with -fwrapv. * gcc.dg/tree-ssa/cmpmul-1.c: Tweak condition. * gcc.dg/tree-ssa/vrp118.c: New file. From-SVN: r254954
2017-11-20Add g++.dg/pr82836.C requirementsRainer Orth2-1/+10
* g++.dg/pr82836.C: Require int128, __float128 support. Add __float128 options. (size_t): Define using __SIZE_TYPE__. From-SVN: r254953
2017-11-20re PR c++/82781 (Vector extension operators return wrong result in constexpr)Jakub Jelinek4-2/+67
PR c++/82781 * constexpr.c (cxx_eval_vector_conditional_expression): New function. (cxx_eval_constant_expression) <case VEC_COND_EXPR>: Use it instead of cxx_eval_conditional_expression. * g++.dg/ext/constexpr-pr82781.C: New test. From-SVN: r254952
2017-11-20[ARM] Do no clobber r4 in Armv8-M nonsecure callThomas Preud'homme4-26/+32
Expanders for Armv8-M nonsecure call unnecessarily clobber r4 despite the libcall they perform not writing to r4. Furthermore, the requirement for the branch target address to be in r4 as expected by the libcall is modeled in a convoluted way in the define_insn patterns: the address is a register match_operand constrained by the match_dup for the clobber which is guaranteed to be r4 due to the expander. This patch simplifies all this by simply requiring the address to be in r4 and removing the clobbers. Expanders are left alone because cmse_nonsecure_call_clear_caller_saved relies on branch target memory attributes which would be lost if expanding to reg:SI R4_REGNUM. 2017-11-20 Thomas Preud'homme <thomas.preudhomme@arm.com> gcc/ * config/arm/arm.md (R4_REGNUM): Define constant. (nonsecure_call_internal): Remove r4 clobber. (nonsecure_call_value_internal): Likewise. * config/arm/thumb1.md (nonsecure_call_reg_thumb1_v5): Remove second clobber and resequence match_operands. (nonsecure_call_value_reg_thumb1_v5): Likewise. * config/arm/thumb2.md (nonsecure_call_reg_thumb2): Likewise. (nonsecure_call_value_reg_thumb2): Likewise. From-SVN: r254950
2017-11-20[testsuite,arm] [Diagnostic Patch] don't print column zeroChristophe Lyon2-3/+8
2017-11-20 Christophe Lyon <christophe.lyon@linaro.org> gcc/testsuite/ * gcc.target/arm/pr69180.c: Use -: for no column in expected warnings. From-SVN: r254949
2017-11-20re PR tree-optimization/78821 (GCC7: Copying whole 32 bits structure field ↵Jakub Jelinek4-118/+813
by field not optimised into copying whole 32 bits at once) PR tree-optimization/78821 * gimple-ssa-store-merging.c (find_bswap_or_nop_load): Give up if base is TARGET_MEM_REF. If base is not MEM_REF, set base_addr to the address of the base rather than the base itself. (find_bswap_or_nop_1): Just use pointer comparison for vuse check. (find_bswap_or_nop_finalize): New function. (find_bswap_or_nop): Use it. (bswap_replace): Return a tree rather than bool, change first argument from gimple * to gimple_stmt_iterator, allow inserting into an empty sequence, allow ins_stmt to be NULL - then emit all stmts into gsi. Fix up MEM_REF address gimplification. (pass_optimize_bswap::execute): Adjust bswap_replace caller. (struct store_immediate_info): Add N and INS_STMT non-static data members. (store_immediate_info::store_immediate_info): Initialize them from newly added ctor args. (merged_store_group::apply_stores): Formatting fixes. Sort by bitpos at the end. (stmts_may_clobber_ref_p): For stores call also refs_anti_dependent_p. (gather_bswap_load_refs): New function. (imm_store_chain_info::try_coalesce_bswap): New method. (imm_store_chain_info::coalesce_immediate_stores): Use it. (split_group): Handle LROTATE_EXPR and NOP_EXPR rhs_code specially. (imm_store_chain_info::output_merged_store): Fail if number of new estimated stmts is bigger or equal than old. Handle LROTATE_EXPR and NOP_EXPR rhs_code. (pass_store_merging::process_store): Compute n and ins_stmt, if ins_stmt is non-NULL and the store rhs is otherwise invalid, use LROTATE_EXPR rhs_code. Pass n and ins_stmt to store_immediate_info ctor. (pass_store_merging::execute): Calculate dominators. * gcc.dg/store_merging_16.c: New test. From-SVN: r254948
2017-11-20tree-ssa-math-opts.c (nop_stats, [...]): Moved to ...Jakub Jelinek3-1080/+1096
* tree-ssa-math-opts.c (nop_stats, bswap_stats, struct symbolic_number, BITS_PER_MARKER, MARKER_MASK, MARKER_BYTE_UNKNOWN, HEAD_MARKER, CMPNOP, CMPXCHG, do_shift_rotate, verify_symbolic_number_p, init_symbolic_number, find_bswap_or_nop_load, perform_symbolic_merge, find_bswap_or_nop_1, find_bswap_or_nop, pass_data_optimize_bswap, class pass_optimize_bswap, bswap_replace, pass_optimize_bswap::execute): Moved to ... * gimple-ssa-store-merging.c: ... this file. Include optabs-tree.h. (nop_stats, bswap_stats, do_shift_rotate, verify_symbolic_number_p, init_symbolic_number, find_bswap_or_nop_load, perform_symbolic_merge, find_bswap_or_nop_1, find_bswap_or_nop, bswap_replace): Put into anonymous namespace, remove static keywords. (pass_optimize_bswap::gate): Test BITS_PER_UNIT == 8 here... (pass_optimize_bswap::execute): ... rather than here. Formatting fix. From-SVN: r254947
2017-11-20re PR bootstrap/83062 (Bootstrap failure: ↵Jan Hubicka2-1/+6
libsanitizer/tsan/tsan_rtl.h:713:44: error: inlining failed in call to always_inline ‘void __tsan::MemoryRead(__tsan::ThreadState*, __sanitizer::uptr, __sanitizer: :uptr, int)’: caller is not optimized) PR bootstrap/83062 * ipa-inline.c (can_inline_edge_p): Fix typo in previous patch. From-SVN: r254946
2017-11-20vec.h (debug_helper): New function.Aldy Hernandez9-59/+184
* vec.h (debug_helper): New function. (DEFINE_DEBUG_VEC): New macro. * hash-set.h (debug_helper): New function. (DEFINE_DEBUG_HASH_SET): New macro. * cfg.c (debug_slim (edge)): New function. Call DEFINE_DEBUG_VEC for edges. Call DEFINE_DEBUG_HASH_SET for edges. * cfghooks.c (debug_slim (basic_block)): New function. Call DEFINE_DEBUG_VEC for basic blocks. Call DEFINE_DEBUG_HASH_SET for basic blocks. * print-tree.c (debug_slim): New function to handle trees. Call DEFINE_DEBUG_VEC for trees. Call DEFINE_DEBUG_HASH_SET for trees. (debug (vec<tree, va_gc>) &): Remove. (debug (<vec<tree, va_gc>) *): Remove. * print-rtl.c (debug_slim): New function to handle const_rtx. Call DEFINE_DEBUG_VEC for rtx_def. Call DEFINE_DEBUG_VEC for rtx_insn. Call DEFINE_DEBUG_HASH_SET for rtx_def. Call DEFINE_DEBUG_HASH_SET for rtx_insn. * sel-sched-dump.c (debug (vec<rtx_insn *> &): Remove. (debug (vec<rtx_insn *> *ptr): Remove. (debug_insn_vector): Remove. * stor-layout.c (debug_rli): Call debug() instead of debug_vec_tree. From-SVN: r254945
2017-11-20Fix comparison mode in simplify_ternary_operationTom de Vries2-2/+6
2017-11-20 Tom de Vries <tom@codesourcery.com> PR rtl-optimization/82020 * simplify-rtx.c (simplify_ternary_operation): Fix comparison mode of IF_THEN_ELSE condition. From-SVN: r254944
2017-11-20Daily bump.GCC Administrator1-1/+1
From-SVN: r254943
2017-11-19re PR ada/83016 (gnat1: warning: command line option ‘-nostdinc++’ is ↵Eric Botcazou3-23/+58
valid for C++/ObjC++ but not for Ada) PR ada/83016 * gnatlink.adb (Process_Args): Accept multiple switches for --LINK. (Usage): Adjust. * gcc-interface/Makefile.in (GCC_LINK): Remove $(ADA_INCLUDES). (common-tools): Pass $(CC) as --GCC= and $(GCC_LINK) as --LINK= in the invocations of $(GNATLINK). (../../gnatdll$(exeext)): Likewise. (../../vxaddr2line$(exeext)): Likewise. (gnatmake-re): Likewise. (gnatlink-re): Likewise. From-SVN: r254940
2017-11-19re PR target/82281 (Bulldozer/Zen tuning: uses XMM for single 64-bit integer ↵Jan Hubicka2-0/+11
AND, even with a simple mask) PR target/82281 * gcc.target/i386/pr82281.c: New testcase. From-SVN: r254939
2017-11-19tree-ssa-dom.c (record_equivalences_from_phis): Fix handling of degenerates ↵Jeff Law2-5/+21
resulting from ignoring an edge. * tree-ssa-dom.c (record_equivalences_from_phis): Fix handling of degenerates resulting from ignoring an edge. From-SVN: r254938
2017-11-19re PR ipa/81360 (ice in estimate_edge_growth, at ipa-inline.h:86)Jan Hubicka4-1/+23
PR ipa/81360 * ipa-inline.c (can_inline_edge_p): Also check that caller is optimized * gcc.c-torture/compile/pr81360.c: New testcase. From-SVN: r254937
2017-11-19re PR fortran/78990 (ICE when assigning polymorphic array function result)Paul Thomas10-38/+168
2017-11-19 Paul Thomas <pault@gcc.gnu.org> PR fortran/78990 * expr.c (gfc_is_class_array_function): Renamed from 'gfc_is_alloc_class_array_function' and modified to return true for pointers as well as allocatable results. * gfortran.h : Change of name for prototype of above function. * trans-array.c (gfc_add_loop_ss_code): Force finalization of class array results. (build_class_array_ref): Change assertion into a condition. (build_class_array_ref): Set the se class_vptr for class array function results. (gfc_walk_function_expr): Reference gfc_is_class_array_function as above. * trans-decl.c (get_proc_result): Move it up before gfc_trans_deferred_vars. (gfc_trans_deferred_vars): Nullify explicit return class arrays on entry. * trans-expr.c (gfc_conv_class_to_class): Allow conversion of class array functions that have an se class_vptr and use it for the result vptr. (gfc_conv_subref_array_arg): Rename reference to the above function. (gfc_conv_procedure_call): Ditto. Add the se pre block to the loop pre block before the function is evaluated. Do not finalize class pointer results. (arrayfunc_assign_needs_temporary, gfc_trans_assignment_1) More renamed references. * trans-intrinsic.c (gfc_conv_intrinsic_size): Ditto. 2017-11-19 Paul Thomas <pault@gcc.gnu.org> PR fortran/78990 * gfortran.dg/class_67.f90: New test. From-SVN: r254936
2017-11-19re PR ipa/83001 (ICE in edge_badness, at ipa-inline.c:1025)Jan Hubicka2-1/+7
PR ipa/83001 * profile-count.c (profile_count::to_sreal_scale): Fix return value for uninitialied counts. From-SVN: r254935
2017-11-19re PR ipa/60243 (IPA is slow on large cgraph tree)Jan Hubicka2-1/+6
PR ipa/60243 * tree-inline.c (estimate_num_insns): Set to 1 at least. From-SVN: r254934
2017-11-19re PR target/82713 (ICE in ix86_builtin_vectorization_cost, at ↵Jan Hubicka4-1/+42
config/i386/i386.c:44475) PR target/82713 * i386.c (ix86_builtin_vectorization_cost): Be ready for insane types. From-SVN: r254933
2017-11-19re PR c/66618 (Failure to diagnose non-constant initializer for static ↵Jakub Jelinek13-91/+199
object with -O1) PR c/66618 PR c/69960 c-family/ * c-common.h (c_fully_fold): Add LVAL argument defaulted to false. c/ * c-parser.c (c_parser_omp_atomic): Pass true as LVAL to c_fully_fold where needed. * c-typeck.c (build_unary_op, build_modify_expr, build_asm_expr, handle_omp_array_sections): Likewise. (digest_init): Don't call decl_constant_value_for_optimization. * c-tree.h (decl_constant_value_for_optimization): Removed. * c-fold.c (c_fold_array_ref): New function. (c_fully_fold_internal): Add LVAL argument, propagate it through recursive calls. For VAR_P call decl_constant_value and unshare if not LVAL and either optimizing or IN_INIT. Remove decl_constant_value_for_optimization calls. If IN_INIT and not LVAL, fold ARRAY_REF with STRING_CST and INTEGER_CST operands. (c_fully_fold): Add LVAL argument, pass it through to c_fully_fold_internal. (decl_constant_value_for_optimization): Removed. cp/ * cp-gimplify.c (c_fully_fold): Add LVAL argument, call cp_fold_maybe_rvalue instead of cp_fold_rvalue and pass it !LVAL. testsuite/ * gcc.dg/pr69960.c: New test. * gcc.dg/pr66618.c: New test. * gcc.dg/pr66618-2.c: New test. From-SVN: r254930
2017-11-19[arc] Remove semicolon after do while (0) in FUNCTION_PROFILERTom de Vries2-1/+6
2017-11-19 Tom de Vries <tom@codesourcery.com> * config/arc/arc.h (FUNCTION_PROFILER): Remove semicolon after "do while (0)". From-SVN: r254929
2017-11-19[phoenix] Remove semicolon after do {} while (0) in TARGET_OS_CPP_BUILTINSTom de Vries2-1/+6
2017-11-19 Tom de Vries <tom@codesourcery.com> * config/phoenix.h (TARGET_OS_CPP_BUILTINS): Remove semicolon after "do {} while (0)". From-SVN: r254928
2017-11-19[visium] Remove semicolon after ASM_OUTPUT_CASE_ENDTom de Vries2-1/+6
2017-11-19 Tom de Vries <tom@codesourcery.com> * config/visium/visium.h (ASM_OUTPUT_CASE_END): Remove semicolon after macro body. From-SVN: r254927
2017-11-19[ft32, spu] Remove semicolon after do {} while (0) in REGISTER_TARGET_PRAGMASTom de Vries3-2/+8
2017-11-19 Tom de Vries <tom@codesourcery.com> * config/ft32/ft32.h (REGISTER_TARGET_PRAGMAS): Remove semicolon after "do {} while (0)". * config/spu/spu.h (REGISTER_TARGET_PRAGMAS): Same. From-SVN: r254926
2017-11-19[mcore] Remove semicolon after do {} while (0) in MCORE_EXPORT_NAMETom de Vries3-2/+9
2017-11-19 Tom de Vries <tom@codesourcery.com> * config/mcore/mcore-elf.h (MCORE_EXPORT_NAME): Remove semicolon after "do {} while (0)". * config/mcore/mcore.h (ASM_OUTPUT_ALIGNED_COMMON): After missing semicolon after MCORE_EXPORT_NAME call. From-SVN: r254925
2017-11-19Daily bump.GCC Administrator1-1/+1
From-SVN: r254923
2017-11-18[vms] Add missing vmsdbgout_early_finishTom de Vries2-1/+15
2017-11-19 Tom de Vries <tom@codesourcery.com> PR target/82961 * vmsdbgout.c (vmsdbgout_early_finish): New function. (vmsdbg_debug_hooks): Set early_finish field to vmsdbgout_early_finish. From-SVN: r254920
2017-11-18cgraphclones.c (cgraph_edge::clone): Rename gcov_count to prof_count.Jan Hubicka10-88/+144
* cgraphclones.c (cgraph_edge::clone): Rename gcov_count to prof_count. (cgraph_edge::clone): Cleanup updating of profile. * ipa-cp.c (update_profiling_info): Likewise. * ipa-inline-transform.c (inline_transform): Likewise. * ipa-inline.c (inline_small_functions): Add missing space to dump. * ipa-split.c (execute_split_functions): Do not split when function is cold. * predict.c (estimate_bb_frequencies): Cleanup updating of profile. * profile-count.c (profile_count::dump): Add global0. (profile_count::to_cgraph_frequency): Do not ICE when entry is undefined. (profile_count::to_sreal_scale): Likewise. (profile_count::adjust_for_ipa_scaling): Fix typo in comment. (profile_count::combine_with_ipa_count): New function. * profile-count.h (profile_guessed_global0adjusted): New. (profile_count::adjusted_zero): New. (profile_count::global0adjusted): New. (profile_count::combine_with_ipa_count): New. * tree-inline.c (copy_edges_for_bb): Add NUM/DEN arugment; correct profile of return block of split functions. (copy_cfg_body): Remove unused profile_count. (copy_body): Likewise. (expand_call_inline): Update. (tree_function_versioning): Update. From-SVN: r254919
2017-11-18PR 83036 Make NEXTREC specifier for INQUIRE work for large record numbersJanne Blomqvist2-1/+6
This is accomplished by making the NEXTREC specifier be a 8 byte integer where supported. I wasn't able to come up with a testcase that does not create a large file that could be added to the testsuite, but here's one which creates a 2 GB file: program nextrec implicit none integer(8) :: ii, n open(10, file="foo.dat", recl=1, access="direct", form="unformatted", & status="replace") do ii = 1, huge(1) + 2_8 write(10, rec=ii) 'a' end do inquire(10, nextrec=n) if (n /= huge(1) + 3_8) then call abort() end if close(10, status="delete") end program nextrec Regtested on x86_64-pc-linux-gnu. gcc/fortran/ChangeLog: 2017-11-18 Janne Blomqvist <jb@gcc.gnu.org> PR fortran/83036 * ioparm.def (IOPARM): Make nextrec a pintio. libgfortran/ChangeLog: 2017-11-18 Janne Blomqvist <jb@gcc.gnu.org> PR fortran/83036 * io/io.h: Make nextrec a GFC_IO_INT*. --- gcc/fortran/ioparm.def | 2 +- libgfortran/io/io.h | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/gcc/fortran/ioparm.def b/gcc/fortran/ioparm.def index 5fc04bc..59cc7cd 100644 --- a/gcc/fortran/ioparm.def +++ b/gcc/fortran/ioparm.def @@ -62,7 +62,7 @@ IOPARM (inquire, exist, 1 << 7, pint4) IOPARM (inquire, opened, 1 << 8, pint4) IOPARM (inquire, number, 1 << 9, pint4) IOPARM (inquire, named, 1 << 10, pint4) -IOPARM (inquire, nextrec, 1 << 11, pint4) +IOPARM (inquire, nextrec, 1 << 11, pintio) IOPARM (inquire, recl_out, 1 << 12, pintio) IOPARM (inquire, strm_pos_out, 1 << 13, pintio) IOPARM (inquire, file, 1 << 14, char1) diff --git a/libgfortran/io/io.h b/libgfortran/io/io.h index 3330bce..d29b112 100644 --- a/libgfortran/io/io.h +++ b/libgfortran/io/io.h @@ -388,8 +388,7 @@ typedef struct { st_parameter_common common; GFC_INTEGER_4 *exist, *opened, *number, *named; - GFC_INTEGER_4 *nextrec; - GFC_IO_INT *recl_out, *strm_pos_out; + GFC_IO_INT *nextrec, *recl_out, *strm_pos_out; CHARACTER1 (file); CHARACTER2 (access); CHARACTER1 (form); -- 2.7.4 From-SVN: r254916
2017-11-18PR 44292 Enable large record lengths in OPEN and INQUIRE statementsJanne Blomqvist4-2/+24
This is a straightforward change that we can do now that the ABI has been bumped (again!). Regtested on x86_64-pc-linux-gnu. gcc/fortran/ChangeLog: 2017-11-18 Janne Blomqvist <jb@gcc.gnu.org> PR fortran/44292 * ioparm.def (IOPARM): Make recl_in intio, and recl_out pintio. libgfortran/ChangeLog: 2017-11-18 Janne Blomqvist <jb@gcc.gnu.org> PR fortran/44292 * io/io.h: Make recl_in a GC_IO_INT and recl_out a type GFC_IO_INT*. gcc/testsuite/ChangeLog: 2017-11-18 Janne Blomqvist <jb@gcc.gnu.org> PR fortran/44292 * gfortran.dg/large_recl.f90: New test. From-SVN: r254915
2017-11-18re PR fortran/83012 (Simply contiguous pointer function not recognized as ↵Thomas Koenig4-2/+60
contiguous) 2017-11-18 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/83012 * expr.c (gfc_is_simply_contiguous): If a function call through a class variable is done through a reference, check the function's interface. 2017-11-18 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/83012 * gfortran.dg/contiguous_5.f90: New test. From-SVN: r254914
2017-11-18hash-set.h (hash_set::empty): New.Aldy Hernandez4-170/+167
* hash-set.h (hash_set::empty): New. * tree-ssa-threadbackward.h: Delete. * tree-ssa-threadbackward.c (class thread_jumps): New. Move max_threaded_paths into class. (fsm_find_thread_path): Remove arguments that are now in class. (profitable_jump_thread_path): Rename to... (thread_jumps::profitable_jump_thread_path): ...this. (convert_and_register_jump_thread_path): Rename to... (thread_jumps::convert_and_register_current_path): ...this. (check_subpath_and_update_thread_path): Rename to... (thread_jumps::check_subpath_and_update_thread_path): ...this. (register_jump_thread_path_if_profitable): Rename to... (thread_jumps::register_jump_thread_path_if_profitable): ...this. (handle_phi): Rename to... (thread_jumps::handle_phi): ...this. (handle_assignment): Rename to... (thread_jumps::handle_assignment): ...this. (fsm_find_control_statement_thread_paths): Rename to... (thread_jumps::fsm_find_control_statement_thread_paths): ...this. (find_jump_threads_backwards): Rename to... (thread_jumps::find_jump_threads_backwards): ...this. Initialize path local data. (pass_thread_jumps::execute): Call find_jump_threads_backwards from within thread_jumps class. (pass_early_thread_jumps::execute): Same. From-SVN: r254913
2017-11-18Daily bump.GCC Administrator1-1/+1
From-SVN: r254912
2017-11-17* cgraph.c (cgraph_node::dump): Do IPA sanity checking on IPA counts.Jan Hubicka2-3/+7
From-SVN: r254909
2017-11-17fmls.c: New test.Steve Ellcey2-0/+23
2017-11-17 Steve Ellcey <sellcey@cavium.com> * gcc.target/aarch64/fmls.c: New test. From-SVN: r254906
2017-11-17aarch64-simd.md (fnma<mode>4): Move neg operator to canonical location.Steve Ellcey2-3/+7
2017-11-17 Steve Ellcey <sellcey@cavium.com> * config/aarch64/aarch64-simd.md (fnma<mode>4): Move neg operator to canonical location. From-SVN: r254905
2017-11-17pr81356.c: New test.Steve Ellcey2-0/+13
2017-11-17 Steve Ellcey <sellcey@cavium.com> * gcc.target/aarch64/pr81356.c: New test. From-SVN: r254903
2017-11-17re PR target/81356 (__builtin_strcpy is not good for copying an empty string ↵Steve Ellcey2-20/+7
on aarch64) 2017-11-17 Steve Ellcey <sellcey@cavium.com> PR target/81356 * config/aarch64/aarch64.c (aarch64_use_by_pieces_infrastructure_p): Remove. (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): Remove define. From-SVN: r254901
2017-11-17Use rcrt1.o%s/grcrt1.o%s to relocate static PIEH.J. Lu2-2/+8
crt1.o is used to create dynamic and non-PIE static executables. Static PIE needs to link with rcrt1.o, instead of crt1.o, which is also used by musl libc and OpenBSD: https://gcc.gnu.org/ml/gcc/2015-06/msg00008.html to relocate static PIE at run-time. When -pg is used with -static-pie, grcrt1.o should be used. * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Use rcrt1.o%s/grcrt1.o%s for -static-pie. From-SVN: r254890
2017-11-17i386.c (ix86_multiplication_cost, [...]): Break out from ...Jan Hubicka4-130/+306
* i386.c (ix86_multiplication_cost, ix86_division_cost, ix86_shift_rotate_cost): Break out from ... (ix86_rtx_costs): ... here. (ix86_add_stmt_cost): Use rtx cost machinery to compute cost of vector operations. * gcc.target/i386/xop-imul64-vector.c: Disable vectorizer costmodel. From-SVN: r254889
2017-11-17predict.c (determine_unlikely_bbs): Set cgraph node count to 0 when entry ↵Jan Hubicka6-3/+27
block was promoted unlikely. * predict.c (determine_unlikely_bbs): Set cgraph node count to 0 when entry block was promoted unlikely. (estimate_bb_frequencies): Increase frequency scale. * profile-count.h (profile_count): Export precision info. * gcc.dg/tree-ssa/dump-2.c: Fixup template for profile precision changes. * gcc.dg/tree-ssa/pr77445-2.c: Fixup template for profile precision changes. From-SVN: r254888
2017-11-17tree-tailcall.c (eliminate_tail_call): Be more careful about not disturbin ↵Jan Hubicka2-3/+16
profile of entry block. * tree-tailcall.c (eliminate_tail_call): Be more careful about not disturbin profile of entry block. From-SVN: r254887
2017-11-17ipa-fnsummary.c (estimate_node_size_and_time): Be more tolerant for roundoff ↵Jan Hubicka2-1/+6
errors. * ipa-fnsummary.c (estimate_node_size_and_time): Be more tolerant for roundoff errors. From-SVN: r254886
2017-11-17ipa-cp.c (update_profiling_info): Handle conversion to local profile.Jan Hubicka3-20/+23
* ipa-cp.c (update_profiling_info): Handle conversion to local profile. * tree-cfg.c (execute_fixup_cfg): Do fixup same way as inliner does. From-SVN: r254885
2017-11-17gimple-ssa-evrp.c (class evrp_range_analyzer): New class extracted from ↵Jeff Law2-78/+109
evrp_dom_walker class. * gimple-ssa-evrp.c (class evrp_range_analyzer): New class extracted from evrp_dom_walker class. Various methods moved into new class. (evrp_range_analyzer::evrp_range_analyzer): Constructor for new class. (evrp_range_analyzer::enter): New method. (evrp_range_analyzer::leave): New method. (evrp_dom_walker): Remove delegators no longer needed by this class. Replace vr_values data member with evrp_range_analyzer From-SVN: r254884
2017-11-17gimple-ssa-evrp.c (evrp_dom_walker::record_ranges_from_phis): New method ↵Jeff Law2-96/+144
extracted from evrp_dom_walker::before_dom_children. * gimple-ssa-evrp.c (evrp_dom_walker::record_ranges_from_phis): New method extracted from evrp_dom_walker::before_dom_children. (evrp_dom_walker::record_ranges_from_stmt): Likewise. (evrp_dom_walker::record_ranges_from_incoming_edge): Likewise. From-SVN: r254883
2017-11-17gimple-ssa-evrp.c (evrp_dom_walker): Add cleanup method.Jeff Law2-33/+53
* gimple-ssa-evrp.c (evrp_dom_walker): Add cleanup method. Add private copy constructor and move assignment operators. Privatize methods and class data where trivially possible. (evrp_dom_walker::cleanup): New function, extracted from execute_early_vrp. Simplify access to class data. From-SVN: r254882