aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2015-05-28tree-vect-loop.c (vect_fixup_reduc_chain): New function.Richard Biener6-32/+173
2015-05-28 Richard Biener <rguenther@suse.de> * tree-vect-loop.c (vect_fixup_reduc_chain): New function. (vect_fixup_scalar_cycles_with_patterns): Likewise. (vect_analyze_loop_2): Call vect_fixup_scalar_cycles_with_patterns after pattern recog. (vect_create_epilog_for_reduction): Properly handle reductions with patterns. (vectorizable_reduction): Likewise. * tree-vect-slp.c (vect_analyze_slp_instance): Properly mark reduction chains. (vect_get_constant_vectors): Create the correct number of initial values for reductions. (vect_schedule_slp_instance): Handle reduction chains that are type changing properly. * tree-vect-stmts.c (vect_analyze_stmt): Adjust. * gcc.dg/vect/slp-reduc-sad.c: New testcase. From-SVN: r223818
2015-05-28[multiple changes]Arnaud Charlet4-21/+97
2015-05-28 Ed Schonberg <schonberg@adacore.com> * sem_ch3.adb (Is_Visible_Component): Component is visible in a derived type if inherited through an ancestor that has a partial view of the original type holding the component, if the full view of that original type is in scope. * sem_util.ads (Get_Body_From_Stub): Works for all kinds of stubs. 2015-05-28 Bob Duff <duff@adacore.com> * sem_util.adb (Requires_Transient_Scope): For definite untagged subtypes, we should never have to use the secondary stack. This moves toward that goal. But there are still cases that don't work. Here, we move the check for Is_Definite first, but add a special-purpose check for Has_Discrim_Dep_Array. From-SVN: r223817
2015-05-28re PR tree-optimization/66142 (Loop is not vectorized because not sufficient ↵Richard Biener4-3/+30
support for GOMP_SIMD_LANE) 2015-05-28 Richard Biener <rguenther@suse.de> PR tree-optimization/66142 * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle non-GIMPLE values better in memcpy destination handling. Handle non-aliasing we discover here. * gcc.dg/tree-ssa/ssa-fre-44.c: Fixup. From-SVN: r223816
2015-05-28sem_util.adb (Requires_Transient_Scope): Avoid returning function results on ↵Bob Duff2-17/+181
the secondary stack in so many cases. 2015-05-28 Bob Duff <duff@adacore.com> * sem_util.adb (Requires_Transient_Scope): Avoid returning function results on the secondary stack in so many cases. From-SVN: r223814
2015-05-28re PR target/63810 (gcc sets incorrect macro for OS X deployment targets)Lawrence Velázquez13-32/+296
2015-05-28 Lawrence Velázquez <vq@larryv.me> PR target/63810 * config/darwin-c.c (version_components): New global enum. (parse_version, version_as_legacy_macro) (version_as_modern_macro, macosx_version_as_macro): New functions. (version_as_macro): Remove. (darwin_cpp_builtins): Use new function. testsuite: PR target/63810 * gcc.dg/darwin-minversion-3.c: Update testcase. * gcc.dg/darwin-minversion-4.c: Ditto. * gcc.dg/darwin-minversion-5.c: New testcase. * gcc.dg/darwin-minversion-6.c: Ditto. * gcc.dg/darwin-minversion-7.c: Ditto. * gcc.dg/darwin-minversion-8.c: Ditto. * gcc.dg/darwin-minversion-9.c: Ditto. * gcc.dg/darwin-minversion-10.c: Ditto. * gcc.dg/darwin-minversion-11.c: Ditto. * gcc.dg/darwin-minversion-12.c: Ditto. From-SVN: r223808
2015-05-28re PR libstdc++/65352 (array<T,0>::begin()/end() etc. forms a null reference ↵Jonathan Wakely4-5/+23
and breaks on clang+ubsan) PR libstdc++/65352 * include/std/array (__array_traits::_S_ptr): New function. (array::data): Use _S_ptr to avoid creating invalid reference. * testsuite/23_containers/array/tuple_interface/get_neg.cc: Adjust dg-error line numbers. * testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc: likewise. From-SVN: r223806
2015-05-28Mark parameters with ATTRIBUTE_UNUSEDH.J. Lu2-1/+7
* builtins.c (expand_builtin_acc_on_device): Mark parameters with ATTRIBUTE_UNUSED. From-SVN: r223805
2015-05-28sem_util.adb (Wrong_Type): In any instance...Ed Schonberg3-9/+35
2015-05-28 Ed Schonberg <schonberg@adacore.com> * sem_util.adb (Wrong_Type): In any instance, do not emit error if type of expression is the partial view of the expected type. 2015-05-28 Ed Schonberg <schonberg@adacore.com> * sem_res.adb (Resolve_Actuals): a) The replacement of formal names in named associations only needs to be done within an instance, on a call to a primitive of a formal derived type, where the actual subprogram may have different formal names than those of the primitive operation of the formal type. b) Defaulted parameters must be taken into account when obtaining the names of the formals of the actual subprogram being called. From-SVN: r223804
2015-05-28oacc-init.c (resolve_device): Add FAIL_IS_ERROR argument.Julian Brown3-26/+71
* oacc-init.c (resolve_device): Add FAIL_IS_ERROR argument. Update function comment. Only call gomp_fatal if new argument is true. (acc_dev_num_out_of_range): New function. (acc_init_1, acc_shutdown_1): Update call to resolve_device. Call acc_dev_num_out_of_range as appropriate. (acc_get_num_devices, acc_set_device_type, acc_get_device_type) (acc_get_device_num, acc_set_device_num): Update calls to resolve_device. * testsuite/libgomp.oacc-c-c++-common/lib-4.c: Update expected test output. From-SVN: r223803
2015-05-28re PR libgomp/65742 (Several libgomp.oacc-* failures after r221922.)Julian Brown6-10/+94
PR libgomp/65742 gcc/ * builtins.c (expand_builtin_acc_on_device): Don't use open-coded sequence for !ACCEL_COMPILER. libgomp/ * oacc-init.c (plugin/plugin-host.h): Include. (acc_on_device): Check whether we're in an offloaded region for host_nonshm plugin. Don't use __builtin_acc_on_device. * plugin/plugin-host.c (GOMP_OFFLOAD_openacc_parallel): Set nonshm_exec flag in thread-local data. (GOMP_OFFLOAD_openacc_create_thread_data): Allocate thread-local data for host_nonshm plugin. (GOMP_OFFLOAD_openacc_destroy_thread_data): Free thread-local data for host_nonshm plugin. * plugin/plugin-host.h: New. From-SVN: r223801
2015-05-28[multiple changes]Arnaud Charlet8-31/+110
2015-05-28 Robert Dewar <dewar@adacore.com> * sem_ch13.adb, sem_disp.ads: Minor reformatting. 2015-05-28 Ed Schonberg <schonberg@adacore.com> * sem_util.adb (Set_Debug_Info_Needed): For a private type whose full view is itself a derived private type, set flag on underlying full view as well, for proper gdb display. 2015-05-28 Bob Duff <duff@adacore.com> * exp_tss.ads: Minor comment fix. * exp_ch3.adb (Build_Array_Init_Proc, Build_Record_Init_Proc): Inline init_procs when the type has controlled parts. Remove obsolete comments about those init_procs -- init_procs for such types are no longer complex. A typical init_proc just initializes the 'Tag field, and calls the parent init_proc (e.g. for Limited_Controlled), which calls the grandparent (for Root_Controlled), which does nothing. This all boils down to one instruction when inlined. * exp_ch7.adb (Create_Finalizer): Inline the finalizer. 2015-05-28 Ed Schonberg <schonberg@adacore.com> * sem_ch4.adb (Analyze_Selected_Component): If the type to use is a derived type and is a generic actual, the selected component appears within an instance body, and the check over the type has failed, examine ancestor types for the desired component. (Find_Component_In_Instance): If record type is a derived type, examine all ancestors in order to locate desired component. From-SVN: r223800
2015-05-28rx.c (push_regs): New function.Nick Clifton2-21/+61
* config/rx/rx.c (push_regs): New function. Extracts code from... (rx_expand_prologue): ... here. Use push_regs to push even small spans of registers. (pop_regs): New function. (rx_expand_epilogue): Use pop_regs to pop even small spans of registers. From-SVN: r223799
2015-05-28tree-vectorizer.h (struct _slp_instance): Remove body_cost_vec member.Richard Biener4-107/+78
2015-05-28 Richard Biener <rguenther@suse.de> * tree-vectorizer.h (struct _slp_instance): Remove body_cost_vec member. (SLP_INSTANCE_BODY_COST_VEC): Remove. (vect_update_slp_costs_according_to_vf): Likewise. (vect_slp_analyze_operations): Update prototype. * tree-vect-loop.c (vect_analyze_loop_2): Remove call to vect_update_slp_costs_according_to_vf, adjust. * tree-vect-slp.c (vect_free_slp_instance): Adjust. (vect_analyze_slp_cost_1): Likewise. (vect_analyze_slp_cost): Likewise. Properly deal with widening reduction ops. Commit body costs. (vect_analyze_slp_instance): Adjust. Do not analyze SLP cost for loops from here. (vect_slp_analyze_operations): But do it from here when the vectorization factor is known and stmts are analyzed. (vect_bb_vectorization_profitable_p): Simplify. (vect_slp_analyze_bb_1): Do not compute SLP cost here. (vect_update_slp_costs_according_to_vf): Remove. From-SVN: r223798
2015-05-27Add --enable-default-pie option to GCC configureH.J. Lu49-51/+375
Add --enable-default-pie option to configure GCC to generate PIE by default. gcc/ * Makefile.in (COMPILER): Add @NO_PIE_CFLAGS@. (BUILD_CFLAGS): Likewise. (BUILD_CXXFLAGS): Likewise. (LINKER): Add @NO_PIE_FLAG@. (BUILD_LDFLAGS): Likewise. (libgcc.mvars): Set NO_PIE_CFLAGS to -fno-PIE for --enable-default-pie. * common.opt (fPIE): Initialize to -1. (fpie): Likewise. (no-pie): New option. (pie): Replace "Negative(shared)" with "Negative(no-pie)". * configure.ac: Add --enable-default-pie. (NO_PIE_CFLAGS): New. Check if -fno-PIE works. AC_SUBST. (NO_PIE_FLAG): New. Check if -no-pie works. AC_SUBST. * defaults.h (DEFAULT_FLAG_PIE): New. Default PIE to -fPIE. * gcc.c (NO_PIE_SPEC): New. (PIE_SPEC): Likewise. (NO_FPIE1_SPEC): Likewise. (FPIE1_SPEC): Likewise. (NO_FPIE2_SPEC): Likewise. (FPIE2_SPEC): Likewise. (NO_FPIE2_SPEC): Likewise. (FPIE_SPEC): Likewise. (NO_FPIE_SPEC): Likewise. (NO_FPIC1_SPEC): Likewise. (FPIC1_SPEC): Likewise. (NO_FPIC2_SPEC): Likewise. (FPIC2_SPEC): Likewise. (NO_FPIC2_SPEC): Likewise. (FPIC_SPEC): Likewise. (NO_FPIC_SPEC): Likewise. (NO_FPIE1_AND_FPIC1_SPEC): Likewise. (FPIE1_OR_FPIC1_SPEC): Likewise. (NO_FPIE2_AND_FPIC2_SPEC): Likewise. (FPIE2_OR_FPIC2_SPEC): Likewise. (NO_FPIE_AND_FPIC_SPEC): Likewise. (FPIE_OR_FPIC_SPEC): Likewise. (LD_PIE_SPEC): Likewise. (LINK_PIE_SPEC): Handle -no-pie. Use PIE_SPEC and LD_PIE_SPEC. * opts.c (finish_options): Update opts->x_flag_pie if it is -1. * config/darwin.h (PIE_SPEC): Renamed to ... (DARWIN_PIE_SPEC): This. (LINK_SPEC): Replace PIE_SPEC with DARWIN_PIE_SPEC. * config/darwin9.h (PIE_SPEC): Renamed to ... (DARWIN_PIE_SPEC): This. * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Use PIE_SPEC and NO_PIE_SPEC if HAVE_LD_PIE is defined. * config/openbsd.h (ASM_SPEC): Use FPIE1_OR_FPIC1_SPEC and FPIE2_OR_FPIC2_SPEC. * config/m68k/netbsd-elf.h (ASM_SPEC): Likewise. * config/m68k/openbsd.h (ASM_SPEC): Likewise. * gcc/config/sol2.h (ASM_PIC_SPEC): Likewise. * config/arm/freebsd.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise. * config/arm/netbsd-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise. * config/arm/semi.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise. * config/cris/linux.h (CRIS_ASM_SUBTARGET_SPEC): Likewise. * config/m32r/m32r.h (ASM_SPEC): Likewise. * config/m68k/uclinux.h (DRIVER_SELF_SPECS): Likewise. * config/rs6000/linux64.h (ASM_SPEC32): Likewise. * config/rs6000/sysv4.h (ASM_SPEC): Likewise. * config/sparc/freebsd.h (ASM_SPEC): Likewise. * config/sparc/linux.h (ASM_SPEC): Likewise. * config/sparc/linux64.h (ASM_SPEC): Likewise. * config/sparc/netbsd-elf.h (ASM_SPEC): Likewise. * config/sparc/openbsd64.h (ASM_SPEC): Likewise. * config/sparc/sp-elf.h (ASM_SPEC): Likewise. * config/sparc/sp64-elf.h (ASM_SPEC): Likewise. * config/sparc/sparc.h (ASM_SPEC): Likewise. * config/sparc/sysv4.h (ASM_SPEC): Likewise. * config/sparc/vxworks.h (ASM_SPEC): Likewise. * config/c6x/elf-common.h (ASM_SPEC): Use NO_FPIC2_SPEC, FPIC2_SPEC, FPIC1_SPEC and FPIC2_SPEC. * config/c6x/uclinux-elf.h (LINK_SPEC): Use FPIE_SPEC. * config/frv/frv.h (DRIVER_SELF_SPECS): Use FPIC_SPEC, NO_FPIC_SPEC and NO_FPIE1_AND_FPIC1_SPEC. (ASM_SPEC): Use FPIE1_OR_FPIC1_SPEC and FPIE2_OR_FPIC2_SPEC. * config/m68k/m68k.h (ASM_PCREL_SPEC): Use FPIC_SPEC and NO_FPIC_SPEC. * config/mips/gnu-user.h (NO_SHARED_SPECS): Use NO_FPIE_AND_FPIC_SPEC. * config/mips/vxworks.h (SUBTARGET_ASM_SPEC): Use FPIC_SPEC. * config/rs6000/freebsd64.h (ASM_SPEC32): Likewise. * config/rs6000/vxworks.h (ASM_SPEC): Likewise. * config/vax/linux.h (ASM_SPEC): Likewise. * doc/install.texi: Document --enable-default-pie. * doc/invoke.texi: Document -no-pie. * config.in: Regenerated. * configure: Likewise. gcc/ada/ * gcc-interface/Makefile.in (TOOLS_LIBS): Add @NO_PIE_FLAG@. libgcc/ * Makefile.in (CRTSTUFF_CFLAGS): Add $(NO_PIE_CFLAGS). From-SVN: r223796
2015-05-28Fix PR66168Thomas Preud'homme4-1/+27
From-SVN: r223795
2015-05-28re PR target/66148 (build/genpreds: Internal error: abort in ↵John David Anglin2-8/+16
choose_enum_order, at genpreds.c:1006) PR target/66148 * config/pa/pa.c (pa_emit_move_sequence): Correct placement of REG_EQUAL note when doing insert. From-SVN: r223791
2015-05-28pa.c (pa_print_operand): Use HOST_WIDE_INT_PRINT_DEC instead of "%d" for 'o' ↵John David Anglin2-1/+6
operand. * config/pa/pa.c (pa_print_operand): Use HOST_WIDE_INT_PRINT_DEC instead of "%d" for 'o' operand. From-SVN: r223790
2015-05-28Daily bump.GCC Administrator1-1/+1
From-SVN: r223788
2015-05-27re PR target/39726 ([cond-optab] ColdFire pessimizations on QImode/HImode tests)Jeff Law3-0/+71
PR target/39726 * gcc.dg/target/m68k/pr39726-1.c: New test. From-SVN: r223781
2015-05-27wait.h (gomp_futex_wait, [...]): Declare as int.Uros Bizjak5-9/+20
2015-05-27 Uros Bizjak <ubizjak@gmail.com> * config/linux/wait.h (gomp_futex_wait, gomp_futex_wake): Declare as int. (FUTEX_PRIVATE_FLAG): Remove L suffix. * config/linux/mutex.c (gomp_futex_wait, gomp_futex_wake): Declare as int. 2015-05-27 Uros Bizjak <ubizjak@gmail.com> * config/linux/ia64/futex.h (sys_futex0) Change operand "op" to int. 2015-05-27 Uros Bizjak <ubizjak@gmail.com> Revert: * config/linux/x86/futex.h (sys_futex0) [!__x86_64__]: Change operand "op" to long. From-SVN: r223780
2015-05-27decl.c (check_redeclaration_exception_specification): Depend on ↵Jason Merrill4-5/+22
-Wsystem-headers rather than -pedantic. * decl.c (check_redeclaration_exception_specification): Depend on -Wsystem-headers rather than -pedantic. From-SVN: r223778
2015-05-27decl.c (warn_extern_redeclared_static): Use the location of newdecl in ↵Jason Merrill8-32/+46
diagnostics, not input_location. * decl.c (warn_extern_redeclared_static): Use the location of newdecl in diagnostics, not input_location. (validate_constexpr_redeclaration): Likewise. (check_redeclaration_no_default_args): Likewise. (duplicate_decls): Likewise. (check_redeclaration_exception_specification): Likewise. Change second diagnostic to inform. From-SVN: r223777
2015-05-27apply to correct changelogNathan Sidwell2-7/+7
From-SVN: r223775
2015-05-27* warnings.m4: Fix comment.Jason Merrill1-2/+2
From-SVN: r223774
2015-05-27re PR c++/66270 (ICE: canonical types differ for identical types)Nathan Sidwell4-2/+28
PR c++/66270 * tree.c (build_pointer_type_for_mode): Canonical type does not inherit can_alias_all. (build_reference_type_for_mode): Likewise. PR c++/66270 * g++.dg/ext/alias-canon3.C: New. From-SVN: r223773
2015-05-27trans.c (elaborate_all_entities): Do not elaborate an incomplete type coming ↵Eric Botcazou2-0/+10
from a limited_with and whose... * gcc-interface/trans.c (elaborate_all_entities): Do not elaborate an incomplete type coming from a limited_with and whose non-limited view comes from the main unit. From-SVN: r223772
2015-05-27futex.h (sys_futex0): Change operand "op" to long.Uros Bizjak4-43/+14
libgomp/ChangeLog: * config/linux/x86/futex.h (sys_futex0) [!__x86_64__]: Change operand "op" to long. [__PIC__]: Remove sys_futex0 function. libitm/ChangeLog: * config/linux/x86/futex_bits.h (sys_futex0) [!__x86_64__]: Change operand "op" to long. [__PIC__]: Remove sys_futex0 function. From-SVN: r223771
2015-05-27expr.h (array_at_struct_end_p): Move to...Eric Botcazou5-155/+182
* expr.h (array_at_struct_end_p): Move to... (array_ref_element_size): Likewise. (component_ref_field_offset): Likewise. * tree.h (array_ref_element_size): ...here. (array_at_struct_end_p): Likewise. (component_ref_field_offset): Likewise. * expr.c (array_ref_element_size): Move to... (array_ref_low_bound): Likewise. (array_at_struct_end_p): Likewise. (array_ref_up_bound): Likewise. (component_ref_field_offset): Likewise. * tree.c (array_ref_element_size): ...here. (array_ref_low_bound): Likewise. (array_ref_up_bound): Likewise. (array_at_struct_end_p): Likewise. (component_ref_field_offset): Likewise. From-SVN: r223768
2015-05-27decl.c (gnat_to_gnu_entity): Move down code applying atomic checks to the ↵Eric Botcazou2-9/+9
object. * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Move down code applying atomic checks to the object. From-SVN: r223767
2015-05-27[PATCH 3/13] aarch64 musl supportGregor Richards2-0/+8
gcc/Changelog: 2015-05-27 Gregor Richards <gregor.richards@uwaterloo.ca> Szabolcs Nagy <szabolcs.nagy@arm.com> * config/aarch64/aarch64-linux.h (MUSL_DYNAMIC_LINKER): Define. Co-Authored-By: Szabolcs Nagy <szabolcs.nagy@arm.com> From-SVN: r223766
2015-05-27config.host (i[34567]86-*-freebsd*, [...]): Set md_unwind_headerJohn Marino3-0/+181
* config.host (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Set md_unwind_header * config/i386/freebsd-unwind.h: New. From-SVN: r223765
2015-05-27re PR bootstrap/66304 (Can't bootstrap on x86_64-linux-gnu with gcc 4.3.4)Jason Merrill5-32/+254
PR bootstrap/66304 config/ * warnings.m4 (ACX_PROG_CXX_WARNING_OPTS) (ACX_PROG_CXX_WARNINGS_ARE_ERRORS) (ACX_PROG_CXX_WARNING_ALMOST_PEDANTIC): New. (ACX_PROG_CC_WARNING_OPTS, ACX_PROG_CC_WARNING_ALMOST_PEDANTIC) (ACX_PROG_CC_WARNINGS_ARE_ERRORS): Push into C language context. gcc/ * configure.ac: Use ACX_PROG_CXX_WARNING_OPTS, ACX_PROG_CXX_WARNING_ALMOST_PEDANTIC, and ACX_PROG_CXX_WARNINGS_ARE_ERRORS. * configure: Regenerate. From-SVN: r223763
2015-05-27auto-profile.c (afdo_calculate_branch_prob): Break once has_sample is true.Aditya Kumar2-2/+10
* auto-profile.c (afdo_calculate_branch_prob): Break once has_sample is true. From-SVN: r223762
2015-05-27* statistics.c (statistics_fini_pass): Print pass name.Aditya Kumar2-1/+5
From-SVN: r223761
2015-05-27re PR tree-optimization/66272 (wrong code at -O3 on x86_64-linux-gnu)Richard Biener5-2/+57
2015-05-27 Richard Biener <rguenther@suse.de> PR tree-optimization/66272 Revert parts of 2014-08-15 Richard Biener <rguenther@suse.de> PR tree-optimization/62031 * tree-data-ref.c (dr_analyze_indices): Do not set DR_UNCONSTRAINED_BASE. (dr_may_alias_p): All indirect accesses have to go the formerly DR_UNCONSTRAINED_BASE path. * tree-data-ref.h (struct indices): Remove unconstrained_base member. (DR_UNCONSTRAINED_BASE): Remove. * gcc.dg/torture/pr66272.c: New testcase. From-SVN: r223759
2015-05-27dwarf2out.c: Remove block_map.Aldy Hernandez4-18/+17
* dwarf2out.c: Remove block_map. (gen_call_site_die): Replace block_map use with BLOCK_DIE. (gen_lexical_block_die): Same. (dwarf2out_function_decl): Remove block_map use. (dwarf2out_c_finalize): Same. * tree-core.h (struct tree_block): Add die field. * tree.h (BLOCK_DIE): New. From-SVN: r223758
2015-05-27slp-reduc-7.c: New testcase.Richard Biener2-0/+64
2015-05-27 Richard Biener <rguenther@suse.de> * gcc.dg/vect/slp-reduc-7.c: New testcase. From-SVN: r223756
2015-05-27[multiple changes]Arnaud Charlet22-73/+166
2015-05-27 Robert Dewar <dewar@adacore.com> * sem_aux.adb: Minor rewording. 2015-05-27 Bob Duff <duff@adacore.com> * exp_prag.adb (Expand_Pragma_Abort_Defer): Make pragma Abort_Defer do nothing if Abort_Allowed is False. 2015-05-27 Arnaud Charlet <charlet@adacore.com> * exp_ch9.adb, sem_util.adb, sem_util.ads, s-stposu.adb, s-spsufi.ads, sem_elab.ads, g-comlin.ads, errout.ads, exp_ch6.adb, sem_ch4.adb, opt.ads, s-bignum.adb, output.ads, sem_ch13.adb, erroutc.ads, sem_disp.ads, exp_ch3.adb: Minor fixes of duplicate words in comments. 2015-05-27 Doug Rupp <rupp@adacore.com> * adaint.c (__gnat_tmp_name) [vxworks]: Robustify and use for rtp as well as kernel. 2015-05-27 Pierre-Marie de Rodat <derodat@adacore.com> * par_sco.adb (Process_Decision): Store sloc to condition/pragmas SCOs associations into a temporary table before moving them to the SCO_Raw_Hash_Table so that we can back them out just like we do for SCO entries that are simple decisions in an expression context. From-SVN: r223754
2015-05-27[expr.c] PR target/65358 Avoid clobbering partial argument during sibcallKyrylo Tkachov6-15/+151
PR target/65358 * expr.c (memory_load_overlap): New function. (emit_push_insn): When pushing partial args to the stack would clobber the register part load the overlapping part into a pseudo and put it into the hard reg after pushing. Change return type to bool. Add bool argument. * expr.h (emit_push_insn): Change return type to bool. Add bool argument. * calls.c (expand_call): Cancel sibcall optimization when encountering partial argument on targets with ARGS_GROW_DOWNWARD and !STACK_GROWS_DOWNWARD. (emit_library_call_value_1): Update callsite of emit_push_insn. (store_one_arg): Likewise. PR target/65358 * gcc.dg/pr65358.c: New test. From-SVN: r223753
2015-05-27[multiple changes]Arnaud Charlet6-8/+77
2015-05-27 Ed Schonberg <schonberg@adacore.com> * sem_ch6.adb (Process_Formals): A non-private formal type that is a limited view does not have a list of private dependents. 2015-05-27 Ed Schonberg <schonberg@adacore.com> * exp_ch5.adb (Expand_N_Case_Statement): If the expression in the case statement is a compile-time known value, we look for a corresponding alternative to optimize the case statement into a single case. If the type has a static predicate and the expression does not satisfy the predicate, there is no legal alternative and this optimization is not applicable. Excecution is erroneous, or else if assertions are enabled, an exception will be raised earlier, at the point the expression is elaborated. 2015-05-27 Robert Dewar <dewar@adacore.com> * sem_elab.adb (Check_Internal_Call_Continue): Suppress warning on Finalize, Adjust, or Initialize if type involved has Warnings_Off set. 2015-05-27 Ed Schonberg <schonberg@adacore.com> * sem_aux.adb, sem_aux.ads (First_Discriminant): Return empty when applied to a type with no known discriminants. From-SVN: r223752
2015-05-27[multiple changes]Arnaud Charlet10-395/+395
2015-05-26 Robert Dewar <dewar@adacore.com> * errout.ads, sem_ch4.adb, sem_ch6.adb: Minor reformatting. 2015-05-26 Bob Duff <duff@adacore.com> * sem_elab.adb (Check_A_Call): In the case where we're calling something in an instance of a generic package that is within this same unit (as the call), make sure we treat it as a call to an entity within the same unit. That is, call Check_Internal_Call, rather than putting "Elaborate_All(X)" on X, which would necessarily result in an elaboration cycle in static-elaboration mode. 2015-05-26 Eric Botcazou <ebotcazou@adacore.com> * freeze.ads (Is_Atomic_VFA_Aggregate): Adjust profile. * freeze.adb (Is_Atomic_VFA_Aggregate): Change Entity parameter into Node parameter and remove Type parameter. Look at Is_Atomic_Or_VFA both on the type and on the object. (Freeze_Entity): Adjust call to Is_Atomic_VFA_Aggregate. * exp_aggr.adb (Expand_Record_Aggregate): Likewise. (Process_Atomic_Independent_Shared_Volatile): Remove code propagating Atomic or VFA from object to locally-defined type. 2015-05-26 Bob Duff <duff@adacore.com> * exp_ch7.adb: Minor comment fix. From-SVN: r223751
2015-05-27LTO balanced map: add stats about insns and symbols.Martin Liska3-1/+34
* lto-partition.c (new_partition): Reset number of symbols. (add_symbol_to_partition_1): Increment number of symbols. (undo_partition): Decrement number of symbols. (lto_balanced_map): Dump number of symbols and insns that belong to a partition. * lto-partition.h (struct ltrans_partition_def): Add symbol counter. From-SVN: r223750
2015-05-27[PATCH 4/13] arm musl supportGregor Richards2-0/+21
On behalf of szabolcs.nagy@arm.com 2015-05-27 Gregor Richards <gregor.richards@uwaterloo.ca> * config/arm/linux-eabi.h (MUSL_DYNAMIC_LINKER): Define. From-SVN: r223749
2015-05-27New memory allocation statistics infrastructure.Martin Liska23-736/+1215
* Makefile.in: Add additional dependencies related to memory report enhancement. * alloc-pool.c (allocate_pool_descriptor): Use new ctor. * bitmap.c (struct bitmap_descriptor_d): Remove. (struct loc): Likewise. (struct bitmap_desc_hasher): Likewise. (bitmap_desc_hasher::hash): Likewise. (bitmap_desc_hasher::equal): Likewise. (get_bitmap_descriptor): Likewise. (bitmap_register): User new memory descriptor API. (register_overhead): Likewise. (bitmap_find_bit): Register nsearches and search_iter statistics. (struct bitmap_output_info): Remove. (print_statistics): Likewise. (dump_bitmap_statistics): Use new memory descriptor. * bitmap.h (struct bitmap_usage): New class. * genmatch.c: Extend header file inclusion. * genpreds.c: Likewise. * ggc-common.c (struct ggc_usage): New class. (struct ggc_loc_desc_hasher): Remove. (ggc_loc_desc_hasher::hash): Likewise. (ggc_loc_desc_hasher::equal): Likewise. (struct ggc_ptr_hash_entry): Likewise. (struct ptr_hash_hasher): Likewise. (ptr_hash_hasher::hash): Likewise. (ptr_hash_hasher::equal): Likewise. (make_loc_descriptor): Likewise. (ggc_prune_ptr): Likewise. (dump_ggc_loc_statistics): Use new memory descriptor. (ggc_record_overhead): Likewise. (ggc_free_overhead): Likewise. (final_cmp_statistic): Remove. (cmp_statistic): Likewise. (ggc_add_statistics): Liekwise. (ggc_prune_overhead_list): Likewise. * hash-map-traits.h: New file. * hash-map.h (struct default_hashmap_traits): Move the traits to a separate header file. * hash-set.h: Pass memory statistics info to ctor. * hash-table.c (void dump_hash_table_loc_statistics): New function. * hash-table.h (hash_table::hash_table): Add new ctor arguments. (hash_table::~hash_table): Register memory release operation. (hash_table::alloc_entries): Handle memory allocation operation. (hash_table::expand): Likewise. * inchash.c (iterative_hash_hashval_t): Move implementation to header file. (iterative_hash_host_wide_int): Likewise. * inchash.h (class hash): Likewise. * mem-stats-traits.h: New file. * mem-stats.h: New file. (mem_location): Add new class. (mem_usage): Likewise. (mem_alloc_description): Likewise. * sese.c: Add new header file inclusision. * toplev.c (dump_memory_report): Add report for hash_table, hash_map and hash_set. * tree-sra.c: Add new header file inclusision. * vec.c (struct vec_descriptor): Remove. (hash_descriptor): Likewise. (struct vec_usage): Likewise. (struct ptr_hash_entry): Likewise. (hash_ptr): Likewise. (eq_ptr): Likewise. (vec_prefix::register_overhead): Use new memory descriptor API. (vec_prefix::release_overhead): Likewise. (add_statistics): Remove. (dump_vec_loc_statistics): Use new memory descriptor API. * vec.h (struct vec_prefix): Likewise. (va_heap::reserve): Likewise. (va_heap::release): Likewise. * emit-rtl.c (gen_raw_REG): Fix passing MEM_STAT. From-SVN: r223748
2015-05-27stl_tree.h (_Rb_tree::_M_end()): Return _Base_ptr instead of downcasting.Jonathan Wakely2-77/+87
* include/bits/stl_tree.h (_Rb_tree::_M_end()): Return _Base_ptr instead of downcasting. (_Rb_tree::_M_copy): Change second parameter to _Base_ptr. (_Rb_tree::_M_lower_bound, _Rb_tree:_M_upper_bound): Likewise. (_Rb_tree::_S_iter): Remove. (_Rb_tree::_S_lower_bound_tr, _Rb_tree::_S_upper_bound_tr): Remove. (_Rb_tree::_M_find_tr(const _Kt&) const): Call _M_lower_bound_tr instead of _S_lower_bound_tr (_Rb_tree::_M_find_tr(const _Kt&)): Call const overload. (_Rb_tree::_M_lower_bound_tr(const _Kt&) const): Do the search here instead of calling _S_lower_bound_tr. (_Rb_tree::_M_lower_bound_tr(const _Kt&)): Call const overload. (_Rb_tree::_M_upper_bound_tr(const _Kt&) const): Do the search here instead of calling _S_upper_bound_tr. (_Rb_tree::_M_upper_bound_tr(const _Kt&)): Call const overload. (_Rb_tree::_M_equal_range_tr(const _Kt&)): Likewise. (_Rb_tree::equal_range): Use _Base_ptr for end pointer. (_Rb_tree::_M_get_insert_unique_pos): Likewise. (_Rb_tree::_M_get_insert_equal_pos): Likewise. (_Rb_tree::_M_insert_equal_lower_node): Likewise. (_Rb_tree::_M_insert_unique, _Rb_tree::_M_emplace_unique, _Rb_tree::_M_emplace_hint_unique): Remove static_cast. From-SVN: r223746
2015-05-27re PR libstdc++/66017 (Undefined behaviour in std::set<long long>)Jonathan Wakely4-21/+66
PR libstdc++/66017 * include/bits/stl_tree.h (_Rb_tree_node): Use __aligned_membuf. (_Rb_tree_iterator, _Rb_tree_const_iterator): Support construction from _Base_ptr. (_Rb_tree_const_iterator::_M_const_cast): Remove static_cast. (_Rb_tree::begin, _Rb_tree::end): Remove static_cast. * include/ext/aligned_buffer.h (__aligned_membuf): New type using alignment of _Tp as a member subobject, not as a complete object. * python/libstdcxx/v6/printers.py (StdRbtreeIteratorPrinter): Lookup _Link_type manually as it might not be in the debug info. From-SVN: r223745
2015-05-27tree-vect-stmts.c (vectorizable_load): Initialize slp_perm earlier and ↵Richard Biener4-40/+67
remove ??? comment. 2015-05-27 Richard Biener <rguenther@suse.de> * tree-vect-stmts.c (vectorizable_load): Initialize slp_perm earlier and remove ??? comment. (vect_analyze_stmt): If we are analyzing a pure SLP stmt and got called from loop analysis bail out. Always pass the SLP node to the vectorizable_* functions. * tree-vect-loop.c (vect_analyze_loop_operations): Remove the premature SLP check here. * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Dump hybrid detected SLP stmts. (vect_detect_hybrid_slp_1): Likewise. From-SVN: r223743
2015-05-27trans-stmt.c (gfc_trans_allocate): Add missing location information for e3rhs.Andre Vehreschild5-1/+176
gcc/fortran/ChangeLog: 2015-05-27 Andre Vehreschild <vehre@gmx.de> * trans-stmt.c (gfc_trans_allocate): Add missing location information for e3rhs. gcc/testsuite/ChangeLog: 2015-05-27 Andre Vehreschild <vehre@gmx.de> * gfortran.dg/allocate_with_source_5.f90: Correct errorneous semantic. * gfortran.dg/allocate_with_source_6.f90: New test. From-SVN: r223738
2015-05-27target.c (gomp_map_pointer): New function abstracting out GOMP_MAP_POINTER ↵Chung-Lin Tang2-100/+69
handling. 2015-05-27 Chung-Lin Tang <cltang@codesourcery.com> libgomp/ * target.c (gomp_map_pointer): New function abstracting out GOMP_MAP_POINTER handling. (gomp_map_vars): Remove GOMP_MAP_POINTER handling code and use gomp_map_pointer(). From-SVN: r223737
2015-05-26combine.c (find_split_point): Verify that the shift count is a constant when...Jeff Law2-1/+5
* combine.c (find_split_point): Verify that the shift count is a constant when choosing (plus (ashift ...)) as a split point. From-SVN: r223736