aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2016-09-052016-09-05 Andrew Haley <aph@redhat.com>gcj/gcj-deletion-branchAndrew Haley
* Makefile.def: Remove libjava. * Makefile.tpl: Likewise. * Makefile.in: Regenerate. * configure.ac: Likewise. * configure: Likewise. * gcc/java: Remove. * libjava: Likewise. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/gcj/gcj-deletion-branch@239991 138bc75d-0d04-0410-961f-82ee72b054a4
2016-09-05Delete GCJ directories.Andrew Haley
git-svn-id: https://gcc.gnu.org/svn/gcc/branches/gcj/gcj-deletion-branch@239990 138bc75d-0d04-0410-961f-82ee72b054a4
2016-09-02Oops! Typo.Andrew Haley
git-svn-id: https://gcc.gnu.org/svn/gcc/branches/gcj/gcj-deletion-branch@239957 138bc75d-0d04-0410-961f-82ee72b054a4
2016-09-02New branch for the deletion of gcj.Andrew Haley
git-svn-id: https://gcc.gnu.org/svn/gcc/branches/gcj/gcj-deletion-breanch@239956 138bc75d-0d04-0410-961f-82ee72b054a4
2016-09-02Use setrlimit for testing libstdc++ in cross toolchainsMaxim Kuvyrkov
* acinclude.m4 (GLIBCXX_CONFIGURE_TESTSUITE): Check for presence of setrlimit on both native and cross targets. * configure: Regenerate. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@239955 138bc75d-0d04-0410-961f-82ee72b054a4
2016-09-022016-09-02 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>Prathamesh Kulkarni
* ipa-cp.c (ipcp_store_bits_results): Change option name from -fipa-cp-bit to -fipa-bit-cp. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@239954 138bc75d-0d04-0410-961f-82ee72b054a4
2016-09-02PR tree-optimization/71831 - __builtin_object_size poor results with noMartin Sebor
optimization gcc/testsuite/ChangeLog: PR tree-optimization/71831 * gcc.dg/builtin-object-size-16.c: New test. * gcc.dg/builtin-object-size-17.c: New test. gcc/ChangeLog: PR tree-optimization/71831 * tree-object-size.h: Return bool instead of the size and add argument for the size. * tree-object-size.c (compute_object_offset): Update signature. (addr_object_size): Same. (compute_builtin_object_size): Return bool instead of the size and add argument for the size. Handle POINTER_PLUS_EXPR when optimization is disabled. (expr_object_size): Adjust. (plus_stmt_object_size): Adjust. (pass_object_sizes::execute): Adjust. * builtins.c (fold_builtin_object_size): Adjust. * doc/extend.texi (Object Size Checking): Update. * ubsan.c (instrument_object_size): Adjust. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@239953 138bc75d-0d04-0410-961f-82ee72b054a4
2016-09-02Daily bump.GCC Administrator
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@239952 138bc75d-0d04-0410-961f-82ee72b054a4
2016-09-01gcc/c-family/ChangeLog:Martin Sebor
* c-ada-spec.c (dump_ada_function_declaration): Increase buffer size to guarantee it fits the output of the formatted function regardless of its arguments. gcc/cp/ChangeLog: * mangle.c: Increase buffer size to guarantee it fits the output of the formatted function regardless of its arguments. gcc/go/ChangeLog: * gofrontend/expressions.cc: Increase buffer size to guarantee it fits the output of the formatted function regardless of its arguments. gcc/java/ChangeLog: * decl.c (give_name_to_locals): Increase buffer size to guarantee it fits the output of the formatted function regardless of its arguments. * mangle_name.c (append_unicode_mangled_name): Same. gcc/ChangeLog: * genmatch.c (parser::parse_expr): Increase buffer size to guarantee it fits the output of the formatted function regardless of its arguments. * gcc/genmodes.c (parser::parse_expr): Same. * gimplify.c (gimplify_asm_expr): Same. * passes.c (pass_manager::register_one_dump_file): Same. * print-tree.c (print_node): Same. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@239949 138bc75d-0d04-0410-961f-82ee72b054a4
2016-09-01rs6000: Rename 110 -> VSCR_REGNOSegher Boessenkool
* config/rs6000/altivec.md: Use VSCR_REGNO instead of 110 throughout. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@239948 138bc75d-0d04-0410-961f-82ee72b054a4
2016-09-01rs6000: Rename 109 -> VRSAVE_REGNOSegher Boessenkool
* config/rs6000/altivec.md: Use VRSAVE_REGNO instead of 109 throughout. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@239947 138bc75d-0d04-0410-961f-82ee72b054a4
2016-09-01rs6000: Rename 74 -> CR6_REGNOSegher Boessenkool
* config/rs6000/altivec.md: Use CR6_REGNO instead of 74 throughout. * config/rs6000/vector.md: Ditto. * config/rs6000/vsx.md: Ditto. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@239946 138bc75d-0d04-0410-961f-82ee72b054a4
2016-09-012016-09-01 Jerry DeLisle <jvdelisle@gcc.gnu.org>Jerry DeLisle
PR libgfortran/77393 * gfortran.dg/fmt_f0_2.f90: Update tests for available kinds. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@239945 138bc75d-0d04-0410-961f-82ee72b054a4
2016-09-01 * gcc.dg/torture/float128-builtin.c, gcc.dg/torture/float128-floath.c,Uros Bizjak
gcc.dg/torture/float128-ieee-nan.c, gcc.dg/torture/float128-tg-2.c, gcc.dg/torture/float128-tg.c, gcc.dg/torture/float128x-builtin.c, gcc.dg/torture/float128x-floath.c, gcc.dg/torture/float128x-nan.c, gcc.dg/torture/float128x-tg-2.c, gcc.dg/torture/float128x-tg.c, gcc.dg/torture/float16-builtin.c, gcc.dg/torture/float16-floath.c, gcc.dg/torture/float16-nan.c, gcc.dg/torture/float16-tg-2.c, gcc.dg/torture/float16-tg.c, gcc.dg/torture/float32-builtin.c, gcc.dg/torture/float32-floath.c, gcc.dg/torture/float32-nan.c, gcc.dg/torture/float32-tg-2.c, gcc.dg/torture/float32-tg.c, gcc.dg/torture/float32x-builtin.c, gcc.dg/torture/float32x-floath.c, gcc.dg/torture/float32x-nan.c, gcc.dg/torture/float32x-tg-2.c, gcc.dg/torture/float32x-tg.c, gcc.dg/torture/float64-builtin.c, gcc.dg/torture/float64-floath.c, gcc.dg/torture/float64-nan.c, gcc.dg/torture/float64-tg-2.c, gcc.dg/torture/float64-tg.c, gcc.dg/torture/float64x-builtin.c, gcc.dg/torture/float64x-floath.c, gcc.dg/torture/float64x-nan.c, gcc.dg/torture/float64x-tg-2.c, gcc.dg/torture/float64x-tg.c: Use dg-add-options ieee. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@239944 138bc75d-0d04-0410-961f-82ee72b054a4
2016-09-01 * ipa-inline-analysis.c (param_change_prob): Get to the base objectEric Botcazou
first in all cases. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@239943 138bc75d-0d04-0410-961f-82ee72b054a4
2016-09-01rs6000: Use LR_REGNO directly in the save/restore patternsSegher Boessenkool
Various patterns use "register_operand" "l" (or "=l") although those patterns are only created refering to LR_REGNO directly. This patch changes those patterns to use the hard regs as well. * config/rs6000/rs6000.md (*restore_gpregs_<mode>_r11, *restore_gpregs_<mode>_r12, *restore_gpregs_<mode>_r1, *return_and_restore_gpregs_<mode>_r11, *return_and_restore_gpregs_<mode>_r12, *return_and_restore_gpregs_<mode>_r1, *return_and_restore_fpregs_<mode>_r11, *return_and_restore_fpregs_<mode>_r12, *return_and_restore_fpregs_<mode>_r1): Use the hard register LR_REGNO directly instead of via the "l" constraint. Renumber operands. Fix whitespace. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@239942 138bc75d-0d04-0410-961f-82ee72b054a4
2016-09-01rs6000: Use LR_REGNO instead of constant 65Segher Boessenkool
Many places still use 65 instead of the symbolic constant LR_REGNO. This fixes them all (I looked for the string "65" only, in config/rs6000/ only, I didn't read all code :-) ) I left it in *restore_world because Iain will remove it there soon. * config/rs6000/altivec.md (*save_world, *save_vregs_<mode>_r11, save_vregs_<mode>_r12, *restore_vregs_<mode>_r11, *restore_vregs_<mode>_r12): Use LR_REGNO instead of 65. * config/rs6000/darwin.md (load_macho_picbase, load_macho_picbase_si, load_macho_picbase_di, *call_indirect_nonlocal_darwin64, *call_nonlocal_darwin64, *call_value_indirect_nonlocal_darwin64, *call_value_nonlocal_darwin64, reload_macho_picbase, reload_macho_picbase_si, reload_macho_picbase_di): Ditto. * config/rs6000/rs6000.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Ditto. * config/rs6000/rs6000.md (*save_gpregs_<mode>_r11, *save_gpregs_<mode>_r12, *save_gpregs_<mode>_r1, *save_fpregs_<mode>_r11, *save_fpregs_<mode>_r12, *save_fpregs_<mode>_r1): Ditto. * config/rs6000/spe.md (*save_gpregs_spe, *restore_gpregs_spe, *return_and_restore_gpregs_spe): Ditto. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@239941 138bc75d-0d04-0410-961f-82ee72b054a4
2016-09-01rs6000: Fix for AIX, for r239866Segher Boessenkool
This should fix r239866 for AIX. I missed two patterns that refer to LR as "register_operand" "l" instead of as reg:P LR_REGNO. * config/rs6000/rs6000.md (define_insn "*return_and_restore_fpregs_aix_<mode>_r11"): Delete the use of the link register. (define_insn "*return_and_restore_fpregs_aix_<mode>_r1"): Ditto. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@239940 138bc75d-0d04-0410-961f-82ee72b054a4
2016-09-01 PR c/7652Marek Polacek
gcc/c-family/ * c-common.c (resolve_overloaded_builtin): Fix formatting. Add FALLTHRU comments. gcc/c/ * c-typeck.c (composite_type): Add FALLTHRU comment. gcc/gcc/cp/ * error.c (dump_type): Fix falls through comment. (dump_decl): Likewise. (dump_expr): Likewise. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@239939 138bc75d-0d04-0410-961f-82ee72b054a4
2016-09-012016-09-01 Bill Schmidt <wschmidt@linux.vnet.ibm.com>Bill Schmidt
Michael Meissner <meissner@linux.vnet.ibm.com> PR target/72827 * config/rs6000/rs6000.c (rs6000_legitimize_address): Avoid reg+reg addressing for TImode. (rs6000_legitimate_address_p): Only allow register indirect addressing for TImode, even without TARGET_QUAD_MEMORY. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@239938 138bc75d-0d04-0410-961f-82ee72b054a4
2016-09-012016-09-01 Richard Biener <rguenther@suse.de>Richard Biener
PR middle-end/77436 * tree-chrec.c (tree_fold_binomial): Use widest_int, properly check whether the result fits the desired result type. * gcc.dg/torture/pr77436.c: New testcase. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@239937 138bc75d-0d04-0410-961f-82ee72b054a4
2016-09-01 * config/nvptx/nvptx.md (cbranch<mode>4): Op 2 can be const.Nathan Sidwell
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@239934 138bc75d-0d04-0410-961f-82ee72b054a4
2016-09-01This patch adds legitimize_address_displacement hook so that stack accessesWilco Dijkstra
with large offsets are split into a more efficient sequence. Unaligned and TI/TFmode use a 256-byte range, byte and halfword accesses use a 4KB range, wider accesses use a 16KB range to maximise the available addressing range and increase opportunities to share the base address. int f(int x) { int arr[8192]; arr[4096] = 0; arr[6000] = 0; arr[7000] = 0; arr[8191] = 0; return arr[x]; } Now generates: sub sp, sp, #32768 add x1, sp, 16384 str wzr, [x1] str wzr, [x1, 7616] str wzr, [x1, 11616] str wzr, [x1, 16380] ldr w0, [sp, w0, sxtw 2] add sp, sp, 32768 ret gcc/ * config/aarch64/aarch64.c (aarch64_legitimize_address_displacement): New function. (TARGET_LEGITIMIZE_ADDRESS_DISPLACEMENT): Define. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@239923 138bc75d-0d04-0410-961f-82ee72b054a4
2016-09-01Fix more bogus testsuite failures for avr.Senthil Kumar Selvaraj
gcc/testsuite/ 2016-09-01 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com> * gcc.dg/pr64252.c: Require int32plus. * gcc.dg/pr66299-1.c: Likewise. * gcc.dg/pr66299-2.c: Likewise. * gcc.dg/torture/20131115-1.c: Skip for avr. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@239921 138bc75d-0d04-0410-961f-82ee72b054a4
2016-09-01[AArch64] Add ANDS pattern for CMP+ZERO_EXTENDKyrylo Tkachov
* config/aarch64/aarch64.md (*ands<mode>_compare0): New pattern. * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_NZmode for comparisons of integer ZERO_EXTEND against zero. * gcc.target/aarch64/ands_3.c: New test. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@239919 138bc75d-0d04-0410-961f-82ee72b054a4
2016-09-01 * config/i386/i386.c (ix86_option_override_internal): Also disable theEric Botcazou
STV pass if -mstackrealign is enabled. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@239916 138bc75d-0d04-0410-961f-82ee72b054a4
2016-09-01 PR c++/57728 - adjust testcaseJason Merrill
* g++.dg/cpp0x/explicit12.C: Add -save-temps. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@239913 138bc75d-0d04-0410-961f-82ee72b054a4
2016-09-01C: Fix missing spaces in 'struct' fix-it hintsDavid Malcolm
In r237714 I added fix-it hints to the C frontend for missing "struct" keywords e.g.: spellcheck-typenames.c:69:1: error: unknown type name ‘foo_t’; use ‘struct’ keyword to refer to the type foo_t *foo_ptr; ^~~~~ struct However when using the (not yet in trunk) option -fdiagnostics-generate-patch, the generated patch is nonsensical: -foo_t *foo_ptr; +structfoo_t *foo_ptr; Fix the fix-its by adding a trailing space to each one, giving: -foo_t *foo_ptr; +struct foo_t *foo_ptr; gcc/c/ChangeLog: * c-parser.c (c_parser_declaration_or_fndef): Add trailing space to the insertion fixits for "struct", "union", and "enum". git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@239912 138bc75d-0d04-0410-961f-82ee72b054a4
2016-09-01Daily bump.GCC Administrator
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@239911 138bc75d-0d04-0410-961f-82ee72b054a4
2016-08-31Fix detection of AVX512IFMA in host_detect_local_cpuIlya Verbin
gcc/ * config/i386/driver-i386.c (host_detect_local_cpu): Fix detection of AVX512IFMA. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@239908 138bc75d-0d04-0410-961f-82ee72b054a4
2016-08-31diagnostic-show-locus.c: handle fixits on lines outside the regular rangesDavid Malcolm
The diagnostic_show_locus implementation determines the set of line spans that need printing based on the ranges within the rich_location (in layout::calculate_line_spans). Currently this doesn't take into account fix-it hints, and hence we fail to print fix-it hints that are on lines outside of those ranges. This patch updates the implementation to take fix-it hints into account when calculating the pertinent line spans, so that such fix-it hints do get printed. It also adds some validation, to ensure that we don't attempt to print fix-its hints affecting a different source file. gcc/ChangeLog: * diagnostic-show-locus.c (class layout): Add field m_fixit_hints. (layout_range::intersects_line_p): New method. (test_range_contains_point_for_single_point): Rename to... (test_layout_range_for_single_point): ...this, and add testing for layout_range::intersects_line_p. (test_range_contains_point_for_single_line): Rename to... (test_layout_range_for_single_line): ...this, and add testing for layout_range::intersects_line_p. (test_range_contains_point_for_multiple_lines): Rename to... (test_layout_range_for_multiple_lines): ...this, and add testing for layout_range::intersects_line_p. (layout::layout): Populate m_fixit_hints. (layout::get_expanded_location): Handle the case of a line-span for a fix-it hint. (layout::validate_fixit_hint_p): New method. (get_line_span_for_fixit_hint): New function. (layout::calculate_line_spans): Add spans for fixit-hints. (layout::should_print_annotation_line_p): New method. (layout::print_any_fixits): Drop param "richloc", instead using validated fixits in m_fixit_hints. Add "const" to hint pointers. (diagnostic_show_locus): Avoid printing blank annotation lines. (selftest::test_diagnostic_context::test_diagnostic_context): Initialize show_column and start_span. (selftest::test_diagnostic_context::start_span_cb): New static function. (selftest::test_diagnostic_show_locus_fixit_lines): New function. (selftest::diagnostic_show_locus_c_tests): Update for function renamings. Call test_diagnostic_show_locus_fixit_lines. libcpp/ChangeLog: * include/line-map.h (class fixit_remove): Remove stray decl. (fixit_hint::affects_line_p): Make const. (fixit_insert::affects_line_p): Likewise. (fixit_replace::affects_line_p): Likewise. * line-map.c (fixit_insert::affects_line_p): Likewise. (fixit_replace::affects_line_p): Likewise. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@239906 138bc75d-0d04-0410-961f-82ee72b054a4
2016-08-31 PR fortran/77352Jakub Jelinek
* trans-openmp.c (gfc_trans_omp_parallel_workshare): Always add a BIND_EXPR with BLOCK around what gfc_trans_omp_workshare returns. * gfortran.dg/gomp/pr77352.f90: New test. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@239904 138bc75d-0d04-0410-961f-82ee72b054a4
2016-08-31 PR fortran/77374Jakub Jelinek
* parse.c (parse_omp_oacc_atomic): Copy over cp->ext.omp_atomic to cp->block->ext.omp_atomic. * resolve.c (gfc_resolve_blocks): Assert block with one or two EXEC_ASSIGNs for EXEC_*_ATOMIC. * openmp.c (resolve_omp_atomic): Don't assert one or two EXEC_ASSIGNs, instead return quietly for EXEC_NOPs and otherwise error unexpected statements. * gfortran.dg/gomp/pr77374.f08: New test. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@239903 138bc75d-0d04-0410-961f-82ee72b054a4
2016-08-31match.pd: Revert a * (1 << b) relaxation.Marc Glisse
2016-08-31 Marc Glisse <marc.glisse@inria.fr> PR tree-optimization/73714 gcc/ * match.pd (a * (1 << b)): Revert change from 2016-05-23. gcc/testsuite/ * gcc.dg/tree-ssa/pr73714.c: New test. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@239902 138bc75d-0d04-0410-961f-82ee72b054a4
2016-08-312016-08-31 Jerry DeLisle <jvdelisle@gcc.gnu.org>Jerry DeLisle
PR libgfortran/77393 * gfortran.dg/fmt_f0_2.f90: New test. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@239901 138bc75d-0d04-0410-961f-82ee72b054a4
2016-08-312016-08-31 Jerry DeLisle <jvdelisle@gcc.gnu.org>Jerry DeLisle
PR libgfortran/77393 * io/write.c (kind_from_size): New function to calculate required buffer size based on kind type. (select_buffer, select_string): Use new function. (write_float_0, write_real, write_real_g0, write_complex): Adjust calls to pass parameters needed by new function. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@239900 138bc75d-0d04-0410-961f-82ee72b054a4
2016-08-31Constrain std::shared_ptr assignment and resettingJonathan Wakely
* include/bits/shared_ptr.h (_Assignable): New alias template. (shared_ptr::operator=(const shared_ptr<_Tp1>&)) (shared_ptr::operator=(shared_ptr<_Tp1>&&)) (shared_ptr::operator=(unique_ptr<_Tp1>&&)): Constrain with _Assignable. * include/bits/shared_ptr_base.h (_Assignable): New alias template. (__shared_ptr::operator=(const __shared_ptr<_Tp1>&)) (__shared_ptr::operator=(__shared_ptr<_Tp1>&&)) (__shared_ptr::operator=(unique_ptr<_Tp1>&&)): Constrain with _Assignable. (__shared_ptr::reset(_Tp1*), __shared_ptr::reset(_Tp1*, _Deleter)) (__shared_ptr::reset(_Tp1*, _Deleter, _Alloc)): Constrain with _Convertible. * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Change dg-error to match on any line. * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise. * testsuite/20_util/shared_ptr/assign/sfinae.cc: New test. * testsuite/20_util/shared_ptr/assign/shared_ptr_neg.cc: Update expected errors. Remove unnecessary code. * testsuite/20_util/shared_ptr/modifiers/reset_sfinae.cc: New test. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@239898 138bc75d-0d04-0410-961f-82ee72b054a4
2016-08-31Move comparison object in map/set move assignmentJonathan Wakely
* include/bits/stl_tree.h (_Rb_tree::operator=(_Rb_tree&&)): Move comparison object. * testsuite/23_containers/set/move_comparison.cc: New test. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@239897 138bc75d-0d04-0410-961f-82ee72b054a4
2016-08-31Add test accidentally not added in revision r239121Jonathan Wakely
* testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc: New test. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@239896 138bc75d-0d04-0410-961f-82ee72b054a4
2016-08-31 runtime: make gsignal stack at least SIGSTKSZ bytesIan Lance Taylor
The default stack size for the gsignal goroutine, 32K, is not enough on ia64. Make sure that the stack size is at least SIGSTKSZ. Reviewed-on: https://go-review.googlesource.com/28224 git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@239894 138bc75d-0d04-0410-961f-82ee72b054a4
2016-08-31selftest.c: avoid explicit "selftest::" qualifiersDavid Malcolm
gcc/ChangeLog: * selftest.c: Move "namespace selftest {" to top of file, removing explicit "selftest::" qualifiers throughout. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@239892 138bc75d-0d04-0410-961f-82ee72b054a4
2016-08-31[x86] Don't use builtins for unaligned load/storeMarc Glisse
2016-08-31 Marc Glisse <marc.glisse@inria.fr> gcc/ * config/i386/avx512fintrin.h (__m512_u, __m512i_u, __m512d_u): New types. (_mm512_loadu_pd, _mm512_storeu_pd, _mm512_loadu_ps, _mm512_storeu_ps, _mm512_loadu_si512, _mm512_storeu_si512): Replace builtin with vector extension. * config/i386/avxintrin.h (__m256_u, __m256i_u, __m256d_u): New types. (_mm256_loadu_pd, _mm256_storeu_pd, _mm256_loadu_ps, _mm256_storeu_ps, _mm256_loadu_si256, _mm256_storeu_si256): Replace builtin with vector extension. * config/i386/emmintrin.h (__m128i_u, __m128d_u): New types. (_mm_loadu_pd, _mm_storeu_pd, _mm_loadu_si128, _mm_storeu_si128): Replace builtin with vector extension. * config/i386/xmmintrin.h (__m128_u): New type. (_mm_loadu_ps, _mm_storeu_ps): Replace builtin with vector extension. (_mm_load_ps, _mm_store_ps): Simplify. gcc/testsuite/ * gcc.target/i386/pr59539-2.c: Adapt options. * gcc.target/i386/avx512f-vmovdqu32-1.c: Relax expected asm. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@239889 138bc75d-0d04-0410-961f-82ee72b054a4
2016-08-31 * config/arm/arm.c (thumb1_size_rtx_costs) <SET>: Add missing guard.Eric Botcazou
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@239888 138bc75d-0d04-0410-961f-82ee72b054a4
2016-08-312016-08-31 Paul Thomas <pault@gcc.gnu.org>Paul Thomas
PR fortran/77418 * gfortran.dg/dtio_5.f90: Remove the non-standard deallocation of the associate entity and replace with a pointer to the intended item on the stack. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@239881 138bc75d-0d04-0410-961f-82ee72b054a4
2016-08-312016-08-31 Paul Thomas <pault@gcc.gnu.org>Paul Thomas
Jerry DeLisle <jvdelisle@gcc.gnu.org> PR fortran/48298 * decl.c (access_attr_decl): Include case INTERFACE_DTIO as appropriate. * gfortran.h : Add INTRINSIC_FORMATTED and INTRINSIC_UNFORMATTED to gfc_intrinsic_op. Add INTERFACE_DTIO to interface type. Add new enum 'dtio_codes'. Add bitfield 'has_dtio_procs' to symbol_attr. Add prototypes 'gfc_check_dtio_interfaces' and 'gfc_find_specific_dtio_proc'. * interface.c (dtio_op): New function. (gfc_match_generic_spec): Match generic DTIO interfaces. (gfc_match_interface): Treat DTIO interfaces in the same way as (gfc_current_interface_head): Add INTERFACE_DTIO appropriately. (check_dtio_arg_TKR_intent): New function. (check_dtio_interface1): New function. (gfc_check_dtio_interfaces): New function. (gfc_find_specific_dtio_proc): New function. * io.c : Add FMT_DT to format_token. (format_lex): Handle DTIO formatting. * match.c (gfc_op2string): Add DTIO operators. * resolve.c (derived_inaccessible): Ignore pointer components to enclosing derived type. (resolve_transfer): Resolve transfers that involve DTIO. procedures. Find the specific subroutine for the transfer and use its existence to over-ride some of the constraints on derived types. If the transfer is recursive, require that the subroutine be so qualified. (dtio_procs_present): New function. (resolve_fl_namelist): Remove inhibition of polymorphic objects in namelists if DTIO read and write subroutines exist. Likewise for derived types. (resolve_types): Invoke 'gfc_verify_dtio_procedures'. * symbol.c : Set 'dtio_procs' using 'minit'. * trans-decl.c (gfc_finish_var_decl): If a derived-type/class object is associated with DTIO procedures, make it TREE_STATIC. * trans-expr.c (gfc_get_vptr_from_expr): If the expression drills down to a PARM_DECL, extract the vptr correctly. (gfc_conv_derived_to_class): Check 'info' in the test for 'useflags'. If the se expression exists and is a pointer, use it as the class _data. * trans-io.c : Add IOCALL_X_DERIVED to iocall and the function prototype. Likewise for IOCALL_SET_NML_DTIO_VAL. (set_parameter_tree): Renamed from 'set_parameter_const', now returns void and has new tree argument. Calls modified to match new interface. (transfer_namelist_element): Transfer DTIO procedure pointer and vpointer using the new function IOCALL_SET_NML_DTIO_VAL. (get_dtio_proc): New function. (transfer_expr): Add new argument for the vptr field of class objects. Add the code to call the specific DTIO proc, convert derived types to class and call IOCALL_X_DERIVED. (trans_transfer): Add BT_CLASS to structures for treatment by the scalarizer. Obtain the vptr for the dynamic type, both for scalar and array transfer. 2016-08-31 Jerry DeLisle <jvdelisle@gcc.gnu.org> Paul Thomas <pault@gcc.gnu.org> PR libgfortran/48298 * gfortran.map : Flag _st_set_nml_dtio_var and _gfortran_transfer_derived. * io/format.c (format_lex): Detect DTIO formatting. (parse_format_list): Parse the DTIO format. (next_format): Include FMT_DT. * io/format.h : Likewise. Add structure 'udf' to structure 'fnode' to carry the IOTYPE string and the 'vlist'. * io/io.h : Add prototypes for the two types of DTIO subroutine and a typedef for gfc_class. Also, add to 'namelist_type' fields for the pointer to the DTIO procedure and the vtable. Add fields to struct st_parameter_dt for pointers to the two types of DTIO subroutine. Add to gfc_unit DTIO specific fields. (internal_proto): Add prototype for 'read_user_defined' and 'write_user_defined'. * io/list_read.c (check_buffers): Use the 'current_unit' field. (unget_char): Likewise. (eat_spaces): Likewise. (list_formatted_read_scalar): For case BT_CLASS, call the DTIO procedure. (nml_get_obj_data): Likewise when DTIO procedure is present,. * io/transfer.c : Export prototypes for 'transfer_derived' and 'transfer_derived_write'. (unformatted_read): For case BT_CLASS, call the DTIO procedure. (unformatted_write): Likewise. (formatted_transfer_scalar_read): Likewise. (formatted_transfer_scalar_write: Likewise. (transfer_derived): New function. (data_transfer_init): Set last_char if no child_dtio. (finalize_transfer): Return if child_dtio set. (st_write_done): Add condition for child_dtio not set. Add extra arguments for st_set_nml_var prototype. (set_nml_var): New function that contains the contents of the old version of st_set_nml_var. Also sets the 'dtio_sub' and 'vtable' fields of the 'nml' structure. (st_set_nml_var): Now just calls set_nml_var with 'dtio_sub' and 'vtable' NULL. (st_set_nml_dtio_var): New function that calls set_nml_var. * io/unit.c (get_external_unit): If the found unit child_dtio is non zero, don't do any mutex locking/unlocking. Just return the unit. * io/unix.c (tempfile_open): Revert to C style comment. * io/write.c (list_formatted_write_scalar): Do the DTIO call. (nml_write_obj): Add BT_CLASS and do the DTIO call. 2016-08-31 Jerry DeLisle <jvdelisle@gcc.gnu.org> Paul Thomas <pault@gcc.gnu.org> PR fortran/48298 * gfortran.dg/dtio_1.f90: New test. * gfortran.dg/dtio_2.f90: New test. * gfortran.dg/dtio_3.f90: New test. * gfortran.dg/dtio_4.f90: New test. * gfortran.dg/dtio_5.f90: New test. * gfortran.dg/dtio_6.f90: New test. * gfortran.dg/dtio_7.f90: New test. * gfortran.dg/dtio_8.f90: New test. * gfortran.dg/dtio_9.f90: New test. * gfortran.dg/dtio_10.f90: New test. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@239880 138bc75d-0d04-0410-961f-82ee72b054a4
2016-08-31Remove arbitrary limits from rich_locationDavid Malcolm
This patch eliminates the hard-coded limits within rich_location (up to 3 ranges, up to 2 fixits). The common case is still handled by embedding the values inside rich_location - it only uses dynamic allocation if these limits are exceeded, so creation of rich_location instances on the stack should still be fast. This is implemented via a new container class, semi_embedded_vec <T, N>. gcc/ChangeLog: * diagnostic-show-locus.c (colorizer::begin_state): Support more than 3 ranges per diagnostic by alternating between color 1 and color 2. (layout::layout): Replace use of rich_location::MAX_RANGES with richloc->get_num_locations (). (layout::calculate_line_spans): Replace use of rich_location::MAX_RANGES with m_layout_ranges.length (). (layout::print_annotation_line): Handle arbitrary numbers of ranges in caret-printing by defaulting to '^'. (selftest::test_one_liner_many_fixits): New function. (test_diagnostic_show_locus_one_liner): Call it. * diagnostic.c (diagnostic_initialize): Update for renaming of rich_location::MAX_RANGES to rich_location::STATICALLY_ALLOCATED_RANGES. * diagnostic.h (struct diagnostic_context): Likewise. gcc/testsuite/ChangeLog: * gcc.dg/plugin/diagnostic-test-show-locus-bw.c (test_many_nested_locations): New function. * gcc.dg/plugin/diagnostic_plugin_test_show_locus.c (test_show_locus): Handle "test_many_nested_locations". libcpp/ChangeLog: * include/line-map.h (class semi_embedded_vec): New class. (semi_embedded_vec<T, NUM_EMBEDDED>::semi_embedded_vec): New ctor. (semi_embedded_vec<T, NUM_EMBEDDED>::~semi_embedded_vec): New dtor. (semi_embedded_vec<T, NUM_EMBEDDED>::operator[]): New methods. (semi_embedded_vec<T, NUM_EMBEDDED>::push): New method. (semi_embedded_vec<T, NUM_EMBEDDED>::truncate): New method. (rich_location::get_num_locations): Reimplement in terms of m_ranges. (rich_location::get_range): Make non-inline. (rich_location::get_num_fixit_hints): Reimplement in terms of m_fixit_hints. (rich_location::add_fixit): New function. (rich_location::MAX_RANGES): Rename to... (rich_location::STATICALLY_ALLOCATED_RANGES): ...this. (rich_location::MAX_FIXIT_HINTS): Rename to... (rich_location::STATICALLY_ALLOCATED_RANGES): ...this, and make private. (rich_location::m_num_ranges): Eliminate in favor of... (rich_location::m_ranges): ...this, converting from a fixed-size array to a semi_embedded_vec. (rich_location::m_num_fixit_hints): Eliminate in favor of... (rich_location::m_fixit_hints): ...this, converting from a fixed-size array to a semi_embedded_vec. * line-map.c (rich_location::rich_location): Update for above changes. (rich_location::~rich_location): Likewise. (rich_location::get_loc): Likewise. (rich_location::get_range): New methods. (rich_location::add_range): Update for above changes. (rich_location::set_range): Likewise. (rich_location::add_fixit_insert): Likewise. (rich_location::add_fixit_replace): Likewise. (rich_location::get_last_fixit_hint): Likewise. (rich_location::reject_impossible_fixit): Likewise. (rich_location::add_fixit): New method. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@239879 138bc75d-0d04-0410-961f-82ee72b054a4
2016-08-31Daily bump.GCC Administrator
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@239878 138bc75d-0d04-0410-961f-82ee72b054a4
2016-08-31selftest: split out named_temp_file from temp_source_fileDavid Malcolm
Split out a new base class for temp_source_file, named_temp_file, moving the deletion to the base class dtor, so that we can write out temporary files in other ways in selftests. gcc/ChangeLog: * selftest.c (selftest::named_temp_file::named_temp_file): New ctor. (selftest::temp_source_file::~temp_source_file): Move to... (selftest::named_temp_file::~named_temp_file): ...here. (selftest::test_named_temp_file): New function. (selftest::selftest_c_tests): Call test_named_temp_file. * selftest.h (class named_temp_file): New class. (class temp_source_file): Convert to a subclass of named_temp_file. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@239875 138bc75d-0d04-0410-961f-82ee72b054a4
2016-08-30C++: add fixit for '>>' template errorDavid Malcolm
gcc/cp/ChangeLog: * parser.c (cp_parser_enclosed_template_argument_list): Add fix-it hint to ">>" within nested template argument list error. gcc/testsuite/ChangeLog: * g++.dg/template/double-greater-than-fixit.C: New test case. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@239873 138bc75d-0d04-0410-961f-82ee72b054a4
2016-08-30 runtime: use -fgo-c-header to build C header fileIan Lance Taylor
Use the new -fgo-c-header option to build a header file for the Go runtime code in libgo/go/runtime, and use the new header file in the C runtime code in libgo/runtime. This will ensure that the Go code and C code share the same data structures as we convert the runtime from C to Go. The new file libgo/go/runtime/runtime2.go is copied from the Go 1.7 release, and then edited to remove unnecessary data structures and modify others for use with libgo. The new file libgo/go/runtime/mcache.go is an initial version of the same files in the Go 1.7 release, and will be replaced by the Go 1.7 file when we convert to the new memory allocator. The new file libgo/go/runtime/type.go describes the gccgo version of the reflection data structures, and replaces the Go 1.7 runtime file which describes the gc version of those structures. Using the new header file means changing a number of struct fields to use Go naming conventions (that is, no underscores) and to rename constants to have a leading underscore so that they are not exported from the Go package. These names were updated in the C code. The C code was also changed to drop the thread-local variable m, as was done some time ago in the gc sources. Now the m field is always accessed using g->m, where g is the single remaining thread-local variable. This in turn required some adjustments to set g->m correctly in all cases. Also pass the new -fgo-compiling-runtime option when compiling the runtime package, although that option doesn't do anything yet. Reviewed-on: https://go-review.googlesource.com/28051 git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@239872 138bc75d-0d04-0410-961f-82ee72b054a4