aboutsummaryrefslogtreecommitdiff
path: root/gcc
AgeCommit message (Collapse)AuthorFilesLines
2015-12-17DWARF: handle variable-length records and variant partsPierre-Marie de Rodat14-126/+2067
Enhance the DWARF back-end to emit proper descriptions for variable-length records as well as variant parts in records. In order to achieve this, generate DWARF expressions ("location descriptions" in dwarf2out's parlance) for size and data member location attributes. Also match QUAL_UNION_TYPE data types as variant parts, assuming the formers appear only to implement the latters (which is the case at the moment: only the Ada front-end emits them). Note that very few debuggers can handle these descriptions (GDB does not yet), so in order to ease the the transition enable these only when -fgnat-encodings=minimal. gcc/ada/ChangeLog: * gcc-interface/decl.c (gnat_to_gnu_entity): Disable ___XVS GNAT encodings when -fgnat-encodings=minimal. (components_to_record): Disable ___XVE, ___XVN, ___XVU and ___XVZ GNAT encodings when -fgnat-encodings=minimal. * gcc-interface/utils.c (maybe_pad_type): Disable __XVS GNAT encodings when -fgnat-encodings=minimal. gcc/ChangeLog: * debug.h (struct gcc_debug_hooks): Add a new size_function hook. * debug.c (do_nothing_debug_hooks): Set the size_function field to no-op. * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise. * sdbout.c (sdb_debug_hooks): Likewise. * vmsdbgout.c (vmsdbg_debug_hooks): Likewise. * stor-layout.c (finalize_size_functions): Let the debug info back-end know about the implementation of size functions. * dwarf2out.h (dw_discr_list_ref): New typedef. (enum dw_val_class): Add value classes for discriminant values and discriminant lists. (struct dw_discr_value): New structure. (struct dw_val_node): Add discriminant values and discriminant lists to the union. (struct dw_loc_descr_node): Add frame_offset_rel and dw_loc_frame_offset (only for checking) fields to handle DWARF procedures generation. (struct dw_discr_list_node): New structure. * dwarf2out.c (dwarf2out_size_function): New. (dwarf2_debug_hooks): Set the size_function field to dwarf2out_size_function. (dwarf2_lineno_debug_hooks): Set the size_function field to no-op. (new_loc_descr): Initialize the dw_loc_frame_offset field. (dwarf_proc_stack_usage_map): New. (dw_val_equal_p): Handle discriminants. (size_of_discr_value): New. (size_of_discr_list): New. (size_of_die): Handle discriminants. (add_loc_descr_to_each): New. (add_loc_list): New. (print_discr_value): New. (print_dw_val): Handle discriminants. (value_format): Handle discriminants. (output_discr_value): New. (output_die): Handle discriminants. (output_loc_operands): Handle DW_OP_call2 and DW_OP_call4. (uint_loc_descriptor): New. (uint_comparison_loc_list): New. (loc_list_from_uint_comparison): New. (add_discr_value): New. (add_discr_list): New. (AT_discr_list): New. (loc_descr_to_next_no_op): New. (free_loc_descr): New. (loc_descr_without_nops): New. (struct loc_descr_context): Add a dpi field. (struct dwarf_procedure_info): New helper structure. (new_dwarf_proc_die): New. (is_handled_procedure_type): New. (resolve_args_picking_1): New. (resolve_args_picking): New. (function_to_dwarf_procedure): New. (copy_dwarf_procedure): New. (copy_dwarf_procs_ref_in_attrs): New. (copy_dwarf_procs_ref_in_dies): New. (break_out_comdat_types): Copy DWARF procedures along with the types that reference them. (loc_list_from_tree): Rename into loc_list_from_tree_1. Handle CALL_EXPR in the cases suitable for DWARF procedures. Handle for PARM_DECL when generating a location description for a DWARF procedure. Handle big unsigned INTEGER_CST nodes. Handle NON_LVALUE_EXPR, EXACT_DIV_EXPR and all unsigned comparison operators. Add a wrapper for loc_list_from_tree that strips DW_OP_nop operations from the result. (type_byte_size): New. (struct vlr_context): New helper structure. (field_byte_offset): Change signature to return either a constant offset or a location description for dynamic ones. Handle dynamic byte offsets with constant bit offsets and handle fields in variant parts. (add_data_member_location): Change signature to handle dynamic member offsets and fields in variant parts. Update call to field_byte_offset. Handle location lists. Emit a variable data member location only when -fgnat-encodings=minimal. (add_bound_info): Emit self-referential bounds only when -fgnat-encodings=minimal. (add_byte_size_attribute): Use type_byte_size in order to handle dynamic type sizes. Emit variable byte size only when -fgnat-encodings=minimal and when the target DWARF version allows them. (add_bit_offset_attribute): Change signature to handle variable-length records. Update call to field_byte_offset. (gen_descr_array_type_die): Update call to gen_field_die. Update loc_descr_context literal. (gen_type_die_for_member): Likewise. (gen_subprogram_die): Update calls to get_decl_die. (gen_field_die): Change signature to handle variable-length records. Update calls to add_bit_offset_attribute and add_data_member_location_attribute. (gen_inheritance_die): Update call to add_data_member_location_attribute. (gen_decl_die): Change signature to handle variable-length records. Update call to gen_field_die. (gen_inheritance_die): Change signature to handle variable-length records. Update call to add_data_member_location_attribute. (is_variant_part): New. (analyze_discr_in_predicate): New. (get_discr_value): New. (analyze_variants_discr): New. (gen_variant_part): New. (gen_member_die): Update calls to gen_decl_die. Call instead gen_variant_part for variant parts. (gen_type_die_with_usage): Update calls to gen_decl_die. (process_scope_var): Likewise. (force_decl_die): Likewise. (declare_in_namespace): Likewise. (dwarf2out_decl): Likewise. (prune_unused_types_walk_loc_descr): New. (prune_unused_types_walk_attribs): Mark DIEs referenced by location descriptions and loc. descr. lists. (prune_unused_types_walk): Don't mark DWARF procedures by default. Mark variant parts since nothing is supposed to reference them. (dwarf2out_init): Allocate dwarf_proc_stack_usage_map. (dwarf2out_c_finalize): Deallocate and reset dwarf_proc_stack_usage_map. gcc/testsuite/ChangeLog: * gnat.dg/specs/debug1.ads: Update the expected number of DW_AT_artificial attribute in compiler output. From-SVN: r231762
2015-12-17Add a flag to control the balance between GNAT encodings and std. DWARFPierre-Marie de Rodat6-1/+56
In order to accomodate the debugger's support evolution for "new" DWARF constructs, we need to have an flag that controls the amount of GNAT encodings/standard DWARF information that is emitted in the debug info. Propagate this new parameter into the Ada front-end. gcc/ChangeLog: * common.opt (gnat_encodings): New variable (dwarf_gnat_encodings): New enum type. (fgnat_encodings): New option. * flag-types.h (enum dwarf_gnat_encodings): New. gcc/ada/ChangeLog: * gcc-interface/misc.c (gnat_encodings): Undefine macro and declare a global variable. (gnat_post_options): Initialize this global from options. From-SVN: r231761
2015-12-17tree.h (TYPE_MODE_RAW): New macro.Christian Bruel3-1/+11
2015-12-17 Christian Bruel <christian.bruel@st.com> * tree.h (TYPE_MODE_RAW): New macro. * tree-streamer-out.c (pack_ts_type_common_value_fields): Replace TYPE_MODE by TYPE_MODE_RAW. From-SVN: r231758
2015-12-17re PR tree-optimization/68835 (ICE in set_value_range, at tree-vrp.c:387, ↵Jakub Jelinek5-6/+56
with __int128 bit field) PR tree-optimization/68835 * tree.c (get_int_cst_ext_nunits): Return cst.get_precision () / HOST_BITS_PER_WIDE_INT + 1 for all unsigned wi::neg_p (cst) constants. (build_new_int_cst): If cst.get_precision is not a multiple of HOST_BITS_PER_WIDE_INT, zero extend -1 to the precision % HOST_BITS_PER_WIDE_INT. * gcc.dg/pr68835-1.c: New test. * gcc.dg/pr68835-2.c: New test. From-SVN: r231757
2015-12-17Fix wrong PR referencesPatrick Palka3-4/+4
PR c++/59878 -> PR c++/59879 From-SVN: r231755
2015-12-17re PR tree-optimization/68951 (ICE in vect_update_misalignment_for_peel)Richard Biener4-0/+29
2015-12-17 Richard Biener <rguenther@suse.de> PR tree-optimization/68951 * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost): Ignore strided non-group accesses. * gcc.dg/torture/pr68951.c: New testcase. From-SVN: r231754
2015-12-17arc.c (arc_loop_hazard): Don't convert the jump label rtx to an rtx_insn ↵Andrew Burgess4-7/+33
until we confirm it's not a... 2015-12-17 Andrew Burgess <andrew.burgess@embecosm.com> gcc: * config/arc/arc.c (arc_loop_hazard): Don't convert the jump label rtx to an rtx_insn until we confirm it's not a return rtx. gcc/testsuite: * gcc.target/arc/loop-hazard-1.c: New file From-SVN: r231752
2015-12-17gimple-ssa.h (struct gimple_df): Remove modified_noreturn_calls field.Richard Biener3-8/+9
2015-12-17 Richard Biener <rguenther@suse.de> * gimple-ssa.h (struct gimple_df): Remove modified_noreturn_calls field. * tree-ssa.c (delete_tree_ssa): Do not zero it. From-SVN: r231751
2015-12-17Only support -gstabs on Mac OS X if assember supports it (PR target/67973)Rainer Orth15-14/+95
gcc: PR target/67973 * configure.ac (gcc_cv_as_stabs_directive): New test. * configure: Regenerate. * config.in: Regenerate. * config/darwin.h (DBX_DEBUGGING_INFO): Wrap in HAVE_AS_STABS_DIRECTIVE. (PREFERRED_DEBUGGING_TYPE): Likewise. * config/i386/darwin.h (PREFERRED_DEBUGGING_TYPE): Only include DBX_DEBUG if HAVE_AS_STABS_DIRECTIVE. * doc/sourcebuild.texi (Effective-Target Keywords, Environment attributes): Document stabs. gcc/testsuite: PR target/67973 * lib/target-supports.exp (check_effective_target_stabs): New proc. * g++.dg/cpp0x/alias-decl-debug-0.C: Restrict to stabs targets. * g++.dg/other/PR23205.C: Likewise. * g++.dg/other/pr23205-2.C: Likewise. * gcc.dg/20040813-1.c: Likewise. * gcc.dg/darwin-20040809-2.c: Likewise. * objc.dg/stabs-1.m: Likewise. From-SVN: r231747
2015-12-17jump-around-jump.c (rtc_set_time): Declare.Andrew Burgess2-1/+5
2015-12-17 Andrew Burgess <andrew.burgess@embecosm.com> * gcc.target/arc/jump-around-jump.c (rtc_set_time): Declare. From-SVN: r231746
2015-12-17revert: re PR testsuite/68629 (FAIL: c-c++-common/attr-simd-3.c)Thomas Preud'homme3-7/+11
2015-12-17 Thomas Preud'homme <thomas.preudhomme@arm.com> Revert: 2015-12-14 Thomas Preud'homme <thomas.preudhomme@arm.com> PR testsuite/68629 * lib/target-supports.exp (check_effective_target_cilkplus): Also check that compiling with -fcilkplus does not give an error. * c-c++-common/attr-simd-3.c: Require cilkplus effective target. From-SVN: r231745
2015-12-17Fix some blockers of PR c++/24666 (arrays decay to pointers too early)Patrick Palka7-7/+120
gcc/cp/ChangeLog: PR c++/16333 PR c++/41426 PR c++/59878 PR c++/66895 * typeck.c (convert_for_initialization): Don't perform an early decaying conversion if converting to a class type. gcc/testsuite/ChangeLog: PR c++/16333 PR c++/41426 PR c++/59878 PR c++/66895 * g++.dg/conversion/pr16333.C: New test. * g++.dg/conversion/pr41426.C: New test. * g++.dg/conversion/pr59878.C: New test. * g++.dg/conversion/pr66895.C: New test. From-SVN: r231736
2015-12-17Avoid code duplication in cp_tree_[operand|code]_lengthPatrick Palka2-16/+8
gcc/cp/ChangeLog: * tree.c (cp_tree_operand_length): Define in terms of cp_tree_code_length. From-SVN: r231735
2015-12-16Correct ChangeLogs for PR c++/42121 and related.Martin Sebor3-11/+11
From-SVN: r231734
2015-12-16PR c/68868 - atomic_init emits an unnecessary fenceMartin Sebor4-6/+136
gcc/ChangeLog * ginclude/stdatomic.h (atomic_init): Use atomic_store instead of plain assignment. gcc/testsuite/ChangeLog * testsuite/gcc.dg/atomic/stdatomic-init.c: New test. From-SVN: r231733
2015-12-17re PR target/68805 (ICE while var-tracking in simplify_binary_operation_1 ↵Michael Meissner5-7/+54
with -g and -mvsx-timode) [gcc] 2015-12-15 Michael Meissner <meissner@linux.vnet.ibm.com> PR target/68805 * config/rs6000/rs6000.c (rs6000_gen_le_vsx_permute): Use ROTATE instead of VEC_SELECT for TImode. * config/rs6000/vsx.md (VSX_LE): Move TImode from VSX_LE to VSX_LE_128, so that we use ROTATE to swap the 64-bit words instead of using VEC_SELECT. (VSX_LE_128): Likewise. (define_peephole2): Add peephole to eliminate double xxpermdi when copying TImode. [gcc/testsuite] 2015-12-15 Michael Meissner <meissner@linux.vnet.ibm.com> PR target/68805 * gcc.target/powerpc/pr68805.c: New test. From-SVN: r231732
2015-12-17Daily bump.GCC Administrator1-1/+1
From-SVN: r231731
2015-12-17re PR target/68779 (HPPA/PARISC 32-bit Linux kernel build triggers multiple ↵John David Anglin2-231/+248
ICEs) PR target/68779 * config/pa/pa.md (atomic_loaddi): Honor -mdisable-fpregs. (atomic_loaddi_1): Likewise. (atomic_storedi): Likewise. (atomic_storedi_1): Likewise. (atomic_loaddf): Likewise. (atomic_loaddf_1): Likewise. (atomic_storedf): Likewise. (atomic_storedf_1): Likewise. Move all atomic patterns to end of file. From-SVN: r231727
2015-12-16PR objc++/68932 - FAIL: obj-c++.dg/property/at-property-23.mm -fgnu-runtimeMartin Sebor4-3/+15
PR objc++/68932 - FAIL: obj-c++.dg/property/at-property-23.mm -fgnu-runtime (internal compiler error) cp/ * decl.c (grokdeclarator): Avoid assuming ctype is non-null when checking the validity of a flexible array member. testsuite/ * obj-c++.dg/property/at-property-23.mm: Remove check for an error message. From-SVN: r231726
2015-12-16attach schedule tree to the scopAbderrazek Zaafrani5-5/+85
we used to translate the just computed schedule tree into a union_map, and then in the code generation it would be translated back to a schedule tree just before generating AST code. From-SVN: r231725
2015-12-16pt.c (comp_template_args): Remove.Paolo Carlini3-15/+15
2015-12-16 Paolo Carlini <paolo.carlini@oracle.com> * pt.c (comp_template_args): Remove. (comp_template_args_with_info): Rename to comp_template_args; not static. (add_pending_template): Adjust call. * cp-tree.h (comp_template_args): Add default arguments. From-SVN: r231723
2015-12-16ipa-visibility.c (can_replace_by_local_alias): Make static, check ↵Nathan Sidwell2-7/+19
ASM_OUTPUT_DEF. * ipa-visibility.c (can_replace_by_local_alias): Make static, check ASM_OUTPUT_DEF. (can_replace_by_local_alias_in_vtable): Make static. (function_and_variable_visibility): Reformat overlong comment. From-SVN: r231721
2015-12-16ree.c (add_removable_extension): Use reg_overlap_mentioned_p rather than ↵Jeff Law2-1/+6
testing hard register #s. * ree.c (add_removable_extension): Use reg_overlap_mentioned_p rather than testing hard register #s. From-SVN: r231719
2015-12-16nvptx.h (OUTGOING_STATIC_CHAIN_REGNUM): Remove.Nathan Sidwell3-44/+49
* config/nvptx/nvptx.h (OUTGOING_STATIC_CHAIN_REGNUM): Remove. (REGISTER_NAMES): Adjust. * config/nvptx/nvptx.c (nvptx_pass_by_reference): Avoid long line. (nvptx_static_hain): Delete. (write_arg_mode): Don't emit initializer if argno < 0. (write_arg_type): Fix whitespace. (init_frame): Initialize reg to zero if frame is zero-sized. (nvptx_declare_function_name): Use write_arg_type to emit chain decl. (nvptx_output_call_insn): Adjust static chain emission. (nvptx_goacc_reduction): Make static. (TARGET_STATIC_CHAIN): Don't override. From-SVN: r231718
2015-12-16* gcc.dg/tree-ssa/pr68619-4.c: Change size of code bitfield.Jeff Law2-1/+5
From-SVN: r231717
2015-12-16re PR c++/68309 (ICE: Segmentation fault)Jason Merrill2-7/+5
PR c++/68309 * pt.c (instantiate_decl): Revert earlier change. From-SVN: r231714
2015-12-16re PR c++/63628 ([c++1y] cannot use decltype on captured arg-pack)Jason Merrill3-6/+30
PR c++/63628 * pt.c (tsubst_pack_expansion): Also make dummy decls if retrieve_local_specialization fails. From-SVN: r231713
2015-12-16Better error recovery for merge-conflict markersDavid Malcolm20-2/+344
gcc/c-family/ChangeLog: * c-common.h (conflict_marker_get_final_tok_kind): New prototype. * c-lex.c (conflict_marker_get_final_tok_kind): New function. gcc/c/ChangeLog: * c-parser.c (struct c_parser): Expand array "tokens_buf" from 2 to 4. (c_parser_peek_nth_token): New function. (c_parser_peek_conflict_marker): New function. (c_parser_error): Detect conflict markers and report them as such. gcc/cp/ChangeLog: * parser.c (cp_lexer_peek_conflict_marker): New function. (cp_parser_error): Detect conflict markers and report them as such. gcc/testsuite/ChangeLog: * c-c++-common/conflict-markers-1.c: New testcase. * c-c++-common/conflict-markers-2.c: Likewise. * c-c++-common/conflict-markers-3.c: Likewise. * c-c++-common/conflict-markers-4.c: Likewise. * c-c++-common/conflict-markers-5.c: Likewise. * c-c++-common/conflict-markers-6.c: Likewise. * c-c++-common/conflict-markers-7.c: Likewise. * c-c++-common/conflict-markers-8.c: Likewise. * c-c++-common/conflict-markers-9.c: Likewise. * c-c++-common/conflict-markers-10.c: Likewise. * c-c++-common/conflict-markers-11.c: Likewise. * g++.dg/conflict-markers-1.C: Likewise. From-SVN: r231712
2015-12-16Add missing changelog entryAditya Kumar1-0/+4
From-SVN: r231710
2015-12-16C FE: fix range of primary-expression in c_parser_postfix_expressionDavid Malcolm5-5/+41
gcc/c/ChangeLog: * c-parser.c (c_parser_postfix_expression): Use EXPR_LOC_OR_LOC to preserve range information for the primary expression in the call to c_parser_postfix_expression_after_primary. gcc/testsuite/ChangeLog: * gcc.dg/cast-function-1.c (bar): Update column numbers. * gcc.dg/diagnostic-range-bad-called-object.c: New test case. From-SVN: r231709
2015-12-16Remove individial dependence pointers and add a scop::dependence to contain ↵Aditya Kumar6-72/+66
all the dependence. Removed the member variables which are only used in scop_get_dependence. Instead only maintaining the overall dependence. Passes regtest and bootstrap. gcc/ChangeLog: 2015-12-15 hiraditya <hiraditya@msn.com> * graphite-dependences.c (scop_get_dependences): Use local pointers. * graphite-isl-ast-to-gimple.c(translate_isl_ast_to_gimple::scop_to_isl_ast): Use scop->dependence. * graphite-optimize-isl.c (optimize_isl): Same. * graphite-poly.c (new_scop): Remove initialization of removed members. (free_scop): Same. * graphite.h (struct scop): Remove individial dependence pointers and add a scop::dependence to contain all the dependence. From-SVN: r231708
2015-12-16Use refs instead of values.Aditya Kumar1-2/+2
Passes bootstrap and regtest. gcc/ChangeLog: 2015-12-15 hiraditya <hiraditya@msn.com> * graphite-sese-to-poly.c (build_poly_sr): Use refs. From-SVN: r231707
2015-12-16update required isl versionAditya Kumar10-149/+34
we check for a the isl compute timeout function added in isl 0.13. That means GCC could still be configured with isl 0.13, 0.14, and 0.15. * config/isl.m4 (ISL_CHECK_VERSION): Check for isl_ctx_get_max_operations. * configure: Regenerate. gcc/ * config.in: Regenerate. * configure: Regenerate. * configure.ac: Remove checks for functions that exist in isl 0.13 or later. * graphite-isl-ast-to-gimple.c: Remove #ifdefs and code for isl 0.12. * graphite-optimize-isl.c: Same. * graphite-poly.c: Same. * graphite-sese-to-poly.c: Same. * graphite.h: Add comment for isl 0.14. * toplev.c (print_version): Print isl version. Co-Authored-By: Sebastian Pop <s.pop@samsung.com> From-SVN: r231706
2015-12-16ipa-cp.c (ipa_get_indirect_edge_target_1): Use can_refer; do not speculate ↵Jan Hubicka3-10/+31
to impossible targets. * ipa-cp.c (ipa_get_indirect_edge_target_1): Use can_refer; do not speculate to impossible targets. * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise. From-SVN: r231705
2015-12-16C FE: use correct location range for static assertionsDavid Malcolm4-1/+36
gcc/c/ChangeLog: * c-parser.c (c_parser_static_assert_declaration_no_semi): Use the expression location, falling back on the first token location, rather than always using the latter. gcc/testsuite/ChangeLog: * gcc.dg/diagnostic-range-static-assert.c: New test case. From-SVN: r231704
2015-12-16add more dumps on data dependence graphAditya Kumar4-10/+67
Co-Authored-By: Sebastian Pop <s.pop@samsung.com> From-SVN: r231703
2015-12-16re PR c/64637 (Incorrect location for -Wunused-value warnings in for-loop)Marek Polacek4-1/+37
PR c/64637 * c-typeck.c (c_process_expr_stmt): Use location of the expression if available. * gcc.dg/pr64637.c: New test. From-SVN: r231700
2015-12-16* gcc.dg/sibcall-9.c: Xfail for nvptx.Nathan Sidwell2-1/+5
From-SVN: r231699
2015-12-16[AArch64] Properly cost zero_extend+ashift forms of ubfi[xz]Kyrylo Tkachov2-0/+69
* config/aarch64/aarch64.c (aarch64_extend_bitfield_pattern_p): New function. (aarch64_rtx_costs, ZERO_EXTEND, SIGN_EXTEND cases): Use the above to handle extend+shift rtxes. From-SVN: r231698
2015-12-16[AArch64] PR target/68696 FAIL: gcc.target/aarch64/vbslq_u64_1.c ↵Kyrylo Tkachov2-0/+35
scan-assembler-times bif\tv 1 PR target/68696 * config/aarch64/aarch64-simd.md (*aarch64_simd_bsl<mode>_alt): New pattern. (aarch64_simd_bsl<mode>_internal): Update comment to reflect the above. From-SVN: r231696
2015-12-16re PR middle-end/68870 (ICE on valid code at -O1, -O2 and -O3 on ↵Richard Biener4-14/+70
x86_64-linux-gnu) 2015-12-16 Richard Biener <rguenther@suse.de> PR tree-optimization/68870 * tree-cfgcleanup.c (cleanup_control_expr_graph): Add first_p parameter, if set only perform trivial constant folding. Queue other blocks with conditions for later processing. (cleanup_control_flow_bb): Add first_p parameter and pass it through. (cleanup_tree_cfg_1): Pass true for the first iteration cleanup_control_expr_graph. * gcc.dg/torture/pr68870.c: New testcase. From-SVN: r231695
2015-12-16nvptx-protos.h (nvptx_hard_regno_mode_ok): Delete.Nathan Sidwell4-76/+75
* config/nvptx/nvptx-protos.h (nvptx_hard_regno_mode_ok): Delete. * config/nvptx/nvptx.h (struct machine_function): Reimplement. Adjust all users. * config/nvptx/nvptx.c (nvptx_declare_function_name): Move stack and frame array generation earlier. (nvptx_call_args): Reimplement. (nvptx_expand_call): Adjust. (nvptx_hard_reno_mode_ok): Delete. (nvptx_reorg): Revert scan of hard regs. From-SVN: r231691
2015-12-16Add pass_oacc_ipaTom de Vries22-92/+176
2015-12-16 Tom de Vries <tom@codesourcery.com> * opts.c (default_options_optimization): Set fipa-pta on by default for fopenacc. * passes.def: Move kernels pass group to pass_ipa_oacc. * tree-pass.h (make_pass_oacc_kernels2): Remove. (make_pass_ipa_oacc, make_pass_ipa_oacc_kernels): Declare. * tree-ssa-loop.c (pass_oacc_kernels2, make_pass_oacc_kernels2): Remove. (pass_ipa_oacc, pass_ipa_oacc_kernels): New pass. (make_pass_ipa_oacc, make_pass_ipa_oacc_kernels): New function. * tree-ssa-structalias.c (pass_ipa_pta::clone): New function. * g++.dg/ipa/devirt-37.C: Update for new fre2 pass. * g++.dg/ipa/devirt-40.C: Same. * g++.dg/tree-ssa/pr61034.C: Same. * gcc.dg/ipa/ipa-pta-1.c: Update for new pta1 pass. * gcc.dg/ipa/ipa-pta-10.c: Same. * gcc.dg/ipa/ipa-pta-11.c: Same. * gcc.dg/ipa/ipa-pta-14.c: Same. * gcc.dg/ipa/ipa-pta-16.c: Same. * gcc.dg/ipa/ipa-pta-2.c: Same. * gcc.dg/ipa/ipa-pta-5.c: Same. * gcc.dg/ipa/ipa-pta-6.c: Same. * gcc.dg/torture/ipa-pta-1.c: Same. * gcc.dg/ipa/ipa-pta-13.c: Update for new fre2 and pta1 pass. * gcc.dg/ipa/ipa-pta-3.c: Same. * gcc.dg/ipa/ipa-pta-4.c: Same. From-SVN: r231690
2015-12-16re PR tree-optimization/68861 (FAIL: libgomp.fortran/vla8.f90 -O3 -g ↵Richard Biener2-3/+27
execution test) 2015-12-16 Richard Biener <rguenther@suse.de> PR tree-optimization/68861 * tree-vect-slp.c (vect_build_slp_tree): Properly handle duplicate stmts when applying swapping to stmts. From-SVN: r231689
2015-12-16i386-c.c (ix86_target_macros_internal): Remove duplicate check (__CLZERO__).Kirill Yukhin2-2/+5
gcc/ * config/i386/i386-c.c (ix86_target_macros_internal): Remove duplicate check (__CLZERO__). From-SVN: r231688
2015-12-16re PR tree-optimization/68915 (gcc.dg/vect/pr46032.c FAILs)Richard Biener2-1/+6
2015-12-16 Richard Biener <rguenther@suse.de> PR testsuite/68915 * gcc.dg/vect/pr46032.c: Use dg-additional-options. From-SVN: r231687
2015-12-16[ARM] Add ACLE intrinsics vqrdmlah_lane and vqrdmlsh_laneMatthew Wahab3-0/+65
* config/arm/arm_neon.h (vqrdmlahq_lane_s16): New. (vqrdmlahq_lane_s32): New. (vqrdmlah_lane_s16): New. (vqrdmlah_lane_s32): New. (vqrdmlshq_lane_s16): New. (vqrdmlshq_lane_s32): New. (vqrdmlsh_lane_s16): New. (vqrdmlsh_lane_s32): New. * config/arm/arm_neon_builtins.def: Add "vqrdmlah_lane" and "vqrdmlsh_lane". From-SVN: r231686
2015-12-16[ARM] Add ACLE intrinsics vqrdmlah and vqrdmlshMatthew Wahab3-0/+60
* config/arm/arm_neon.h (vqrdmlah_s16, vqrdmlah_s32): New. (vqrdmlahq_s16, vqrdmlahq_s32): New. (vqrdmlsh_s16, vqrdmlsh_s32): New. (vqrdmlahq_s16, vqrdmlshq_s32): New. * config/arm/arm_neon_builtins.def: Add "vqrdmlah" and "vqrdmlsh". From-SVN: r231685
2015-12-16re PR tree-optimization/68916 (gcc.dg/vect/slp-perm-4.c FAILs)Richard Biener3-3/+17
2015-12-16 Richard Biener <rguenther@suse.de> PR testsuite/68916 PR testsuite/68914 * gcc.dg/vect/pr45752.c: Require vect_perm and adjust expected dump. * gcc.dg/vect/slp-perm-4.c: Likewise. From-SVN: r231684
2015-12-16[Testsuite] Support ARMv8.1 ARM tests.Matthew Wahab4-15/+70
testsuite/ * lib/target-supports.exp (add_options_for_arm_v8_1a_neon): Update comment. Use check_effective_target_arm_v8_1a_neon_ok to select the command line options. (check_effective_target_arm_v8_1a_neon_ok_nocache): Update initial test to allow ARM targets. Select and record a working set of command line options. (check_effective_target_arm_v8_1a_neon_hw): Add tests for ARM targets. gcc/ * doc/sourcebuild.texi (ARM-specific attributes): Add "arm_v8_1a_neon_ok" and "arm_v8_1a_neon_hw". From-SVN: r231683