Commit Graph

139610 Commits

Author SHA1 Message Date
Ilya Enkovich 6de59c8aaa linux-common.h (LINK_MPX): New.
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-16 08:36:02 +00:00
Richard Biener 79d4f7c66e fold-const.c (fold_widened_comparison): Remove.
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-16 08:28:51 +00:00
Richard Biener 612b9d1364 tree-ssa-dom.c (dom_valueize): New function.
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-16 07:19:24 +00:00
Bin Cheng 4c3b378b5a tree-ssa-loop-ivopts.c (add_candidate): Remove call to add_autoinc_candidates.
* 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-16 05:49:47 +00:00
Sandra Loosemore a6885f12c7 nios2.c (nios2_emit_stack_limit_check): Fix uninitialized-variable warning.
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-15 23:30:31 -04:00
Kaz Kojima fdc2ce3fb0 re PR target/65249 (unable to find a register to spill in class 'R0_REGS' 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-16 00:48:33 +00:00
GCC Administrator 58b1eb4330 Daily bump.
From-SVN: r225855
2015-07-16 00:16:12 +00:00
Uros Bizjak baca1278a3 re PR target/66866 (incorrect load address on manual vector shuffle)
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-16 00:20:17 +02:00
Aditya Kumar 1f8ba82489 One of the code refactorings introducing phi node iterators modified the 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 21:37:07 +00:00
Aditya Kumar d7f49f78a6 [graphite] discard scops for which entry==exit
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-15 21:37:01 +00:00
Aditya Kumar 1ee9ef73c3 graphite-scop-detection.c (stmt_simple_for_scop_p): Bail out in case of a 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-15 21:36:55 +00:00
Aditya Kumar 4bc4dd11ec graphite-sese-to-poly.c (parameter_index_in_region): Only handle 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-15 21:36:49 +00:00
Andrew MacLeod 48d859bb42 gimple-pretty-print.h: Don't include pretty-print.h.
* 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-15 19:57:03 +00:00
Andrew MacLeod 903f5c23c8 opth-gen.awk: Check for UNKNOWN_LOCATION rather than GCC_TM_H, don't include 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-15 19:50:23 +00:00
Nathan Sidwell 852b55f9af mkoffload.c (process): Add C++ protection to emitted code.
* config/nvptx/mkoffload.c (process): Add C++ protection to
	emitted code.

From-SVN: r225844
2015-07-15 18:54:18 +00:00
Michael Meissner 58b62eaab2 re PR libgcc/66854 (libgcc2.c:1846:9: internal compiler error: Segmentation 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-15 17:15:37 +00:00
Bill Schmidt 34222cd6cc simplify-rtx.c (simplify_ternary_operation): Add simplification for (!c) != {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-15 16:31:46 +00:00
Paolo Bonzini ff302741f1 Limit AA walking when inlining analysis examines parameters
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-15 17:58:43 +02:00
Tom de Vries 7392b0906f check_GNU_style.sh: Fix quoting in cat_with_prefix
2015-07-15  Tom de Vries  <tom@codesourcery.com>

	* check_GNU_style.sh (cat_with_prefix): Fix quoting.

From-SVN: r225837
2015-07-15 15:41:21 +00:00
Trevor Saunders 6b8068d653 remove some usage of expr_list from read_rtx
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-15 14:38:13 +00:00
Jason Merrill 0467e3ebef re PR c++/65091 (decltype(~arg) fails for template functions)
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 10:13:22 -04:00
Kyrylo Tkachov 49f88e4333 [AArch64] Use cinc mnemonic for *csinc2<mode>_insn
* config/aarch64/aarch64.md (*csinc2<mode>_insn): Use cinc mnemonic.

From-SVN: r225830
2015-07-15 14:11:18 +00:00
Uros Bizjak e6c9b417de re PR target/58066 (__tls_get_addr is called with misaligned stack on x86-64)
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-15 15:42:07 +02:00
Maxim Blumenthal 28ef6a27c8 Fix libgomp tests.
2015-07-15  Maxim Blumenthal  <maxim.blumenthal@intel.com>

libgomp/
	* testsuite/libgomp.fortran/examples-4/simd-8.f90: (main): Change type
	of EPS parameter from integer to real.
	* testsuite/libgomp.fortran/examples-4/task_dep-5.f90: (check): Change
	type of EPS parameter from integer to real.

From-SVN: r225827
2015-07-15 13:13:10 +00:00
Richard Biener 55cf394666 fold-const.c (fold_binary_loc): Move bool_var != 0 -> bool_var and bool_var == 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-15 12:25:57 +00:00
Richard Biener aa6cf07ea9 objc-torture.exp (OBJC_TORTURE_OPTIONS): Remove { -O3 -fomit-frame-pointer }...
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-15 11:47:54 +00:00
Robert Suchanek 8e8886f62c Fix restoration of hi/lo in MIPS64R2 interrupt handlers.
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-15 11:43:05 +00:00
Matthew Fortune 0256a844ad Support new interrupt handler options.
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-15 11:42:50 +00:00
Robert Suchanek 6a2b848b31 Support interrupt handlers with hard-float.
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-15 11:42:34 +00:00
Ilya Enkovich 22dd66d46a re PR testsuite/66734 (Many MPX tests are skipped)
PR testsuite/66734
	* gcc.dg/lto/lto.exp: Initialize MPX.

From-SVN: r225815
2015-07-15 09:56:00 +00:00
Kyrylo Tkachov d216761f97 [ARM][testsuite] Add -mfloat-abi=softfp to some xscale tests
* 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-15 09:45:10 +00:00
Andrew Bennett 765a514d79 MIPS: In mips.exp allow the post-arch code to be run when the pre-arch code 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-15 09:22:25 +00:00
Sebastian Huber 6dba011330 [gomp] Recycle last non-nested team if possible
libgomp/ChangeLog
2015-07-15  Sebastian Huber  <sebastian.huber@embedded-brains.de>

	* team.c (get_last_team): New.
	(gomp_new_team): Recycle last non-nested team if possible.
	(gomp_team_end): Move team work share list free lock destruction
	to ...
	(free_team): ... here.

From-SVN: r225811
2015-07-15 09:11:11 +00:00
Szabolcs Nagy 290f6359d2 Add missing PR target/66731 to gcc/testsuite/Changelog
From-SVN: r225810
2015-07-15 09:03:15 +00:00
Richard Biener 64d3a1f040 genmatch.c (parser::peek, [...]): Add argument to tell how many tokens to 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-15 08:35:15 +00:00
Richard Biener a16bca311a c-torture.exp (C_TORTURE_OPTIONS): Remove { -O3 -fomit-frame-pointer }...
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-15 08:02:43 +00:00
Uros Bizjak ac4ee45775 re PR target/58066 (__tls_get_addr is called with misaligned stack on x86-64)
PR rtl-optimization/58066
	* calls.c (expand_call): Precompute register parameters before stack
	alignment is performed.

From-SVN: r225807
2015-07-15 09:39:30 +02:00
Uros Bizjak 7a708f68bf re PR rtl-optimization/66838 (Calling multiple SYSV AMD64 ABI functions from 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-15 09:28:33 +02:00
GCC Administrator 73bf400d36 Daily bump.
From-SVN: r225804
2015-07-15 00:16:13 +00:00
Patrick Palka 09f725f4a6 re PR c++/66850 (Adding a forward declaration of a template containing a 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-15 00:01:21 +00:00
Sandra Loosemore 524d2e49f2 constraints.md (U, v): New constraints.
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-14 19:43:48 -04:00
Sandra Loosemore c3ff2812ae nios2-protos.h (nios2_expand_return): Declare.
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-14 19:32:06 -04:00
Sandra Loosemore aa32db37e4 predicates.md (pop_operation): New.
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-14 19:16:43 -04:00
Sandra Loosemore 3bbbe009de nios2.h (LABEL_ALIGN): Define.
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-14 18:56:45 -04:00
Sandra Loosemore a03c6ae388 tramp.c (MOVHI, ORI, JMP): Conditionalize for __nios2_arch__ level.
2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
	    Cesar Philippidis  <cesar@codesourcery.com>
	    Chung-Lin Tang  <cltang@codesourcery.com>

	libgcc/
	* config/nios2/tramp.c (MOVHI, ORI, JMP): Conditionalize
	for __nios2_arch__ level.

Co-Authored-By: Cesar Philippidis <cesar@codesourcery.com>
Co-Authored-By: Chung-Lin Tang <cltang@codesourcery.com>

From-SVN: r225794
2015-07-14 18:43:46 -04:00
Andrea Azzarone 973590f320 re PR c++/65071 (ICE on valid, sizeof...() of template template parameter 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-14 22:36:50 +00:00
Sandra Loosemore 42e6ab74b6 nios2.h (SMALL_INT12): New macro.
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-14 18:34:23 -04:00
Sandra Loosemore 77c50d73f6 nios2.opt (march, mbmx, mcdx): New options.
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-14 18:22:45 -04:00
Steven G. Kargl ff7097f21e simplify.c (gfc_simplify_floor): Set precision of temporary to that of arg.
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-14 21:44:46 +00:00
Vladimir Makarov 6e5ad0f92c re PR rtl-optimization/66626 (gcc.dg/torture/stackalign/non-local-goto-5.c 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
2015-07-14 20:54:00 +00:00