- 28 Apr, 2016 5 commits
-
-
gcc/c-family/ChangeLog: 2016-04-28 Eduard Sanou <dhole@openmailbox.org> Matthias Klose <doko@debian.org> * c-common.c (get_source_date_epoch): New function, gets the environment variable SOURCE_DATE_EPOCH and parses it as long long with error handling. * c-common.h (get_source_date_epoch): Prototype. * c-lex.c (c_lex_with_flags): set parse_in->source_date_epoch. gcc/ChangeLog: 2016-04-28 Eduard Sanou <dhole@openmailbox.org> Matthias Klose <doko@debian.org> * doc/cppenv.texi: Document SOURCE_DATE_EPOCH environment variable. libcpp/ChangeLog: 2016-04-28 Eduard Sanou <dhole@openmailbox.org> Matthias Klose <doko@debian.org> * include/cpplib.h (cpp_init_source_date_epoch): Prototype. * init.c (cpp_init_source_date_epoch): New function. * internal.h: Added source_date_epoch variable to struct cpp_reader to store a reproducible date. * macro.c (_cpp_builtin_macro_text): Set pfile->date timestamp from pfile->source_date_epoch instead of localtime if source_date_epoch is set, to be used for __DATE__ and __TIME__ macros to help reproducible builds. Co-Authored-By: Matthias Klose <doko@debian.org> From-SVN: r235550
Eduard Sanou committed -
2016-04-28 Matthias Klose <doko@ubuntu.com> * decl.c (parse_version): Don't encode the minor version in the abi version. From-SVN: r235546
Matthias Klose committed -
2016-04-28 Richard Biener <rguenther@suse.de> PR middle-end/70777 * fold-const.c (fold_binary_loc): Remove x*x to pow(x,2.0) canonicalization. From-SVN: r235545
Richard Biener committed -
gcc/ * common/config/sh/sh-common.c: Remove SH5 support. * config/sh/constraints.md: Likewise. * config/sh/config/sh/elf.h: Likewise. * config/sh/linux.h: Likewise. * config/sh/netbsd-elf.h: Likewise. * config/sh/predicates.md: Likewise. * config/sh/sh-c.c: Likewise. * config/sh/sh-protos.h: Likewise. * config/sh/sh.c: Likewise. * config/sh/sh.h: Likewise. * config/sh/sh.md: Likewise. * config/sh/sh.opt: Likewise. * config/sh/sync.md: Likewise. * config/sh/sh64.h: Delete. * config/sh/shmedia.h: Likewise. * config/sh/shmedia.md: Likewise. * config/sh/sshmedia.h: Likewise. * config/sh/t-netbsd-sh5-64: Likewise. * config/sh/t-sh64: Likewise. * config/sh/ushmedia.h: Likewise. From-SVN: r235544
Oleg Endo committed -
From-SVN: r235543
GCC Administrator committed
-
- 27 Apr, 2016 35 commits
-
-
i386.md (sign_extend to memory peephole2s): Use general_reg_operand instead of register_operand predicate. * config/i386/i386.md (sign_extend to memory peephole2s): Use general_reg_operand instead of register_operand predicate. From-SVN: r235539
Uros Bizjak committed -
2016-04-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> * params.def (MIN_PARTITION_SIZE): Set default value to 10000. From-SVN: r235538
Prathamesh Kulkarni committed -
2016-04-27 Marc Glisse <marc.glisse@inria.fr> gcc/ * match.pd (A - B > A, A + B < A): New transformations. gcc/testsuite/ * gcc.dg/tree-ssa/overflow-2.c: New testcase. * gcc.dg/tree-ssa/minus-ovf.c: Likewise. From-SVN: r235537
Marc Glisse committed -
gcc/ChangeLog: * genattrtab.c (write_test_expr): New parameter EMIT_PARENS which defaults to true. Emit an outer pair of parentheses only if EMIT_PARENS. When continuing a chain of && or || (or & or |), don't emit parentheses for the right-hand operand. From-SVN: r235536
Patrick Palka committed -
From-SVN: r235535
Jeff Law committed -
re PR c++/69024 ([cilkpus] cilk_spawn is broken for initializations with implicit conversion operators defined) PR c++/69024 PR c++/68997 * cilk.c (cilk_ignorable_spawn_rhs_op): Change to external linkage. (cilk_recognize_spawn): Renamed from recognize_spawn and change to external linkage. (cilk_detect_and_unwrap): Corresponding changes. (extract_free_variables): Don't extract free variables from AGGR_INIT_EXPR slot. * c-common.h (cilk_ignorable_spawn_rhs_op): Prototype. (cilk_recognize_spawn): Likewise. PR c++/69024 PR c++/68997 * cp-gimplify.c (cp_gimplify_expr): Call cilk_cp_detect_spawn_and_unwrap instead of cilk_detect_spawn_and_unwrap. * cp-cilkplus.c (is_conversion_operator_function_decl_p): New. (find_spawn): New. (cilk_cp_detect_spawn_and_unwrap): New. * lambda.c: Include cp-cilkplus.h. * parser.c: Include cp-cilkplus.h. * cp-tree.h (cpp_validate_cilk_plus_loop): Move prototype into... * cp-cilkpus.h: New file. PR c++/69024 PR c++/68997 * g++.dg/cilk-plus/CK/pr68001.cc: Fix to not depend on broken diagnostic. * g++.dg/cilk-plus/CK/pr69024.cc: New test. * g++.dg/cilk-plus/CK/pr68997.cc: New test. Co-Authored-By: Jeff Law <law@redhat.com> From-SVN: r235534
Ryan Burn committed -
2016-04-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com> * config/rs6000/altivec.md (altivec_lvx_<mode>): Remove. (altivec_lvx_<mode>_internal): Document. (altivec_lvx_<mode>_2op): New define_insn. (altivec_lvx_<mode>_1op): Likewise. (altivec_lvx_<mode>_2op_si): Likewise. (altivec_lvx_<mode>_1op_si): Likewise. (altivec_stvx_<mode>): Remove. (altivec_stvx_<mode>_internal): Document. (altivec_stvx_<mode>_2op): New define_insn. (altivec_stvx_<mode>_1op): Likewise. (altivec_stvx_<mode>_2op_si): Likewise. (altivec_stvx_<mode>_1op_si): Likewise. * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Expand vec_ld and vec_st during parsing. * config/rs6000/rs6000.c (altivec_expand_lvx_be): Commentary changes. (altivec_expand_stvx_be): Likewise. (altivec_expand_lv_builtin): Expand lvx built-ins to expose the address-masking behavior in RTL. (altivec_expand_stv_builtin): Expand stvx built-ins to expose the address-masking behavior in RTL. (altivec_expand_builtin): Change builtin code arguments for calls to altivec_expand_stv_builtin and altivec_expand_lv_builtin. (insn_is_swappable_p): Avoid incorrect swap optimization in the presence of lvx/stvx patterns. (alignment_with_canonical_addr): New function. (alignment_mask): Likewise. (find_alignment_op): Likewise. (recombine_lvx_pattern): Likewise. (recombine_stvx_pattern): Likewise. (recombine_lvx_stvx_patterns): Likewise. (rs6000_analyze_swaps): Perform a pre-pass to recognize lvx and stvx patterns from expand. * config/rs6000/vector.md (vector_altivec_load_<mode>): Use new expansions. (vector_altivec_store_<mode>): Likewise. From-SVN: r235533
Bill Schmidt committed -
gcc/ * config/aarch64/aarch64.md (*movhf_aarch64): Add "movi %0, #0" to zero up register and remove the "fp" attributes. (*movsf_aarch64): Add "movi %0, #0" to zero up register and add the "simd" attributes. (*movdf_aarch64): Likewise. (*movtf_aarch64): Remove the "fp" attributes. * testsuite/gcc.target/aarch64/fmovf-zero-reg.c: Update accordingly. * testsuite/gcc.target/aarch64/fmovd-zero-reg.c: Likewise. From-SVN: r235532
Evandro Menezes committed -
The function maybe_set_first_label_num acts on a CODE_LABEL; we can capture that in the type system. gcc/ChangeLog: * emit-rtl.c (maybe_set_first_label_num): Strengthen param from rtx to rtx_code_label *. * rtl.h (maybe_set_first_label_num): Likewise. From-SVN: r235525
David Malcolm committed -
The various struct df_problem instances are constant data; mark them as such. gcc/ChangeLog: * df-core.c (df_add_problem): Make the problem param be const. (df_remove_problem): Make local "problem" be const. * df-problems.c (problem_RD): Make const. (problem_LR): Likewise. (problem_LIVE): Likewise. (problem_MIR): Likewise. (problem_CHAIN): Likewise. (problem_WORD_LR): Likewise. (problem_NOTE): Likewise. (problem_MD): Likewise. * df-scan.c (problem_SCAN): Likewise. * df.h (struct df_problem): Make field "dependent_problem" be const. (struct dataflow): Likewise for field "problem". (df_add_problem): Make param const. From-SVN: r235524
David Malcolm committed -
i386.c (ix86_spill_class): Enable for TARGET_SSE2 when inter-unit moves to/from vector registers are enabled. * config/i386/i386.c (ix86_spill_class): Enable for TARGET_SSE2 when inter-unit moves to/from vector registers are enabled. Do not disable for TARGET_MMX. From-SVN: r235523
Uros Bizjak committed -
Whilst debugging an issue in df, I noticed that there are some #define constants that could be an enum (thus making them known to gdb). Convert them to a new enum, and update the "id" field of struct df_problem. gcc/ChangeLog: * df.h (DF_SCAN, DF_LR, DF_LIVE, DF_RD, DF_CHAIN, DF_WORD_LR, DF_NOTE, DF_MD, DF_MIR, DF_LAST_PROBLEM_PLUS1): Convert from #define to... (enum df_problem_id): ...this new enum. (struct df_problem): Convert field "id" from "int" to enum df_problem_id. From-SVN: r235522
David Malcolm committed -
sem_aux.adb (Is_By_Reference_Type): Also return true for a tagged incomplete type without full view. * sem_aux.adb (Is_By_Reference_Type): Also return true for a tagged incomplete type without full view. * sem_ch6.adb (Exchange_Limited_Views): Change into a function and return the list of changes. (Restore_Limited_Views): New procedure to undo the transformation made by Exchange_Limited_Views. (Analyze_Subprogram_Body_Helper): Adjust call to Exchange_Limited_Views and call Restore_Limited_Views at the end, if need be. (Possible_Freeze): Do not delay freezing because of incomplete types. (Process_Formals): Remove kludges for class-wide types. * types.h (By_Copy_Return): Delete. * gcc-interface/ada-tree.h (TYPE_MAX_ALIGN): Move around. (TYPE_DUMMY_IN_PROFILE_P): New macro. * gcc-interface/gigi.h (update_profiles_with): Declare. (finish_subprog_decl): Likewise. (get_minimal_subprog_decl): Delete. (create_subprog_type): Likewise. (create_param_decl): Adjust prototype. (create_subprog_decl): Likewise. * gcc-interface/decl.c (defer_limited_with): Rename into... (defer_limited_with_list): ...this. (gnat_to_gnu_entity): Adjust to above renaming. (finalize_from_limited_with): Likewise. (tree_entity_vec_map): New structure. (gt_pch_nx): New helpers. (dummy_to_subprog_map): New hash table. (gnat_to_gnu_param): Set the SLOC here. Remove MECH parameter and add FIRST parameter. Deal with the mechanism here instead of... Do not make read-only variant of types. Simplify expressions. In the by-ref case, test the mechanism before must_pass_by_ref and also TYPE_IS_BY_REFERENCE_P before building the reference type. (gnat_to_gnu_subprog_type): New static function extracted from... Do not special-case the type_annotate_only mode. Call gnat_to_gnu_profile_type instead of gnat_to_gnu_type on return type. Deal with dummy return types. Likewise for parameter types. Deal with by-reference types explicitly and add a kludge for null procedures with untagged incomplete types. Remove assertion on the types and be prepared for multiple elaboration of the declarations. Skip the whole CICO processing if the profile is incomplete. Handle the completion of a previously incomplete profile. (gnat_to_gnu_entity) <E_Variable>: Rename local variable. Adjust couple of calls to create_param_decl. <E_Access_Subprogram_Type, E_Anonymous_Access_Subprogram_Type>: Remove specific deferring code. <E_Access_Type>: Also deal with E_Subprogram_Type designated type. Simplify handling of dummy types and remove obsolete comment. Constify a couple of variables. Do not set TYPE_UNIVERSAL_ALIASING_P on dummy types. <E_Access_Subtype>: Tweak comment and simplify condition. <E_Subprogram_Type>: ...here. Call it and clean up handling. Remove obsolete comment and adjust call to gnat_to_gnu_param. Adjust call to create_subprog_decl. <E_Incomplete_Type>: Add a couple of 'const' qualifiers and get rid of inner break statements. Tidy up condition guarding direct use of the full view. (get_minimal_subprog_decl): Delete. (finalize_from_limited_with): Call update_profiles_with on dummy types with TYPE_DUMMY_IN_PROFILE_P set. (is_from_limited_with_of_main): Delete. (associate_subprog_with_dummy_type): New function. (update_profile): Likewise. (update_profiles_with): Likewise. (gnat_to_gnu_profile_type): Likewise. (init_gnat_decl): Initialize dummy_to_subprog_map. (destroy_gnat_decl): Destroy dummy_to_subprog_map. * gcc-interface/misc.c (gnat_get_alias_set): Add guard for accessing TYPE_UNIVERSAL_ALIASING_P. (gnat_get_array_descr_info): Minor tweak. * gcc-interface/trans.c (gigi): Adjust calls to create_subprog_decl. (build_raise_check): Likewise. (Compilation_Unit_to_gnu): Likewise. (Identifier_to_gnu): Accept mismatches coming from a limited context. (Attribute_to_gnu): Remove kludge for dispatch table entities. (process_freeze_entity): Do not retrieve old definition if there is an address clause on the entity. Call update_profiles_with on dummy types with TYPE_DUMMY_IN_PROFILE_P set. * gcc-interface/utils.c (build_dummy_unc_pointer_types): Also set TYPE_REFERENCE_TO to the fat pointer type. (create_subprog_type): Delete. (create_param_decl): Remove READONLY parameter. (finish_subprog_decl): New function extracted from... (create_subprog_decl): ...here. Call it. Remove CONST_FLAG and VOLATILE_FLAG parameters and adjust. (update_pointer_to): Also clear TYPE_REFERENCE_TO in the unconstrained case. From-SVN: r235521
Eric Botcazou committed -
Commit r210360 removed the first "i" field from the various instruction nodes in rtx.def, moving it to an explicit "int insn_uid;" field of the union "u2" within rtx_def. Update the comment in rtl.def to reflect this change. Also, fix a stray apostrophe. gcc/ChangeLog: * rtl.def: Update comment for "things in the instruction chain" to reflect the removal of the leading "i" field for INSN_UID in r210360. Fix bogus apostrophe. From-SVN: r235520
David Malcolm committed -
* config/i386/i386.md (lea arith with mem operand + setcc peephole2): Set operator mode. From-SVN: r235519
Uros Bizjak committed -
128-bit SSE load and store instructions can be used for load and store of 128-bit integers if they are the only operations on 128-bit integers. To convert load and store of 128-bit integers to 128-bit SSE load and store, the original STV pass, which is designed to convert 64-bit integer operations to SSE2 operations in 32-bit mode, is extended to 64-bit mode in the following ways: 1. Class scalar_chain is turned into base class. The 32-bit specific member functions are moved to the new derived class, dimode_scalar_chain. The new derived class, timode_scalar_chain, is added to convert oad and store of 128-bit integers to 128-bit SSE load and store. 2. Add the 64-bit version of scalar_to_vector_candidate_p and remove_non_convertible_regs. Only TImode load and store are allowed for conversion. If one instruction on the chain of dependent instructions aren't TImode load or store, the chain of instructions won't be converted. 3. In 64-bit, we only convert from TImode to V1TImode, which have the same size. The difference is only vector registers are allowed in TImode so that 128-bit SSE load and store instructions will be used for load and store of 128-bit integers. 4. Put the 64-bit STV pass before the CSE pass so that instructions changed or generated by the STV pass can be CSEed. convert_scalars_to_vector calls free_dominance_info in 64-bit mode to work around ICE in fwprop pass: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70807 when building libgcc on Linux/x86-64. gcc/ PR target/70155 * config/i386/i386.c (scalar_to_vector_candidate_p): Renamed to ... (dimode_scalar_to_vector_candidate_p): This. (timode_scalar_to_vector_candidate_p): New function. (scalar_to_vector_candidate_p): Likewise. (timode_check_non_convertible_regs): Likewise. (timode_remove_non_convertible_regs): Likewise. (remove_non_convertible_regs): Likewise. (remove_non_convertible_regs): Renamed to ... (dimode_remove_non_convertible_regs): This. (scalar_chain::~scalar_chain): Make it virtual. (scalar_chain::compute_convert_gain): Make it pure virtual. (scalar_chain::mark_dual_mode_def): Likewise. (scalar_chain::convert_insn): Likewise. (scalar_chain::convert_registers): Likewise. (scalar_chain::add_to_queue): Make it protected. (scalar_chain::emit_conversion_insns): Likewise. (scalar_chain::replace_with_subreg): Likewise. (scalar_chain::replace_with_subreg_in_insn): Likewise. (scalar_chain::convert_op): Likewise. (scalar_chain::convert_reg): Likewise. (scalar_chain::make_vector_copies): Likewise. (scalar_chain::convert_registers): New pure virtual function. (class dimode_scalar_chain): New class. (class timode_scalar_chain): Likewise. (scalar_chain::mark_dual_mode_def): Renamed to ... (dimode_scalar_chain::mark_dual_mode_def): This. (timode_scalar_chain::mark_dual_mode_def): New function. (timode_scalar_chain::convert_insn): Likewise. (dimode_scalar_chain::convert_registers): Likewise. (scalar_chain::compute_convert_gain): Renamed to ... (dimode_scalar_chain::compute_convert_gain): This. (scalar_chain::replace_with_subreg): Renamed to ... (dimode_scalar_chain::replace_with_subreg): This. (scalar_chain::replace_with_subreg_in_insn): Renamed to ... (dimode_scalar_chain::replace_with_subreg_in_insn): This. (scalar_chain::make_vector_copies): Renamed to ... (dimode_scalar_chain::make_vector_copies): This. (scalar_chain::convert_reg): Renamed to ... (dimode_scalar_chain::convert_reg ): This. (scalar_chain::convert_op): Renamed to ... (dimode_scalar_chain::convert_op): This. (scalar_chain::convert_insn): Renamed to ... (dimode_scalar_chain::convert_insn): This. (scalar_chain::convert): Call convert_registers. (convert_scalars_to_vector): Change to scalar_chain pointer to use timode_scalar_chain in 64-bit mode and dimode_scalar_chain in 32-bit mode. Delete scalar_chain pointer. Call free_dominance_info in 64-bit mode. (pass_stv::gate): Remove TARGET_64BIT check. (ix86_option_override): Put the 64-bit STV pass before the CSE pass. gcc/testsuite/ PR target/70155 * gcc.target/i386/pr55247-2.c: Updated to check movti_internal and movv1ti_internal patterns * gcc.target/i386/pr70155-1.c: New test. * gcc.target/i386/pr70155-2.c: Likewise. * gcc.target/i386/pr70155-3.c: Likewise. * gcc.target/i386/pr70155-4.c: Likewise. * gcc.target/i386/pr70155-5.c: Likewise. * gcc.target/i386/pr70155-6.c: Likewise. * gcc.target/i386/pr70155-7.c: Likewise. * gcc.target/i386/pr70155-8.c: Likewise. * gcc.target/i386/pr70155-9.c: Likewise. * gcc.target/i386/pr70155-10.c: Likewise. * gcc.target/i386/pr70155-11.c: Likewise. * gcc.target/i386/pr70155-12.c: Likewise. * gcc.target/i386/pr70155-13.c: Likewise. * gcc.target/i386/pr70155-14.c: Likewise. * gcc.target/i386/pr70155-15.c: Likewise. * gcc.target/i386/pr70155-16.c: Likewise. * gcc.target/i386/pr70155-17.c: Likewise. * gcc.target/i386/pr70155-18.c: Likewise. * gcc.target/i386/pr70155-19.c: Likewise. * gcc.target/i386/pr70155-20.c: Likewise. * gcc.target/i386/pr70155-21.c: Likewise. * gcc.target/i386/pr70155-22.c: Likewise. From-SVN: r235518
H.J. Lu committed -
* gcc.target/i386/avx512vl-vmovdqa64-1.c: Replace ".{5}" with ".{5,6}". From-SVN: r235516
H.J. Lu committed -
As discussed on <https://gcc.gnu.org/ml/gcc-patches/2016-02/msg01708.html>, this change removes a field in the dw_loc_descr_node structure so we can get rid of the CHECKING_P macro usage. This field was used to perform consistency checks for frame offset in DWARF procedures. As a replacement, this commit turns the "visited nodes" set in resolve_args_picking_1 into a map that remembers for each dw_loc_descr_node the frame offset associated to it, so that the consistency check is still operational. Boostrapped and regtested on x86_64-linux. 2016-04-27 Pierre-Marie de Rodat <derodat@adacore.com> * dwarf2out.h (struct dw_loc_descr_node): Remove the dw_loc_frame_offset field. * dwarf2out.c (new_loc_descr): Likewise. (resolve_args_picking_1): Turn the VISITED hash set into a FRAME_OFFSET hash map. Use it to associate a frame offset to visited nodes. Remove uses of the CHECKING_P macro. (resolve_args_picking): Update call to resolve_args_picking_1. From-SVN: r235515
Pierre-Marie de Rodat committed -
* tree-ssa-loop-ivopts.c (iv_ca_dump): Fix level of indentation. (free_loop_data): Release vuses of groups. From-SVN: r235514
Martin Liska committed -
tree-ssa-loop-ivopts.c (struct iv): Use pointer to struct iv_use instead of redundant use_id and boolean have_use_for. * tree-ssa-loop-ivopts.c (struct iv): Use pointer to struct iv_use instead of redundant use_id and boolean have_use_for. (struct iv_use): Change sub_id into group_id. Remove field next. Move fields: related_cands, n_map_members, cost_map and selected to ... (struct iv_group): ... here. New structure. (struct iv_common_cand): Use structure declaration directly. (struct ivopts_data, iv_ca, iv_ca_delta): Rename fields. (MAX_CONSIDERED_USES): Rename macro to ... (MAX_CONSIDERED_GROUPS): ... here. (n_iv_uses, iv_use, n_iv_cands, iv_cand): Delete. (dump_iv, dump_use, dump_cand): Refactor format of dump information. (dump_uses): Rename to ... (dump_groups): ... here. Update all uses. (tree_ssa_iv_optimize_init, alloc_iv): Update all uses. (find_induction_variables): Refactor format of dump information. (record_sub_use): Delete. (record_use): Update all uses. (record_group): New function. (record_group_use, find_interesting_uses_op): Call above functions. Update all uses. (find_interesting_uses_cond): Ditto. (group_compare_offset): New function. (split_all_small_groups): Rename to ... (split_small_address_groups_p): ... here. Update all uses. (split_address_groups): Update all uses. (find_interesting_uses): Refactor format of dump information. (add_candidate_1): Update all uses. Remove redundant check on iv, base and step. (add_candidate, record_common_cand): Remove redundant assert. (add_iv_candidate_for_biv): Update use. (add_iv_candidate_derived_from_uses): Update all uses. (add_iv_candidate_for_groups, record_important_candidates): Ditto. (alloc_use_cost_map): Ditto. (set_use_iv_cost, get_use_iv_cost): Rename to ... (set_group_iv_cost, get_group_iv_cost): ... here. Update all uses. (determine_use_iv_cost_generic): Ditto. (determine_group_iv_cost_generic): Ditto. (determine_use_iv_cost_address): Ditto. (determine_group_iv_cost_address): Ditto. (determine_use_iv_cost_condition): Ditto. (determine_group_iv_cost_cond): Ditto. (determine_use_iv_cost): Ditto. (determine_group_iv_cost): Ditto. (set_autoinc_for_original_candidates): Update all uses. (find_iv_candidates): Update all uses. Refactor dump information. (determine_use_iv_costs): Ditto. (determine_iv_costs): Ditto. (iv_ca_cand_for_use): Rename to ... (iv_ca_cand_for_group): ... here. Update all uses. (iv_ca_add_use, iv_ca_add_group): Ditto. (iv_ca_set_cp, iv_ca_cost, iv_ca_delta_add): Update all uses. (iv_ca_delta_join, iv_ca_delta_reverse, iv_ca_delta_free): Ditto. (iv_ca_new, iv_ca_dump, iv_ca_extend, iv_ca_narrow): Ditto. (iv_ca_prune, cheaper_cost_with_cand, iv_ca_replace): Ditto. (try_add_cand_for, try_improve_iv_set, find_optimal_iv_set): Ditto. (create_new_iv, adjust_iv_update_pos): Ditto. (rewrite_use_address): Delete. (rewrite_use_address_1): Rename to ... (rewrite_use_address): ... here. (rewrite_use_compare): Update all uses. (rewrite_use): Delete. (rewrite_uses): Rename to ... (rewrite_groups): ... here. Update all uses. (remove_unused_ivs, free_loop_data): Update all uses. (tree_ssa_iv_optimize_finalize, tree_ssa_iv_optimize_loop): Ditto. gcc/testsuite/ChangeLog * gcc.dg/tree-ssa/pr64705.c: Revise check string. * gcc.dg/tree-ssa/scev-9.c: Ditto. * gcc.dg/tree-ssa/scev-10.c: Ditto. * gcc.dg/tree-ssa/scev-11.c: Ditto. * gcc.dg/tree-ssa/scev-12.c: Ditto. From-SVN: r235513
Bin Cheng committed -
* rtlanal.c (nonzero_bits1): Convert preprocessor check for WORD_REGISTER_OPERATIONS to runtime check. From-SVN: r235512
Kyrylo Tkachov committed -
2016-04-27 Richard Biener <rguenther@suse.de> PR ipa/70760 * tree-ssa-structalias.c (find_func_aliases_for_call): Use aggregate_value_p to determine if a function result is returned by reference. (ipa_pta_execute): Functions having their address taken are not automatically nonlocal. * g++.dg/ipa/ipa-pta-2.C: New testcase. * gcc.dg/ipa/ipa-pta-1.c: Adjust. From-SVN: r235511
Richard Biener committed -
PR sanitizer/70683 * tree-core.h (enum operand_equal_flag): Add OEP_NO_HASH_CHECK. * fold-const.c (operand_equal_p): If flag_checking and OEP_NO_HASH_CHECK is not set in flag, recurse with OEP_NO_HASH_CHECK and if it returns non-zero, assert iterative_hash_expr on both args is the same. From-SVN: r235507
Jakub Jelinek committed -
cp/ * constexpr.c (get_fundef_copy): Use the original function for non-recursive evaluations. (save_fundef_copy): Always expect a slot to be available. testsuite/ * g++.dg/cpp0x/constexpr-recursion3.C: New. * g++.dg/ubsan/pr63956.C: Adjust error location. From-SVN: r235506
Nathan Sidwell committed -
2016-04-27 Arnaud Charlet <charlet@adacore.com> * aa_util.adb, aa_util.ads: Removed, no longer used. 2016-04-27 Hristian Kirtchev <kirtchev@adacore.com> * sem_prag.adb (Analyze_Pragma): An object renaming declaration resulting from the expansion of an object declaration is a suitable context for pragma Ghost. 2016-04-27 Doug Rupp <rupp@adacore.com> * init.c: Refine last checkin so the only requirement is the signaling compilation unit is compiled with the same mode as the compilation unit containing the initial landing pad. 2016-04-27 Ed Schonberg <schonberg@adacore.com> * sem_ch13.adb (Valid_Default_Iterator): Better filter of illegal specifications for Default_Iterator, including overloaded cases where no interpretations are legal, and return types that are not iterator types. 2016-04-27 Hristian Kirtchev <kirtchev@adacore.com> * exp_ch5.adb (Expand_N_Assignment_Statement): Do not install an accessibility check when the left hand side of the assignment denotes a container cursor. * exp_util.ads, exp_util.adb (Find_Primitive_Operations): Removed. * sem_ch4.adb (Find_Indexing_Operations): New routine. (Try_Container_Indexing): Code cleanup. From-SVN: r235505
Arnaud Charlet committed -
2016-04-27 Arnaud Charlet <charlet@adacore.com> * sem_ch10.adb, sem_case.adb: Mark messages udner -gnatwr when needed. 2016-04-27 Hristian Kirtchev <kirtchev@adacore.com> * errout.adb, errutil.adb: Minor reformatting. 2016-04-27 Ed Schonberg <schonberg@adacore.com> * sem_ch13.adb (Analyze_Aspect_Specifications, case Pre/Post): Check that the classwide version is illegal when the prefix is an operation of an untagged synchronized type. From-SVN: r235504
Arnaud Charlet committed -
2016-04-27 Arnaud Charlet <charleT@adacore.com> * sinput-l.ads, sem_ch13.adb: Minor editing. 2016-04-27 Doug Rupp <rupp@adacore.com> * init.c (__gnat_adjust_context_for_raise) [arm-linux thumb]: Bump the pc so the lower order bit is set. 2016-04-27 Ed Schonberg <schonberg@adacore.com> * sem_case.adb, sem_case.ads (NO_Op): If appropriate warning is enabled, report an empty range in a case construct. From-SVN: r235503
Arnaud Charlet committed -
2016-04-27 Arnaud Charlet <charlet@adacore.com> * sinput.ads, a-cfdlli.adb, a-crbtgo.adb, a-chtgop.adb, a-cbhama.adb, a-rbtgbo.adb, a-crdlli.adb, a-chtgbo.adb: Minor editing. From-SVN: r235502
Arnaud Charlet committed -
2016-04-27 Bob Duff <duff@adacore.com> * a-chtgop.adb (Adjust): Zero the tampering counts on assignment, as is done for the other containers. 2016-04-27 Hristian Kirtchev <kirtchev@adacore.com> * ghost.adb (In_Subprogram_Body_Profile): New routine. (Is_OK_Declaration): Treat an unanalyzed expression function as an OK context. Treat a reference to a Ghost entity as OK when it appears within the profile of a subprogram body. 2016-04-27 Bob Duff <duff@adacore.com> * errout.ads: Document the fact that informational messages don't have to be warnings. * errout.adb (Error_Msg_Internal): In statistics counts, deal correctly with informational messages that are not warnings. (Error_Msg_NEL): Remove useless 'if' aroung Set_Posted, because Set_Posted already checks for errors and ignores others. * erroutc.adb (Prescan_Message): Set Is_Serious_Error to False if Is_Info_Msg; the previous code was assuming that Is_Info_Msg implies Is_Warning_Msg. * errutil.adb (Error_Msg): In statistics counts, deal correctly with informational messages that are not warnings. From-SVN: r235500
Arnaud Charlet committed -
2016-04-27 Ed Schonberg <schonberg@adacore.com> * sem_util.ads, sem_util.adb (Is_Null_Record_Type): New predicate to determine whether a record type is a null record. * sem_ch3.adb (Analyze_Object_Declaration): If the type is a null record and there is no expression in the declaration, no predicate check applies to the object. 2016-04-27 Hristian Kirtchev <kirtchev@adacore.com> * sem_ch7.adb (Analyze_Package_Body_Helper): The body of an instantiated package should not cause freezing of previous contracts. 2016-04-27 Ed Schonberg <schonberg@adacore.com> * sem_dim.adb (Analyze_Dimension): Handle subtype declarations that do not come from source. (Analyze_Dimension_Subtype_Declaration): Allow confirming dimensions on subtype entity, either inherited from base type or provided by aspect specification. 2016-04-27 Ed Schonberg <schonberg@adacore.com> * s-gearop.ads (Matrix_Vector_Solution, Matrix_Matrix_Solution): Add scalar formal object Zero, to allow detection and report when the matrix is singular. * s-gearop.adb (Matrix_Vector_Solution, Matrix_Matrix_Solution): Raise Constraint_Error if the Forward_Eliminate pass has determined that determinant is Zero.o * s-ngrear.adb (Solve): Add actual for Zero in corresponding instantiations. * s-ngcoar.adb (Solve): Ditto. From-SVN: r235499
Arnaud Charlet committed -
2016-04-27 Hristian Kirtchev <kirtchev@adacore.com> * sem_ch3.adb: Minor reformatting. 2016-04-27 Ed Schonberg <schonberg@adacore.com> * sem_dim.adb (Analyze_Dimension, case N_Identifier): Check that identifier has a usable type before analysis, to handle properly identifiers introduced after some lexical/syntactic recovery that created new identifiers. From-SVN: r235498
Arnaud Charlet committed -
2016-04-27 Bob Duff <duff@adacore.com> * a-coinve.adb, a-comutr.adb, a-conhel.adb, a-convec.adb, exp_util.adb: Remove assertions that can fail in obscure cases when assertions are turned on but tampering checks are turned off. 2016-04-27 Javier Miranda <miranda@adacore.com> * exp_ch6.adb (Add_Call_By_Copy_Code, Add_Simple_Call_By_Copy_Code, Expand_Actuals): Handle formals whose type comes from the limited view. 2016-04-27 Yannick Moy <moy@adacore.com> * a-textio.adb: Complete previous patch. 2016-04-27 Yannick Moy <moy@adacore.com> * inline.adb (Expand_Inlined_Call): Use Cannot_Inline instead of Error_Msg_N to issue message about impossibility to inline call, with slight change of message. 2016-04-27 Hristian Kirtchev <kirtchev@adacore.com> * exp_spark.adb (Expand_Potential_Renaming): Removed. (Expand_SPARK): Update the call to expand a potential renaming. (Expand_SPARK_Potential_Renaming): New routine. * exp_spark.ads (Expand_SPARK_Potential_Renaming): New routine. * sem.adb Add with and use clauses for Exp_SPARK. (Analyze): Expand a non-overloaded potential renaming for SPARK. 2016-04-27 Ed Schonberg <schonberg@adacore.com> * sem_ch3.adb (Constrain_Discriminated_Type): In an instance, check full view for the presence of defaulted discriminants, even when the partial view of a private type has no visible and no unknown discriminants. From-SVN: r235497
Arnaud Charlet committed -
2016-04-27 Hristian Kirtchev <kirtchev@adacore.com> * lib-xref.adb, exp_ch3.adb: Minor reformatting. 2016-04-27 Nicolas Roche <roche@adacore.com> * rtinit.c: Add weak symbol __gnat_do_argv_expansion. From-SVN: r235496
Arnaud Charlet committed -
2016-04-27 Hristian Kirtchev <kirtchev@adacore.com> * sem_prag.adb (Process_Atomic_Independent_Shared_Volatile): Code cleanup. Check the original node when trying to determine the node kind of pragma Volatile's argument to account for untagged derivations where the type is transformed into a constrained subtype. 2016-04-27 Olivier Hainque <hainque@adacore.com> * mkdir.c (__gnat_mkdir): Rework the vxworks section to use a consistent posix interface on the caller side. 2016-04-27 Ed Schonberg <schonberg@adacore.com> * sem_ch10.adb (Build_Limited_View, Decorate_Type): If this is a limited view of a type, initialize the Limited_Dependents field to catch misuses of the type in a client unit. 2016-04-27 Thomas Quinot <quinot@adacore.com> * a-strunb-shared.adb (Finalize): add missing Reference call. * s-strhas.adb: minor grammar fix and extension of comment * sem_ch8.adb: minor whitespace fixes 2016-04-27 Ed Schonberg <schonberg@adacore.com> * lib-xref.adb (Get_Type_Reference): Handle properly the case of an object declaration whose type definition is a class-wide subtype and whose expression is a function call that returns a classwide type. 2016-04-27 Hristian Kirtchev <kirtchev@adacore.com> * sem_util.ads, sem_util.adb (Output_Entity): New routine. (Output_Name): New routine. 2016-04-27 Bob Duff <duff@adacore.com> * exp_ch3.adb (Rewrite_As_Renaming): Disable previous change for now. From-SVN: r235495
Arnaud Charlet committed -
2016-04-27 Vincent Celier <celier@adacore.com> * gnatcmd.adb: For "gnat ls -V -P", recognize switch --unchecked-shared-lib-imports and set the flag Opt.Unchecked_Shared_Lib_Imports accordingly. 2016-04-27 Ed Schonberg <schonberg@adacore.com> * sem_prag.adb (Analyze_Pre_Post_Condition_In_Decl_Part): A generic subprogram is never a primitive operation, and thus a classwide condition for it is not legal. 2016-04-27 Hristian Kirtchev <kirtchev@adacore.com> * sem_aggr.adb, sem_dim.adb, sem_dim.ads, einfo.adb: Minor reformatting. From-SVN: r235494
Arnaud Charlet committed
-