aboutsummaryrefslogtreecommitdiff
path: root/gcc
AgeCommit message (Collapse)AuthorFilesLines
2015-07-16Handle unused reduction in create_loads_for_reductionsTom de Vries2-0/+9
2015-07-16 Tom de Vries <tom@codesourcery.com> * tree-parloops.c (create_loads_for_reductions): Handle case that reduction is unused. From-SVN: r225872
2015-07-16re PR tree-optimization/66894 (wrong code at -Os and above on x86_64-linux-gnu)Richard Biener4-4/+34
2015-07-16 Richard Biener <rguenther@suse.de> PR tree-optimization/66894 * tree-vrp.c (register_edge_assert_for_2): Fix bad assumption about deriving NE_EXPR from truncated values. * gcc.dg/torture/pr66894.c: New testcase. From-SVN: r225870
2015-07-16Add new object_allocator and clean-up allocator usage.Martin Liska38-592/+401
* c-format.c (static void check_format_info_main): Use object_allocator instead of pool_allocator. (check_format_arg): Likewise. (check_format_info_main): Likewise. * alloc-pool.h (object_allocator): Add new class. (pool_allocator::initialize): Use the underlying class. (pool_allocator::allocate): Likewise. (pool_allocator::remove): Likewise. (operator new): A new generic allocator. * asan.c (struct asan_mem_ref): Remove unused members. (asan_mem_ref_new): Replace new operator with object_allocator::allocate. (free_mem_ref_resources): Change deallocation. * cfg.c (initialize_original_copy_tables): Replace pool_allocator with object_allocator. * config/sh/sh.c (add_constant): Replace new operator with object_allocator::allocate. (sh_reorg): Change call to a release method. * cselib.c (struct elt_list): Remove unused members. (new_elt_list): Replace new operator with object_allocator::allocate. (new_elt_loc_list): Likewise. (new_cselib_val): Likewise. (unchain_one_elt_list): Change delete operator with remove method. (unchain_one_elt_loc_list): Likewise. (unchain_one_value): Likewise. (cselib_finish): Release newly added static allocators. * cselib.h (struct cselib_val): Remove unused members. (struct elt_loc_list): Likewise. * df-problems.c (df_chain_alloc): Replace pool_allocator with object_allocator. * df-scan.c (struct df_scan_problem_data): Likewise. (df_scan_alloc): Likewise. * df.h (struct dataflow): Likewise. * dse.c (struct read_info_type): Likewise. (struct insn_info_type): Likewise. (struct dse_bb_info_type): Likewise. (struct group_info): Likewise. (struct deferred_change): Likewise. (get_group_info): Likewise. (delete_dead_store_insn): Likewise. (free_read_records): Likewise. (replace_read): Likewise. (check_mem_read_rtx): Likewise. (scan_insn): Likewise. (dse_step1): Likewise. (dse_step7): Likewise. * et-forest.c (struct et_occ): Remove unused members. (et_new_occ): Use allocate instead of new operator. (et_new_tree): Likewise. (et_free_tree): Call release method explicitly. (et_free_tree_force): Likewise. (et_free_pools): Likewise. (et_split): Use remove instead of delete operator. * et-forest.h (struct et_node): Remove unused members. * ipa-cp.c: Change pool_allocator to object_allocator. * ipa-inline-analysis.c: Likewise. * ipa-profile.c: Likewise. * ipa-prop.c: Likewise. * ipa-prop.h: Likewise. * ira-build.c (initiate_cost_vectors): Cast return value. (ira_allocate_cost_vector): Likewise. * ira-color.c (struct update_cost_record): Remove unused members. * lra-int.h (struct lra_live_range): Likewise. (struct lra_copy): Likewise. (struct lra_insn_reg): Likewise. * lra-lives.c (lra_live_ranges_finish): Release new static allocator. * lra.c (new_insn_reg): Replace new operator with allocate method. (free_insn_regs): Same for operator delete. (finish_insn_regs): Release new static allocator. (finish_insn_recog_data): Likewise. (lra_free_copies): Replace delete operator with remove method. (lra_create_copy): Replace operator new with allocate method. (invalidate_insn_data_regno_info): Same for remove method. * regcprop.c (struct queued_debug_insn_change): Remove unused members. (free_debug_insn_changes): Replace delete operator with remove method. (replace_oldest_value_reg): Replace operator new with allocate method. (pass_cprop_hardreg::execute): Release new static variable. * sched-deps.c (sched_deps_init): Change pool_allocator to object_allocator. * sel-sched-ir.c: Likewise. * sel-sched-ir.h: Likewise. * stmt.c (expand_case): Likewise. (expand_sjlj_dispatch_table): Likewise. * tree-sra.c (struct access): Remove unused members. (struct assign_link): Likewise. (sra_deinitialize): Release newly added static pools. (create_access_1):Replace operator new with allocate method. (build_accesses_from_assign): Likewise. (create_artificial_child_access): Likewise. * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Change pool_allocator to object_allocator. * tree-ssa-pre.c: Likewise. * tree-ssa-reassoc.c: Likewise. * tree-ssa-sccvn.c (allocate_vn_table): Likewise. * tree-ssa-strlen.c: Likewise. * tree-ssa-structalias.c: Likewise. * var-tracking.c (onepart_pool_allocate): New function. (unshare_variable): Use the newly added function. (variable_merge_over_cur): Likewise. (variable_from_dropped): Likewise. (variable_was_changed): Likewise. (set_slot_part): Likewise. (emit_notes_for_differences_1): Likewise. (vt_finalize): Release newly added static pools. From-SVN: r225869
2015-07-16Give struct param_aa_atatus and struct func_body_info an ipa_ prefix.Martin Jambor4-44/+51
2015-07-16 Martin Jambor <mjambor@suse.cz> * ipa-prop.h (param_aa_status): Rename to ipa_param_aa_status. Adjust all uses. Fix two typos in its general comment. (func_body_info): Rename to ipa_func_body_info. Adjust all uses. From-SVN: r225867
2015-07-16linux-common.h (LINK_MPX): New.Ilya Enkovich5-7/+78
gcc/ * config/i386/linux-common.h (LINK_MPX): New. (MPX_SPEC): Use LINK_MPX instead of %(link_mpx). * configure.ac: Add HAVE_LD_BNDPLT_SUPPORT macro indicating '-z bndplt' support by linker. * configure: Regenerate. * config.in: Regenerate. libmpx/ * configure.ac: Remove link_mpx. * libmpx.spec.in: Likewise. * configure: Regenerate. From-SVN: r225862
2015-07-16fold-const.c (fold_widened_comparison): Remove.Richard Biener7-160/+74
2015-07-16 Richard Biener <rguenther@suse.de> * fold-const.c (fold_widened_comparison): Remove. (fold_sign_changed_comparison): Likewise. (fold_comparison): Move widened and sign-changed comparison simplification ... * match.pd: ... to patterns here. * generic-match-head.c: Include target.h. * gimple-match-head.c: Likewise. * gcc.dg/tree-ssa/pr21031.c: Adjust. From-SVN: r225861
2015-07-16tree-ssa-dom.c (dom_valueize): New function.Richard Biener2-1/+56
2015-07-16 Richard Biener <rguenther@suse.de> * tree-ssa-dom.c (dom_valueize): New function. (record_temporary_equivalences): Also record equivalences for dominating stmts that have uses of equivalences we are about to record. From-SVN: r225860
2015-07-16tree-ssa-loop-ivopts.c (add_candidate): Remove call to add_autoinc_candidates.Bin Cheng2-18/+37
* tree-ssa-loop-ivopts.c (add_candidate): Remove call to add_autoinc_candidates. (add_iv_candidate_for_biv): Rename to add_iv_candidate_for_biv. (add_iv_candidate_for_biv): Rename from add_iv_candidate_for_biv. (add_old_ivs_candidates): Rename to add_iv_candidate_for_bivs. (add_iv_candidate_for_bivs): Rename from add_old_ivs_candidates. Call new function. (add_iv_value_candidates): Rename to add_iv_candidate_for_use. (add_iv_candidate_for_use): Rename from add_iv_value_candidates. Remove parameter struct iv*. Call add_autoinc_candidates here. (add_derived_ivs_candidates): Rename to add_iv_candidate_for_uses. (add_iv_candidate_for_uses): Rename from add_derived_ivs_candidates. Call new function. (find_iv_candidates): Call new functions. From-SVN: r225859
2015-07-15nios2.c (nios2_emit_stack_limit_check): Fix uninitialized-variable warning.Sandra Loosemore2-1/+6
2015-07-16 Sandra Loosemore <sandra@codesourcery.com> gcc/ * config/nios2/nios2.c (nios2_emit_stack_limit_check): Fix uninitialized-variable warning. From-SVN: r225857
2015-07-16re PR target/65249 (unable to find a register to spill in class 'R0_REGS' ↵Kaz Kojima2-0/+24
when compiling protobuf on sh4) PR target/65249 * config/sh/sh.md (movdi): Split simple reg move to two movsi when the destination is R0 so as to lower R0-register pressure. From-SVN: r225856
2015-07-16Daily bump.GCC Administrator1-1/+1
From-SVN: r225855
2015-07-16re PR target/66866 (incorrect load address on manual vector shuffle)Uros Bizjak6-18/+187
PR target/66866 * config/i386/i386-protos.h (ix86_expand_pextr): New prototype. * config/i386/i386.c (ix86_expand_pextr): New function. (ix86_expand_pinsr): Handle V1TI and TI modes. Call ix86_expand_pextr for non-lowpart subregs. * config/i386/i386.md (extzv<mode>): Expand with ix86_expand_pextr. (insv<mode>): Use SWI248 mode iterator. (insv<mode>_1): Ditto. testsuite/ChangeLog: PR target/66866 * g++.dg/pr66866.C: New test. From-SVN: r225852
2015-07-15One of the code refactorings introducing phi node iterators modified the ↵Aditya Kumar2-3/+9
semantics of this code. One of the code refactorings introducing phi node iterators modified the semantics of this code. Revert that change to what was before. * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Point iterator to use_stmt. Co-Authored-By: Sebastian Pop <s.pop@samsung.com> From-SVN: r225851
2015-07-15[graphite] discard scops for which entry==exitAditya Kumar2-1/+14
In this patch we discard the scops where entry and exit are the same BB. This is an effort to remove graphite-scop-detection.c:limit_scops. Removing the limit_scops function introduces correctness regressions. We are making relevant changes in incremental steps to fix those bugs, and finally we intend to remove limit_scops. 2015-06-29 Aditya Kumar <aditya.k7@samsung.com> Sebastian Pop <s.pop@samsung.com> * graphite-scop-detection.c (build_scops_1): Discard scops for which entry==exit Co-Authored-By: Sebastian Pop <s.pop@samsung.com> From-SVN: r225850
2015-07-15graphite-scop-detection.c (stmt_simple_for_scop_p): Bail out in case of a ↵Aditya Kumar2-1/+6
return statement in scop. * graphite-scop-detection.c (stmt_simple_for_scop_p): Bail out in case of a return statement in scop. Co-Authored-By: Sebastian Pop <s.pop@samsung.com> From-SVN: r225849
2015-07-15graphite-sese-to-poly.c (parameter_index_in_region): Only handle ↵Aditya Kumar2-0/+20
INTEGER_TYPE parameters. * graphite-sese-to-poly.c (parameter_index_in_region): Only handle INTEGER_TYPE parameters. (scan_tree_for_params): Handle REAL_CST, COMPLEX_CST, and VECTOR_CST in scan_tree_for_params. (add_conditions_to_domain): Only constrain on INTEGER_TYPE. Co-Authored-By: Sebastian Pop <s.pop@samsung.com> From-SVN: r225848
2015-07-15gimple-pretty-print.h: Don't include pretty-print.h.Andrew MacLeod22-40/+29
* gimple-pretty-print.h: Don't include pretty-print.h. * tree-streamer.h: Don't include lto-streamer.h. * gimple-streamer.h: Include tree-streamer.h rather than lto-streamer.h. * gimple-streamer-in.c: Remove redundant includes. * gimple-streamer-out.c: Likewise. * ipa-devirt.c: Likewise. * ipa-icf.c: Likewise. * ipa-inline-analysis.c: Likewise. * ipa-polymorphic-call.c: Likewise. * ipa-profile.c: Likewise. * ipa-prop.c: Likewise. * ipa-pure-const.c: Likewise. * lto-cgraph.c: Likewise. * lto-streamer-in.c: Likewise. * lto-streamer-out.c: Likewise. * lto-streamer.c: Likewise. * tree-streamer-in.c: Likewise. * tree-streamer-out.c: Likewise. * tree-streamer.c: Likewise. * lto/lto.c: Remove redundant includes. From-SVN: r225847
2015-07-15opth-gen.awk: Check for UNKNOWN_LOCATION rather than GCC_TM_H, don't include ↵Andrew MacLeod9-28/+24
input.h. 2015-07-15 Andrew MacLeod <amacleod@redhat.com> * opth-gen.awk: Check for UNKNOWN_LOCATION rather than GCC_TM_H, don't include input.h. * opts.c: Remove multiline #include comment. 2015-07-15 Andrew MacLeod <amacleod@redhat.com> * java/expr.c: Remove multiline #include comment. 2015-07-15 Andrew MacLeod <amacleod@redhat.com> * fortran/trans-types.c: Remove multiline #include comment. 2015-07-15 Andrew MacLeod <amacleod@redhat.com> * c-family/c-opts.c: Remove multiline #include comment. From-SVN: r225846
2015-07-15mkoffload.c (process): Add C++ protection to emitted code.Nathan Sidwell2-1/+12
* config/nvptx/mkoffload.c (process): Add C++ protection to emitted code. From-SVN: r225844
2015-07-15re PR libgcc/66854 (libgcc2.c:1846:9: internal compiler error: Segmentation ↵Michael Meissner2-3/+9
fault) 2015-07-14 Michael Meissner <meissner@linux.vnet.ibm.com> PR target/66854 * config/rs6000/rs6000.c (rs6000_pass_by_reference): Move test for null before IEEE 128-bit floating point support patch. From-SVN: r225843
2015-07-15simplify-rtx.c (simplify_ternary_operation): Add simplification for (!c) != ↵Bill Schmidt4-0/+55
{0,...,0} ? a : b for vector modes. [gcc] 2015-07-15 Bill Schmidt <wschmidt@linux.vnet.ibm.com> * simplify-rtx.c (simplify_ternary_operation): Add simplification for (!c) != {0,...,0} ? a : b for vector modes. [gcc/testsuite] 2015-07-15 Bill Schmidt <wschmidt@linux.vnet.ibm.com> * gcc.target/powerpc/vec-cmp-sel.c: New test. From-SVN: r225840
2015-07-15Limit AA walking when inlining analysis examines parametersPaolo Bonzini4-109/+129
2015-07-15 Paolo Bonzini <bonzini@gnu.org> Martin Jambor <mjambor@suse.cz> * ipa-inline-analysis.c (unmodified_parm_or_parm_agg_item): Accept struct func_body_info* instead of struct ipa_node_params*, expecting fbi->info to be filled in. Replace throughout. Adjust call to ipa_load_from_parm_agg. (set_cond_stmt_execution_predicate): Accept struct func_body_info* instead of struct ipa_node_params*. Adjust calls to other functions so that they pass either fbi or fbi->info. (set_switch_stmt_execution_predicate): Likewise. (will_be_nonconstant_predicate): Likewise. (compute_bb_predicates): Likewise. (estimate_function_body_sizes): Move asserts earlier. Fill in struct func_body_info, replace parms_info with fbi.info. Adjust calls to functions that now accept struct func_body_info. * ipa-prop.c (param_aa_status, struct ipa_bb_info): Move to ipa-prop.h. (struct func_body_info): Likewise. (ipa_load_from_parm_agg_1): Rename to ipa_load_from_parm_agg, remove static. Adjust callers. (ipa_load_from_parm_agg): Remove. * ipa-prop.h (param_aa_status, ipa_bb_info): Move from ipa-prop.c. (func_body_info): Likewise. (ipa_load_from_parm_agg): Adjust prototype. Co-Authored-By: Martin Jambor <mjambor@suse.cz> From-SVN: r225838
2015-07-15remove some usage of expr_list from read_rtxTrevor Saunders4-36/+36
gcc/ChangeLog: 2015-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> * gensupport.c (rtx_handle_directive): Adjust. * read-rtl.c (apply_iterators): Take vector to add rtxs to instead of expr list rtx. (add_define_attr_for_define_subst): Likewise. (add_define_subst_attr): Likewise. (read_subst_mapping): Likewise. (read_rtx): Likewise. * rtl.h (read_rtx): Adjust. From-SVN: r225833
2015-07-15re PR c++/65091 (decltype(~arg) fails for template functions)Jason Merrill3-2/+26
PR c++/65091 * parser.c (cp_parser_unqualified_id): Don't accept ~x in a template if there is no type x in scope. From-SVN: r225831
2015-07-15[AArch64] Use cinc mnemonic for *csinc2<mode>_insnKyrylo Tkachov2-1/+5
* config/aarch64/aarch64.md (*csinc2<mode>_insn): Use cinc mnemonic. From-SVN: r225830
2015-07-15re PR target/58066 (__tls_get_addr is called with misaligned stack on x86-64)Uros Bizjak2-7/+19
PR target/58066 * config/i386/i386.md (*tls_global_dynamic_64_<mode>): Depend on SP_REG. (*tls_local_dynamic_base_64_<mode>): Ditto. (*tls_local_dynamic_base_64_largepic): Ditto. (tls_global_dynamic_64_<mode>): Update expander pattern. (tls_local_dynamic_base_64_<mode>): Ditto. From-SVN: r225829
2015-07-15fold-const.c (fold_binary_loc): Move bool_var != 0 -> bool_var and bool_var ↵Richard Biener3-22/+49
== 1 -> bool_var simplifications ... 2015-07-15 Richard Biener <rguenther@suse.de> * fold-const.c (fold_binary_loc): Move bool_var != 0 -> bool_var and bool_var == 1 -> bool_var simplifications ... * match.pd: ... to patterns here. Factor out negate_expr_p cases from the A - B -> A + (-B) patterns as negate_expr_p predicate and add a -(A + B) -> (-B) - A pattern. From-SVN: r225825
2015-07-15objc-torture.exp (OBJC_TORTURE_OPTIONS): Remove { -O3 -fomit-frame-pointer }...Richard Biener2-3/+11
2015-07-15 Richard Biener <rguenther@suse.de> * lib/objc-torture.exp (OBJC_TORTURE_OPTIONS): Remove { -O3 -fomit-frame-pointer }, { -O3 -fomit-frame-pointer -funroll-loops } and { -O3 -fomit-frame-pointer -funroll-all-loops -finline-functions } in favor of { -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions } From-SVN: r225821
2015-07-15Fix restoration of hi/lo in MIPS64R2 interrupt handlers.Robert Suchanek4-1/+17
gcc/ * config/mips/mips.c (mips_emit_save_slot_move): Fix typo. gcc/testsuite/ * gcc.target/mips/interrupt_handler-5.c: New test. From-SVN: r225820
2015-07-15Support new interrupt handler options.Matthew Fortune7-62/+328
gcc/ * config/mips/mips.c (mips_int_mask): New enum. (mips_shadow_set): Likewise. (int_mask): New variable. (use_shadow_register_set_p): Change type to enum mips_shadow_set. (machine_function): Add int_mask and use_shadow_register_set. (mips_attribute_table): Add attribute handlers for interrupt and use_shadow_register_set. (mips_interrupt_mask): New static function. (mips_handle_interrupt_attr): Likewise. (mips_handle_use_shadow_register_set_attr): Likewise. (mips_use_shadow_register_set): Change return type to enum mips_shadow_set. Add argument handling for use_shadow_register_set attribute. (mips_interrupt_extra_called_saved_reg_p): Update the conditional to compare with mips_shadow_set enum. (mips_compute_frame_info): Add interrupt mask and use_shadow_register_set to per-function information structure. Add a stack slot for EPC unconditionally. (mips_expand_prologue): Compare use_shadow_register_set value with mips_shadow_set enum. Save EPC always in K1, clobber only K1 for masked interrupt register but in EIC mode use K0 and save Cause in K0. EPC saved and restored unconditionally. Use PMODE_INSN macro when copying the stack pointer from the shadow register set. * config/mips/mips.h (SR_IM0): New define. * config/mips/mips.md (mips_rdpgpr): Rename to... (mips_rdpgpr_<mode>): ...this. Use the Pmode iterator. * doc/extend.texi (Declaring Attributes of Functions): Document optional arguments for interrupt and use_shadow_register_set attributes. gcc/testsuite/ * gcc.target/mips/interrupt_handler-4.c: New test. Co-Authored-By: Robert Suchanek <robert.suchanek@imgtec.com> From-SVN: r225819
2015-07-15Support interrupt handlers with hard-float.Robert Suchanek3-2/+17
gcc/ * config/mips/mips.c (mips_compute_frame_info): Allow -mhard-float in interrupt attribute. (mips_expand_prologue): Disable the floating point unit in an ISR. * config/mips/mips.h (SR_COP1): New define. From-SVN: r225818
2015-07-15re PR testsuite/66734 (Many MPX tests are skipped)Ilya Enkovich2-0/+6
PR testsuite/66734 * gcc.dg/lto/lto.exp: Initialize MPX. From-SVN: r225815
2015-07-15[ARM][testsuite] Add -mfloat-abi=softfp to some xscale testsKyrylo Tkachov3-2/+10
* gcc.target/arm/scd42-1.c: Add -mfloat-abi=softfp and appropriate dg-skip-if. * gcc.target/arm/scd42-3.c: Likewise. From-SVN: r225814
2015-07-15MIPS: In mips.exp allow the post-arch code to be run when the pre-arch code ↵Andrew Bennett2-2/+12
increases the isa_rev to mips32r6 or greater. testsuite/ * gcc.target/mips/mips.exp (mips-dg-options): Allow the post-arch code to be run when the pre-arch code increases the isa_rev to mips32r6 or greater. From-SVN: r225813
2015-07-15Add missing PR target/66731 to gcc/testsuite/ChangelogSzabolcs Nagy1-0/+1
From-SVN: r225810
2015-07-15genmatch.c (parser::peek, [...]): Add argument to tell how many tokens to ↵Richard Biener3-192/+260
peek ahead (default 1). 2015-07-15 Richard Biener <rguenther@suse.de> * genmatch.c (parser::peek, parser::peek_ident): Add argument to tell how many tokens to peek ahead (default 1). (parser::eat_token, parser::eat_ident): Return token consumed. (parser::parse_result): Parse new switch statement. * match.pd: Use case statements where appropriate. From-SVN: r225809
2015-07-15c-torture.exp (C_TORTURE_OPTIONS): Remove { -O3 -fomit-frame-pointer }...Richard Biener4-7/+16
2015-07-15 Richard Biener <rguenther@suse.de> * lib/c-torture.exp (C_TORTURE_OPTIONS): Remove { -O3 -fomit-frame-pointer }, { -O3 -fomit-frame-pointer -funroll-loops } and { -O3 -fomit-frame-pointer -funroll-all-loops -finline-functions } in favor of { -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions } * lib/gcc-dg.exp (DG_TORTURE_OPTIONS): Likewise. * gcc.c-torture/execute/builtins/builtins.exp: Add -fno-tracer to additional_flags. From-SVN: r225808
2015-07-15re PR target/58066 (__tls_get_addr is called with misaligned stack on x86-64)Uros Bizjak2-4/+13
PR rtl-optimization/58066 * calls.c (expand_call): Precompute register parameters before stack alignment is performed. From-SVN: r225807
2015-07-15re PR rtl-optimization/66838 (Calling multiple SYSV AMD64 ABI functions from ↵Uros Bizjak4-14/+79
MS x64 ABI one results in clobbered parameters) PR rtl-optimization/66838 * postreload.c (reload_cse_move2add): Also process CALL_INSN_FUNCTION_USAGE when resetting information of call-clobbered registers. testsuite/ChangeLog: PR rtl-optimization/66838 * gcc.target/i386/pr66838.c: New test. From-SVN: r225806
2015-07-15Daily bump.GCC Administrator1-1/+1
From-SVN: r225804
2015-07-15re PR c++/66850 (Adding a forward declaration of a template containing a ↵Patrick Palka4-3/+80
template template parm causes ICE on valid code) Fix PR c++/66850 gcc/cp/ChangeLog: PR c++/66850 * pt.c (redeclare_class_template): Set the DECL_CONTEXTs of each template template parm in the redeclaration. (lookup_template_class_1): Peel off irrelevant template levels from current_template_parms before augmenting the argument list. gcc/testsuite/ChangeLog: PR c++/66850 * g++.dg/template/pr66850.C: New test. From-SVN: r225801
2015-07-14constraints.md (U, v): New constraints.Sandra Loosemore14-21/+429
2015-07-14 Sandra Loosemore <sandra@codesourcery.com> Cesar Philippidis <cesar@codesourcery.com> Chung-Lin Tang <cltang@codesourcery.com> gcc/ * config/nios2/constraints.md (U, v): New constraints. * config/nios2/predicates.md (rdprs_dcache_operand): New. (ldstex_memory_operand): New. * config/nios2/sync.md: New file. * config/nios2/nios2.md (unspecv): Add new builtin function UNSPECV codes. (rdprs, flushd, flushda, wrpie, eni): New patterns. (top-level): Include sync.md. * config/nios2/nios2.c (N2_FTYPES): Add function types for new builtins. (N2_BUILTINS): Add arch field setting, add new builtins. (enum nios2_builtin_code,nios2_builtins): Update N2_BUILTIN_DEF for arch field. (nios2_expand_ldst_builtin): Rename from nios2_expand_ldstio_builtin. Also handle ldex/stex/ldsex/stsex builtins. (nios2_expand_rdprs_builtin): New function. (nios2_expand_cache_builtin): New function. (nios2_expand_wrpie_builtin): New function. (nios2_expand_eni_builtin): New function. (nios2_expand_builtin): Add arch field handling and new builtin cases. * doc/extend.texi (Altera Nios II Built-in Functions): Document new builtins. * doc/md.texi (Machine Constraints): Document U and v constraints. gcc/testsuite/ * gcc.target/nios2/nios2-flushd.c: New. * gcc.target/nios2/nios2-rdprs.c: New. * gcc.target/nios2/r2-atomic.c: New. * gcc.target/nios2/r2-eni.c: New. * gcc.target/nios2/r2-wrpie.c: New. Co-Authored-By: Cesar Philippidis <cesar@codesourcery.com> Co-Authored-By: Chung-Lin Tang <cltang@codesourcery.com> From-SVN: r225800
2015-07-14nios2-protos.h (nios2_expand_return): Declare.Sandra Loosemore4-74/+382
2015-07-14 Sandra Loosemore <sandra@codesourcery.com> Cesar Philippidis <cesar@codesourcery.com> Chung-Lin Tang <cltang@codesourcery.com> gcc/ * config/nios2/nios2-protos.h (nios2_expand_return): Declare. * config/nios2/nios2.c (struct GTY (()) machine_function): Add callee_save_reg_size and uses_anonymous_args fields. (nios2_compute_frame_layout): Update for CDX push.n/pop.n usage. (nios2_create_cfa_notes): New function. (nios2_adjust_stack): New function for adjusting stack. (nios2_expand_prologue): Update for CDX push.n/pop.n usage. Use nios2_adjust_stack. (nios2_expand_epilogue): Likewise. (nios2_expand_return): New function. (nios2_can_use_return_insn): Update for CDX pop.n usage. (nios2_setup_incoming_varargs): Set uses_anonymous_args flag. If TARGET_HAS_CDX, defer pushing regs to nios2_expand_prologue. * config/nios2/nios2.md (return): Use nios2_expand_return. Co-Authored-By: Cesar Philippidis <cesar@codesourcery.com> Co-Authored-By: Chung-Lin Tang <cltang@codesourcery.com> From-SVN: r225799
2015-07-14predicates.md (pop_operation): New.Sandra Loosemore10-0/+5068
2015-07-14 Sandra Loosemore <sandra@codesourcery.com> Cesar Philippidis <cesar@codesourcery.com> Chung-Lin Tang <cltang@codesourcery.com> gcc/ * config/nios2/predicates.md (pop_operation): New. (ldwm_operation, stwm_operation): New. (nios2_hard_register_operand): New. * config/nios2/nios2-protos.h (pop_operation_p): Declare. (ldstwm_operation_p): Declare. (gen_ldstwm_peep): Declare. * config/nios2/nios2.c: (nios2_ldst_parallel): Declare. (base_reg_adjustment_p): New. (pop_operation_p): New. (CDX_LDSTWM_VALID_REGS_0, CDX_LDSTWM_VALID_REGS_1): Define. (nios2_ldstwm_regset_p): New. (ldstwm_operation_p): New. (gen_ldst): New. (nios2_ldst_parallel): New. (struct ldswm_operand): Declare. (compare_ldstwm_operands): New. (can_use_cdx_ldstw): New. (gen_ldstwm_peep): New. * config/nios2/nios2-ldstwm.sml: New. * config/nios2/nios2.md: Include ldstwm.md. * config/nios2/ldstwm.md: Generated. gcc/testsuite/ * gcc.target/nios2/cdx-ldstwm-1.c: New. * gcc.target/nios2/cdx-ldstwm-2.c: New. Co-Authored-By: Cesar Philippidis <cesar@codesourcery.com> Co-Authored-By: Chung-Lin Tang <cltang@codesourcery.com> From-SVN: r225798
2015-07-14nios2.h (LABEL_ALIGN): Define.Sandra Loosemore20-122/+1390
2015-07-14 Sandra Loosemore <sandra@codesourcery.com> Cesar Philippidis <cesar@codesourcery.com> Chung-Lin Tang <cltang@codesourcery.com> gcc/ * config/nios2/nios2.h (LABEL_ALIGN): Define. (REG_ALLOC_ORDER): Define. (ADJUST_REG_ALLOC_ORDER): Define. (HONOR_REG_ALLOC_ORDER): Define. (CDX_REG_P): Define. (ANDCLEAR_INT): Define. * config/nios2/nios2-protos.h (nios2_add_insn_asm): Declare. (nios2_label_align): Declare. (nios2_cdx_narrow_form_p): Declare. (nios2_adjust_reg_alloc_order): Declare. * config/nios2/nios2.c (nios2_rtx_costs): Adjust for BMX zero-extract operation. (nios2_large_unspec_reloc_p): New function, split from... (nios2_legitimate_pic_operand_p): ...here. (nios2_emit_move_sequence): Add *high/*lo_sum constant expand code. (nios2_print_operand_punct_valid_p): New. (nios2_print_operand): Add %., %!, %x, %y, %A. Remove %U. (split_mem_address): New. (split_alu_insn): New. (cdxreg): New. (cdx_add_immed, cdx_and_immed, cdx_mov_immed, cdx_shift_immed): New. (enum nios2_add_insn_kind): New. (nios2_add_insn_names, nios2_add_insn_narrow): New. (nios2_add_insn_classify): New. (nios2_add_insn_asm): New. (nios2_cdx_narrow_form_p): New. (label_align, min_labelno, max_labelno): New. (nios2_reorg): New. (nios2_label_align): New. (nios2_adjust_reg_alloc_order): New. (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define. (TARGET_MACHINE_DEPENDENT_REORG): Define. * config/nios2/constraints.md (P): New constraint. * config/nios2/predicates.md (const_and_operand): New. (and_operand): New. (stack_memory_operand): New. * config/nios2/nios2.md (SP_REGNO): Define stack pointer regno. (length): Update to use nios2_cdx_narrow_form_p(). (type): Add new insn type values. (control, alu, st, ld, shift): Update insn reservations with new insn type values. (*high, *lo_sum): Define new insn patterns for constant generation. (movqi_internal, movhi_internal, movsi_internal): Reduce alternatives, update asm template to handle CDX variants, update type attributes. (zero_extendhisi2, zero_extendqi<mode>2): Add CDX variants to asm template, update type attributes. (extendhisi2, extendqi<mode>2): Likewise. (addsi3): Change to use function for asm string. (subsi3): Add CDX notation to asm template, update type attributes. (negsi3, one_cmplsi3): Likewise. (andsi3): New pattern, specialized from logical patterns. (<code>si3): Remove and case, combine alternatives, update asm template. (<shift_op>si3): Add CDX notation, update type attributes. (rotrsi3): Update type attribute. (*merge, extzv, insv): New insn patterns. (return): Change to define_expand. (simple_return): Add CDX notation, update type attributes. (indirect_jump): Add CDX notation. (jump): Update asm cases, update length attribute expression. (*call, *call_value, *sibcall, *sibcall_value): Add CDX variant. (nios2_cbranch): Update asm cases and length attribute expression to handle CDX variants. (nios2_cmp<code>): Update asm template. (nop): Add CDX notation, update type attributes. (trap): Add CDX notation. (ctrapsi4): Update asm cases and length attribute expression to handle CDX variant. * doc/md.texi (Machine Constraints): Document P constraint. gcc/testsuite/ * gcc.target/nios2/andci.c: New. * gcc.target/nios2/bmx.c: New. * gcc.target/nios2/cdx-add.c: New. * gcc.target/nios2/cdx-branch.c: New. * gcc.target/nios2/cdx-callret.c: New. * gcc.target/nios2/cdx-loadstore.c: New. * gcc.target/nios2/cdx-logical.c: New. * gcc.target/nios2/cdx-mov.c: New. * gcc.target/nios2/cdx-shift.c: New. * gcc.target/nios2/cdx-sub.c: New. * gcc.target/nios2/nios2-trap-insn.c: Adjust pattern. Co-Authored-By: Cesar Philippidis <cesar@codesourcery.com> Co-Authored-By: Chung-Lin Tang <cltang@codesourcery.com> From-SVN: r225796
2015-07-14re PR c++/65071 (ICE on valid, sizeof...() of template template parameter ↵Andrea Azzarone4-1/+21
pack in return type) /cp 2015-07-14 Andrea Azzarone <azzaronea@gmail.com> PR c++/65071 * parser.c (cp_parser_sizeof_pack): Also consider template template parameters. /testsuite 2015-07-14 Andrea Azzarone <azzaronea@gmail.com> PR c++/65071 * g++.dg/cpp0x/vt-65071.C: New. From-SVN: r225793
2015-07-14nios2.h (SMALL_INT12): New macro.Sandra Loosemore13-6/+201
2015-07-14 Sandra Loosemore <sandra@codesourcery.com> Cesar Philippidis <cesar@codesourcery.com> Chung-Lin Tang <cltang@codesourcery.com> gcc/ * config/nios2/nios2.h (SMALL_INT12): New macro. * config/nios2/nios2.c (nios2_valid_addr_offset_p): New function. (nios2_valid_addr_expr_p): Use it. (nios2_symbol_ref_in_small_data_p): Disallow GP-relative addressing with implicit "io" instructions on R2. * config/nios2/constraints.md (w): New constraint. * config/nios2/predicates.md (ldstio_memory_operand): New. * config/nios2/nios2.md (ld<bhw_uns>io, ld<bh>io): Update memory operand predicate and constraint. (ld<bh>io_signed, st<bhw>io>): Likewise. * doc/md.texi (Machine Constraints): Document w constraint. gcc/testsuite/ * gcc.target/nios2/r2-io-range.c: New. * gcc.target/nios2/r2-stio-1.c: New. * gcc.target/nios2/r2-stio-2.c: New. * gcc.target/nios2/nios2-ldxio.c: New. * gcc.target/nios2/nios2-stxio.c: Change to assemble test instead of just compile. Add more tests. Co-Authored-By: Cesar Philippidis <cesar@codesourcery.com> Co-Authored-By: Chung-Lin Tang <cltang@codesourcery.com> From-SVN: r225792
2015-07-14nios2.opt (march, mbmx, mcdx): New options.Sandra Loosemore7-4/+101
2015-07-14 Sandra Loosemore <sandra@codesourcery.com> Cesar Philippidis <cesar@codesourcery.com> Chung-Lin Tang <cltang@codesourcery.com> gcc/ * config/nios2/nios2.opt (march, mbmx, mcdx): New options. * config/nios2/nios2-opts.h (enum nios2_arch_type): New enum for Nios II architecture level. * config/nios2/nios2.h (TARGET_ARCH_R2): New define. (TARGET_CPU_CPP_BUILTINS): Add definition of __nios2_arch__ symbol. (OPTION_DEFAULT_SPECS): Define. (ASM_SPEC): Add -march= spec strings. * config/nios2/nios2.c (nios2_option_override): Check for conflicts involving new options. * config.gcc (nios2*-*-*): Support --with-arch=. * doc/invoke.texi (Option Summary, Nios II Options): Document -march=, -mbmx, and -mcdx. Co-Authored-By: Cesar Philippidis <cesar@codesourcery.com> Co-Authored-By: Chung-Lin Tang <cltang@codesourcery.com> From-SVN: r225791
2015-07-14simplify.c (gfc_simplify_floor): Set precision of temporary to that of arg.Steven G. Kargl4-3/+26
2015-07-14 Steven G. Kargl <kargl@gcc.gnu.org> * simplify.c (gfc_simplify_floor): Set precision of temporary to that of arg. 2015-07-14 Steven G. Kargl <kargl@gcc.gnu.org> gfortran.dg/pr66864.f90: New test. From-SVN: r225790
2015-07-14re PR rtl-optimization/66626 (gcc.dg/torture/stackalign/non-local-goto-5.c ↵Vladimir Makarov4-1/+45
segfaults w/ -mregparm=3 or -miamcu) 2015-07-14 Vladimir Makarov <vmakarov@redhat.com> PR rtl-optimization/66626 * lra-constraints.c (lra_constraints): Prevent equivalence substitution for static chain pseudo in functions with nonlocal goto. 2015-07-14 Vladimir Makarov <vmakarov@redhat.com> PR rtl-optimization/66626 * gcc.target/i386/pr66626.c: New. From-SVN: r225789