- 06 Dec, 2015 4 commits
-
-
re PR ada/49940 (Bootstrapping on x86_64-pc-kfreebsd-gnu fails with "s-taprop.adb:717:32: "lwp_self" is undefined") PR ada/49940 * s-osinte-kfreebsd-gnu.ads (lwp_self): New imported function. From-SVN: r231330
Ludovic Brenta committed -
2015-12-06 Tobias Burnus <burnus@net-b.de> * download_prerequisites: Download ISL 0.15 instead of 0.14. From-SVN: r231329
Tobias Burnus committed -
From-SVN: r231328
Jan Hubicka committed -
From-SVN: r231326
GCC Administrator committed
-
- 05 Dec, 2015 5 commits
-
-
re PR fortran/50201 (gfortran with -static causes seg fault at runtime for writing double prec array with precision increased to kind=16) 2015-12-05 Juoko Orava <jouko.orava@iki.fi> PR fortran/50201 * io/write_float.def: Avoid marking quadmath_snprintf as an untyped weak reference, which fixing linking with -static. From-SVN: r231320
Juoko Orava committed -
2015-12-05 Paul Thomas <pault@gcc.gnu.org> PR fortran/68676 * decl.c (gfc_match_formal_arglist): Correct error, where 'sym' was used instead of 'progname'. From-SVN: r231319
Paul Thomas committed -
From-SVN: r231318
David Edelsohn committed -
PR target/68609 * config/rs6000/rs6000-protos.h (rs6000_emit_swsqrt): Rename and add bool arguement. * config/rs6000/rs6000.c (rs6000_emit_swsqrt): Rename. Add non-reciporcal path. * config/rs6000/rs6000.md (rsqrt<mode>2): Call new function name. (sqrt<mode>2): Replace define_insn with define_expand that may call rs6000_emit_swsqrt. From-SVN: r231317
David Edelsohn committed -
From-SVN: r231314
GCC Administrator committed
-
- 04 Dec, 2015 31 commits
-
-
2015-12-02 Aditya Kumar <aditya.k7@samsung.com> Sebastian Pop <s.pop@samsung.com> * gcc.dg/graphite/id-29.c: New test. gcc/ChangeLog: 2015-12-02 Aditya Kumar <aditya.k7@samsung.com> Sebastian Pop <s.pop@samsung.com> * graphite-isl-ast-to-gimple.c (translate_isl_ast_node_user): Improve debug. (get_rename_from_scev): Check that all the ops in an expression have their uses dominated by corresponding defs. Co-Authored-By: Sebastian Pop <s.pop@samsung.com> From-SVN: r231310
Aditya Kumar committed -
The check for dominance while extending the scop assumed that multiple successors meant a loop which is not true in case of conditionals around the loop. Improved pretty printers for better debugging. PR tree-optimization/68693 * graphite-scop-detection.c (dot_all_sese): New (dot_all_scops_1): Renamed to dot_all_sese. (dot_all_scops): Removed. (dot_sese): New. (dot_cfg): New. (scop_detection::get_nearest_dom_with_single_entry): Check that preds are from different loop levels. (scop_detection::get_nearest_pdom_with_single_exit): Check that succs are from different loop levels. (scop_detection::print_sese): Inlined. (scop_detection::print_edge): New. (scop_detection::merge_sese): Added dumps. * graphite.h: Add declarations. gcc/testsuite/ChangeLog: * gfortran.dg/graphite/pr68693.f90: New test. Co-Authored-By: Sebastian Pop <s.pop@samsung.com> From-SVN: r231309
Aditya Kumar committed -
gcc/ 2015-12-04 James Greenhalgh <james.greenhalgh@arm.com> * config/aarch64/aarch64.md (add<mode>3_pluslong): Add register constraints. gcc/testsuite/ 2015-12-04 James Greenhalgh <james.greenhalgh@arm.com> * gcc.c-torture/compile/20151204.c: New. From-SVN: r231304
James Greenhalgh committed -
From-SVN: r231303
Nathan Sidwell committed -
2015-12-04 Vladimir Makarov <vmakarov@redhat.com> PR rtl-optimization/68349 * lra-eliminations.c (move_plus_up): New function. (lra_eliminate_regs_1): Use the function. 2015-12-04 Vladimir Makarov <vmakarov@redhat.com> PR rtl-optimization/68349 * gcc.target/i386/pr68349.c: New test. From-SVN: r231300
Vladimir Makarov committed -
gcc/ * config/nvptx/nvptx.c (nvptx_assemble_decl_begin): New, replacing ... (init_output_initializer): ... this. (nvptx_output_aligned_decl, nvptx_asm_declare_constant_name, nvptx_declare_object_name, nvptx_assemble_undefined_decl): Use nvptx_assemble_decl_begin. gcc/testsuite/ * gcc.target/nvptx/ary-init.c: New. From-SVN: r231298
Nathan Sidwell committed -
* sancov.c: New file. * Makefile.in (OBJS): Add sancov.o. * invoke.texi (-fsanitize-coverage=trace-pc): Describe. * passes.def (sancov_pass): Add. * tree-pass.h (sancov_pass): Add. * common.opt (-fsanitize-coverage=trace-pc): Add. * sanitizer.def (BUILT_IN_SANITIZER_COV_TRACE_PC): Add. * builtins.def (DEF_SANITIZER_BUILTIN): Enable for flag_sanitize_coverage. From-SVN: r231296
Dmitry Vyukov committed -
PR middle-end/65958 * config/arm/unspecs.md (unspec): Remove UNSPEC_PROBE_STACK_RANGE. (unspecv): Add VUNSPEC_PROBE_STACK_RANGE. * config/arm/arm.md (probe_stack_range): Adjust. * config/aarch64/aarch64.md (unspec): Remove UNSPEC_PROBE_STACK_RANGE. (unspecv): Add UNSPECV_PROBE_STACK_RANGE. (probe_stack_range_<PTR:mode>): Adjust. From-SVN: r231295
Eric Botcazou committed -
PR c++/68645 * parser.c (cp_parser_direct_declarator) (cp_parser_late_return_type_opt): Put Cilk+ attributes on declarator->attributes, not std_attributes. From-SVN: r231294
Jason Merrill committed -
gcc/ChangeLog: * convert.c (convert_to_real_1): When converting from a REAL_TYPE, preserve the location of EXPR in the result. * tree.c (get_pure_location): Make non-static. (set_source_range): Return the resulting location_t. (make_location): New function. * tree.h (get_pure_location): New decl. (get_finish): New inline function. (set_source_range): Convert return type from void to location_t. (make_location): New decl. gcc/cp/ChangeLog: * cp-tree.h (class cp_expr): New class. (finish_parenthesized_expr): Convert return type and param to cp_expr. (perform_koenig_lookup): Convert return type and param from tree to cp_expr. (finish_increment_expr): Likewise. (finish_unary_op_expr): Likewise. (finish_id_expression): Likewise for return type. (build_class_member_access_expr): Likewise for param. (finish_class_member_access_expr): Likewise. (build_x_unary_op): Likewise. (build_c_cast): New decl. (build_x_modify_expr): Convert return type from tree to cp_expr. * cvt.c (cp_convert_and_check): When warning about conversions, attempt to use the location of "expr" if available, otherwise falling back to the old behavior of using input_location. * name-lookup.c (lookup_arg_dependent_1): Convert return type from tree to cp_expr. (lookup_arg_dependent): Likewise; also for local "ret". * name-lookup.h (lookup_arg_dependent): Likewise for return type. * parser.c (cp_lexer_previous_token): Skip past purged tokens. (struct cp_parser_expression_stack_entry): Convert field "lhs" to cp_expr. (cp_parser_identifier): Likewise for return type. Use cp_expr ctor to preserve the token's location. (cp_parser_string_literal): Likewise, building up a meaningful location for the case where a compound string literal is built by concatentation. (cp_parser_userdef_char_literal): Likewise for return type. (cp_parser_userdef_numeric_literal): Likewise. (cp_parser_statement_expr): Convert return type to cp_expr. Generate a suitable location for the expr and return it via the cp_expr ctor. (cp_parser_fold_expression): Convert return type to cp_expr. (cp_parser_primary_expression): Likewise, and for locals "expr", "lam", "id_expression", "decl". Use cp_expr ctor when parsing literals, to preserve the spelling location of the token. Preserve the locations of parentheses. Preserve location when calling objc_lookup_ivar. Preserve the location for "this" tokens. Generate suitable locations for "__builtin_va_arg" constructs and for Objective C 2.0 dot-syntax. Set the location for the result of finish_id_expression. (cp_parser_primary_expression): Convert return type from tree to cp_expr. (cp_parser_id_expression): Likewise. (cp_parser_unqualified_id): Likewise. Also for local "id". (cp_parser_postfix_expression): Likewise, also for local "postfix_expression". Generate suitable locations for C++-style casts, "_Cilk_spawn" constructs. Convert local "initializer" to cp_expr and use it to preserve the location of compound literals. Capture the location of the closing parenthesis of a call site via cp_parser_parenthesized_expression_list, and use it to build a source range for a call. Use cp_expr in ternary expression. (cp_parser_postfix_dot_deref_expression): Convert param from tree to cp_expr. Generate and set a location. (cp_parser_parenthesized_expression_list): Add "close_paren_loc" out-param, and write back to it. (cp_parser_unary_expression): Convert return type from tree to cp_expr. Also for locals "cast_expression" and "expression". Generate and use suitable locations for addresses of labels and for cast expressions. Call cp_expr::set_location where necessary. Preserve the locations of negated numeric literals. (cp_parser_new_expression): Generate meaningful locations/ranges. (cp_parser_cast_expression): Convert return type from tree to cp_expr; also for local "expr". Use the paren location to generate a meaningful range for the expression. (cp_parser_binary_expression): Convert return type from tree to cp_expr; also for local "rhs". Generate a meaningful location for the expression, and use it. Replace call to protected_set_expr_location by converting a build2 to a build2_loc and using the location in the call to build_x_binary_op, adding a cp_expr::set_location to the latter case. (cp_parser_question_colon_clause): Convert param from tree to cp_expr; also for local "assignment_expr". Set the spelling range of the expression. (cp_parser_assignment_expression): Likewise for return type and locals "expr" and "rhs". Build a meaningful spelling range for the expression. Remove saving of input_location in favor of a call to cp_expr::set_location. (cp_parser_expression): Convert return type and locals "expression" and "assignment_expression" to cp_expr. Build a meaningful spelling range for assignment expressions. (cp_parser_constant_expression): Likewise for return type and local "expression". (cp_parser_builtin_offsetof): Convert return type and local "expr" to cp_expr. Generate suitable locations. (cp_parser_lambda_expression): Convert return return type to cp_expr. (cp_parser_operator_function_id): Likewise. (cp_parser_operator): Likewise. Generate a meaningful range, using cp_expr's ctor to return it. (cp_parser_template_id): When converting a token to CPP_TEMPLATE_ID, update the location. (cp_parser_initializer_clause): Convert return type and local "initializer" to cp_expr. (cp_parser_braced_list): Likewise for return type. Generate suitable locations. (cp_parser_lookup_name): Likewise for return type. Use cp_expr's ctor to preserve the location_t of the name. (cp_parser_simple_cast_expression): Likewise for return type. (cp_parser_functional_cast): Convert return type and local "cast" to cp_expr. Generate suitable locations. (cp_parser_objc_expression): Convert return type to cp_expr.k Generate (cp_parser_objc_message_expression): Generate suitable locations. (cp_parser_objc_encode_expression): Convert return type to cp_expr. Generate suitable locations. (cp_parser_objc_protocol_expression): Generate suitable locations. (cp_parser_objc_selector_expression): Generate suitable locations. (cp_parser_omp_for_cond): Attempt to use the location of "cond" for the binary op. (cp_parser_transaction_expression): Issue the tm-not-enabled error at the location of the __transaction_foo token, rather than at input_location. * semantics.c (finish_parenthesized_expr): Convert return type and param to cp_expr. Preserve location. (perform_koenig_lookup): Likewise for return type and param. (finish_increment_expr): Likewise. Generate suitable locations. (finish_unary_op_expr): Likewise for return type and local "result". Generate suitable locations. (finish_id_expression): Convert return type to cp_expr and use cp_expr ctor to preserve location information. * typeck.c (build_class_member_access_expr): Convert param to cp_expr. (finish_class_member_access_expr): Likewise. (cp_build_binary_op): Convert a build2 to a build2_loc. (build_x_unary_op): Convert param from tree to cp_expr. (build_nop): Preserve the location of EXPR. (build_c_cast): Provide an overloaded variant that takes a cp_expr and returns a cp_expr. (build_x_modify_expr): Convert return type from tree to cp_expr. gcc/testsuite/ChangeLog: * g++.dg/cpp0x/nsdmi-template14.C: Move dg-error directive. * g++.dg/gomp/loop-1.C: Update dg-error locations. * g++.dg/plugin/diagnostic-test-expressions-1.C: New file, adapted from gcc.dg/plugin/diagnostic-test-expressions-1.c. * g++.dg/plugin/plugin.exp (plugin_test_list): Add the above. * g++.dg/template/crash55.C: Update dg-error directives. * g++.dg/template/pseudodtor3.C: Update column numbers in dg-error directives. * g++.dg/template/pr64100.C: Update location of dg-error directive. * g++.dg/template/ref3.C: Add XFAIL (PR c++/68699). * g++.dg/ubsan/pr63956.C: Update dg directives to reflect improved location information. * g++.dg/warn/pr35635.C (func3): Update location of a dg-warning. * g++.dg/warn/Wconversion-real-integer2.C: Update location of dg-warning; add a dg-message. * obj-c++.dg/plugin/diagnostic-test-expressions-1.mm: New file, based on objc.dg/plugin/diagnostic-test-expressions-1.m. * obj-c++.dg/plugin/plugin.exp: New file, based on objc.dg/plugin/plugin.exp. From-SVN: r231293
David Malcolm committed -
PR c/68656 * toplev.c (init_asm_output): Pass UNKNOWN_LOCATION instead of input_location to inform. (process_options): Use warning_at (UNKNOWN_LOCATION instead of warning ( and error_at (UNKNOWN_LOCATION instead of error (. Pass UNKNOWN_LOCATION instead of input_location to fatal_error. * gcc.target/i386/pr65044.c: Expect error on line 0 rather than line 1. * g++.dg/opt/pr34036.C: Expect warning on line 0 rather than line 1. * gcc.dg/tree-ssa/pr23109.c: Likewise. * gcc.dg/tree-ssa/recip-5.c: Likewise. * gcc.dg/pr33007.c: Likewise. From-SVN: r231292
Jakub Jelinek committed -
* cgraphclones.c (cgraph_node::create_clone): Use merged_comdat. * cgraph.c (cgraph_node::dump): Dump merged_comdat. * ipa-icf.c (sem_function::merge): Drop merged_comdat when merging comdat and non-comdat. * cgraph.h (cgraph_node): Rename merged to merged_comdat. * ipa-inline-analysis.c (simple_edge_hints): Check both merged_comdat and icf_merged. * lto-symtab.c (lto_cgraph_replace_node): Update code computing merged_comdat. From-SVN: r231291
Jan Hubicka committed -
gcc: 2015-12-04 Paolo Bonzini <bonzini@gnu.org> * c-family/c-common.c (maybe_warn_shift_overflow): Warn on all overflows if shifting 1 out of the sign bit. gcc/testsuite: 2015-12-04 Paolo Bonzini <bonzini@gnu.org> * c-c++-common/Wshift-overflow-1.c: Test shifting 1 out of the sign bit. * c-c++-common/Wshift-overflow-2.c: Test shifting 1 out of the sign bit. * c-c++-common/Wshift-overflow-3.c: Test shifting 1 out of the sign bit. * c-c++-common/Wshift-overflow-4.c: Test shifting 1 out of the sign bit. * c-c++-common/Wshift-overflow-6.c: Test shifting 1 out of the sign bit. * c-c++-common/Wshift-overflow-7.c: Test shifting 1 out of the sign bit. From-SVN: r231290
Paolo Bonzini committed -
PR libstdc++/57060 * include/std/thread (operator==(thread::id, thread::id)): Do not use __gthread_equal. (operator<(thread::id, thread::id)): Add comment. (this_thread::get_id()): Do not use __gthread_self for single-threaded programs using glibc. * testsuite/30_threads/this_thread/57060.cc: New. From-SVN: r231289
Jonathan Wakely committed -
"register_operand" was a bit confusing. Also some other minor cleanups. * (cstore<mode>4_unsigned): Use gpc_reg_operand instead of register_operand. Remove empty constraints. Use std::swap. (cstore_si_as_di, cstore<mode>4_signed_imm, cstore<mode>4_unsigned_imm, cstore<mode>4 for GPR): Use gpc_reg_operand instead of register_operand. (cstore<mode>4 for FP): Use gpc_reg_operand instead of register_operand. Remove empty constraints. From-SVN: r231287
Segher Boessenkool committed -
* common/config/msp430/msp430-common.c (msp430_handle_option): Pass both -mmcu and -mcpu on to the back end if they are both defined. * config/msp430/msp430.c (hwmult_name): New function. (msp430_option_override): If an unrecognised MCU name is detected only warn if the user has not provided suitable -mhwmult and -mcpu options. Use msp430_warn_mcu to control warning messages. Generate warnings about conflicts between -mmcu and -mcpu and -mhwmult options. If neither -mcpu nor -mmcu have been specified but -mhwmult= f5series has the select the 430X isa. (msp430_no_hwmult): If -mmcu has not been specified and msp430_hwmult_type is AUTO then return true. * config/msp430/msp430.h (EXTRA_SPEC_FUNCTIONS): Define. (LIB_SPEC): Add hardware multiply library selection. * config/msp430/t-msp430: Delete hardware multiply multilibs. Add rule to build driver-msp430.o * config/msp430/driver-msp430.c: New file. * config/msp430/msp430.opt (warn-mcu): New option. * doc/invoke.texi: Update description of -mhwmult=auto. Document -mwarn-mcu option. tests * gcc.target/msp430/msp_abi_div_funcs.c: New test. * gcc.target/msp430/mul_main.h: New test support file. * gcc.target/msp430/mul_none.c: New test. * gcc.target/msp430/mul_16bit.c: New test. * gcc.target/msp430/mul_32bit.c: New test. * gcc.target/msp430/mul_f5.c: New test. libgcc * config/msp430/mpy.c (__mulhi3): Use a faster algorithm. Allow for the second argument being negative. * config.host (extra_parts): Define for MSP430. Create separate libraries for each of the hardware multiply formats. * config/msp430/lib2hw_mul.S: Build only the multiply routines that are needed. * config/msp430/lib2mul.c: Likewise. * config/msp430/t-msp430 (LIB2ADD): Remove lib2hw_mul.S. Add rules to build hardware multiply libraries. * config/msp430/lib2divSI.c: (__mspabi_divlu): Alias for __mspabi_divul function. (__mspabi_divllu): New stub function. From-SVN: r231286
Nick Clifton committed -
From-SVN: r231285
Segher Boessenkool committed -
This implements cstore for the last case we do not yet handle, using the superopt algo from the venerable CWG. The only integer cases we do still not handle after this are for -m32 -mpowerpc64. * (cstore<mode>4_signed): New expander. (cstore<mode>4): Call it. From-SVN: r231284
Segher Boessenkool committed -
From-SVN: r231282
Jakub Jelinek committed -
2015-12-04 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/68684 * resolve.c (resolve_lock_unlock_event): Fix logic faux pas. From-SVN: r231281
Steven G. Kargl committed -
PR tree-optimization/68680 * calls.c (special_function_p): Return ECF_MAY_BE_ALLOCA for BUILT_IN_ALLOCA{,_WITH_ALIGN}. Don't check for __builtin_alloca by name. * gcc.target/i386/pr68680.c: New test. From-SVN: r231279
Jakub Jelinek committed -
PR tree-optimization/68671 * tree-ssa-reassoc.c (maybe_optimize_range_tests): For basic blocks starting with the successor of first bb we've modified and ending with last_bb call reset_flow_sensitive_info_in_bb. * gcc.dg/pr68671.c: New test. From-SVN: r231278
Jakub Jelinek committed -
tree-ssa-reassoc.c (maybe_optimize_range_tests): Return boolean indicating if a gimple conditional was optimized to true/false. * tree-ssa-reassoc.c (maybe_optimize_range_tests): Return boolean indicating if a gimple conditional was optimized to true/false. (reassociate_bb): Bubble up return value from maybe_optimize_range_tests. (do_reassoc): Similarly, but for reassociate_bb. (execute_reassoc): Return TODO_cleanup_cfg as needed. * gcc.dg/tree-ssa/reassoc-43.c: New test. From-SVN: r231277
Jeff Law committed -
* config/aarch64/aarch64.c (aarch64_override_options_internal): Do not alter target_flags due to TARGET_GENERAL_REGS_ONLY_P. * doc/invoke.texi (AArch64 options): Mention that -mgeneral-regs-only does not affect the assembler directives. * gcc.target/aarch64/mgeneral-regs_4.c: New test. From-SVN: r231275
Kyrylo Tkachov committed -
gcc/testsuite/ChangeLog * gcc.dg/Wframe-address.c: S/390 requires the -mbackchain option to access arbitrary stack frames. * gcc.dg/Wno-frame-address.c: Likewise. From-SVN: r231273
Dominik Vogt committed -
gcc/ChangeLog * config/s390/s390.c (s390_asm_file_start): Implement hook function to emit .machine and .machinemode to the top of the assembler file. (TARGET_ASM_FILE_START): Provide target hook. (s390_asm_output_machine_for_arch): Protect with HAVE_AS_MACHINE_MACHINEMODE instead of S390_USE_TARGET_ATTRIBUTE. gcc/testsuite/ChangeLog * gcc.target/s390/asm-machine-1.c: Updated. * gcc.target/s390/asm-machine-2.c: Updated. * gcc.target/s390/asm-machine-3.c: Updated. * gcc.target/s390/asm-machine-4.c: Updated. From-SVN: r231272
Dominik Vogt committed -
gcc/ChangeLog * config/s390/s390.opt (s390_arch_string): Remove. (s390_tune_string): Likewise. (s390_cost_pointer): Add Variable. (s390_tune_flags): Add TargetVariable. (s390_arch_flags, march=, mbackchain, mdebug, mesa, mhard-dfp), (mhard-float, mlong-double-128, mlong-double-64, mhtm, mvx), (mpacked-stack, msmall-exec, msoft-float, mstack-guard=, mstack-size=), (mtune=, mmvcle, mzvector, mzarch, mbranch-cost=, mwarn-dynamicstack), (mwarn-framesize=): Save option. (mno-stack-guard, mno-stack-guard): New option. (mwarn-dynamicstack): Allow mno-warn-dynamicstack. (mwarn-framesize=): Convert to UInteger (negative values are rejected now). * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Split setting macros changeable through the GCC target pragma into a separate function. (s390_cpu_cpp_builtins): Likewise. (s390_pragma_target_parse): New function, implement GCC target pragma if enabled. (s390_register_target_pragmas): Register s390_pragma_target_parse if available. * common/config/s390/s390-common.c (s390_handle_option): Export. Move setting s390_arch_flags to s390.c. Remove s390_tune_flags. Allow 0 as argument to -mstack-size (switch to default value). Allow 0 as argument to -mstack-guard (switch off). Remove now unnecessary explicit parsing code for -mwarn-framesize. * config/s390/s390-protos.h (s390_handle_option): Export. (s390_valid_target_attribute_tree): Export. (s390_reset_previous_fndecl): Export. * config/s390/s390-builtins.def: Use new macro B_GROUP to mark the start and end of HTM and VX builtins. (s390_asm_output_function_prefix): Declare hook. (s390_asm_declare_function_size): Likewise. * config/s390/s390-builtins.h (B_GROUP): Use macro. * config/s390/s390-opts.h: Add comment about processor_type usage. * config/s390/s390.h (TARGET_CPU_IEEE_FLOAT_P, TARGET_CPU_ZARCH_P), (TARGET_CPU_LONG_DISPLACEMENT_P, TARGET_CPU_EXTIMM_P, TARGET_CPU_DFP_P), (TARGET_CPU_Z10_P, TARGET_CPU_Z196_P, TARGET_CPU_ZEC12_P), (TARGET_CPU_HTM_P, TARGET_CPU_Z13_P, TARGET_CPU_VX_P), (TARGET_HARD_FLOAT_P, TARGET_LONG_DISPLACEMENT_P, TARGET_EXTIMM_P), (TARGET_DFP_P, TARGET_Z10_P, TARGET_Z196_P, TARGET_ZEC12_P), (TARGET_HTM_P, TARGET_Z13_P, TARGET_VX_P, TARGET_CPU_EXTIMM), (TARGET_CPU_DFP, TARGET_CPU_Z10, TARGET_CPU_Z196, TARGET_CPU_ZEC12), (TARGET_CPU_HTM, TARGET_CPU_Z13, TARGET_LONG_DISPLACEMENT), (TARGET_EXTIMM, TARGET_DFP, TARGET_Z10, TARGET_Z196, TARGET_ZEC12), (TARGET_Z13, TARGET_VX, S390_USE_TARGET_ATTRIBUTE), (S390_USE_ARCHITECTURE_MODIFIERS, SWITCHABLE_TARGET), (ASM_DECLARE_FUNCTION_SIZE, ASM_OUTPUT_FUNCTION_PREFIX): Likewise. * config/s390/vecintrin.h: Use vector definitions even if __VEC__ is undefined. (vec_all_nan): Rewrite as macro using statement expressions to avoid that the vector keyword needs to be defined when including the file. (vec_all_numeric): Likewise. (vec_any_nan): Likewise. (vec_any_numeric): Likewise. * config/s390/s390.c (s390_previous_fndecl): New static variable. (s390_set_current_function): New function. (s390_cost): Wrapper macro to allow defining the cost table pointer in the options file. (processor_table): Table for march= and mtune= parsing. (s390_init_builtins): Enable all builtins and types unconditionally. (s390_expand_builtin): Generate an error message if builtin is not supported by current options. Correct an error message. (s390_function_specific_restore): New function to set s390_cost. (s390_asm_output_machine_for_arch): New function for emitting .machine and .machinmode directives to the assembler file. (s390_asm_output_function_prefix): Likewise. (s390_asm_declare_function_size): Likewise. (s390_asm_output_function_label): Add mdebug output for feature testing. (s390_option_override): Move implementation into internal function. (s390_option_override_internal): Likewise. Implement option overriding based on current options. (s390_valid_target_attribute_inner_p): New function implementing target attribute logic. (s390_valid_target_attribute_tree): Likewise. (s390_valid_target_attribute_p): Likewise. (s390_reset_previous_fndecl): Likewise. (s390_set_current_function): Likewise. (TARGET_SET_CURRENT_FUNCTION): Provide target hook function. (TARGET_OPTION_VALID_ATTRIBUTE_P): Likewise. (TARGET_OPTION_RESTORE): Likewise. * doc/extend.texi: S390: Document target attribute and pragma. * config.in: Regenerated. * configure: Regenerated. * configure.ac: S390: Check for .machinemode and .machine in gas. S390: Check for architecture modifiers support in gas. gcc/testsuite/ChangeLog * gcc.target/s390/asm-machine-1.c: New test. * gcc.target/s390/asm-machine-2.c: New test. * gcc.target/s390/asm-machine-3.c: New test. * gcc.target/s390/asm-machine-4.c: New test. * gcc.target/s390/target-attribute/tattr-1.c: New test. * gcc.target/s390/target-attribute/tattr-2.c: New test. * gcc.target/s390/target-attribute/tattr-3.c: New test. * gcc.target/s390/target-attribute/tattr-4.c: New test. * gcc.target/s390/target-attribute/tattr-5.c: New test. * gcc.target/s390/target-attribute/tattr-6.c: New test. * gcc.target/s390/target-attribute/tattr-7.c: New test. * gcc.target/s390/target-attribute/tattr-8.c: New test. * gcc.target/s390/target-attribute/tattr-9.c: New test. * gcc.target/s390/target-attribute/tattr-10.c: New test. * gcc.target/s390/target-attribute/tattr-11.c: New test. * gcc.target/s390/target-attribute/tattr-12.c: New test. * gcc.target/s390/target-attribute/tattr-13.c: New test. * gcc.target/s390/target-attribute/tattr-14.c: New test. * gcc.target/s390/target-attribute/tattr-15.c: New test. * gcc.target/s390/target-attribute/tattr-16.c: New test. * gcc.target/s390/target-attribute/tattr-17.c: New test. * gcc.target/s390/target-attribute/tattr-18.c: New test. * gcc.target/s390/target-attribute/tattr-19.c: New test. * gcc.target/s390/target-attribute/tattr-arch-tune-1.c: New test. * gcc.target/s390/target-attribute/tattr-arch-tune-2.c: New test. * gcc.target/s390/target-attribute/tattr-m31-1.c: New test. * gcc.target/s390/target-attribute/tattr-m31-2.c: New test. * gcc.target/s390/target-attribute/tattr-m31-3.c: New test. * gcc.target/s390/target-attribute/tattr-m31-4.c: New test. * gcc.target/s390/target-attribute/tattr-m31-5.c: New test. * gcc.target/s390/target-attribute/tattr-m31-6.c: New test. * gcc.target/s390/target-attribute/tattr-m31-7.c: New test. * gcc.target/s390/target-attribute/tattr-m31-8.c: New test. * gcc.target/s390/target-attribute/tattr-m31-9.c: New test. * gcc.target/s390/target-attribute/tattr-m31-10.c: New test. * gcc.target/s390/target-attribute/tattr-m31-11.c: New test. * gcc.target/s390/target-attribute/tattr-m31-12.c: New test. * gcc.target/s390/target-attribute/tattr-m31-13.c: New test. * gcc.target/s390/target-attribute/tattr-m31-14.c: New test. * gcc.target/s390/target-attribute/tattr-m31-15.c: New test. * gcc.target/s390/target-attribute/tattr-m31-16.c: New test. * gcc.target/s390/target-attribute/tattr-m31-17.c: New test. * gcc.target/s390/target-attribute/tattr-m31-18.c: New test. * gcc.target/s390/target-attribute/tattr-m31-19.c: New test. * gcc.target/s390/target-attribute/tattr-m31-20.c: New test. * gcc.target/s390/target-attribute/tattr-m31-21.c: New test. * gcc.target/s390/target-attribute/tattr-m31-22.c: New test. * gcc.target/s390/target-attribute/tattr-m31-23.c: New test. * gcc.target/s390/target-attribute/tattr-m31-24.c: New test. * gcc.target/s390/target-attribute/tattr-m31-25.c: New test. * gcc.target/s390/target-attribute/tattr-m31-26.c: New test. * gcc.target/s390/target-attribute/tattr-m31-27.c: New test. * gcc.target/s390/target-attribute/tattr-m31-28.c: New test. * gcc.target/s390/target-attribute/tattr-m31-29.c: New test. * gcc.target/s390/target-attribute/tattr-m31-30.c: New test. * gcc.target/s390/target-attribute/tattr-m31-31.c: New test. * gcc.target/s390/target-attribute/tattr-m31-32.c: New test. * gcc.target/s390/target-attribute/tattr-m64-1.c: New test. * gcc.target/s390/target-attribute/tattr-m64-2.c: New test. * gcc.target/s390/target-attribute/tattr-m64-3.c: New test. * gcc.target/s390/target-attribute/tattr-m64-4.c: New test. * gcc.target/s390/target-attribute/tattr-m64-5.c: New test. * gcc.target/s390/target-attribute/tattr-m64-6.c: New test. * gcc.target/s390/target-attribute/tattr-m64-7.c: New test. * gcc.target/s390/target-attribute/tattr-m64-8.c: New test. * gcc.target/s390/target-attribute/tattr-m64-9.c: New test. * gcc.target/s390/target-attribute/tattr-m64-10.c: New test. * gcc.target/s390/target-attribute/tattr-m64-11.c: New test. * gcc.target/s390/target-attribute/tattr-m64-12.c: New test. * gcc.target/s390/target-attribute/tattr-m64-13.c: New test. * gcc.target/s390/target-attribute/tattr-m64-14.c: New test. * gcc.target/s390/target-attribute/tattr-m64-15.c: New test. * gcc.target/s390/target-attribute/tattr-m64-16.c: New test. * gcc.target/s390/target-attribute/tattr-m64-17.c: New test. * gcc.target/s390/target-attribute/tattr-m64-18.c: New test. * gcc.target/s390/target-attribute/tattr-m64-19.c: New test. * gcc.target/s390/target-attribute/tattr-m64-20.c: New test. * gcc.target/s390/target-attribute/tattr-m64-21.c: New test. * gcc.target/s390/target-attribute/tattr-m64-22.c: New test. * gcc.target/s390/target-attribute/tattr-m64-23.c: New test. * gcc.target/s390/target-attribute/tattr-m64-24.c: New test. * gcc.target/s390/target-attribute/tattr-m64-25.c: New test. * gcc.target/s390/target-attribute/tattr-m64-26.c: New test. * gcc.target/s390/target-attribute/tattr-m64-27.c: New test. * gcc.target/s390/target-attribute/tattr-m64-28.c: New test. * gcc.target/s390/target-attribute/tattr-m64-29.c: New test. * gcc.target/s390/target-attribute/tattr-m64-30.c: New test. * gcc.target/s390/target-attribute/tattr-m64-31.c: New test. * gcc.target/s390/target-attribute/tattr-m64-32.c: New test. * gcc.target/s390/target-attribute/tpragma-struct-vx-2.c: New test. * gcc.target/s390/s390.exp (check_effective_target_target_attribute): Add check whether target attribute is available. Run test in target-attribute subdir. * gcc.target/s390/s390-c++.exp (check_effective_target_target_attribute): Likewise. From-SVN: r231271
Dominik Vogt committed -
gcc/ * c-family/c-common.c (c_common_attribute_table[]): Update max arguments count for "simd" attribute. (handle_simd_attribute): Parse "notinbranch" and "inbranch" arguments. * doc/extend.texi ("simd"): Describe new flags. gcc/testsuite/ * c-c++-common/attr-simd-4.c: New test. * c-c++-common/attr-simd-5.c: New test. From-SVN: r231270
Kirill Yukhin committed -
gcc/ * config/i386/sse.md (<avx512>_store<mode>_mask): Fix operand checked for alignment. From-SVN: r231269
Ilya Enkovich committed -
* config/nvptx/nvptx.c (write_one_arg): Deal with prologue emission too. Change 'no_arg_types' to 'prototyped'. (write_fn_proto): Use write_one_arg for stdarg, static chain & main. (nvptx_declare_function_name): Use write_one_arg for prologue copies. From-SVN: r231267
Nathan Sidwell committed -
From-SVN: r231266
Nathan Sidwell committed
-