aboutsummaryrefslogtreecommitdiff
path: root/gcc
AgeCommit message (Collapse)AuthorFilesLines
2018-05-03[tree-complex.c] PR tree-optimization/70291: Inline floating-point complex ↵Kyrylo Tkachov5-42/+184
multiplication more aggressively We can improve the performance of complex floating-point multiplications by inlining the expansion a bit more aggressively. We can inline complex x = a * b as: x = (ar*br - ai*bi) + i(ar*bi + br*ai); if (isunordered (__real__ x, __imag__ x)) x = __muldc3 (a, b); //Or __mulsc3 for single-precision That way the common case where no NaNs are produced we can avoid the libgcc call and fall back to the NaN handling stuff in libgcc if either components of the expansion are NaN. The implementation is done in expand_complex_multiplication in tree-complex.c and the above expansion will be done when optimising for -O1 and greater and when not optimising for size. At -O0 and -Os the single call to libgcc will be emitted. For the code: __complex double foo (__complex double a, __complex double b) { return a * b; } We will now emit at -O2 for aarch64: foo: fmul d16, d1, d3 fmul d6, d1, d2 fnmsub d5, d0, d2, d16 fmadd d4, d0, d3, d6 fcmp d5, d4 bvs .L8 fmov d1, d4 fmov d0, d5 ret .L8: stp x29, x30, [sp, -16]! mov x29, sp bl __muldc3 ldp x29, x30, [sp], 16 ret Instead of just a branch to __muldc3. PR tree-optimization/70291 * tree-complex.c (expand_complex_libcall): Add type, inplace_p arguments. Change return type to tree. Emit libcall as a new statement rather than replacing existing one when inplace_p is true. (expand_complex_multiplication_components): New function. (expand_complex_multiplication): Expand floating-point complex multiplication using the above. (expand_complex_division): Rename inner_type parameter to type. Update expand_complex_libcall call-site. (expand_complex_operations_1): Update expand_complex_multiplication and expand_complex_division call-sites. * gcc.dg/complex-6.c: New test. * gcc.dg/complex-7.c: Likewise. From-SVN: r259889
2018-05-03re PR fortran/85579 (accepts invalid fortran test case gfortran.dg/pr51434.f90)Richard Biener2-1/+6
2018-05-03 Richard Biener <rguenther@suse.de> PR testsuite/85579 * fortran.dg/pr51434.f90: Truncate transfer argument. From-SVN: r259880
2018-05-03cmd/go: run tests that require package build IDsIan Lance Taylor1-1/+1
These tests used to be disabled in the gofrontend since the go tool didn't support build IDs for the gofrontend. It does now, so enable the tests again. Reviewed-on: https://go-review.googlesource.com/111098 From-SVN: r259875
2018-05-03Daily bump.GCC Administrator1-1/+1
From-SVN: r259874
2018-05-02libgo: add type/const references to sysinfo.cIan Lance Taylor1-1/+1
This patch adds explicit references to various types and constants defined by the header files included by sysinfo.c (used to drive the generation of gen-sysinfo.go as part of the libgo build via the GCC "-fdump-go-spec" option). The intent is to enable clients to gather the same info generated by "-fdump-go-spec" by instead reading the generated DWARF from a sysinfo.o object file compiled with "-g". Some compilers (notably clang) try to omit DWARF records for a given type unless there is an explicit use of it in the translation unit; the additional references are to insure that everything we want to see in the DWARF shows up. Reviewed-on: https://go-review.googlesource.com/99063 From-SVN: r259868
2018-05-02libgo: add support for the Nios II architectureIan Lance Taylor1-1/+1
Reviewed-on: https://go-review.googlesource.com/90775 From-SVN: r259866
2018-05-02re PR target/85582 (wrong code at -O1 and above on x86_64-linux-gnu in ↵Jakub Jelinek4-8/+82
32-bit mode) PR target/85582 * config/i386/i386.md (*ashl<dwi>3_doubleword_mask, *ashl<dwi>3_doubleword_mask_1, *<shift_insn><dwi>3_doubleword_mask, *<shift_insn><dwi>3_doubleword_mask_1): In condition require that the highest significant bit of the shift count mask is clear. In check whether and[sq]i3 is needed verify that all significant bits of the shift count other than the highest are set. * gcc.c-torture/execute/pr85582-3.c: New test. From-SVN: r259862
2018-05-02re PR c++/68374 (G++ -Wshadow doesn't warn about static member shadowing)Paolo Carlini5-0/+33
/cp 2018-05-02 Paolo Carlini <paolo.carlini@oracle.com> Jason Merrill <jason@redhat.com> PR c++/68374 * name-lookup.c (check_local_shadow): Don't handle static old declarations in the block handling locals shadowing locals. /testsuite 2018-05-02 Paolo Carlini <paolo.carlini@oracle.com> Jason Merrill <jason@redhat.com> PR c++/68374 * g++.dg/warn/Wshadow-13.C: New. * g++.dg/warn/Wshadow-14.C: Likewise. Co-Authored-By: Jason Merrill <jason@redhat.com> From-SVN: r259853
2018-05-02[openacc] Add __builtin_goacc_parlevel_{id,size}Tom de Vries10-0/+232
2018-05-02 Tom de Vries <tom@codesourcery.com> PR libgomp/82428 * builtins.def (DEF_GOACC_BUILTIN_ONLY): Define. * omp-builtins.def (BUILT_IN_GOACC_PARLEVEL_ID) (BUILT_IN_GOACC_PARLEVEL_SIZE): New builtin. * builtins.c (expand_builtin_goacc_parlevel_id_size): New function. (expand_builtin): Call expand_builtin_goacc_parlevel_id_size. * doc/extend.texi (Other Builtins): Add __builtin_goacc_parlevel_id and __builtin_goacc_parlevel_size. * f95-lang.c (DEF_GOACC_BUILTIN_ONLY): Define. * c-c++-common/goacc/builtin-goacc-parlevel-id-size-2.c: New test. * c-c++-common/goacc/builtin-goacc-parlevel-id-size.c: New test. * testsuite/libgomp.oacc-c-c++-common/gang-static-2.c: Use __builtin_goacc_parlevel_{id,size}. * testsuite/libgomp.oacc-c-c++-common/loop-auto-1.c: Same. * testsuite/libgomp.oacc-c-c++-common/loop-dim-default.c: Same. * testsuite/libgomp.oacc-c-c++-common/loop-g-1.c: Same. * testsuite/libgomp.oacc-c-c++-common/loop-g-2.c: Same. * testsuite/libgomp.oacc-c-c++-common/loop-gwv-1.c: Same. * testsuite/libgomp.oacc-c-c++-common/loop-red-g-1.c: Same. * testsuite/libgomp.oacc-c-c++-common/loop-red-gwv-1.c: Same. * testsuite/libgomp.oacc-c-c++-common/loop-red-v-1.c: Same. * testsuite/libgomp.oacc-c-c++-common/loop-red-v-2.c: Same. * testsuite/libgomp.oacc-c-c++-common/loop-red-w-1.c: Same. * testsuite/libgomp.oacc-c-c++-common/loop-red-w-2.c: Same. * testsuite/libgomp.oacc-c-c++-common/loop-red-wv-1.c: Same. * testsuite/libgomp.oacc-c-c++-common/loop-v-1.c: Same. * testsuite/libgomp.oacc-c-c++-common/loop-w-1.c: Same. * testsuite/libgomp.oacc-c-c++-common/loop-wv-1.c: Same. * testsuite/libgomp.oacc-c-c++-common/parallel-dims.c: Same. * testsuite/libgomp.oacc-c-c++-common/routine-g-1.c: Same. * testsuite/libgomp.oacc-c-c++-common/routine-gwv-1.c: Same. * testsuite/libgomp.oacc-c-c++-common/routine-v-1.c: Same. * testsuite/libgomp.oacc-c-c++-common/routine-w-1.c: Same. * testsuite/libgomp.oacc-c-c++-common/routine-wv-1.c: Same. * testsuite/libgomp.oacc-c-c++-common/routine-wv-2.c: Same. * testsuite/libgomp.oacc-c-c++-common/tile-1.c: Same. From-SVN: r259850
2018-05-02re PR c/30552 (gcc crashes when compiling examples with GNU statement ↵David Pagan9-1/+98
expressions in VLAs (also involved: nested functions declared K&R-style)) PR c/30552 * c-decl.c (old_style_parameter_scope): New function. * c-parser.c (c_parser_postfix_expression): Check for statement expressions in old-style function parameter list declarations. * c-parser.h (old_style_parameter_scope): New extern declaration. PR c/30552 * gcc.dg/noncompile/pr30552-1.c: New test. * gcc.dg/noncompile/pr30552-2.c: New test. * gcc.dg/noncompile/pr30552-3.c: New test. * gcc.dg/noncompile/pr30552-4.c: New test. From-SVN: r259849
2018-05-02* es.po: Update.Joseph Myers2-85/+61
From-SVN: r259845
2018-05-02re PR tree-optimization/85597 (internal compiler error: in ↵Richard Biener4-4/+61
compute_live_loop_exits, at tree-ssa-loop-manip.c:229) 2018-05-02 Richard Biener <rguenther@suse.de> PR tree-optimization/85597 * tree-vect-stmts.c (vectorizable_operation): For ternary SLP do not use split vect_get_vec_defs call but call vect_get_slp_defs directly. * gcc.dg/vect/pr85597.c: New testcase. From-SVN: r259840
2018-05-02[testsuite] Add scan-ltrans-tree-dumpTom de Vries7-3/+192
2018-05-02 Tom de Vries <tom@codesourcery.com> PR testsuite/85106 * gcc.dg/ipa/ipa-icf-38.c: Use scan-ltrans-tree-dump. * lib/scanltranstree.exp: New file. * lib/target-supports.exp (scan-ltrans-tree-dump_required_options) (scan-ltrans-tree-dump-times_required_options) (scan-ltrans-tree-dump-not_required_options) (scan-ltrans-tree-dump-dem_required_options) (scan-ltrans-tree-dump-dem-not_required_options): New proc. * lib/gcc-dg.exp: Include scanltranstree.exp. * testsuite/lib/libatomic.exp: Include scanltranstree.exp. * testsuite/lib/libgomp.exp: Include scanltranstree.exp. * testsuite/lib/libitm.exp: Include scanltranstree.exp. * testsuite/lib/libvtv.exp: Include scanltranstree.exp. * doc/sourcebuild.texi (Commands for use in dg-final, Scan optimization dump files): Add ltrans-tree. From-SVN: r259838
2018-05-02[testsuite] Add scan-wpa-ipa-dumpTom de Vries12-53/+308
2018-05-02 Tom de Vries <tom@codesourcery.com> PR testsuite/85106 * gcc.dg/ipa/ipa-icf-38.c: New test. * gcc.dg/ipa/ipa-icf-38a.c: New test. * lib/scandump.exp (dump-base): New proc. (scan-dump, scan-dump-times, scan-dump-not, scan-dump-dem) (scan-dump-dem-not): Add and handle parameter for suffix of the dump base. * lib/scanipa.exp: Add "" argument to scan-dump calls. * lib/scanlang.exp: Same. * lib/scanrtl.exp: Same. * lib/scantree.exp: Same. * lib/scanwpaipa.exp: New file. * lib/gcc-dg.exp: Include scanwpaipa.exp. * testsuite/lib/libatomic.exp: Include scanwpaipa.exp. * testsuite/lib/libgomp.exp: Include scanwpaipa.exp. * testsuite/lib/libitm.exp: Include scanwpaipa.exp. * testsuite/lib/libvtv.exp: Include scanwpaipa.exp. * doc/sourcebuild.texi (Commands for use in dg-final, Scan optimization dump files): Add wpa-ipa. From-SVN: r259837
2018-05-02rs6000: Remove paired singleSegher Boessenkool17-1444/+79
This removes paired single (used on the 750CL and friends). It was deprecated in GCC 8. Removing it means we only have one vector model to deal with (VMX+VSX, 16-byte vectors). * config.gcc (powerpc*-*-*): Remove paired.h. Unsupport the powerpc*-*-linux*paired* target. * config/rs6000/750cl.h: Delete. * config/rs6000/paired.h: Delete. * config/rs6000/paired.md: Delete. * config/rs6000/predicates.md (easy_vector_constant): Remove paired float support. * config/rs6000/rs6000-builtin.def: Remove paired float support. * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Update comment. Remove paired float support. * config/rs6000/rs6000-modes.def: Remove V2SF and V2SI. * config/rs6000/rs6000-opts.h (enum rs6000_vector): Delete VECTOR_PAIRED. * config/rs6000/rs6000-protos.h (paired_expand_vector_init, paired_emit_vector_cond_expr, paired_expand_vector_move): Delete declarations. * config/rs6000/rs6000.c: Remove paired float support. (paired_expand_vector_init, paired_expand_vector_move, paired_emit_vector_compare, paired_emit_vector_cond_expr, (paired_expand_lv_builtin, paired_expand_stv_builtin, paired_expand_builtin, paired_expand_predicate_builtin, paired_init_builtins): Delete. * config/rs6000/rs6000.h: Remove paired float support. * config/rs6000/rs6000.md: Remove paired float support. (move_from_CR_ov_bit): Delete. * config/rs6000/rs6000.opt (mpaired): Delete. * config/rs6000/t-rs6000: Remove paired.md from MD_INCLUDES. * doc/invoke.texi (RS/6000 and PowerPC Options): Delete -mpaired. From-SVN: r259833
2018-05-02re PR middle-end/85567 (internal compiler error: in gimplify_modify_expr, at ↵Richard Biener4-2/+32
gimplify.c:5797 when using sincos()) 2018-05-02 Richard Biener <rguenther@suse.de> PR middle-end/85567 * gimplify.c (gimplify_save_expr): When in SSA form allow SAVE_EXPRs to compute to SSA vars. * gcc.dg/torture/pr85567.c: New testcase. From-SVN: r259826
2018-05-02re PR target/85582 (wrong code at -O1 and above on x86_64-linux-gnu in ↵Jakub Jelinek5-11/+113
32-bit mode) PR target/85582 * config/i386/i386.md (*ashl<dwi>3_doubleword_mask, *ashl<dwi>3_doubleword_mask_1, *<shift_insn><dwi>3_doubleword_mask, *<shift_insn><dwi>3_doubleword_mask_1): If and[sq]i3 is needed, don't clobber operands[2], instead use a new pseudo. Formatting fixes. * gcc.c-torture/execute/pr85582-1.c: New test. * gcc.c-torture/execute/pr85582-2.c: New test. From-SVN: r259825
2018-05-02Tighten early exit in vect_analyze_data_ref_dependence (PR85586)Richard Sandiford4-2/+59
The problem in this PR was that we didn't consider aliases between writes in the same strided group. After tightening the early exit we get the expected abs(step) >= 2 versioning check. 2018-05-02 Richard Sandiford <richard.sandiford@linaro.org> gcc/ PR tree-optimization/85586 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Only exit early for statements in the same group if the accesses are not strided. gcc/testsuite/ PR tree-optimization/85586 * gcc.dg/vect/pr85586.c: New test. From-SVN: r259822
2018-05-02[lto] Add "could not find mkoffload" error message to lto-wrapperTom de Vries2-32/+40
2018-05-02 Tom de Vries <tom@codesourcery.com> PR lto/85451 * lto-wrapper.c (compile_offload_image): Add "could not find mkoffload" error message. From-SVN: r259821
2018-05-02Daily bump.GCC Administrator1-1/+1
From-SVN: r259818
2018-05-01Generalize a<b&a<c -> a<min(b,c)Marc Glisse5-8/+35
2018-05-01 Marc Glisse <marc.glisse@inria.fr> PR tree-optimization/85143 gcc/ * match.pd (A<B&A<C): Extend to BIT_IOR_EXPR. gcc/testsuite/ * gcc.dg/tree-ssa/minmax-loopend.c: Extend and split... * gcc.dg/tree-ssa/minmax-loopend-2.c: ... here. From-SVN: r259812
2018-05-01* gcc.pot: Regenerate.Joseph Myers2-2822/+2755
From-SVN: r259810
2018-05-01[nvptx] Improve "offload compiler not found" message in mkoffloadTom de Vries2-1/+8
2018-05-01 Tom de Vries <tom@codesourcery.com> PR lto/85451 * config/nvptx/mkoffload.c (main): Suggest using -B in "offload compiler not found" error message. From-SVN: r259809
2018-05-01Add VEC_ORDERED_REMOVE_IFTom de Vries6-34/+112
2018-05-01 Tom de Vries <tom@codesourcery.com> PR other/83786 * vec.h (VEC_ORDERED_REMOVE_IF, VEC_ORDERED_REMOVE_IF_FROM_TO): Define. * vec.c (test_ordered_remove_if): New function. (vec_c_tests): Call test_ordered_remove_if. * dwarf2cfi.c (connect_traces): Use VEC_ORDERED_REMOVE_IF_FROM_TO. * lto-streamer-out.c (prune_offload_funcs): Use VEC_ORDERED_REMOVE_IF. * tree-vect-patterns.c (vect_pattern_recog_1): Use VEC_ORDERED_REMOVE_IF. From-SVN: r259808
2018-05-01-Wformat: fix nonsensical "wide character" message (PR c/84258)David Malcolm4-2/+49
gcc/c-family/ChangeLog: PR c/84258 * c-format.c (struct format_check_results): Add field "number_non_char". (check_format_info): Initialize it, and warn if encountered. (check_format_arg): Distinguish between wide char and everything else when detecting arrays of non-char. gcc/testsuite/ChangeLog: PR c/84258 * c-c++-common/Wformat-pr84258.c: New test. From-SVN: r259807
2018-05-01re PR tree-optimization/82665 (missing value range optimization for memchr)Prathamesh Kulkarni4-0/+76
PR tree-optimization/82665 * vr-values.c (vr_values::extract_range_from_binary_expr): Handle pointer subtraction where arguments come from a memchr call. PR tree-optimization/82665 * gcc.dg/tree-ssa/pr82665.c: New test. From-SVN: r259806
2018-05-01PR c++/85587 - error with scoped enum in template.Jason Merrill3-1/+33
* semantics.c (finish_qualified_id_expr): Don't return an unqualified IDENTIFIER_NODE. From-SVN: r259805
2018-05-01configure.ac (LD_AS_NEEDED_OPTION, [...]): Use --push-state --as-needed and ↵Jakub Jelinek3-0/+33
--pop-state instead of --as-needed and... * configure.ac (LD_AS_NEEDED_OPTION, LD_NO_AS_NEEDED_OPTION): Use --push-state --as-needed and --pop-state instead of --as-needed and --no-as-needed if ld supports it. * configure: Regenerated. From-SVN: r259803
2018-05-01re PR web/85578 (broken links in ↵Jakub Jelinek2-1/+10
gcc-8.0.1-RC-20180427/INSTALL/specific.html, and out of date prerequisites.html) PR web/85578 * doc/install.texi2html: Replace _002d with - and _002a with * in generated html files using sed. From-SVN: r259799
2018-05-01re PR go/85429 (Several gotools tests FAIL with Solaris as)Ian Lance Taylor1-1/+1
PR go/85429 cmd/go: support more Solaris assembler syntaxes Patch by Rainer Orth. Reviewed-on: https://go-review.googlesource.com/110563 From-SVN: r259797
2018-05-01PR c++/85580 - extern "C" and local variablesJason Merrill3-0/+29
* name-lookup.c (check_extern_c_conflict): Ignore local decls. From-SVN: r259793
2018-05-01Daily bump.GCC Administrator1-1/+1
From-SVN: r259787
2018-05-01Add gcc_rich_location::add_fixit_insert_formattedDavid Malcolm6-0/+224
This patch adds a support function to class gcc_rich_location to make it easier for fix-it hints to use idiomatic C/C++ indentation, for use by the patch for PR c++/85523. gcc/ChangeLog: PR c++/85523 * gcc-rich-location.c (blank_line_before_p): New function. (use_new_line): New function. (gcc_rich_location::add_fixit_insert_formatted): New function. * gcc-rich-location.h (gcc_rich_location::add_fixit_insert_formatted): New function. gcc/testsuite/ChangeLog: PR c++/85523 * gcc.dg/plugin/diagnostic-test-show-locus-generate-patch.c (test_add_fixit_insert_formatted_single_line): New function. (test_add_fixit_insert_formatted_multiline): New function. Extend expected output of generated patch to include fix-it hints for these. * gcc.dg/plugin/diagnostic_plugin_test_show_locus.c: Include "gcc-rich-location.h". Add test coverage for gcc_rich_location::add_fixit_insert_formatted. From-SVN: r259783
2018-05-01selftest: remove "Yoda ordering" in assertionsDavid Malcolm3-49/+74
gcc/ChangeLog: * selftest.c (assert_streq): Rename "expected" and "actual" to "val1" and "val2". Extend NULL-handling to cover both inputs symmetrically, while still requiring both to be non-NULL for a pass. * selftest.h (assert_streq): Rename "expected" and "actual" to "val1" and "val2". (ASSERT_EQ): Likewise. (ASSERT_EQ_AT): Likewise. (ASSERT_KNOWN_EQ): Likewise. (ASSERT_KNOWN_EQ_AT): Likewise. (ASSERT_NE): Likewise. (ASSERT_MAYBE_NE): Likewise. (ASSERT_MAYBE_NE_AT): Likewise. (ASSERT_STREQ): Likewise. Clarify that both must be non-NULL for the assertion to pass. (ASSERT_STREQ_AT): Likewise. From-SVN: r259782
2018-04-30PR c++/84701 - unsigned typeof.Jason Merrill4-34/+62
* decl.c (grokdeclarator): Overhaul diagnostics for invalid use of long/short/signed/unsigned. From-SVN: r259780
2018-04-30PR c++/85305 - pack in lambda init-capture.Jason Merrill3-4/+17
* parser.c (cp_parser_initializer): Add subexpression_p parm; don't check_for_bare_parameter_packs in a subexpression. (cp_parser_lambda_introducer): Use it. From-SVN: r259779
2018-04-30Clarify documentation for -fpie and -fPIEJonathan Wakely2-4/+9
* doc/invoke.texi (-fpie, -fPIE): Fix grammar and clarify interaction with -pie. From-SVN: r259774
2018-04-30selftest.h: fix alphabetization of per-source-file selftest declarationsDavid Malcolm2-7/+12
gcc/ChangeLog: * selftest.h: Fix alphabetization of per-source-file selftest declarations. From-SVN: r259773
2018-04-30PR c++/61982 - dead stores to destroyed objects.Jason Merrill7-116/+175
gcc/cp/ * call.c (build_trivial_dtor_call): New, assigns a clobber. (build_over_call, build_special_member_call): Use it. * cp-tree.h: Declare it. * init.c (build_delete): Remove trivial path. gcc/ * gimplify.c (gimplify_modify_expr): Simplify complex lvalue on LHS of clobber. From-SVN: r259772
2018-04-30init.c (build_dtor_call): Use build_special_member_call.Jason Merrill2-12/+9
* init.c (build_dtor_call): Use build_special_member_call. (build_delete): Remove redundant uses of save_addr. From-SVN: r259771
2018-04-30tree.c (build_clobber): New.Jason Merrill6-7/+24
* tree.c (build_clobber): New. * tree.h: Declare it. * gimplify.c (gimplify_bind_expr, gimplify_target_expr): Use it. From-SVN: r259770
2018-04-30Use char_span for return type of location_get_source_lineDavid Malcolm11-123/+176
location_get_source_line returns a const char * that isn't 0-terminated, writing back a length through an int * param. This is error-prone, as all call-sites have to take into account the lack of 0-termination, and respect the length of the buffer. It's cleaner to bundle together this pointer+length state into a class, so this patch does so, reusing the "char_span" class that I introduced in r250187 (as part of the fix for PR c/81405). The patch also adds assertions to all access to the char_span. gcc/c-family/ChangeLog: * c-format.c (get_corrected_substring): Update for location_get_source_line returning a char_span. Use a char_span when handling the prefix of the correction. * c-indentation.c (get_visual_column): Update for location_get_source_line returning a char_span. (get_first_nws_vis_column): Likewise. gcc/ChangeLog: * diagnostic-show-locus.c (layout::layout): Update for location_get_source_line returning a char_span. (struct char_span): Move to input.h. (struct correction): Update for fields in char_span becoming private. (struct source_line): Update for location_get_source_line returning a char_span. (layout::print_line): Likewise. * edit-context.c (edited_file::print_content): Likewise. (edited_file::print_diff_hunk): Likewise. (edited_file::print_run_of_changed_lines): Likewise. (edited_file::get_num_lines): Likewise. (edited_line::edited_line): Likewise. * final.c (asm_show_source): Likewise. * input.c (location_get_source_line): Convert return type from const char * to char_span, losing the final "line_len" param. (dump_location_info): Update for the above. (get_substring_ranges_for_loc): Likewise. Use a char_span when handling the literal within the line. (test_reading_source_line): Update for location_get_source_line returning a char_span. * input.h (class char_span): Move here from diagnostic-show-locus.c, converting from a struct to a class. Make data members private. (char_span::operator bool): New. (char_span::length): New. (char_span::get_buffer): New. (char_span::operator[]): New. (char_span::subspan): Make const. (char_span::xstrdup): New. (location_get_source_line): Convert return type from const char * to char_span, losing the final "line_size" param. gcc/testsuite/ChangeLog: * gcc.dg/plugin/diagnostic_plugin_test_show_locus.c (test_show_locus): Update for location_get_source_line returning a char_span. Use char_span for handling words in the "test_many_nested_locations" fix-it example. From-SVN: r259768
2018-04-30lto-wrapper.c (ltrans_priorities): New static var.Jan Hubicka5-45/+68
* lto-wrapper.c (ltrans_priorities): New static var. (cmp_priority): New. (run_gcc): Read priorities and if doing parallel build order the Makefile by them. * lto.c (cmp_partitions_size): Remove. (lto_wpa_write_files): Also output priorities; do not sort partitions. (cmp_partition_order): Move to ... * lto-partition.c (cmp_partition_order): ... (lto_1_to_1_map): Sort partitions. From-SVN: r259767
2018-04-30input.h: use STATIC_ASSERTDavid Malcolm2-2/+5
gcc/ChangeLog: * input.h (builtins_location_check): Convert to a STATIC_ASSERT. From-SVN: r259766
2018-04-30tree-cfg.c (verify_address): Remove base argument, add flag whether to check ↵Richard Biener2-348/+183
TREE_ADDRESSABLE and do that. 2018-04-30 Richard Biener <rguenther@suse.de> * tree-cfg.c (verify_address): Remove base argument, add flag whether to check TREE_ADDRESSABLE and do that. (verify_expr): Remove. (verify_types_in_gimple_reference): Add pieces from verify_expr. (verify_gimple_assign_single): Likewise. (verify_gimple_switch): Likewise. (verify_expr_location_1): Dereference tp once. Add (disabled) piece from verify_expr. (verify_gimple_in_cfg): Do not call verify_expr on all ops. From-SVN: r259765
2018-04-30[ARC] Clear the instruction cache using syscalls.Claudiu Zissulescu2-0/+18
Clear the instruction cache from `beg' to `end'. This makes an inline system call to SYS_cacheflush. gcc/ 2017-03-28 Claudiu Zissulescu <claziss@synopsys.com> * config/arc/linux.h (CLEAR_INSN_CACHE): Define. From-SVN: r259764
2018-04-30[ARC] Cleanup sdata handling.Claudiu Zissulescu10-248/+153
Clean up how we handle small data load/store operations. gcc/ 2018-01-18 Claudiu Zissulescu <claziss@synopsys.com> * config/arc/arc-protos.h (prepare_extend_operands): Remove. (small_data_pattern): Likewise. (arc_rewrite_small_data): Likewise. * config/arc/arc.c (LEGITIMATE_SMALL_DATA_OFFSET_P): Remove. (LEGITIMATE_SMALL_DATA_ADDRESS_P): Likewise. (get_symbol_alignment): New function. (legitimate_small_data_address_p): Likewise. (legitimate_scaled_address): Update, call legitimate_small_data_address_p. (output_sdata): New static variable. (arc_print_operand): Update how we handle small data operands. (arc_print_operand_address): Likewise. (arc_legitimate_address_p): Update, use legitimate_small_data_address_p. (arc_rewrite_small_data_p): Remove. (arc_rewrite_small_data_1): Likewise. (arc_rewrite_small_data): Likewise. (small_data_pattern): Likewise. (compact_sda_memory_operand): Update to use legitimate_small_data_address_p and get_symbol_alignment. (prepare_move_operands): Don't rewite sdata pattern. (prepare_extend_operands): Remove. * config/arc/arc.md (zero_extendqihi2): Don't rewrite sdata pattern. (zero_extendqisi2): Likewise. (zero_extendhisi2): Likewise. (extendqihi2): Likewise. (extendqisi2): Likewise. (extendhisi2): Likewise. (addsi3): Likewise. (subsi3): Likewise. (andsi3): Likewise. * config/arc/constraints.md (Usd): Change it to memory constraint. gcc/testsuite 2018-01-18 Claudiu Zissulescu <claziss@synopsys.com> * gcc.target/arc/interrupt-8.c: Update test. * gcc.target/arc/loop-4.c: Likewise. * gcc.target/arc/loop-hazard-1.c: Likewise. * gcc.target/arc/sdata-3.c: Likewise. From-SVN: r259763
2018-04-30[ARC] Update movhi and movdi patterns.Claudiu Zissulescu6-14/+47
Allow signed 6-bit short immediates into st[d] instructions. 2017-10-19 Claudiu Zissulescu <claziss@synopsys.com> * config/arc/arc.c (arc_split_move): Allow signed 6-bit constants as source of std instructions. * config/arc/arc.md (movsi_insn): Update pattern predicate to allow 6-bit constants as source for store instructions. (movdi_insn): Update instruction pattern to allow 6-bit constants as source for store instructions. testsuite/ 2017-10-19 Claudiu Zissulescu <claziss@synopsys.com> * gcc.target/arc/store-merge-1.c: New test. * gcc.target/arc/add_n-combine.c: Update test. From-SVN: r259762
2018-04-30* doc/invoke.texi (-fdebug-types-section): Fix grammar.Jonathan Wakely2-1/+5
From-SVN: r259761
2018-04-30[patch] allow '-' for stdout dumpNathan Sidwell3-37/+31
https://gcc.gnu.org/ml/gcc-patches/2018-04/msg01303.html * dumpfile.c (dump_open): Allow '-' for stdout. * doc/invoke.texi (Developer Options): Document dump filename determination early. Document stdin/stdout selection. Co-Authored-By: Sandra Loosemore <sandra@codesourcery.com> From-SVN: r259760