Commit Graph

140010 Commits

Author SHA1 Message Date
Nikolai Bozhenov
e1ed1bca36 constexpr.cc: Remove redundant -save-temps option.
2015-08-05  Nikolai Bozhenov  <n.bozhenov@samsung.com>

	* testsuite/20_util/enable_shared_from_this/cons/constexpr.cc: Remove
	redundant -save-temps option.
	* testsuite/20_util/shared_ptr/cons/constexpr.cc: Likewise.
	* testsuite/20_util/unique_ptr/cons/constexpr.cc: Likewise.
	* testsuite/20_util/weak_ptr/cons/constexpr.cc: Likewise.
	* testsuite/30_threads/future/cons/constexpr.cc: Likewise.
	* testsuite/30_threads/shared_future/cons/constexpr.cc: Likewise.

From-SVN: r226647
2015-08-05 21:57:03 +01:00
Lynn Boger
f395ddf3c7 re PR go/66870 (split stack issues on ppc64le and ppc64)
2015-08-15 Lynn Boger <laboger@linux.vnet.ibm.com>

	PR target/66870
	* gcc/config/rs6000/rs6000.c (rs6000_emit_prologue): Check
	for no_split_stack function attribute along with
	flag_split_stack.
	(rs6000_expand_split_stack_prologue): Likewise.

From-SVN: r226643
2015-08-05 13:07:16 -05:00
Jason Merrill
dc062b4986 re PR c++/66260 ([C++14] Failure to compile variable template with recursively defined partial specialization)
PR c++/66260
	PR c++/66596
	PR c++/66649
	PR c++/66923
	* pt.c (lookup_template_variable): Use NULL_TREE for type.
	(instantiate_template_1): Also set DECL_TI_ARGS based on
	the immediate parent.
	(tsubst_copy_and_build) [TEMPLATE_ID_EXPR]: Handle variable templates.
	(finish_template_variable): Add complain parm.
	* cp-tree.h: Adjust.

From-SVN: r226642
2015-08-05 13:56:14 -04:00
Jason Merrill
85171e7877 re PR c++/65195 (Variable template cannot be used as a function)
PR c++/65195
	PR c++/66619
	* semantics.c (finish_id_expression): Call convert_from_reference
	for variable template.

From-SVN: r226641
2015-08-05 13:51:29 -04:00
Manuel López-Ibáñez
76787f7009 re PR c/16351 (NULL dereference warnings)
gcc/ChangeLog:

2015-08-05  Manuel López-Ibáñez  <manu@gcc.gnu.org>
	    Jeff Law  <law@redhat.com>

	PR c/16351
	* doc/invoke.texi (Wnull-dereference): New.
	* tree-vrp.c (infer_value_range): Update call to infer_nonnull_range.
	* gimple-ssa-isolate-paths.c (find_implicit_erroneous_behaviour):
	Warn for potential NULL dereferences.
	(find_explicit_erroneous_behaviour): Warn for NULL dereferences.
	* ubsan.c (instrument_nonnull_arg): Call
	infer_nonnull_range_by_attribute.
	(instrument_nonnull_return): Likewise.
	* common.opt (Wnull-dereference); New.
	* gimple.c (infer_nonnull_range): Remove bool arguments.
	(infer_nonnull_range_by_dereference): New.
	(infer_nonnull_range_by_attribute): New.
	* gimple.h: Update declarations.

gcc/testsuite/ChangeLog:

2015-08-05  Manuel López-Ibáñez  <manu@gcc.gnu.org>
	    Jeff Law  <law@redhat.com>

	PR c/16351
	* gcc.dg/tree-ssa/isolate-2.c: Close comment.
	* gcc.dg/tree-ssa/isolate-4.c: Likewise.
	* gcc.dg/tree-ssa/wnull-dereference.c: New test.
	* gcc.dg/tree-ssa/isolate-1.c: Test warnings with -Wnull-dereference.
	* gcc.dg/tree-ssa/isolate-3.c: Likewise.
	* gcc.dg/tree-ssa/isolate-5.c: Likewise.



Co-Authored-By: Jeff Law <law@redhat.com>

From-SVN: r226640
2015-08-05 17:36:29 +00:00
Richard Sandiford
72a35f9354 gensupport.c (sequence_num): Replace with...
gcc/
	* gensupport.c (sequence_num): Replace with...
	(insn_sequence_num, split_sequence_num, peephole2_sequence_num):
	...these new variables.
	(init_rtx_reader_args_cb): Update accordingly.
	(get_num_code_insns): Likewise.
	(read_md_rtx): Rework to use a while loop and get_c_test.
	Use the new counters.  Remove redundant DEFINE_SUBST case.
	* genoutput.c (gen_split): Delete.
	(main): Don't call it.

From-SVN: r226635
2015-08-05 15:47:31 +00:00
Richard Sandiford
d1427a17a7 gensupport.h (get_c_test): Declare.
gcc/
	* gensupport.h (get_c_test): Declare.
	* gensupport.c (get_c_test): New function.
	* genconditions.c (main): Use it.
	* genrecog.c (validate_pattern): Likewise.
	(match_pattern_1): Likewise.  Remove c_test argument.
	(match_pattern): Update accordingly and remove c_test argument.
	(main): Update accordingly.

From-SVN: r226634
2015-08-05 15:46:02 +00:00
Richard Sandiford
ba0ee63dfe gensupport.h (get_num_insn_codes): Declare.
gcc/
	* gensupport.h (get_num_insn_codes): Declare.
	* gensupport.c (get_num_insn_codes): New function.
	* genattrtab.c (optimize_attrs): Rename max_insn_code to
	num_insn_codes.
	(main): Likewise.  Use get_num_insn_codes.
	* gencodes.c (main): Remove "last" and use get_num_insn_codes.

From-SVN: r226633
2015-08-05 15:44:23 +00:00
Richard Sandiford
dcc74ead1e re PR middle-end/66311 (Problems with some integer(16) values)
gcc/
	PR middle-end/66311
	* wide-int.cc (wi::from_mpz): Make sure that absolute mpz value
	is zero- rather than sign-extended.

gcc/testsuite/
2015-08-05  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR middle-end/66311
	* gfortran.dg/pr66311.f90: New file.

From-SVN: r226632
2015-08-05 14:23:42 +00:00
Richard Sandiford
96b4d19305 target-insns.def (can_extend): Delete.
gcc/
	* target-insns.def (can_extend): Delete.

From-SVN: r226631
2015-08-05 14:21:11 +00:00
Richard Biener
d7f3749967 re PR tree-optimization/67121 (wrong code at -O3 on x86_64-linux-gnu)
2015-08-05  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/67121
	* tree-if-conv.c (combine_blocks): Clear range-info produced
	by stmts no longer executed conditionally.

	* gcc.dg/torture/pr67121.c: New testcase.

From-SVN: r226630
2015-08-05 14:16:51 +00:00
Nick Clifton
b4bd32c169 gcc * config/rl78/rl78.c (rl78_force_nonfar_3): Remove optimization
to allow identical far pointers to remain.


tests	* gcc.target/rl78: New directory.
        * gcc.target/rl78/rl78.exp: New file: Test driver.
        * gcc.target/rl78/test_addm3.c: New file: Test adds.

From-SVN: r226624
2015-08-05 13:09:43 +00:00
Richard Biener
aad88aede9 re PR middle-end/67120 (wrong code for volatile pointers at -O1 and above on x86_64-linux-gnu)
2015-08-05  Richard Biener  <rguenther@suse.de>

	PR middle-end/67120
	* match.pd: Compare address bases with == if they are decls
	or SSA names, not operand_equal_p.  Otherwise fail.

	* gcc.dg/torture/pr67120.c: New testcase.

From-SVN: r226623
2015-08-05 12:47:59 +00:00
Paul Thomas
a56ea54ab0 re PR fortran/52846 ([F2008] Support submodules)
2015-08-05  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/52846
	* module.c (check_access): Return true if new static flag
	'dump_smod' is true..
	(gfc_dump_module): Rename original 'dump_module' and call from
	new version. Use 'dump_smod' rather than the stack state to
	determine if a submodule is being processed. The new version of
	this procedure sets 'dump_smod' depending on the stack state and
	then writes both the mod and smod files if a module is being
	processed or just the smod for a submodule.
	(gfc_use_module): Eliminate the check for module_name and
	submodule_name being the same.
	* trans-decl.c (gfc_finish_var_decl, gfc_build_qualified_array,
	get_proc_pointer_decl): Set TREE_PUBLIC unconditionally and use
	the conditions to set DECL_VISIBILITY as hidden and to set as
	true DECL_VISIBILITY_SPECIFIED.

2015-08-05  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/52846

	* lib/fortran-modules.exp: Call cleanup-submodules from
	cleanup-modules.
	* gfortran.dg/public_private_module_2.f90: Add two XFAILS to
	cover the cases where private entities are no longer optimized
	away.
	* gfortran.dg/public_private_module_6.f90: Add an XFAIL for the
	same reason.
	* gfortran.dg/submodule_1.f08: Change cleanup module names.
	* gfortran.dg/submodule_5.f08: The same.
	* gfortran.dg/submodule_9.f08: The same.
	* gfortran.dg/submodule_10.f08: New test

From-SVN: r226622
2015-08-05 12:06:25 +00:00
Paolo Carlini
8282c8776d re PR c++/66595 ([C++14] ICE in partial specialization template variables)
2015-08-05  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/66595
	* g++.dg/cpp1y/var-templ35.C: New.

From-SVN: r226617
2015-08-05 10:07:57 +00:00
Richard Biener
cd583fe180 re PR tree-optimization/67055 (Segmentation fault in fold_builtin_alloca_with_align in tree-ssa-ccp.c)
2015-08-05  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/67055
	* tree-ssa-ccp.c (fold_builtin_alloca_with_align): Handle
	NULL gimple_block.

	* g++.dg/torture/pr67055.C: New testcase.

From-SVN: r226616
2015-08-05 10:01:12 +00:00
Kirill Yukhin
f4904740e7 Disable AVX-512VL insns for scalar mode operands on -march=knl.
gcc/
	* config/i386/i386.md (define_attr "isa"): Addd avx512vl and
	noavx512vl.
	(define_attr "enabled"): Handle avx521vl and noavx512vl.
	* config/i386/sse.md (define_insn "vec_dupv2df<mask_name>"): Split
	AVX-512 alternative out of SSE.
	(define_insn "*vec_concatv2df"): Ditto.

From-SVN: r226612
2015-08-05 08:01:19 +00:00
Kirill Yukhin
0ea424263f Merge SSE and AVX ptest patterns.
gcc/
	* config/i386/i386.c (bdesc_args): Rename CODE_FOR_sse4_1_ptest into
	CODE_FOR_sse4_1_ptestv2di and CODE_FOR_avx_vtestps256 into
	CODE_FOR_avx_ptestv4di.
	* config/i386/sse.md (define_mode_iterator V_AVX): New.
	(define_mode_attr sse4_1): Extend to other 128/256-bit modes.
	(define_insn "avx_ptest256"): Merge this ...
	(define_insn "sse4_1_ptest"): And this ...
	(define_insn "<sse4_1>_ptest<mode>"): Into this. Use V_AVX iterator.

From-SVN: r226611
2015-08-05 07:58:54 +00:00
Richard Biener
97af59b2a4 re PR tree-optimization/67109 (ICE at -O3 on x86_64-linux-gnu in vect_analyze_slp_instance, at tree-vect-slp.c:1793)
2015-08-05  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/67109
	* tree-vect-data-refs.c (vect_analyze_group_access_1): Check
	against too big groups.  Print whether this is a load or store
	group.  Rename from ...
	(vect_analyze_group_access): ... this which is now a wrapper
	dissolving an invalid group.
	(vect_analyze_data_ref_accesses): Print whether this is a load
	or store group.

	* gcc.dg/torture/pr67109.c: New testcase.
	* gcc.dg/vect/vect-119.c: Adjust.

From-SVN: r226610
2015-08-05 07:48:34 +00:00
Richard Biener
f980c9a262 re PR c/67107 (ICE: SIGSEGV in tree_class_check with -frounding-math -funsafe-math-optimizations)
2015-08-05  Richard Biener  <rguenther@suse.de>

	PR middle-end/67107
	* match.pd: Guard const_binop result checking against NULL_TREE
	result.

	* gcc.dg/pr67107.c: New testcase.

From-SVN: r226609
2015-08-05 07:42:54 +00:00
Kugan Vivekanandarajah
1e928e07b2 cse.c (cse_insn): Restoring old behaviour for src_eqv when dest and value in the REG_EQUAL are...
gcc/ChangeLog:

2015-08-05  Kugan Vivekanandarajah  <kuganv@linaro.org>

	* cse.c (cse_insn): Restoring old behaviour for src_eqv
	 when dest and value in the REG_EQUAL are same and dest
	 is STRICT_LOW_PART.

From-SVN: r226606
2015-08-05 01:08:49 +00:00
GCC Administrator
4856562a70 Daily bump.
From-SVN: r226601
2015-08-05 00:16:11 +00:00
Ian Lance Taylor
1a16d27768 compiler: Verify pointer type's underlying type.
Fixes golang/go#11547.
    
    Reviewed-on: https://go-review.googlesource.com/13031

From-SVN: r226598
2015-08-04 23:46:09 +00:00
Ian Lance Taylor
d69eea11a4 compiler: Use context to determine types of complex expressions.
When determining the type of a complex expression, it is important
    to recognize cases where a complex value can be represented as a
    real number.
    
    Fixes golang/go#11572.
    
    Reviewed-on: https://go-review.googlesource.com/12541

From-SVN: r226596
2015-08-04 22:27:48 +00:00
Anatoly Sokolov
f12021edbe [MOXIE] Hookize PRINT_OPERAND and PRINT_OPERAND_ADDRESS
From-SVN: r226594
2015-08-04 22:51:28 +03:00
Paolo Carlini
9cf0c42050 re PR c++/66197 (c++1z generic function wrong type for auto)
2015-08-04  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/66197
	* g++.dg/cpp1z/abbrev2.C: New.

2015-08-04  Paolo Carlini  <paolo.carlini@oracle.com>

	* g++.dg/cpp1z/static_assert-nomsg.C: Fix DejaGnu directive.

From-SVN: r226591
2015-08-04 17:22:05 +00:00
Szabolcs Nagy
d318517df8 [AArch64] PR target/66731 Fix fnmul insn with -frounding-math (rtx costs)
2015-08-04  Szabolcs Nagy  <szabolcs.nagy@arm.com>

	PR target/66731
	* config/aarch64/aarch64.c (aarch64_rtx_costs): Fix NEG cost for FNMUL.
	(aarch64_rtx_mult_cost): Fix MULT cost with -frounding-math.

From-SVN: r226586
2015-08-04 16:22:32 +00:00
Uros Bizjak
4b5ed6cf57 texi2pod.pl: Escape braces in regexp involving @strong{...}.
* texi2pod.pl: Escape braces in regexp involving @strong{...}.

From-SVN: r226585
2015-08-04 18:15:45 +02:00
Jason Merrill
3da33383b4 * pt.c (lookup_template_class_1): Clear elt.spec.
From-SVN: r226581
2015-08-04 11:18:45 -04:00
Jason Merrill
f107ee3310 * tree.c (build_target_expr): Copy the location from value.
From-SVN: r226580
2015-08-04 11:18:40 -04:00
Paolo Carlini
cb3582ef4b re PR c++/66392 (rejects-valid: copy-initialization through user-defined conversion sequence fails)
2015-08-04  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/66392
	* g++.dg/init/explicit4.C: New.

From-SVN: r226579
2015-08-04 14:54:07 +00:00
Bill Schmidt
9554d206df vec-cmp-sel.c: Avoid test failure on machines without VSX an Power8 vector support.
2015-08-04  Bill Schmidt  <wschmidt@vnet.linux.ibm.com>

	* gcc.target/powerpc/vec-cmp-sel.c: Avoid test failure on machines
	without VSX an Power8 vector support.

From-SVN: r226578
2015-08-04 14:09:23 +00:00
Richard Biener
c8136c3648 genmatch.c (dt_node::gen_kids_1): Use gassign and gcall in generated code.
2015-08-04  Richard Biener  <rguenther@suse.de>

	* genmatch.c (dt_node::gen_kids_1): Use gassign and gcall in
	generated code.
	(dt_operand::gen_gimple_expr): Adjust.

From-SVN: r226577
2015-08-04 13:55:26 +00:00
Richard Biener
59c20dc74d gimple-fold.c (gimple_fold_stmt_to_constant_1): Canonicalize bool compares on RHS.
2015-08-04  Richard Biener  <rguenther@suse.de>

	* gimple-fold.c (gimple_fold_stmt_to_constant_1): Canonicalize
	bool compares on RHS.
	* match.pd: Add X ==/!= !X is false/true pattern.

	* gcc.dg/tree-ssa/ssa-ccp-38.c: New testcase.

From-SVN: r226576
2015-08-04 13:51:50 +00:00
Pawel Kupidura
058e4c71c2 aarch64.c: Change inner loop statement cost to be consistent with other targets.
gcc/
2015-08-04  Pawel Kupidura  <pawel.kupidura@arm.com>

	* config/aarch64/aarch64.c: Change inner loop statement cost
	to be consistent with other targets.

From-SVN: r226575
2015-08-04 13:44:41 +00:00
Christophe Lyon
69b23ad67f neon.md (neon_vget_lanev2di): Handle big-endian targets.
2015-08-04  Christophe Lyon  <christophe.lyon@linaro.org>

	* config/arm/neon.md (neon_vget_lanev2di): Handle big-endian
	targets.

From-SVN: r226574
2015-08-04 15:24:26 +02:00
Nathan Sidwell
c56df3e924 nvptx.h (struct nvptx_pseudo_info): Delete.
* config/nvptx/nvptx.h (struct nvptx_pseudo_info): Delete.
	(machine_function): Remove pseudos field.

From-SVN: r226573
2015-08-04 13:14:14 +00:00
Ben Elliston
29e8dc8484 Fix incorrect date in 2015-07-28 change.
From-SVN: r226572
2015-08-04 22:59:57 +10:00
H.J. Lu
75587afb18 Compile IAMCU tests with -fno-pie -no-pie
Since IAMCU tests clear all scratch integer registers with:

  asm __volatile__ ("xor %%eax, %%eax\n\t" \
                    "xor %%edx, %%edx\n\t" \
                    "xor %%ecx, %%ecx\n\t" \
                    ::: "eax", "edx", "ecx");

PIC register may be trashed between setting PIC register and using it.
This patch compiles AMCU tests with -fno-pie -no-pie.

	PR target/67110
	* gcc.target/i386/iamcu/abi-iamcu.exp (additional_flags): Add
	-fno-pie -no-pie.

From-SVN: r226570
2015-08-04 04:54:20 -07:00
Paolo Carlini
01003b8381 re PR c++/66427 (The compiler rejects too complex variable templates)
2015-08-04  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/66427
	* g++.dg/cpp1y/var-templ34.C: New.

From-SVN: r226568
2015-08-04 11:05:02 +00:00
Kyrylo Tkachov
91d0e8dec9 [AArch64][14/14] Reuse target_option_current_node when passing pragma string to target attribute
* config/aarch64/aarch64.c (aarch64_option_valid_attribute_p):
	Exit early and use target_option_current_node if processing current
	pragma.

From-SVN: r226567
2015-08-04 10:45:48 +00:00
Kyrylo Tkachov
e55edd82da [doc][13/14] Document AArch64 target attributes and pragmas
* doc/extend.texi (AArch64 Function Attributes): New node.
	(AArch64 Pragmas): Likewise.

From-SVN: r226566
2015-08-04 10:43:15 +00:00
Kyrylo Tkachov
0efacb57a4 [AArch64][12/14] Target attributes and target pragmas tests
* gcc.target/aarch64/pragma_cpp_predefs_1.c: New test.
	* gcc.target/aarch64/target_attr_1.c: Likewise.
	* gcc.target/aarch64/target_attr_2.c: Likewise.
	* gcc.target/aarch64/target_attr_3.c: Likewise.
	* gcc.target/aarch64/target_attr_4.c: Likewise.
	* gcc.target/aarch64/target_attr_5.c: Likewise.
	* gcc.target/aarch64/target_attr_6.c: Likewise.
	* gcc.target/aarch64/target_attr_7.c: Likewise.
	* gcc.target/aarch64/target_attr_8.c: Likewise.
	* gcc.target/aarch64/target_attr_9.c: Likewise.
	* gcc.target/aarch64/target_attr_10.c: Likewise.
	* gcc.target/aarch64/target_attr_11.c: Likewise.
	* gcc.target/aarch64/target_attr_12.c: Likewise.
	* gcc.target/aarch64/target_attr_13.c: Likewise.
	* gcc.target/aarch64/target_attr_14.c: Likewise.
	* gcc.target/aarch64/target_attr_15.c: Likewise.

From-SVN: r226565
2015-08-04 10:41:31 +00:00
Kyrylo Tkachov
e95a988ada [AArch64][11/14] Re-layout SIMD builtin types on builtin expansion
* config/aarch64/aarch64.c (aarch64_option_valid_attribute_p):
	Initialize simd builtins if TARGET_SIMD.
	* config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins):
	Make sure that the builtins are initialized only once no matter how
	many times the function is called.
	(aarch64_init_builtins): Unconditionally initialize crc builtins.
	(aarch64_relayout_simd_param): New function.
	(aarch64_simd_expand_args): Use above during argument expansion.
	* config/aarch64/aarch64-c.c (aarch64_pragma_target_parse): Initialize
	simd builtins if TARGET_SIMD.
	* config/aarch64/aarch64-protos.h (aarch64_init_simd_builtins): New
	prototype.
	(aarch64_relayout_simd_types): Likewise.

	* gcc.target/aarch64/target_attr_crypto_ice_1.c: New test.

From-SVN: r226564
2015-08-04 10:39:42 +00:00
Kyrylo Tkachov
e4ea20c8eb [AArch64][10/14] Implement target pragmas
* config.gcc (aarch64*-*-*): Specify c_target_objs and cxx_target_objs.
	* config/aarch64/aarch64.h (REGISTER_TARGET_PRAGMAS): Define.
	(TARGET_CPU_CPP_BUILTINS): Redefine to call aarch64_cpu_cpp_builtins.
	* config/aarch64/aarch64.c (aarch64_override_options_internal): Remove
	static keyword.
	(aarch64_reset_previous_fndecl): New function.
	(aarch64_handle_attr_isa_flags): Handle "+nothing" in the beginning of
	the string.
	* config/aarch64/aarch64-c.c: New file.
	* config/aarch64/arm_acle.h: Add pragma +crc+nofp at the top.
	Push and pop options at beginning and end.  Remove ifdef
	__ARM_FEATURE_CRC32.
	* config/aarch64/arm_neon.h: Remove #ifdef check on __ARM_NEON.
	Add pragma +nothing+simd and +nothing+crypto where appropriate.
	* config/aarch64/t-aarch64 (aarch64-c.o): New rule.
	* config/aarch64/aarch64-protos.h (aarch64_cpu_cpp_builtins):
	Define prototype.
	(aarch64_register_pragmas): Likewise.
	(aarch64_reset_previous_fndecl): Likewise.
	(aarch64_process_target_attr): Likewise.
	(aarch64_override_options_internal): Likewise.

	* gcc.target/aarch64/arm_neon-nosimd-error.c: Delete.

From-SVN: r226563
2015-08-04 10:35:16 +00:00
Kyrylo Tkachov
1fd8d40c7f [AArch64][9/14] Implement TARGET_CAN_INLINE_P
* config/aarch64/aarch64.c (aarch64_tribools_ok_for_inlining_p):
	New function.
	(aarch64_can_inline_p): Likewise.
	(TARGET_CAN_INLINE_P): Define.

From-SVN: r226561
2015-08-04 10:17:13 +00:00
Kyrylo Tkachov
5a2c833115 [AArch64][8/14] Implement TARGET_OPTION_VALID_ATTRIBUTE_P
* common/config/aarch64/aarch64-common.c (aarch64_handle_option):
	Remove static.  Handle OPT_mgeneral_regs_only,
	OPT_mfix_cortex_a53_835769, OPT_mstrict_align,
	OPT_momit_leaf_frame_pointer.
	* config/aarch64/aarch64.c: Include opts.h and diagnostic.h
	(aarch64_attr_opt_type): New enum.
	(aarch64_attribute_info): New struct.
	(aarch64_handle_attr_arch): New function.
	(aarch64_handle_attr_cpu): Likewise.
	(aarch64_handle_attr_tune): Likewise.
	(aarch64_handle_attr_isa_flags): Likewise.
	(aarch64_attributes): New table.
	(aarch64_process_one_target_attr): New function.
	(num_occurences_in_str): Likewise.
	(aarch64_process_target_attr): Likewise.
	(aarch64_option_valid_attribute_p): Likewise.
	(TARGET_OPTION_VALID_ATTRIBUTE_P): Define.
	* config/aarch64/aarch64-protos.h: Include input.h
	(aarch64_handle_option): Declare prototype.

From-SVN: r226560
2015-08-04 10:14:00 +00:00
Kyrylo Tkachov
d78006d950 [AArch64][7/14] Implement TARGET_SET_CURRENT_FUNCTION
* config/aarch64/aarch64.h (SWITCHABLE_TARGET): Define.
	* config/aarch64/aarch64.c: Include target-globals.h
	(aarch64_previous_fndecl): New variable.
	(aarch64_set_current_function): New function.
	(TARGET_SET_CURRENT_FUNCTION): Define.

From-SVN: r226559
2015-08-04 10:10:28 +00:00
Kyrylo Tkachov
361fb3ee79 [AArch64][6/14] Implement TARGET_OPTION_SAVE/TARGET_OPTION_RESTORE
* config/aarch64/aarch64.opt (explicit_tune_core): New TargetVariable.
	(explicit_arch): Likewise.
	(x_aarch64_isa_flags): Likewise.
	(mgeneral-regs-only): Mark as Save.
	(mfix-cortex-a53-835769): Likewise.
	(mcmodel=): Likewise.
	(mstrict-align): Likewise.
	(momit-leaf-frame-pointer): Likewise.
	(mtls-dialect): Likewise.
	(master=): Likewise.
	* config/aarch64/aarch64.h (ASM_DECLARE_FUNCTION_NAME): Define.
	(aarch64_isa_flags): Remove extern declaration.
	* config/aarch64/aarch64.c (aarch64_validate_mcpu): Return a bool
	to indicate success or failure.
	(aarch64_validate_march): Likewise.
	(aarch64_validate_mtune): Likewise.
	(aarch64_isa_flags): Delete.
	(aarch64_override_options_internal): Access opts->x_aarch64_isa_flags
	instead of aarch64_isa_flags.
	(aarch64_get_tune_cpu): New function.
	(aarch64_get_arch): Likewise.
	(aarch64_override_options): Use above and set up explicit_tune_core
	and explicit_arch.
	(aarch64_print_extension): Move earlier in file.  Add isa_flags
	argument and use that instead of the global aarch64_isa_flags.
	(aarch64_option_save): New function.
	(aarch64_option_restore): Likewise.
	(aarch64_option_print): Likewise.
	(aarch64_declare_function_name): Likewise.
	(aarch64_start_file): Delete.
	(TARGET_ASM_FILE_START): Do not define.
	(TARGET_OPTION_RESTORE, TARGET_OPTION_PRINT): Define.
	* config/aarch64/aarch64-protos.h (aarch64_declare_function_name):
	Declare prototype.

From-SVN: r226558
2015-08-04 10:06:51 +00:00
Kyrylo Tkachov
bca541c364 [AArch64][5/14] Make flag_omit_leaf_frame_pointer intialize to 2. Define and use TARGET_OMIT_LEAF_FRAME_POINTER
* config/aarch64/aarch64.opt (momit-leaf-frame-pointer): Initialize
	flag_omit_leaf_frame_pointer to 2.

From-SVN: r226557
2015-08-04 10:02:56 +00:00