- 14 Sep, 2018 14 commits
-
-
* reg-stack.c: Include regs.h. (replace_reg): Assert that mode is MODE_FLOAT or MODE_COMPLEX_FLOAT. (emit_pop_insn): Default pop insn mode to the reg_raw_mode of FIRST_STACK_REG, not DFmode. (emit_swap_insn): Default swap insn mode to the reg_raw_mode of FIRST_STACK_REG, not XFmode. Explicitly construct swap RTX. (change stack): Default register mode to the reg_raw_mode of FIRST_STACK_REG, not DFmode. * config/i386/i386.md (*swap<mode>): Remove insn pattern. (*swapxf): Rename from swapxf. From-SVN: r264319
Uros Bizjak committed -
gcc/ChangeLog: 2018-09-14 Carl Love <cel@us.ibm.com> * config/rs6000/emmintrin.h: Add _MM_SHUFFLE2. * config/rs6000/xmmintrin.h: Add _MM_SHUFFLE. From-SVN: r264317
Carl Love committed -
This is another case where we ICE because Y does not allow reg+reg, we need Z for that. PR target/87224 * config/rs6000/rs6000.md (*mov<mode>_hardfloat64): Add Z to the Y alternatives. From-SVN: r264316
Segher Boessenkool committed -
gcc/ 2018-07-31 Sam Tebbs <sam.tebbs@arm.com> PR target/85628 * config/aarch64/aarch64.md (*aarch64_bfxilsi_uxtw): Define. gcc/testsuite 2018-07-31 Sam Tebbs <sam.tebbs@arm.com> PR target/85628 * gcc.target/aarch64/combine_bfxil.c (combine_zero_extended_int, foo6): New functions. From-SVN: r264315
Sam Tebbs committed -
* hash-table.c (hash_table_usage): Change from variable to function. * hash-table.h: Adjust. * Makefile.in: Add missing dependencies on hash-table.h. From-SVN: r264313
Jason Merrill committed -
[tree-ssa-mathopts] PR tree-optimization/87259: Call execute_cse_reciprocals_1 before trying optimize_recip_sqrt PR tree-optimization/87259 PR lto/87283 (pass_cse_reciprocals::execute): Run optimize_recip_sqrt after execute_cse_reciprocals_1 has tried transforming. PR tree-optimization/87259 * gcc.dg/pr87259.c: New test. From-SVN: r264312
Kyrylo Tkachov committed -
* tree-vrp.c (extract_range_from_binary_expr_1): Normalize VR_VARYING for PLUS/MINUS_EXPR. From-SVN: r264307
Aldy Hernandez committed -
S/390: Improve s390-passes.def formatting The result looks nicer in the generated pass-instances.def. gcc/ChangeLog: 2018-09-14 Ilya Leoshkevich <iii@linux.ibm.com> * config/s390/s390-passes.def (INSERT_PASS_BEFORE): Improve formatting. From-SVN: r264306
Ilya Leoshkevich committed -
I've been tracking down a bug in a Fortran program on a newlib target and it boils down to fallback_access doing something bad. The unconditional calls to close cause havoc when open doesn't get called due to the short-circuiting in the if-statement above because the fd is uninitialised. In my environment GCC ends up calling close on file descriptor 0, thus trying to close stdin. This patch tightens up the calling so that close is called only when the corresponding open call succeeded. With this my runtime failure disappears. Bootstrapped and tested on aarch64-none-linux-gnu. Though that doesn't exercise this call I hope it's an obviously correct change. * io/unix.c (fallback_access): Avoid calling close on uninitialized file descriptor. From-SVN: r264305
Kyrylo Tkachov committed -
2018-09-14 Richard Biener <rguenther@suse.de> PR middle-end/63155 * tree-ssa-coalesce.c (ssa_conflicts_merge): Remove conflict bits for the merged partition. From-SVN: r264304
Richard Biener committed -
* builtins.h (c_srlen): Add argument. * builtins.c (warn_string_no_nul): New function. (c_strlen): Add argument and use it. Update recursive calls. Pass DECL argument to string_constant to get info on non terminated strings. Update *NONSTR as needed. (fold_builtin_strlen): Add argument to calls to c_strlen. Warn for unterminated arrays. (warn_string_no_null): Add prototype. * expr.c (string_constant): Update arguments. Update recursive calls appropriately. Detect missing NUL terminator and outermost declaration its missing in. Improve checks for arrays with nonzero lower bound or elements that are not a single byte. Simplify offset computation. Simplify checks for non-NUL terminated strings. * gimple-fold.c (get_range_strlen): Add argument to c_strlen call. * gimple-ssa-sprintf.c (get_string_length): Remove unnecessary code. * gcc.dg/warn-strlen-no-nul.c: New test. Co-Authored-By: Bernd Edlinger <bernd.edlinger@hotmail.de> Co-Authored-By: Jeff Law <law@redhat.com> From-SVN: r264302
Martin Sebor committed -
* builtins.c (c_strlen): Handle not zero terminated STRING_CSTs correctly. * fold-const.c (c_getstr): Fix function comment. Remove unused third argument. Fix range checks. * fold-const.h (c_getstr): Adjust protoype. * gimple-fold.c (gimple_fold_builtin_memory_op): Avoid folding when string is constant but contains no NUL byte. From-SVN: r264301
Bernd Edlinger committed -
* expr.c (string_constant): Adjust function comment. Remove bogus check for zero termination. From-SVN: r264300
Bernd Edlinger committed -
From-SVN: r264299
GCC Administrator committed
-
- 13 Sep, 2018 26 commits
-
-
In 1.11 writebarrierptr is going away, so change the compiler to call gcWriteBarrier instead. We weren't using gcWriteBarrier before; adjust the implementation to use the putFast method. This revealed a problem in the kickoff function. When using cgo, kickoff can be called on the g0 of an m allocated by newExtraM. In that case the m will generally have a p, but systemstack may be called by wbBufFlush as part of flushing the write barrier buffer. At that point the buffer is full, so we can not do a write barrier. So adjust the existing code in kickoff so that in the case where we are g0, don't do any write barrier at all. Reviewed-on: https://go-review.googlesource.com/131395 From-SVN: r264295
Ian Lance Taylor committed -
In the sweep code we can sometimes see incorrect counts when conservative stack scanning causes us to grey an object that we earlier decided could be freed. We already ignored this check, but adjust this case to maintain correct span counts when it happens. This gives us slightly more correct numbers in MemStats, and helps avoid a rare failure in TestReadMemStats. Also fix the free index, and cope with finding a full span when allocating a new one. Reviewed-on: https://go-review.googlesource.com/134216 From-SVN: r264294
Ian Lance Taylor committed -
From-SVN: r264293
Bernd Edlinger committed -
* varasm.c (compare_constant): Compare type size of STRING_CSTs. (get_constant_size): Don't make STRING_CSTs larger than they are. (check_string_literal): New check function for STRING_CSTs. (output_constant): Use it. From-SVN: r264292
Bernd Edlinger committed -
From-SVN: r264291
Bernd Edlinger committed -
This is the gofrontend version of https://golang.org/cl/37933, https://golang.org/cl/37934, and https://golang.org/cl/37935. Open code the initialization of select cases. This is a step toward updating libgo to the 1.11 release. Reviewed-on: https://go-review.googlesource.com/135000 From-SVN: r264290
Ian Lance Taylor committed -
From-SVN: r264287
Bernd Edlinger committed -
* typeck2.c (digest_init_r): Fix overlength strings. * vtable-class-hierarchy.c (build_key_buffer_arg): Make string literal NUL terminated. From-SVN: r264286
Bernd Edlinger committed -
trans-array.c (gfc_conv_array_initializer): Remove excess precision from overlength string initializers. * trans-array.c (gfc_conv_array_initializer): Remove excess precision from overlength string initializers. From-SVN: r264285
Bernd Edlinger committed -
Reviewed-on: https://go-review.googlesource.com/134228 From-SVN: r264283
Ian Lance Taylor committed -
Unlike the gc runtime, libgo stores traceback information in location structs, which contain strings. Therefore, copying location structs around appears to require write barriers, although in fact write barriers are never important because the strings are never allocated in Go memory. They come from libbacktrace. Some of the generated write barriers come at times when write barriers are not permitted. For example, exitsyscall, marked nowritebarrierrec, calls exitsyscallfast which calls traceGoSysExit which calls traceEvent which calls traceStackID which calls trace.stackTab.put which copies location values into memory allocated by tab.newStack. This write barrier can be invoked when there is no p, causing a crash. This change fixes the problem by ensuring that location values are copied around in the tracing code with no write barriers. This was found by fixing the compiler to fully implement //go:nowritebarrierrec; CL to follow. Reviewed-on: https://go-review.googlesource.com/134226 From-SVN: r264282
Ian Lance Taylor committed -
PR target/86812 * config/visium/visium.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): Define. From-SVN: r264281
Eric Botcazou committed -
From-SVN: r264278
Eric Botcazou committed -
PR ada/81103 * terminals.c: Do not include termio.h. From-SVN: r264277
Eric Botcazou committed -
To reduce the amount of time spent in write barrier processing (specifically runtime.bulkBarrierPreWrite), add support for building a 'GC roots index', basically a sorted list of all roots, so as to allow more efficient lookups of gcdata structures for globals. The previous implementation worked on the raw (unsorted) roots list itself, which did not scale well. Reviewed-on: https://go-review.googlesource.com/132595 From-SVN: r264276
Ian Lance Taylor committed -
2018-09-13 Matthew Malcomson <matthew.malcomson@arm.com> * MAINTAINERS (Write After Approval): Add self. From-SVN: r264275
Matthew Malcomson committed -
2018-09-13 Sam Tebbs <sam.tebbs@arm.com> * MAINTAINERS (write_after_approval): Add myself. From-SVN: r264274
Sam Tebbs committed -
2018-09-13 Richard Biener <rguenther@suse.de> PR tree-optimization/87263 * tree-ssa-sccvn.c (visit_phi): Revert some earlier changes. (struct unwind_state): Add max_rpo field. (do_rpo_vn): Allow up-to-date loop state to be used when not iterating. Compute max_rpo, the max RPO number a block can be backwards reached from. Re-write non-iterating mode to a RPO ordered worklist approach, separating it from the iterating mode. * gcc.dg/torture/pr87263.c: New testcase. * gcc.dg/torture/ssa-fre-2.c: Likewise. * gcc.dg/torture/ssa-fre-3.c: Likewise. * gcc.dg/torture/ssa-fre-4.c: Likewise. From-SVN: r264273
Richard Biener committed -
The bug https://bugs.llvm.org/show_bug.cgi?id=33222 is now fixed on Clang trunk, so the workaround won't be needed for Clang 8.0 and later. * include/std/variant (variant) [__clang__]: Limit workaround to Clang 7 and older. From-SVN: r264271
Jonathan Wakely committed -
2018-09-13 Vlad Lazar <vlad.lazar@arm.com> * haifa-sched.c (rank_for_schedule): Schedule by INSN_COST. (rfs_decision): New scheduling decision. From-SVN: r264270
Vlad Lazar committed -
2018-09-13 Richard Biener <rguenther@suse.de> PR bootstrap/87134 * tree-ssa-sccvn.c (vn_nary_op_insert_into): Fix assert. (vn_nary_op_insert_pieces_predicated): Do not write useless valid_dominated_by_p entry outside of the allocated storage. From-SVN: r264268
Richard Biener committed -
2018-09-13 Omar Sandoval <osandov@osandov.com> Tom de Vries <tdevries@suse.de> PR debug/86985 * dwarf2out.c (is_c): New function. (add_subscript_info): Add DW_AT_count of 0 for C zero-length arrays. * gcc.dg/guality/zero-length-array.c: New test. Co-Authored-By: Tom de Vries <tdevries@suse.de> From-SVN: r264267
Omar Sandoval committed -
2018-09-13 Sam Tebbs <sam.tebbs@arm.com> PR target/85628 * config/aarch64/aarch64.md (*aarch64_bfxil): Define. * config/aarch64/constraints.md (Ulc): Define. * config/aarch64/aarch64-protos.h (aarch64_high_bits_all_ones_p): Define. * config/aarch64/aarch64.c (aarch64_high_bits_all_ones_p): New function. * gcc.target/aarch64/combine_bfxil.c: New file. * gcc.target/aarch64/combine_bfxil_2.c: New file. From-SVN: r264264
Sam Tebbs committed -
The patch adds support for the TARGET_COMPUTE_FRAME_LAYOUT hook on AArch64 and removes unneeded frame layout recalculation. 2018-09-13 Vlad Lazar <vlad.lazar@arm.com> * config/aarch64/aarch64.h (TARGET_COMPUTE_FRAME_LAYOUT): Define. * config/aarch64/aarch64.c (aarch64_expand_prologue): Remove aarch64_layout_frame call. (aarch64_expand_epilogue): Likewise. (aarch64_initial_elimination_offset): Likewise. (aarch64_get_separate_components): Likewise. (aarch64_use_return_insn_p): Likewise. (aarch64_layout_frame): Remove unneeded check. From-SVN: r264263
Vlad Lazar committed -
* configure.ac: Only append " : (reconfigured) $TOPLEVEL_CONFIGURE_ARGUMENTS" to gcc_config_arguments if it was never reconfigured or last reconfigure was with different arguments. * configure: Regenerated. From-SVN: r264262
Jakub Jelinek committed -
PR middle-end/87290 * expr.c (maybe_optimize_pow2p_mod_cmp): New function. (maybe_optimize_mod_cmp): Use it if integer_pow2p treeop1. * gcc.target/i386/pr87290.c: New test. * gcc.c-torture/execute/pr87290.c: New test. Co-Authored-By: Kyrylo Tkachov <kyrylo.tkachov@arm.com> From-SVN: r264261
Jakub Jelinek committed
-