Age | Commit message (Collapse) | Author | Files | Lines |
|
PIC_OFFSET_TABLE_REGNUM twice.
* builtins.c (expand_builtin_nonlocal_goto): Avoid evaluating
PIC_OFFSET_TABLE_REGNUM twice.
From-SVN: r241625
|
|
constant operand for OP.
* match.pd ((convert (op:s (convert@2 @0) (convert?@3 @1)))): Add
support for constant operand for OP.
gcc/testsuite
* gcc.dg/fold-narrowbopcst-1.c: New test.
From-SVN: r241624
|
|
gcc/testsuite/gfortran.dg/
* dec_io_5.f90, dec_io_6.f90: Don't use "test.txt", and use
dg-shouldfail/dg-output instead of XFAIL.
From-SVN: r241623
|
|
splice_child_die if...
* dwarf2out.c (gen_member_die): Only reparent_child instead of
splice_child_die if child doesn't have DW_AT_specification attribute.
From-SVN: r241622
|
|
From-SVN: r241620
|
|
2016-10-27 Thomas Preud'homme <thomas.preudhomme@arm.com>
gcc/
* config/arm/arm.h (TARGET_HAVE_LDREX): Define for ARMv8-M Baseline.
(TARGET_HAVE_LDREXBH): Likewise.
(TARGET_HAVE_LDACQ): Likewise.
gcc/testsuite/
* gcc.target/arm/atomic-comp-swap-release-acquire-3.c: New test.
* gcc.target/arm/atomic-op-acq_rel-3.c: Likewise.
* gcc.target/arm/atomic-op-acquire-3.c: Likewise.
* gcc.target/arm/atomic-op-char-3.c: Likewise.
* gcc.target/arm/atomic-op-consume-3.c: Likewise.
* gcc.target/arm/atomic-op-int-3.c: Likewise.
* gcc.target/arm/atomic-op-relaxed-3.c: Likewise.
* gcc.target/arm/atomic-op-release-3.c: Likewise.
* gcc.target/arm/atomic-op-seq_cst-3.c: Likewise.
* gcc.target/arm/atomic-op-short-3.c: Likewise.
From-SVN: r241615
|
|
2016-10-27 Thomas Preud'homme <thomas.preudhomme@arm.com>
gcc/
* config/arm/arm.c (arm_split_atomic_op): Add function comment. Add
logic to to decide whether to copy over old value to register for new
value.
* config/arm/sync.md: Add comments explaning why mode and code
attribute are not defined in iterators.md
(thumb1_atomic_op_str): New code attribute.
(thumb1_atomic_newop_str): Likewise.
(thumb1_atomic_fetch_op_str): Likewise.
(thumb1_atomic_fetch_newop_str): Likewise.
(thumb1_atomic_fetch_oldop_str): Likewise.
(atomic_exchange<mode>): Add new ARMv8-M Baseline only alternatives to
mirror the more restrictive constraints of the Thumb-1 insns after
split compared to Thumb-2 counterpart insns.
(atomic_<sync_optab><mode>): Likewise. Add comment to keep constraints
in sync with non atomic version.
(atomic_nand<mode>): Likewise.
(atomic_fetch_<sync_optab><mode>): Likewise.
(atomic_fetch_nand<mode>): Likewise.
(atomic_<sync_optab>_fetch<mode>): Likewise.
(atomic_nand_fetch<mode>): Likewise.
* config/arm/thumb1.md (thumb1_addsi3): Add comment to keep contraint
in sync with atomic version.
(thumb1_subsi3_insn): Likewise.
(thumb1_andsi3_insn): Likewise.
(thumb1_iorsi3_insn): Likewise.
(thumb1_xorsi3_insn): Likewise.
From-SVN: r241614
|
|
not found in the hash table.
* plugin.c (register_plugin_info): Produce an error message if the
plugin is not found in the hash table.
From-SVN: r241613
|
|
* match.pd ((convert1 (minmax ((convert2 (x) c)))) -> minmax (x c)):
New pattern.
gcc/testsuite
* gcc.dg/fold-convmaxconv-1.c: New test.
* gcc.dg/fold-convminconv-1.c: New test.
From-SVN: r241612
|
|
2016-10-26 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/78092
* trans-intrinsic.c (gfc_conv_intrinsic_sizeof): Fix reference to an
array element of type CLASS.
2016-10-26 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/78092
* gfortran.dg/pr78092.f90: New test.
From-SVN: r241610
|
|
From-SVN: r241609
|
|
* config/sh/sh.c (output_branch): Add missing fallthru comments.
(gen_shl_and): Likewise.
* config/sh/sh.md (movsicc): Add missing fallthru comments.
From-SVN: r241600
|
|
gcc/ChangeLog:
2016-10-26 Kelvin Nilsen <kelvin@gcc.gnu.org>
PR target/78056
* config/rs6000/rs6000.c (spe_init_builtins): Modify loops to not
define builtin functions from the bdesc_spe_predicates or
bdesc_spe_evsel arrays if the builtin mask is not compatible with
the current compiler configuration.
(paired_init_builtins): Modify loop to not define define builtin
functions from the bdesc_paried_preds array if the builtin mask is
not compatible with the current compiler configuration.
(altivec_init_builtins): Modify loops to not define the
__builtin_altivec_stxvl function nor the builtin functions from
the bdesc_dst or bdesc_altivec_preds, or bdesc_abs arrays if the
builtin mask is not compatible with the current compiler
configuration.
gcc/testsuite/ChangeLog:
2016-10-26 Kelvin Nilsen <kelvin@gcc.gnu.org>
PR target/78056
* gcc.target/powerpc/vsu/vec-any-eqz-7.c (test_any_equal): Change
expected error message.
* gcc.target/powerpc/vsu/vec-xst-len-12.c (store_data): Change
expected error message.
* gcc.target/powerpc/vsu/vec-all-nez-7.c
(test_all_not_equal_and_not_zero): Change expected error message.
From-SVN: r241599
|
|
* config/mips/mips.c (mips16_constant_cost): Add missing
fallthru comments.
(mips16_build_call_stub): Increase buffer size. Adjust
fallthru comment.
From-SVN: r241597
|
|
gcc/ChangeLog:
* print-rtl.c (rtx_writer::print_rtx_operand_code_u): Print
INSN_UIDs for all insns in compact mode.
(rtx_writer::print_rtx): Likewise.
* print-rtl.h (rtx_writer::flag_compact): Update comment.
* rtl-tests.c (selftest::test_dumping_insns): Update expected
output to include INSN_UID.
(selftest::test_uncond_jump): Likewise.
From-SVN: r241593
|
|
* haifa-sched.c (call_used_regs_num): Rename to...
(call_saved_regs_num): ...this.
(fixed_regs_num): New variable.
(sched_pressure_start_bb): Subtract out fixed_regs. Scale call_saved
regs not call_used.
(alloc_global_sched_pressure_data): Compute call_saved and fixed regs.
From-SVN: r241590
|
|
* config/microblaze/microblaze.c (tls_mentioned_p): Avoid
fallthru.
From-SVN: r241587
|
|
gcc/ChangeLog:
* print-rtl-function.c (print_rtx_function): Rewrite in terms of
class rtx_writer.
* print-rtl.c (outfile): Delete global.
(sawclose): Likewise.
(indent): Likewise.
(in_call_function_usage): Likewise.
(flag_compact): Likewise.
(flag_simple): Likewise.
(rtx_writer::rtx_writer): New ctor.
(print_rtx_operand_code_0): Convert to...
(rtx_writer::print_rtx_operand_code_0): ...this.
(print_rtx_operand_code_e): Convert to...
(rtx_writer::print_rtx_operand_code_e): ...this.
(print_rtx_operand_codes_E_and_V): Convert to...
(rtx_writer::print_rtx_operand_codes_E_and_V): ...this.
(print_rtx_operand_code_i): Convert to...
(rtx_writer::print_rtx_operand_code_i): ...this.
(print_rtx_operand_code_r): Convert to...
(rtx_writer::print_rtx_operand_code_r): ...this.
(print_rtx_operand_code_u): Convert to...
(rtx_writer::print_rtx_operand_code_u): ...this.
(print_rtx_operand): Convert to...
(rtx_writer::print_rtx_operand): ...this.
(print_rtx): Convert to...
(rtx_writer::print_rtx): ...this.
(print_inline_rtx): Rewrite in terms of class rtx_writer.
(debug_rtx): Likewise.
(print_rtl): Convert to...
(rtx_writer::print_rtl): ...this.
(print_rtl): Reimplement in terms of class rtx_writer.
(print_rtl_single): Rewrite in terms of class rtx_writer.
(print_rtl_single_with_indent): Convert to..
(rtx_writer::print_rtl_single_with_indent): ...this.
(print_simple_rtl): Rewrite in terms of class rtx_writer.
* print-rtl.h (flag_compact): Delete decl.
(class rtx_writer): New class.
* rtl-tests.c (selftest::assert_rtl_dump_eq): Rewrite in terms of
class rtx_writer.
From-SVN: r241586
|
|
* config/arc/arc.c (acr_print_operand): Adjust fallthru comment.
(check_if_valid_sleep_operand): Add missing fallthru comment.
(arc_register_move_cost): Increase buffer size.
* config/arc/arc.md (cbranch4si_scratch): Add missing fallthru
comment.
* config/arc/predicates.md (move_str_operand): Avoid fallthru.
From-SVN: r241585
|
|
* config/cr16/cr16.c (cr16_print_operand): Add missing fallthru
comment. Add gcc_unreachable for path that should never happen.
From-SVN: r241584
|
|
* config/epiphany/epiphany.c (epiphany_print_operand): Adjust
fallthru comment.
From-SVN: r241582
|
|
PR fortran/77973
* gimplify.c (gimplify_adjust_omp_clauses_1): For all added map
clauses with OMP_CLAUSE_SIZE being a decl, call omp_notice_variable
on outer context if any.
* gfortran.dg/gomp/pr77973.f90: New test.
Co-Authored-By: Martin Liska <mliska@suse.cz>
From-SVN: r241581
|
|
increment rather than double it.
* gen-pass-instances.awk (adjust_linenos): INcrement pass_lines[p]
by increment rather than double it.
(insert_remove_pass): Strip leading whitespace from args[3]. Don't
emit a space before args[4].
(END): Don't emit a space before with_arg.
From-SVN: r241580
|
|
From-SVN: r241579
|
|
2016-10-26 Thomas Preud'homme <thomas.preudhomme@arm.com>
gcc/
* config/arm/sync.md (atomic_compare_and_swap<mode>_1): Add new ARMv8-M
Baseline only alternatives to (i) hold store atomic success value in a
return register rather than a scratch register, (ii) use a low register
for it and to (iii) ensure the cbranchsi insn generated by the split
respect the constraints of Thumb-1 cbranchsi4_insn and
cbranchsi4_scratch.
* config/arm/thumb1.md (cbranchsi4_insn): Add comment to indicate
constraints must match those in atomic_compare_and_swap.
(cbranchsi4_scratch): Likewise.
From-SVN: r241578
|
|
2016-10-26 Thomas Preud'homme <thomas.preudhomme@arm.com>
gcc/
* config/arm/arm.c (arm_expand_compare_and_swap): Add new bdst local
variable. Add the new parameter to the insn generator. Set that
parameter to be CC flag for 32-bit targets, bval otherwise. Set the
return value from the negation of that parameter for Thumb-1, keeping
the logic unchanged otherwise except for using bdst as the destination
register of the compare_and_swap insn.
(arm_split_compare_and_swap): Add explanation about how is the value
returned to the function comment. Rename scratch variable to
neg_bval. Adapt initialization of variables holding operands to the
new operand numbers. Use return register to hold result of store
exclusive for Thumb-1, scratch register otherwise. Construct the
appropriate cbranch for Thumb-1 targets, keeping the logic unchanged
for 32-bit targets. Guard Z flag setting to restrict to 32bit targets.
Use gen_cbranchsi4 rather than hand-written conditional branch to loop
for strongly ordered compare_and_swap.
* config/arm/predicates.md (cc_register_operand): New predicate.
* config/arm/sync.md (atomic_compare_and_swap<mode>_1): Use a
match_operand with the new predicate to accept either the CC flag or a
destination register for the boolean return value, restricting it to
CC flag only via constraint. Adapt operand numbers accordingly.
From-SVN: r241577
|
|
* config/frv/frv.c (comparison_string): Do not fall through after
an error.
From-SVN: r241576
|
|
* config/iq2000/iq2000.c (iq2000_function_arg): Adjust fallthru
comment.
(expand_one_builtin): Add missing break.
From-SVN: r241573
|
|
* config/m32c/m32c.c (encode_pattern_1): Add fallthru comment.
(m32c_legitimate_address_p): Likewise.
From-SVN: r241572
|
|
From-SVN: r241571
|
|
From-SVN: r241569
|
|
* config/microblaze/microblaze.c (microblaze_function_arg): Adjust
fallthru comment.
From-SVN: r241568
|
|
* config/msp430/msp430.c (msp430_legitimate_address_p): Adjust
fallthru comment.
From-SVN: r241567
|
|
From-SVN: r241566
|
|
* config/rl78/rl78.c (rl78_calculate_death_notes): Add fallthru
comment.
(rl78_asm_ctor_dtor): Increase buffer size.
From-SVN: r241565
|
|
* config/stormy16/stormy16.c (xstormy16_asm_output_destrutor): Increase
buffer size.
(xstormy16_asm_output_constructor): Likewise.
From-SVN: r241564
|
|
* config/pa/pa.c (pa_asm_output_mi_thunk): Increase buffer
size.
From-SVN: r241561
|
|
* config/h8300/h8300.c (h8300_print_operand): Adjust FALLTHRU
comment to silence warning.
From-SVN: r241560
|
|
* config/spu/spu.c (spu_sched_reorder): Add missing fallthru comment.
(spu_legitimate_address_p): Fix logic error and add missing fallthru
comment.
From-SVN: r241557
|
|
2016-10-26 Paul Thomas <pault@gcc.gnu.org>
PR fortran/78108
* resolve.c (resolve_typebound_intrinsic_op): For submodules
suppress the error and return if the same procedure symbol
is added more than once to the interface.
2016-10-26 Paul Thomas <pault@gcc.gnu.org>
PR fortran/78108
* gfortran.dg/submodule_18.f08: New test.
* gfortran.dg/submodule_19.f08: New test.
From-SVN: r241555
|
|
PR tree-optimization/78060
PR tree-optimization/78061
PR tree-optimization/78088
* tree-ssa-loop-split.c (easy_exit_values): New function.
(tree_ssa_split_loops): Use it.
(compute_new_first_bound): Change order of operations,
fix invalid use of types.
testsuite/
* g++.dg/pr78060.C: New test.
* gfortran.dg/pr78061.f: New test.
* g++.dg/pr78088.C: New test.
From-SVN: r241551
|
|
gcc/fortran/
* gfortran.texi: Document.
* frontend-passes.c (gfc_code_walker): Add SHARE and CARRIAGECONTROL.
* io.c (gfc_free_open, gfc_resolve_open, gfc_match_open): Ditto.
* gfortran.h (gfc_open): Add SHARE, CARRIAGECONTROL, and READONLY.
* io.c (io_tag, match_open_element): Ditto.
* ioparm.def: Ditto.
* trans-io.c (gfc_trans_open): Ditto.
* io.c (match_dec_etag, match_dec_ftag): New functions.
libgfortran/io/
* libgfortran.h (IOPARM_OPEN_HAS_READONLY, IOPARM_OPEN_HAS_SHARE,
IOPARM_OPEN_HAS_CC): New for READONLY, SHARE, and CARRIAGECONTROL.
* close.c (st_close): Support READONLY.
* io.h (st_parameter_open, unit_flags): Support SHARE, CARRIAGECONTROL,
and READONLY.
* open.c (st_open): Ditto.
* transfer.c (data_transfer_init): Ditto.
* io.h (st_parameter_dt): New member 'cc' for CARRIAGECONTROL.
* write.c (write_check_cc, write_cc): New functions for CARRIAGECONTROL.
* transfer.c (next_record_cc): Ditto.
* file_pos.c (st_endfile): Support SHARE and CARRIAGECONTROL.
* io.h (st_parameter_inquire): Ditto.
* open.c (edit_modes, new_unit): Ditto.
* inquire.c (inquire_via_unit, inquire_via_filename): Ditto.
* io.h (unit_share, unit_cc, cc_fortran, IOPARM_INQUIRE_HAS_SHARE,
IOPARM_INQUIRE_HAS_CC): New for SHARE and CARRIAGECONTROL.
* open.c (share_opt, cc_opt): Ditto.
* read.c (read_x): Support CARRIAGECONTROL.
* transfer.c (read_sf, next_record_r, next_record_w): Ditto.
* write.c (list_formatted_write_scalar, write_a): Ditto.
* unix.h (close_share): New prototype.
* unix.c (open_share, close_share): New functions to handle SHARE.
* unix.c (open_external): Handle READONLY. Call open_share.
* close.c (st_close): Call close_share.
gcc/testsuite/
* dec_io_1.f90: New test.
* dec_io_2.f90: New test.
* dec_io_3.f90: New test.
* dec_io_4.f90: New test.
* dec_io_5.f90: New test.
* dec_io_6.f90: New test.
From-SVN: r241550
|
|
gen-pass-instances.awk is sensitive to the order in which
passes are added; passes that appear later have to be added first.
PR target/71676
PR target/71678
* config/avr/avr-passes.def: Swap order of directives for
gen-pass-instances.awk.
From-SVN: r241547
|
|
From-SVN: r241545
|
|
* config/vax/vax.c (vad_address_cost_1): Add missing FALLTHRU comment.
(vax_notice_update_cc): Likewise.
From-SVN: r241542
|
|
2016-10-25 Paul Thomas <pault@gcc.gnu.org>
PR fortran/45516
* class.c (gfc_find_derived_vtab): Detect recursive allocatable
derived type components. If present, add '_deallocate' field to
the vtable and build the '__deallocate' function.
* decl.c (build_struct): Allow recursive allocatable derived
type components for -std=f2008 or more.
(gfc_match_data_decl): Accept these derived types.
* expr.c (gfc_has_default_initializer): Ditto.
* resolve.c (resolve_component): Make sure that the vtable is
built for these derived types.
* trans-array.c(structure_alloc_comps) : Use the '__deallocate'
function for the automatic deallocation of these types.
* trans-expr.c : Generate the deallocate accessor.
* trans.h : Add its prototype.
* trans-types.c (gfc_get_derived_type): Treat the recursive
allocatable components in the same way as the corresponding
pointer components.
2016-10-25 Paul Thomas <pault@gcc.gnu.org>
PR fortran/45516
* gfortran.dg/class_2.f03: Set -std=f2003.
* gfortran.dg/finalize_21.f90: Modify tree-dump.
* gfortran.dg/recursive_alloc_comp_1.f08: New test.
* gfortran.dg/recursive_alloc_comp_2.f08: New test.
* gfortran.dg/recursive_alloc_comp_3.f08: New test.
* gfortran.dg/recursive_alloc_comp_4.f08: New test.
From-SVN: r241539
|
|
* config.gcc (sparc*-*-solaris2*): Adjust.
(sparc64-*-linux*): Likewise.
* config/sparc/default-64.h: Rename to...
* config/sparc/default64.h: ...this.
* config/sparc/sparc.c (sparc_option_override): Replace TARGET_64BIT
with TARGET_ARCH64.
(sparc_mangle_type): Replace !TARGET_64BIT with TARGET_ARCH32.
* config/sparc/sparc.h: Minor tweaks.
* config/sparc/sparc.md: Replace !TARGET_64BIT and !TARGET_ARCH64 with
TARGET_ARCH32 throughout. Minor various tweaks throughout.
From-SVN: r241538
|
|
PR sanitizer/78106
* gcc.dg/asan/pr78106.c: Add -ffat-lto-objects to dg-options.
From-SVN: r241537
|
|
Running "make selftest-valgrind" showed various leaks of the form:
408 bytes in 24 blocks are definitely lost in loss record 572 of 679
at 0x4A0645D: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
by 0x1B0D057: xmalloc (xmalloc.c:148)
by 0x1ACCAA1: append_file_to_dir(char const*, cpp_dir*) [clone .isra.3] (files.c:1567)
by 0x1ACD56F: _cpp_find_file (files.c:390)
by 0x1ACF8FB: cpp_read_main_file(cpp_reader*, char const*) (init.c:632)
by 0x1AB3D97: selftest::lexer_test::lexer_test(selftest::line_table_case const&, char const*, selftest::lexer_test_options*) (input.c:2014)
by 0x1AB792B: selftest::test_lexer_string_locations_u8(selftest::line_table_case const&) (input.c:2713)
by 0x1ABA22A: selftest::for_each_line_table_case(void (*)(selftest::line_table_case const&)) (input.c:3227)
by 0x1ABA381: selftest::input_c_tests() (input.c:3260)
by 0x1A295F1: selftest::run_tests() (selftest-run-tests.c:62)
by 0xF20DC4: toplev::run_self_tests() (toplev.c:2076)
by 0xF20FCD: toplev::main(int, char**) (toplev.c:2153)
Fix the leak by freeing the file->path in destroy_cpp_file.
However, doing so would lead to a use-after-free in input.c's file cache
since the filenames in this cache are the libcpp file->path buffers.
Hence we need to ensure that any references to the file in the input.c
cache are purged before cleaning up file->path. This is normally done
by the temp_source_file dtor. Hence we need to reorder things to that
the temp_source_file dtor runs before cleaning up the cpp_parser. The
patch does this by introducing a wrapper class around cpp_parser *, so
that the dtor can run after the dtor for temp_source_file.
gcc/ChangeLog:
* input.c (fcache::file_patch): Add comment about lifetime.
(selftest::cpp_reader_ptr): New class.
(selftest::lexer_test): Convert m_parser from cpp_reader *
to a cpp_reader_ptr, and move m_tempfile to after it.
(selftest::lexer_test::lexer_test): Update for above reordering.
(lexer_test::~lexer_test): Move cleanup of m_parser to
cpp_reader_ptr's dtor.
libcpp/ChangeLog:
* files.c (destroy_cpp_file): Free file->path.
From-SVN: r241536
|
|
gcc/fortran/
* gfortran.texi: Document.
* resolve.c (logical_to_bitwise): New function.
* resolve.c (resolve_operator): Wrap operands with logical_to_bitwise.
gcc/testsuite/gfortran.dg/
* dec_bitwise_ops_1.f90, dec_bitwise_ops_2.f90: New testcases.
From-SVN: r241534
|