- 26 Jun, 2017 1 commit
-
-
From-SVN: r249637
GCC Administrator committed
-
- 25 Jun, 2017 1 commit
-
-
From-SVN: r249632
GCC Administrator committed
-
- 24 Jun, 2017 4 commits
-
-
2017-06-24 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR fortran/81160 * arith.c (wprecision_int_real): Set return value before mpz_clear and then return after it. From-SVN: r249627
Jerry DeLisle committed -
/cp 2017-06-24 Paolo Carlini <paolo.carlini@oracle.com> PR c++/62315 * parser.c (cp_parser_diagnose_invalid_type_name): Don't print 'typename' in error messages about missing 'typename'. /testsuite 2017-06-24 Paolo Carlini <paolo.carlini@oracle.com> PR c++/62315 * g++.dg/parse/typedef2.C: Specify a dg-error string. From-SVN: r249626
Paolo Carlini committed -
2017-06-24 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/52473 * Makefile.am: Add i_cshift1a_c. Add rules to generate files from cshift1a.m4. * Makefile.in: Regenerated. * m4/cshift1a.m4: New file. * m4/cshift.m4 (cshift1): Split up inner loop by removing condition. Use memcpy where possible. Call helper functions based on dtype. * libgfortran.h: Add prototypes for cshift1_16_c10, cshift1_16_c16, cshift1_16_c4, cshift1_16_c8, cshift1_16_i1, cshift1_16_i16, cshift1_16_i2, cshift1_16_i4, cshift1_16_i8, cshift1_16_r10, cshift1_16_r16, cshift1_16_r4, cshift1_16_r8, cshift1_4_c10, cshift1_4_c16, cshift1_4_c4, cshift1_4_c8, cshift1_4_i1, cshift1_4_i16, cshift1_4_i2, cshift1_4_i4, cshift1_4_i8, cshift1_4_r10, cshift1_4_r16, cshift1_4_r4, cshift1_4_r8, cshift1_8_c10, cshift1_8_c16, cshift1_8_c4, cshift1_8_c8, cshift1_8_i1, cshift1_8_i16, cshift1_8_i2, cshift1_8_i4, cshift1_8_i8, cshift1_8_r10, cshift1_8_r16, cshift1_8_r4 and cshift1_8_r8. * generated/cshift1_16_c10.c: New file, generated from cshift1a.m4. * generated/cshift1_16_c16.c: New file, generated from cshift1a.m4. * generated/cshift1_16_c4.c: New file, generated from cshift1a.m4. * generated/cshift1_16_c8.c: New file, generated from cshift1a.m4. * generated/cshift1_16_i1.c: New file, generated from cshift1a.m4. * generated/cshift1_16_i16.c: New file, generated from cshift1a.m4. * generated/cshift1_16_i2.c: New file, generated from cshift1a.m4. * generated/cshift1_16_i4.c: New file, generated from cshift1a.m4. * generated/cshift1_16_i8.c: New file, generated from cshift1a.m4. * generated/cshift1_16_r10.c: New file, generated from cshift1a.m4. * generated/cshift1_16_r16.c: New file, generated from cshift1a.m4. * generated/cshift1_16_r4.c: New file, generated from cshift1a.m4. * generated/cshift1_16_r8.c: New file, generated from cshift1a.m4. * generated/cshift1_4_c10.c: New file, generated from cshift1a.m4. * generated/cshift1_4_c16.c: New file, generated from cshift1a.m4. * generated/cshift1_4_c4.c: New file, generated from cshift1a.m4. * generated/cshift1_4_c8.c: New file, generated from cshift1a.m4. * generated/cshift1_4_i1.c: New file, generated from cshift1a.m4. * generated/cshift1_4_i16.c: New file, generated from cshift1a.m4. * generated/cshift1_4_i2.c: New file, generated from cshift1a.m4. * generated/cshift1_4_i4.c: New file, generated from cshift1a.m4. * generated/cshift1_4_i8.c: New file, generated from cshift1a.m4. * generated/cshift1_4_r10.c: New file, generated from cshift1a.m4. * generated/cshift1_4_r16.c: New file, generated from cshift1a.m4. * generated/cshift1_4_r4.c: New file, generated from cshift1a.m4. * generated/cshift1_4_r8.c: New file, generated from cshift1a.m4. * generated/cshift1_8_c10.c: New file, generated from cshift1a.m4. * generated/cshift1_8_c16.c: New file, generated from cshift1a.m4. * generated/cshift1_8_c4.c: New file, generated from cshift1a.m4. * generated/cshift1_8_c8.c: New file, generated from cshift1a.m4. * generated/cshift1_8_i1.c: New file, generated from cshift1a.m4. * generated/cshift1_8_i16.c: New file, generated from cshift1a.m4. * generated/cshift1_8_i2.c: New file, generated from cshift1a.m4. * generated/cshift1_8_i4.c: New file, generated from cshift1a.m4. * generated/cshift1_8_i8.c: New file, generated from cshift1a.m4. * generated/cshift1_8_r10.c: New file, generated from cshift1a.m4. * generated/cshift1_8_r16.c: New file, generated from cshift1a.m4. * generated/cshift1_8_r4.c: New file, generated from cshift1a.m4. * generated/cshift1_8_r8.c: New file, generated from cshift1a.m4. 2017-06-24 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/52473 * gfortran.dg/cshift_2.f90: New test. From-SVN: r249620
Thomas Koenig committed -
From-SVN: r249619
GCC Administrator committed
-
- 23 Jun, 2017 23 commits
-
-
* parser.c (cp_parser_simple_type_specifier): Don't assume that type is a TYPE_DECL. (cp_parser_check_for_invalid_template_id): Handle TYPE_DECL. * pt.c (template_placeholder_p): New. * cp-tree.h: Declare it. From-SVN: r249614
Jason Merrill committed -
gcc/ * doc/invoke.texi (AArch64 Options, -mtune): Re-add falkor and qdf24xx. From-SVN: r249613
Jim Wilson committed -
gcc/testsuite/ PR middle-end/79794 * gcc.target/aarch64/pr79794.c: New. From-SVN: r249612
Jim Wilson committed -
When C code calls a Go function, it actually calls a function generated by cgo. That function is written in Go, and, among other things, it calls the real Go function like this: CgocallBack() defer CgocallBackDone() RealGoFunction() The deferred CgocallBackDone function enters syscall mode as we return to C. Typically the C function will then eventually return to Go. However, in the case where the C function is running on a thread created in C, it will not return to Go. For that case we will have allocated an m struct, with an associated g struct, for the duration of the Go code, and when the Go is complete we will return the m and g to a free list. That all works, but we are running in a deferred function, which means that we have been invoked by deferreturn, and deferreturn expects to do a bit of cleanup to record that the defer has been completed. Doing that cleanup while using an m and g that have already been returned to the free list is clearly a bad idea. It was kind of working because deferreturn was holding the g pointer in a local variable, but there were races with some other thread picking up and using the newly freed g. It was also kind of working because of a special check in freedefer; that check is no longer necessary. This patch changes the special case of releasing the m and g to do the defer cleanup in CgocallBackDone itself. This patch also checks for the special case of a panic through CgocallBackDone. In that special case, we don't want to release the m and g. Since we are returning to C code that was not called by Go code, we know that the panic is not going to be caught and we are going to exit the program. So for that special case we keep the m and g structs so that the rest of the panic code can use them. Reviewed-on: https://go-review.googlesource.com/46530 From-SVN: r249611
Ian Lance Taylor committed -
Reviewed-on: https://go-review.googlesource.com/46590 From-SVN: r249609
Ian Lance Taylor committed -
2017-06-23 Aaron Sawdey <acsawdey@linux.vnet.ibm.com> * config/rs6000/rs6000-string.c: (expand_block_clear, do_load_for_compare, select_block_compare_mode, compute_current_alignment, expand_block_compare, expand_strncmp_align_check, expand_strn_compare, expand_block_move, rs6000_output_load_multiple) Move functions related to string/block move/compare to a separate file. * config/rs6000/rs6000.c: Move above functions to rs6000-string.c. * config/rs6000/rs6000-protos.h (rs6000_emit_dot_insn): Add prototype for this function which is now used in two files. * config/rs6000/t-rs6000: Add rule to compile rs6000-string.o. * config.gcc: Add rs6000-string.o to extra_objs for targets powerpc*-*-* and rs6000*-*-*. From-SVN: r249608
Aaron Sawdey committed -
[gcc] 2017-06-23 Michael Meissner <meissner@linux.vnet.ibm.com> PR target/80510 * config/rs6000/rs6000.md (ALTIVEC_DFORM): Do not allow DImode in 32-bit, since indexed is not valid for DImode. (mov<mode>_hardfloat32): Reorder ISA 2.07 load/stores before ISA 3.0 d-form load/stores to be the same as mov<mode>_hardfloat64. (define_peephole2 for Altivec d-form load): Add 32-bit support. (define_peephole2 for Altivec d-form store): Likewise. [gcc/testsuite] 2017-06-23 Michael Meissner <meissner@linux.vnet.ibm.com> PR target/80510 * gcc.target/powerpc/pr80510-1.c: Allow test to run on 32-bit. * gcc.target/powerpc/pr80510-2.c: Likewise. From-SVN: r249607
Michael Meissner committed -
2017-06-23 Michael Meissner <meissner@linux.vnet.ibm.com> PR ipa/81185 * multiple_target.c (create_dispatcher_calls): Only create the dispatcher call if the function is the default clone of a versioned function. From-SVN: r249605
Michael Meissner committed -
* gcc-interface/trans.c (gnat_to_gnu): Initialize sync to false to avoid UB. From-SVN: r249604
Jakub Jelinek committed -
__atomic_add_fetch adds a value to some memory, and returns the result. If there is no direct support for this, expand_builtin_atomic_fetch_op is asked to implement this as __atomic_fetch_add (which returns the original value of the mem), followed by the addition. Now, the __atomic_add_fetch could have been a tail call, but we shouldn't perform the __atomic_fetch_add as a tail call: following code would not be executed, and in fact thrown away because there is a barrier after tail calls. This fixes it. PR middle-end/80902 * builtins.c (expand_builtin_atomic_fetch_op): If emitting code after a call, force the call to not be a tail call. From-SVN: r249603
Segher Boessenkool committed -
* runtime/config/sparc/os-unix-sysdep.c (__cilkrts_getticks): Adjust preprocessor test for SPARC/Linux. * runtime/jmpbuf.h (CILK_[UN]ADJUST_SP): Likewise. From-SVN: r249601
Eric Botcazou committed -
Backport https://golang.org/cl/46511 from gc trunk, as it may fix a bug reported for gccgo running on MIPS (https://groups.google.com/d/msg/golang-dev/sDg-t1_DPw0/-AJmLxgPBQAJ). Reviewed-on: https://go-review.googlesource.com/46571 From-SVN: r249599
Ian Lance Taylor committed -
The kickoff function for g0 can be invoked without a p, for example from mcall(exitsyscall0) in exitsyscall after exitsyscall has cleared the p field. The assignment gp.param = nil will invoke a write barrier. If gp.param is not already nil, this will require a p. Avoid the problem for a specific case that is known to be OK: when the value in gp.param is a *g. Reviewed-on: https://go-review.googlesource.com/46512 From-SVN: r249595
Ian Lance Taylor committed -
Implement go:notinheap as the gc compiler does. A type marked as go:notinheap may not live in the heap, and does not require a write barrier. Struct and array types that incorporate notinheap types are themselves notinheap. Allocating a value of a notinheap type on the heap is an error. This is not just an optimization. There is code where a write barrier may not occur that was getting a write barrier with gccgo but not gc, because the types in question were notinheap. The case I found was setting the mcache field in exitsyscallfast. Reviewed-on: https://go-review.googlesource.com/46490 From-SVN: r249594
Ian Lance Taylor committed -
* doc/contrib.texi: Add entry for Steven Pemberton's work on enquire. From-SVN: r249593
Jeff Law committed -
From-SVN: r249592
Jeff Law committed -
[gcc] 2017-06-23 Will Schmidt <will_schmidt@vnet.ibm.com> * config/rs6000/rs6000.c: Add include of ssa-propagate.h for update_call_from_tree(). (rs6000_gimple_fold_builtin): Add handling for early expansion of vector shifts (sl,sr,sra,rl). (builtin_function_type): Add vector shift right instructions to the unsigned argument list. [gcc/testsuite] 2017-06-23 Will Schmidt <will_schmidt@vnet.ibm.com> * gcc.target/powerpc/fold-vec-shift-char.c: New. * gcc.target/powerpc/fold-vec-shift-int.c: New. * gcc.target/powerpc/fold-vec-shift-longlong.c: New. * gcc.target/powerpc/fold-vec-shift-short.c: New. * gcc.target/powerpc/fold-vec-shift-left.c: New. * gcc.target/powerpc/fold-vec-shift-left-fwrapv.c: New. * gcc.target/powerpc/fold-vec-shift-left-longlong-fwrapv.c: New. * gcc.target/powerpc/fold-vec-shift-left-longlong.c: New. From-SVN: r249591
Will Schmidt committed -
When a panic occurs while processing a deferred function that recovered an earlier panic, we shouldn't report the recovered panic in the panic stack trace. Stop doing so by keeping track of the panic that triggered a defer, marking it as aborted if we see the defer again, and discarding aborted panics when a panic is recovered. This is what the gc runtime does. The test for this is TestRecursivePanic in runtime/crash_test.go. We don't run that test yet, but we will soon. Reviewed-on: https://go-review.googlesource.com/46461 From-SVN: r249590
Ian Lance Taylor committed -
* go.test/go-test.exp (go-set-goarch): Update MIPS architecture names. From-SVN: r249589
James Cowgill committed -
2017-06-23 Bernd Edlinger <bernd.edlinger@hotmail.de> rtl-optimizatoin/79286 * ira.c (update_equiv_regs): Revert to using may_trap_or_fault_p again. * rtlanal.c (rtx_addr_can_trap_p_1): SYMBOL_REF_FUNCTION_P can never trap. PIC register plus a const unspec without offset can never trap. From-SVN: r249588
Bernd Edlinger committed -
2017-06-23 Marc Glisse <marc.glisse@inria.fr> gcc/ * tree.h (builtin_structptr_type): New type. (builtin_structptr_types): Declare new array. * tree.c (builtin_structptr_types): New array. (free_lang_data, build_common_tree_nodes): Use it. gcc/c-family/ * c-common.c (c_common_nodes_and_builtins): Use builtin_structptr_types. gcc/cp/ * decl.c (duplicate_decls): Use builtin_structptr_types. gcc/lto/ * lto-lang.c (lto_init): Use builtin_structptr_types. From-SVN: r249585
Marc Glisse committed -
PR c++/81187 * doc/invoke.texi (-Wnoexcept-type): Fix name of option, from -Wnoexcept. From-SVN: r249584
Jonathan Wakely committed -
From-SVN: r249583
GCC Administrator committed
-
- 22 Jun, 2017 11 commits
-
-
Now that systemstack changes to the g0 stack, this check passes. Reviewed-on: https://go-review.googlesource.com/46460 From-SVN: r249578
Ian Lance Taylor committed -
The CgocallbackDone function calls dropm after it calls entersyscall, which means that dropm must not have any write barriers. Mark it accordingly. Reviewed-on: https://go-review.googlesource.com/46464 From-SVN: r249577
Ian Lance Taylor committed -
Use go:linkname to export the getm function. This makes it visible to runtime/testdata/testprogcgo/dropm_stub.go, which uses it as part of the TestEnsureDropM test in runtime/crash_cgo_test.go. That test is not run today, but it will be soon. Reviewed-on: https://go-review.googlesource.com/46462 From-SVN: r249576
Ian Lance Taylor committed -
Patch from Rainer Orth. Reviewed-on: https://go-review.googlesource.com/46459 From-SVN: r249575
Ian Lance Taylor committed -
gcc/ 2017-06-22 Matt Turner <mattst88@gmail.com> * config/i386/driver-i386.c (host_detect_local_cpu): Add Kaby Lake models to skylake case. Assume skylake for unknown models with clflushopt. gcc/testsuite/ 2017-06-22 Matt Turner <mattst88@gmail.com> * gcc.target/i386/builtin_target.c: Add Kaby Lake models to skylake check. libgcc/ 2017-06-22 Matt Turner <mattst88@gmail.com> * config/i386/cpuinfo.c (get_intel_cpu): Add Kaby Lake models to skylake case. From-SVN: r249574
Matt Turner committed -
builtins-3.c (vmulosh, [...]): Fix scan-assembler-times should check for word not half word instructions. gcc/testsuite/ChangeLog: 2017-06-22 Carl Love <cel@us.ibm.com> * gcc.target/powerpc/builtins-3.c (vmulosh, vmulouh, vmulesh, vmuleuh): Fix scan-assembler-times should check for word not half word instructions. From-SVN: r249572
Carl Love committed -
Reorder IDENTIFIER flags gcc/cp/ * cp-tree.h (enum cp_identifier_kind): New. (IDENTIFIER_KIND_BIT_0, IDENTIFIER_KIND_BIT_1, IDENTIFIER_KIND_BIT_2): New. (IDENTIFIER_MARKED): Move to TREE_LANG_FLAG_4. (IDENTIFIER_VIRTUAL_P, IDENTIFIER_REPO_CHOSEN): Add IDENTIFIER_CHECK. (C_IS_RESERVED_WORD): Replace with ... (IDENTIFIER_KEYWORD_P): ... this. (IDENTIFIER_CTOR_OR_DTOR_P): Replace with ... (IDENTIFIER_CDTOR_P): ... this. (IDENTIFIER_CTOR_P, IDENTIFIER_DTOR_P): New. (IDENTIFIER_OPNAME_P): Replace with ... (IDENTIFIER_ANY_OP_P): ... this. (IDENTIFIER_ASSIGN_OP_P): New. (IDENTIFIER_TYPENAME_P): Replace with ... (IDENTIFIER_CONV_OP_P): ... this. (NEW_DELETE_OPNAME_P): Replace with ... (IDENTIFIER_NEWDEL_OP_P): ... this. (DECL_CONV_FN_P, DECL_OVERLOADED_OPERATOR_P): Adjust. (get_identifier_kind_name, set_identifier_kind): Declare. * lex.c (get_identifier_kind_name, set_identifier_kind): New. (init_operators): Adjust to avoid keywords, use set_identifier_kind. Copy TYPE_EXPR slot. (init_reswords): Call set_identifier_kind. (unqualified_name_lookup_error): Adjust. * operators.def (TYPE_EXPR): Remove. * decl.c (struct predefined_identifier): Move into ... (initialize_predefined_identifiers): ... here. Call set_identifier_kind. (grokfndecl, check_var_type, grokdeclarator): Adjust. (grok_op_properties): Use IDENTIFIER_ANY_ASSIGN_OP to halve search space. Adjust. * call.c (name_as_c_string): Adjust. (build_new_method_call_1): Likewise. * cp-cilkplus.c (is_conversion_operator_function_decl_p): Likewise. * cxx-pretty-print.c (pp_cxx_unqualified_id): Adjust. * dump.c (cp_dump_tree): Adjust. * error.c (dump_decl_name): Adjust. * mangle.c (write_unqualified_id, write_member_name) write_expression): Adjust. (mangle_conv_op_name_for_type): Use set_identifier_kind. * name-lookup.c (do_class_using_decl): Adjust. (lookup_name_fuzzy, lookup_name_real_1): Likewise. * parser.c (cp_lexer_get_preprocessor_token) cp_parser_direct_declarator): Likewise. * pt.c (push_template_decl_real, tsubst_decl, tsubst_baselink) tsubst_copy, tsubst_copy_and_build): Adjust. * ptree.c (cxx_print_identifier): Print identifier kind. * search.c (lookup_field_r, lookup_member) lookup_fnfields_idx_nolazy): Adjust. * semantics.c (finish_id_expression): Adjust.. * typeck.c (cp_build_addr_expr_1): Adjust. From-SVN: r249571
Nathan Sidwell committed -
aarch64.c (aarch64_emit_probe_stack_range): Handle frame sizes that do not satisfy aarch64_uimm12_shift. * config/aarch64/aarch64.c (aarch64_emit_probe_stack_range): Handle frame sizes that do not satisfy aarch64_uimm12_shift. * gcc.c-torture/compile/stack-check-1.c: New test. From-SVN: r249566
Jeff Law committed -
In libgo system goroutines register themselves after they start. That means that there is a small race between the goroutine being seen by the scheduler and the scheduler knowing that the goroutine is a system goroutine. That in turn means that runtime.NumGoroutines can overestimate the number of goroutines at times. This patch fixes the overestimate by counting the number of system goroutines waiting to start, and pausing NumGoroutines until those goroutines have all registered. This is kind of a lot of mechanism for this not very important problem, but I couldn't think of a better approach. The test for this is TestNumGoroutine in runtime/proc_test.go. The test is not currently run, but it will be soon. Reviewed-on: https://go-review.googlesource.com/46457 From-SVN: r249565
Ian Lance Taylor committed -
Remove stale comment in code that accepts "go:nowritebarrier" pragma. Update comment for "go:nowritebarrierrec". Reviewed-on: https://go-review.googlesource.com/46416 From-SVN: r249564
Ian Lance Taylor committed -
* profile-count.h (apply_probability, apply_scale, probability_in): Fix checks for zero. From-SVN: r249563
Jan Hubicka committed
-