aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2017-09-04optabs: ensure atomic_load/stores have compiler barriersAlexander Monakov5-2/+96
PR rtl-optimization/57448 PR target/67458 PR target/81316 * optabs.c (expand_atomic_load): Place compiler memory barriers if using atomic_load pattern. (expand_atomic_store): Likewise. testsuite/ * gcc.dg/atomic/pr80640-2.c: New testcase. * gcc.dg/atomic/pr81316.c: New testcase. From-SVN: r251643
2017-09-04Fix call arguments mismatch in gcc.c-torture/compile/pr82052.cTom de Vries2-1/+7
2017-09-04 Tom de Vries <tom@codesourcery.com> PR tree-optimization/82052 * gcc.c-torture/compile/pr82052.c (fn2): Add parameters corresponding to call in fn11. From-SVN: r251642
2017-09-04re PR sanitizer/81981 (-fsanitize=undefined makes a -Wmaybe-uninitialized ↵Jakub Jelinek4-8/+63
warning disappear) PR sanitizer/81981 * gimple-fold.c (gimple_fold_call): Optimize away useless UBSAN_PTR and UBSAN_BOUNDS internal calls. Clean up IFN_UBSAN_OBJECT_SIZE handling. Use replace_call_with_value with NULL instead of gsi_replace, unlink_stmt_vdef and release_defs. * gcc.dg/ubsan/pr81981.c: New test. From-SVN: r251641
2017-09-04gdbhooks.py (OptMachineModePrinter.to_string): Use 8 spaces instead of tab.Jakub Jelinek2-2/+5
* gdbhooks.py (OptMachineModePrinter.to_string): Use 8 spaces instead of tab. From-SVN: r251640
2017-09-04* lra-remat.c (reg_overlap_for_remat_p): Fix a pasto.Jakub Jelinek2-1/+5
From-SVN: r251639
2017-09-04re PR tree-optimization/70043 (The compiler hangs in a fortran test-case ↵Jakub Jelinek2-2/+9
with -Ofast -g -march=haswell) PR tree-optimization/70043 PR testsuite/82093 * gfortran.dg/vect/pr70043.f90 (fn1): Start loop from 1 instead of 0. From-SVN: r251638
2017-09-04PR82045: Avoid passing machine modes through "..."Richard Sandiford43-199/+387
PR82045 is about a bootstrap failure on sparc-sun-solaris2.11. The problem was that we were passing the new machine_mode wrapper classes through "..." to emit_library_call(_value), which then read them back as ints instead. The simplest fix seemed to be replace "..." with an array of rtx_mode_ts, then provide wrappers for the common cases. This bulks out rtl.h a bit, but it does make things a bit more typesafe. 2017-09-04 Richard Sandiford <richard.sandiford@linaro.org> gcc/ PR bootstrap/82045 * rtl.h (emit_library_call_value_1): Declare. (emit_library_call): Replace declaration with a series of overloads. Remove the parameter count argument. (emit_library_call_value): Likewise. * calls.c (emit_library_call_value_1): Make global. Replace varargs with an "rtx_mode_t *". (emit_library_call_value): Delete. (emit_library_call): Likewise. * asan.c (asan_emit_stack_protection): Update calls accordingly. (asan_emit_allocas_unpoison): Likewise. * builtins.c (expand_builtin_powi): Likewise. (expand_asan_emit_allocas_unpoison): Likewise. * cfgexpand.c (expand_main_function): Likewise. * config/aarch64/aarch64.c (aarch64_trampoline_init): Likewise. * config/aarch64/aarch64.h (PROFILE_HOOK): Likewise. * config/alpha/alpha.c (alpha_trampoline_init): Likewise. * config/arm/arm.c (arm_trampoline_init): Likewise. (arm_call_tls_get_addr): Likewise. (arm_expand_divmod_libfunc): Likewise. * config/bfin/bfin.md (umulsi3_highpart): Likewise. (smulsi3_highpart): Likewise. * config/c6x/c6x.c (c6x_initialize_trampoline): Likewise. (c6x_expand_compare): Likewise. (c6x_expand_movmem): Likewise. * config/frv/frv.c (frv_trampoline_init): Likewise. * config/i386/i386.c (ix86_trampoline_init): Likewise. (ix86_expand_divmod_libfunc): Likewise. * config/ia64/ia64.c (ia64_expand_tls_address): Likewise. (ia64_expand_compare): Likewise. (ia64_profile_hook): Likewise. * config/ia64/ia64.md (save_stack_nonlocal): Likewise. (nonlocal_goto): Likewise. (restore_stack_nonlocal): Likewise. * config/m32r/m32r.c (block_move_call): Likewise. (m32r_trampoline_init): Likewise. * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Likewise. * config/m68k/m68k.c (m68k_call_tls_get_addr): Likewise. (m68k_call_m68k_read_tp): Likewise. * config/microblaze/microblaze.c (microblaze_call_tls_get_addr) (microblaze_expand_divide): Likewise. * config/mips/mips.h (mips_args): Likewise. * config/mips/sdemtk.h (mips_sync_icache): Likewise. (MIPS_ICACHE_SYNC): Likewise. * config/nios2/nios2.c (nios2_emit_expensive_div): Likewise. (nios2_trampoline_init): Likewise. * config/pa/pa.c (hppa_tls_call): Likewise. (pa_trampoline_init): Likewise. * config/pa/pa.md (canonicalize_funcptr_for_compare): Likewise. * config/powerpcspe/powerpcspe.c (rs6000_legitimize_tls_address) (expand_strn_compare): Likewise. (rs6000_generate_compare): Likewise. (rs6000_expand_float128_convert): Likewise. (output_profile_hook): Likewise. (rs6000_trampoline_init): Likewise. * config/powerpcspe/powerpcspe.md (neg<mode>2): Likewise. * config/riscv/riscv.h (PROFILE_HOOK): Likewise. * config/rs6000/rs6000-string.c (expand_strn_compare): Likewise. * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise. (rs6000_generate_compare): Likewise. (rs6000_expand_float128_convert): Likewise. (output_profile_hook): Likewise. (rs6000_trampoline_init): Likewise. * config/rs6000/rs6000.md (neg<mode>2): Likewise. * config/sh/sh.c (sh_trampoline_init): Likewise. * config/sparc/sparc.c (emit_soft_tfmode_libcall): Likewise. (sparc_emit_float_lib_cmp): Likewise. (sparc32_initialize_trampoline): Likewise. (sparc64_initialize_trampoline): Likewise. (sparc_profile_hook): Likewise. * config/spu/spu.c (ea_load_store): Likewise. * config/spu/spu.md (floatunssidf2): Likewise. * config/tilegx/tilegx.c (tilegx_trampoline_init): Likewise. * config/tilepro/tilepro.c (tilepro_trampoline_init): Likewise. * config/visium/visium.c (expand_block_move_4): Likewise. (expand_block_move_2): Likewise. (expand_block_move_1): Likewise. (expand_block_set_4): Likewise. (expand_block_set_2): Likewise. (expand_block_set_1): Likewise. (visium_trampoline_init): Likewise. (visium_profile_hook): Likewise. * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Likewise. (xtensa_setup_frame_addresses): Likewise. (xtensa_trampoline_init): Likewise. * except.c (sjlj_emit_function_enter): Likewise. (sjlj_emit_function_exit): Likewise. * explow.c (allocate_dynamic_stack_space): Likewise. (probe_stack_range): Likewise. * expr.c (convert_mode_scalar): Likewise. * optabs.c (expand_binop): Likewise. (expand_twoval_binop_libfunc): Likewise. (expand_unop): Likewise. (prepare_cmp_insn): Likewise. (prepare_float_lib_cmp): Likewise. (expand_float): Likewise. (expand_fix): Likewise. (expand_fixed_convert): Likewise. (maybe_emit_sync_lock_test_and_set): Likewise. (expand_atomic_compare_and_swap): Likewise. (expand_mem_thread_fence): Likewise. (expand_atomic_fetch_op): Likewise. From-SVN: r251637
2017-09-04Daily bump.GCC Administrator1-1/+1
From-SVN: r251633
2017-09-04adx-check.h (main): Use __get_cpuid_count.Uros Bizjak9-114/+100
* gcc.target/i386/adx-check.h (main): Use __get_cpuid_count. * gcc.target/i386/bmi-check.h (main): Ditto. * gcc.target/i386/bmi2-check.h (main): Ditto. * gcc.target/i386/rtm-check.h (main): Ditto. * gcc.target/i386/sha-check.h (main): Ditto. * gcc.target/i386/avx2-check.h (check_osxsave): New function. (main): Use __get_cpuid_count. Use check_osxsave. * gcc.target/i386/avx512-check.h (check_osxsave): New function. (main): Use __get_cpuid_count. Use check_osxsave. Reorder conditions. * gcc.target/i386/mpx/mpx-check.h (check_osxsave): New function. (main): Use check_osxsave. From-SVN: r251629
2017-09-03mpx-check.h (main): Use __get_cpuid_count and return NORUNRES on failure.Uros Bizjak8-10/+20
* gcc.target/i386/mpx/mpx-check.h (main): Use __get_cpuid_count and return NORUNRES on failure. * gcc.target/i386/mpx/va-arg-pack-1-lbv.c (foo1): Use __builtin_va_arg_pack instead of __va_arg_pack. * gcc.target/i386/mpx/va-arg-pack-1-nov.c (foo1): Ditto. * gcc.target/i386/mpx/va-arg-pack-1-ubv.c (foo1): Ditto. * gcc.target/i386/mpx/va-arg-pack-2-lbv.c (foo1): Ditto. * gcc.target/i386/mpx/va-arg-pack-2-nov.c (foo1): Ditto. * gcc.target/i386/mpx/va-arg-pack-2-ubv.c (foo1): Ditto. From-SVN: r251627
2017-09-03generic.texi (OpenACC): Adjust URL.Gerald Pfeifer3-2/+7
* doc/generic.texi (OpenACC): Adjust URL. * doc/invoke.texi (C Dialect Options): Ditto. From-SVN: r251626
2017-09-03i386.md (*bt<mode>): Use nonimmediate_operand predicate for operand 1.Uros Bizjak2-7/+16
* config/i386/i386.md (*bt<mode>): Use nonimmediate_operand predicate for operand 1. Add (m,<S>) constraint. (*jcc_bt<mode>): Use nonimmediate_operand predicate for operand 1. Prevent memory operand 1 with register operand 2. From-SVN: r251625
2017-09-03Daily bump.GCC Administrator1-1/+1
From-SVN: r251624
2017-09-02Daily bump.GCC Administrator1-1/+1
From-SVN: r251617
2017-09-01re PR libquadmath/81848 (Add PowerPC support to libquadmath)Michael Meissner7-12/+48
2017-09-01 Michael Meissner <meissner@linux.vnet.ibm.com> PR libquadmath/81848 * configure.ac (powerpc*-linux*): Use attribute mode KC to create complex __float128 on PowerPC instead of attribute mode TC. * quadmath.h (__complex128): Likewise. * configure: Regenerate. * math/cbrtq.c (CBRT2): Use __float128 not long double. (CBRT4): Likewise. (CBRT2I): Likewise. (CBRT4I): Likewise. * math/j0q.c (U0): Likewise. * math/sqrtq.c (sqrtq): Don't depend on implicit conversion between __float128, instead explicitly convert the __float128 value to long double because the PowerPC does not allow __float128 and long double in the same expression. From-SVN: r251613
2017-09-01cp-tree.h (resort_type_method_vec): Move declaration to ...Nathan Sidwell5-82/+76
* cp-tree.h (resort_type_method_vec): Move declaration to ... * name-lookup.h (resort_type_method_vec): ... here. (set_class_bindings): Lose 2nd arg. * class.c (finish_struct_1, finish_struct): Adjust set_class_bindings call. Don't call finish_struct_methods. (resort_data, method_name_cmp, resort_method_name_cmp, resort_type_method_vec, finish_struct_methods): Move to ... * name-lookup.c (resort_data, method_name_cmp, resort_method_name_cmp, resort_type_method_vec): ... here. (set_class_bindings): Lose fields arg. Swallow finish_struct_methods. From-SVN: r251609
2017-09-01class.c (finish_struct): Call set_class_bindings for the template case too.Nathan Sidwell2-1/+5
* class.c (finish_struct): Call set_class_bindings for the template case too. From-SVN: r251608
2017-09-01combine: Fix for PR82024Segher Boessenkool2-5/+21
With the testcase in the PR, with all the command line options mentioned there, a (comparison) instruction becomes dead in fwprop1 but is not deleted until all the way in rtl_dce. Before combine this insn look like: 20: flags:CC=cmp(r106:DI,0xffffffffffffffff) REG_DEAD r106:DI REG_UNUSED flags:CC REG_EQUAL cmp(0,0xffffffffffffffff) (note the only output is unused). Combining some earlier insns gives 13: r106:DI=0 14: r105:DI=r101:DI+r103:DI 14+13+20 then gives (parallel [ (set (reg:CC 17 flags) (compare:CC (const_int 0 [0]) (const_int -1 [0xffffffffffffffff]))) (set (reg:DI 105) (plus:DI (reg/v:DI 101 [ e ]) (reg:DI 103))) ]) which doesn't match; but the set of flags is dead, so combine makes the set of r105 the whole new instruction, which it then places at i3. But that is wrong, because r105 is used after i2 but before i3! We forget to check for that in this case. This patch fixes it. PR rtl-optimization/82024 * combine.c (try_combine): If the combination result is a PARALLEL, and we only need to retain the SET in there that would be placed at I2, check that we can place that at I3 instead, before doing so. From-SVN: r251607
2017-09-01re PR target/81766 (ICE in maybe_add_or_update_dep_1, at sched-deps.c:924 ↵Jakub Jelinek4-2/+41
caused by r250815) PR target/81766 * config/i386/i386.c (ix86_init_large_pic_reg): Return label instead of void. (ix86_init_pic_reg): Remember label from ix86_init_large_pic_reg, if non-NULL and preceded by NOTE_INSN_BASIC_BLOCK, swap the note and label. * gcc.target/i386/pr81766.c: New test. From-SVN: r251606
2017-09-01c-opts.c (c_common_finish): Write dependency information even if there are ↵Boris Kolpackov2-2/+10
errors. * c-opts.c (c_common_finish): Write dependency information even if there are errors. From-SVN: r251605
2017-09-01class.c (finish_struct_methods): Done clear DECL_IN_AGGR_P here.Nathan Sidwell2-59/+55
* class.c (finish_struct_methods): Done clear DECL_IN_AGGR_P here. Don't call maybe_warn_about_overly_private_class here. (warn_hidden): Cleanup declarations and comments. (type_has_user_provided_constructor): No need to check CLASSTYPE_METHOD_VEC. (type_has_user_provided_or_explicit_constructor): Likewise. (classtype_has_move_assign_or_move_ctor_p): Likewise. (check_bases_and_members): Don't call finish_struct_methods here. (finish_struct_1): Call finish_struct_methods and set_class_bindings immediately after layout. Clear DECL_IN_AGGR_P here. (finish_struct): For templates process USING_DECLS and clear DECL_IN_AGGR_P before calling finish_struct_methods. Call maybe_warn_about_overly_private_class here. From-SVN: r251604
2017-09-01Fix excess precision handling of compound assignments (PR c/82071).Joseph Myers4-11/+99
PR c/82071 reports how compound assignment operators such as += handle excess precision inconsistently with the same operation done with a plain assignment and binary operator. There were (at least) two problems with how compound assignments handled excess precision. The EXCESS_PRECISION_EXPR for an argument with excess precision was removed too early, resulting in build_binary_op being called with an rhs operand whose type reflected the evaluation format, so not having sufficient information to achieve the intended semantics in all cases, and then the code called c_fully_fold on the results of build_binary_op without allowing for the possibility of an EXCESS_PRECISION_EXPR as the result, so leading to double rounding of the result (first to its semantic type, then to the type of the LHS of the assignment) instead of the intended single rounding. This patch fixes those problems by keeping EXCESS_PRECISION_EXPRs further through build_modify_expr (and build_atomic_assign which it calls) and only removing them locally where appropriate. Note that while this patch should achieve *consistency*, that's consistency with the understanding of C99 semantics that I originally intended to implement. For the particular case in the testcase, C11 semantics (from N1531) differ from that understanding of C99 semantics, in that an implicit conversion of an integer to floating point can have excess precision. I intend to implement those C11 semantics separately (conditional on flag_isoc11) (which will also mean that building conditional expressions can produce a result with excess precision even when the arguments lack excess precision, where previously it could not), and not to close the bug until that is also done. Tested for x86_64-pc-linux-gnu. PR c/82071 gcc/c: * c-typeck.c (build_atomic_assign): Handle argument with excess precision. Ensure any EXCESS_PRECISION_EXPR is present in argument passed to build_binary_op and convert_for_assignment but not for call to c_fully_fold. (build_modify_expr): Do not remove EXCESS_PRECISION_EXPR early. Ensure build_binary_op is called with argument with original semantic type. Avoid calling c_fully_fold with an EXCESS_PRECISION_EXPR from build_binary_op. gcc/testsuite: * gcc.target/i386/excess-precision-7.c: New test. From-SVN: r251603
2017-09-01varasm.c (bss_initializer_p): Do not put constants into .bssJoerg Sonnenberger4-12/+29
* varasm.c (bss_initializer_p): Do not put constants into .bss (categorize_decl_for_section): Handle bss_initializer_p returning false when DECL_INITIAL is NULL. * gcc.target/i386/const-in-bss.c: New test. From-SVN: r251602
2017-09-01S/390: PR82012: Implement CAN_INLINE_P target hook.Andreas Krebbel4-0/+109
TARGET_CAN_INLINE_P must be implemented when supporting target attributes. gcc/ChangeLog: 2017-09-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com> PR target/82012 * config/s390/s390.c (s390_can_inline_p): New function. gcc/testsuite/ChangeLog: 2017-09-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com> PR target/82012 * gcc.target/s390/target-attribute/pr82012.c: New test. From-SVN: r251601
2017-09-01re PR tree-optimization/82052 (ICE with "-O3 -m32" on x86_64-linux-gnu ↵Jeff Law4-4/+416
(internal compiler error: in pop_to_marker, at tree-ssa-scopedtables.c:71)) PR tree-optimization/82052 * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr): Always initialize the returned slot after a hash table miss when INSERT is true. PR tree-optimization/82052 * gcc.c-torture/compile/pr82052.c: New test. From-SVN: r251600
2017-09-01retire mem_signal_fence patternAlexander Monakov5-35/+13
* config/s390/s390.md (mem_signal_fence): Remove. * doc/md.texi (mem_signal_fence): Remove. * optabs.c (expand_mem_signal_fence): Remove uses of mem_signal_fence. Update comments. * target-insns.def (mem_signal_fence): Remove. From-SVN: r251597
2017-09-01re PR sanitizer/81902 (new -fsanitize=pointer-overflow option undocumented)Jakub Jelinek2-0/+9
PR sanitizer/81902 * doc/invoke.texi: Document -fsanitize=pointer-overflow. From-SVN: r251596
2017-09-01re PR sanitizer/81923 ([ASAN] gcc emites wrong odr asan instrumentation for ↵Jakub Jelinek4-2/+26
glibc) PR sanitizer/81923 * asan.c (create_odr_indicator): Strip name encoding from assembler name before appending it after __odr_asan_. * gcc.dg/asan/pr81923.c: New test. From-SVN: r251595
2017-09-01config.host (*-*-vxworks7): Widen scope to vxworks7*.Olivier Hainque2-1/+5
2017-09-01 Olivier Hainque <hainque@adacore.com> libgcc/ * config.host (*-*-vxworks7): Widen scope to vxworks7*. From-SVN: r251594
2017-09-01Revert 2017-08-28 Nathan Sidwell <nathan@acm.org> Restore sorted_fields vector.Nathan Sidwell3-56/+146
Revert 2017-08-28 Nathan Sidwell <nathan@acm.org> Restore sorted_fields vector. * cp-tree.h (lang_type): Restore sorted_fields vector. (CLASSTYPE_SORTED_FIELDS): Restore. (CLASSTYPE_BINDINGS): Delete. * name-lookup.c (lookup_field_1): Restore binary search. (sorted_fields_type_new, count_fields, add_fields_to_record_type, add_enum_fields_to_record_type): Restore (set_class_bindings): Revert. (insert_late_enum_def_binding): Restore field_vec insertion. From-SVN: r251592
2017-09-01Fix profile update in tree-ssa-isolate-paths.c (PR tree-optimization/82059).Martin Liska4-3/+39
2017-09-01 Martin Liska <mliska@suse.cz> PR tree-optimization/82059 * gimple-ssa-isolate-paths.c (isolate_path): Add profile and frequency only when an edge is redirected. 2017-09-01 Martin Liska <mliska@suse.cz> PR tree-optimization/82059 * gcc.dg/tree-ssa/pr82059.c: New test. From-SVN: r251591
2017-09-01[ARC] Reimplement ZOL support.Claudiu Zissulescu10-690/+584
2017-05-22 Claudiu Zissulescu <claziss@synopsys.com> * config/arc/arc-c.c (__ARC_LPC_WIDTH__): Add builtin define. * config/arc/arc.c (ARC_MAX_LOOP_LENGTH): Define. (arc_conditional_register_usage): Remove ARC600 lp_count exception. (arc_file_start): Emit Tag_ARC_CPU_variation. (arc_can_use_doloop_p): New conditions to use ZOLs. (hwloop_fail): New function. (hwloop_optimize): Likewise. (hwloop_pattern_reg): Likewise. (arc_doloop_hooks): New struct, to be used with reorg_loops. (arc_reorg_loops): New function, calls reorg_loops. (arc_reorg): Call arc_reorg_loops. Remove old ZOL handling. (arc600_corereg_hazard): Remove ZOL checking, case handled by hwloop_optimize. (arc_loop_hazard): Remove function, functionality moved into hwloop_optimize. (arc_hazard): Remove arc_loop_hazard call. (arc_adjust_insn_length): Remove ZOL handling, functionality moved into hwloop_optimize. (arc_label_align): Remove ZOL handling. * config/arc/arc.h (LOOP_ALIGN): Changed to 0. * config/arc/arc.md (doloop_begin): Remove pattern. (doloop_begin_i): Likewise. (doloop_end_i): Likewise. (doloop_fallback): Likewise. (doloop_fallback_m): Likewise. (doloop_end): Reimplement expand. (arc_lp): New pattern for LP instruction. (loop_end): New pattern. (loop_fail): Likewise. (decrement_and_branch_until_zero): Likewise. * config/arc/arc.opt (mlpc-width): New option. * doc/invoke.texi (mlpc-width): Document option. testsuite/ 2017-05-22 Claudiu Zissulescu <claziss@synopsys.com> * gcc.target/arc/loop-1.c: Deleted. From-SVN: r251589
2017-09-01[ARC] Fix errors in arc_ifcvt.Claudiu Zissulescu2-31/+17
The arc_ifcvt procedure is removing a label even when it is used by another jump. This patch fixes dg.exp/pr31507-1.c. gcc/ 2017-07-10 Claudiu Zissulescu <claziss@synopsys.com> * config/arc/arc.c (arc_ifcvt): Remove use of merge_blocks call. (arc_ccfsm_advance): Fix checking for delay slots. (arc_reorg): Add rtl dump after each call to arc_ifcvt From-SVN: r251588
2017-09-01[ARC] Update various patternsClaudiu Zissulescu6-29/+94
gcc/ 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com> * config/arc/arc.md (movqi_insn): Add stores to save constant long immediates. (movhi_insn): Update store instruction constraint which are saving 6-bit short immediates. (movsi_insn): Consider also short scaled load operations. (zero_extendhisi2_i): Use Usd constraint instead of T. (extendhisi2_i): Add q constraint. (arc_clzsi2): Add type and length attributes. (arc_ctzsi2): Likewise. * config/arc/constraints.md (Usc): Update constraint, the assembler can parse two relocations for a single instruction. gcc/testsuite/ 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com> * gcc.target/arc/arc.exp: Test also cpp files. * gcc.target/arc/tdelay_slots.cpp: New test. From-SVN: r251587
2017-09-01[ARC] Use TARGET_USE_ANCHORS_FOR_SYMBOL_P.Claudiu Zissulescu4-0/+52
We don't want to use anchors for small data: the GP register acts as an anchor in that case. We also don't want to use them for PC-relative accesses, where the PC acts as an anchor. TLS symbols require special accesses as well, don't use anchors for such symbols. gcc/ 2017-04-28 Claudiu Zissulescu <claziss@synopsys.com> * config/arc/arc.c (arc_use_anchors_for_symbol_p): New function. (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Define. gcc/testsuite 2017-04-28 Claudiu Zissulescu <claziss@synopsys.com> * gcc.target/arc/pr9001184797.c: New test. From-SVN: r251586
2017-09-01re PR c/81887 (pragma omp ordered simd ignored under -fopenmp-simd)Jakub Jelinek13-4/+192
PR c/81887 c-family/ * c-pragma.c (omp_pragmas): Move "ordered" entry from here to ... (omp_pragmas_simd): ... here. * c-omp.c (c_finish_omp_ordered): If clauses isn't simd clause alone, create new clauses list containing just simd clause. c/ * c-parser.c (c_parser_omp_ordered): Handle -fopenmp-simd. cp/ * parser.c (cp_parser_omp_ordered): Handle -fopenmp-simd. fortran/ * parse.c (decode_omp_directive): Use matchs instead of matcho for end ordered and ordered directives, except for ordered depend. For -fopenmp-simd and ordered depend, reject the stmt. * trans-openmp.c (gfc_trans_omp_ordered): For -fopenmp-simd ignore threads clause and if simd clause isn't present, just translate the body. testsuite/ * c-c++-common/gomp/pr81887.c: New test. * gfortran.dg/gomp/pr81887.f90: New test. From-SVN: r251585
2017-09-01Fix warning for simple-object-elf.c.Martin Liska2-1/+5
2017-09-01 Martin Liska <mliska@suse.cz> * simple-object-elf.c (simple_object_elf_copy_lto_debug_sections): Remove duplicite declaration. From-SVN: r251584
2017-09-01re PR c++/82040 (ICE with -Wbool-operation and ~)Marek Polacek4-1/+23
PR c++/82040 * typeck.c (cp_build_unary_op): Avoid re-entering reporting routines. * g++.dg/warn/Wbool-operation-1.C: New test. From-SVN: r251581
2017-09-01Daily bump.GCC Administrator1-1/+1
From-SVN: r251580
2017-08-31mksysinfo: fix in6_addr in mld_hdr_t for SolarisIan Lance Taylor3-1/+9
Patch by Rainer Orth. Reviewed-on: https://go-review.googlesource.com/60732 From-SVN: r251574
2017-08-31config.gcc (powerpc-wrs-vxworks|vxworksae|vxworksmils): Now match as ↵Olivier Hainque4-2/+12
powerpc-wrs-vxworks*. 2017-08-31 Olivier Hainque <hainque@adacore.com> gcc/ * config.gcc (powerpc-wrs-vxworks|vxworksae|vxworksmils): Now match as powerpc-wrs-vxworks*. libgcc/ * config.host: Likewise. From-SVN: r251573
2017-08-31PR c++/82039 suppress -Wzero-as-null-pointer-constant warningJonathan Wakely2-1/+7
PR c++/82039 * include/ext/new_allocator.h (__gnu_cxx::new_allocator::allocate): Adjust null pointer constant to avoid warning. From-SVN: r251570
2017-08-31[AArch64 obvious] Fix register constraints for aarch64_ml[as]_elt_merge<mode>James Greenhalgh2-2/+8
The MLA by-element instructions have the same restriction as other by-element instructions whereby the forms operating on vectors of 16-bit integer data may only use registers v0-v15. We have an iterator for that, applied to the other patterns generating this instruction, so use that. gcc/ * config/aarch64/aarch64-simd.md (aarch64_mla_elt_merge<mode>): Fix register constraint for by-element operand. (aarch64_mls_elt_merge<mode>): Likewise. From-SVN: r251568
2017-08-31PR c++/82029 - __PRETTY_FUNCTION__ in lambda in templateJason Merrill3-4/+78
* pt.c (enclosing_instantiation_of, lambda_fn_in_template_p) (regenerated_lambda_fn_p): New. (tsubst_decl) [VAR_DECL]: Use enclosing_instantiation_of. (tsubst_copy) [VAR_DECL]: Likewise. From-SVN: r251567
2017-08-31[ARC] Update can_follow_jump hook helper.Claudiu Zissulescu2-0/+8
Short branches cannot be used to jump between hot/cold sections. Update the hook. gcc/ 2017-04-26 Claudiu Zissulescu <claziss@synopsys.com> * config/arc/arc.c (arc_can_follow_jump): Check for short branches. From-SVN: r251566
2017-08-31[ARC] Use -G option to control sdata behaviorClaudiu Zissulescu9-125/+199
gcc/ 2017-04-24 Claudiu Zissulescu <claziss@synopsys.com> * config.gcc: Use g.opt for arc. * config/arc/arc.c (LEGITIMATE_SCALED_ADDRESS_P): Deleted, functionality moved to ... (legitimate_scaled_address_p): New function, ...here. (LEGITIMATE_SMALL_DATA_OFFSET_P): New define. (LEGITIMATE_SMALL_DATA_ADDRESS_P): Use the above define. (legitimate_offset_address_p): Delete TARGET_NO_SDATA_SET condition. (arc_override_options): Handle G option. (arc_output_pic_addr_const): Correct function definition. (arc_legitimate_address_p): Use legitimate_scaled_address_p. (arc_decl_anon_ns_mem_p): Delete. (arc_in_small_data_p): Overhaul this function to take into consideration the value given via G option. (arc_rewrite_small_data_1): Renamed and corrected old arc_rewrite_small_data function. (arc_rewrite_small_data): New function. (small_data_pattern): Don't use pic_offset_table_rtx. * config/arc/arc.h (CC1_SPEC): Recognize G option. * config/arc/simdext.md (movmisalignv2hi): Use prepare_move_operands function. (mov*): Likewise. (movmisalign*): Likewise. gcc/testsuite/ 2017-04-24 Claudiu Zissulescu <claziss@synopsys.com> * gcc.target/arc/sdata-5.c: New test. * gcc.target/arc/arc700-stld-hazard.c: Update test options. Fix test From-SVN: r251564
2017-08-31[ARC] Improves and fixes for small data support.Claudiu Zissulescu7-12/+126
Add alignment check for short load/store instructions used for sdata, as they request 32-bit aligned short immediate. Use sdata symbol alignment information and emit scalled loads/stores whenever is possible. The scalled address will extend the access range for sdata symbols. Allow 64-bit datum into small data section, if double load/store instructions are present. gcc/ 2017-04-12 Claudiu Zissulescu <claziss@synopsys.com> * config/arc/arc-protos.h (compact_sda_memory_operand): Update prototype. * config/arc/arc.c (arc_print_operand): Output scalled address for sdata whenever is possible. (arc_in_small_data_p): Allow sdata for 64bit datum when double load/stores are available. (compact_sda_memory_operand): Check for the alignment required by code density instructions. * config/arc/arc.md (movsi_insn): Use newly introduced Us0 constraint. * config/arc/constraints.md (Usd): Update constraint. (Us0): New constraint. (Usc): Update constraint. gcc/testsuite/ 2017-04-12 Claudiu Zissulescu <claziss@synopsys.com> * gcc.target/arc/sdata-3.c: New file. From-SVN: r251562
2017-08-31re PR lto/81968 (early lto debug objects make Solaris ld SEGV)Richard Biener2-3/+11
2017-08-31 Richard Biener <rguenther@suse.de> PR lto/81968 * simple-object-elf.c (simple_object_elf_copy_lto_debug_section): Keep names of removed global symbols. From-SVN: r251560
2017-08-31re PR c++/82054 (ICE in add_dwarf_attr with -fopenmp and -g)Richard Biener4-5/+38
2017-08-31 Richard Biener <rguenther@suse.de> PR middle-end/82054 * dwarf2out.c (dwarf2out_early_global_decl): Process each function only once. * g++.dg/gomp/pr82054.C: New testcase. From-SVN: r251559
2017-08-31aarch64-builtins.c (aarch64_init_simd_builtins): Resize type_signature.Tamar Christina2-1/+6
2017-08-31 Tamar Christina <tamar.christina@arm.com> * config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins): Resize type_signature. From-SVN: r251558