- 31 Jul, 2018 5 commits
-
-
2018-07-31 Olivier Hainque <hainque@adacore.com> * gcc.c (handle_spec_function): Accept a soft_matched_part argument, as do_spec_1. Pass it down to ... (eval_spec_function): Accept a soft_matched_part argument, and pass it down to ... (do_spec_2): Accept a soft_matched_part argument, and pass it down to do_spec_1. (do_spec_1): Pass soft_matched_part to handle_spec_function. (handle_braces): Update call to handle_spec_function. (driver::set_up_specs): Update calls to do_spec_2. (compare_debug_dump_opt_spec_function): Likewise. (compare_debug_self_opt_spec_function): Likewise. From-SVN: r263087
Olivier Hainque committed -
2018-06-07 Olivier Hainque <hainque@adacore.com> * common.opt (nolibc): New option. * doc/invoke.texi (Link Options): Document it. * gcc.c (LINK_GCC_C_SEQUENCE_SPEC): Honor nolibc. * config/alpha/linux.h: Likewise. * config/arc/elf.h: Likewise. * config/arm/uclinux-elf.h: Likewise. * config/arm/unknown-elf.h: Likewise. * config/avr/avrlibc.h: Likewise. * config/bfin/bfin.h: Likewise. * config/bfin/linux.h: Likewise. * config/bfin/uclinux.h: Likewise. * config/darwin.h: Likewise. * config/darwin10.h: Likewise. * config/darwin12.h: Likewise. * config/gnu-user.h: Likewise. * config/lm32/uclinux-elf.h: Likewise. * config/pa/pa-hpux11.h: Likewise. * config/pa/pa64-hpux.h: Likewise. * config/sparc/sparc.h: Likewise. From-SVN: r263083
Olivier Hainque committed -
2018-07-31 Andre Vieira <andre.simoesdiasvieira@arm.com> Revert 'AsyncI/O patch committed' 2018-07-25 Nicolas Koenig <koenigni@gcc.gnu.org> Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/25829 * gfortran.texi: Add description of asynchronous I/O. * trans-decl.c (gfc_finish_var_decl): Treat asynchronous variables as volatile. * trans-io.c (gfc_build_io_library_fndecls): Rename st_wait to st_wait_async and change argument spec from ".X" to ".w". (gfc_trans_wait): Pass ID argument via reference. 2018-07-31 Andre Vieira <andre.simoesdiasvieira@arm.com> Revert 'AsyncI/O patch committed' 2018-07-25 Nicolas Koenig <koenigni@gcc.gnu.org> Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/25829 * gfortran.dg/f2003_inquire_1.f03: Add write statement. * gfortran.dg/f2003_io_1.f03: Add wait statement. 2018-07-31 Andre Vieira <andre.simoesdiasvieira@arm.com> Revert 'AsyncI/O patch committed' 2018-07-25 Nicolas Koenig <koenigni@gcc.gnu.org> Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/25829 * Makefile.am: Add async.c to gfor_io_src. Add async.h to gfor_io_headers. * Makefile.in: Regenerated. * gfortran.map: Add _gfortran_st_wait_async. * io/async.c: New file. * io/async.h: New file. * io/close.c: Include async.h. (st_close): Call async_wait for an asynchronous unit. * io/file_pos.c (st_backspace): Likewise. (st_endfile): Likewise. (st_rewind): Likewise. (st_flush): Likewise. * io/inquire.c: Add handling for asynchronous PENDING and ID arguments. * io/io.h (st_parameter_dt): Add async bit. (st_parameter_wait): Correct. (gfc_unit): Add au pointer. (st_wait_async): Add prototype. (transfer_array_inner): Likewise. (st_write_done_worker): Likewise. * io/open.c: Include async.h. (new_unit): Initialize asynchronous unit. * io/transfer.c (async_opt): New struct. (wrap_scalar_transfer): New function. (transfer_integer): Call wrap_scalar_transfer to do the work. (transfer_real): Likewise. (transfer_real_write): Likewise. (transfer_character): Likewise. (transfer_character_wide): Likewise. (transfer_complex): Likewise. (transfer_array_inner): New function. (transfer_array): Call transfer_array_inner. (transfer_derived): Call wrap_scalar_transfer. (data_transfer_init): Check for asynchronous I/O. Perform a wait operation on any pending asynchronous I/O if the data transfer is synchronous. Copy PDT and enqueue thread for data transfer. (st_read_done_worker): New function. (st_read_done): Enqueue transfer or call st_read_done_worker. (st_write_done_worker): New function. (st_write_done): Enqueue transfer or call st_read_done_worker. (st_wait): Document as no-op for compatibility reasons. (st_wait_async): New function. * io/unit.c (insert_unit): Use macros LOCK, UNLOCK and TRYLOCK; add NOTE where necessary. (get_gfc_unit): Likewise. (init_units): Likewise. (close_unit_1): Likewise. Call async_close if asynchronous. (close_unit): Use macros LOCK and UNLOCK. (finish_last_advance_record): Likewise. (newunit_alloc): Likewise. * io/unix.c (find_file): Likewise. (flush_all_units_1): Likewise. (flush_all_units): Likewise. * libgfortran.h (generate_error_common): Add prototype. * runtime/error.c: Include io.h and async.h. (generate_error_common): New function. 2018-07-31 Andre Vieira <andre.simoesdiasvieira@arm.com> Revert 'AsyncI/O patch committed'. 2018-07-25 Nicolas Koenig <koenigni@gcc.gnu.org> Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/25829 * testsuite/libgomp.fortran/async_io_1.f90: New test. * testsuite/libgomp.fortran/async_io_2.f90: New test. * testsuite/libgomp.fortran/async_io_3.f90: New test. * testsuite/libgomp.fortran/async_io_4.f90: New test. * testsuite/libgomp.fortran/async_io_5.f90: New test. * testsuite/libgomp.fortran/async_io_6.f90: New test. * testsuite/libgomp.fortran/async_io_7.f90: New test. From-SVN: r263082
Andre Vieira committed -
So the value can be used in places where an absolute path is expected. 2018-07-31 Olivier Hainque <hainque@adacore.com> * gcc.c (getenv_spec_function): Prepend '/' to value for allowed undefined variables. From-SVN: r263081
Olivier Hainque committed -
From-SVN: r263080
GCC Administrator committed
-
- 30 Jul, 2018 16 commits
-
-
In arm_block_set_aligned_vect 8-bit constants are generated as zero- extended const_ints, not sign-extended as required. Fix that. PR target/86640 * config/arm/arm.c (arm_block_set_aligned_vect): Use gen_int_mode instead of GEN_INT. From-SVN: r263075
Segher Boessenkool committed -
Implement the proposed resolution from LWG 1052, which also resolves DR 2118 by avoiding taking the address in the first place. PR libstdc++/86734 * include/bits/stl_iterator.h (reverse_iterator::operator->): Call _S_to_pointer (LWG 1052, LWG 2118). (reverse_iterator::_S_to_pointer): Define overloaded helper functions. * testsuite/24_iterators/reverse_iterator/dr1052.cc: New test. * testsuite/24_iterators/reverse_iterator/dr2188.cc: New test. From-SVN: r263074
Jonathan Wakely committed -
20_util/memory_resource/2.cc FAILs on AIX 7.2.0.0, because aligned_alloc incorrectly requires the alignment to be a multiple of sizeof(void*). This adds a workaround to the operator new overload taking an alignment value, to increase the alignment (and size) if needed. * libsupc++/new_opa.cc (operator new(size_t, align_val_t)): Add workaround for aligned_alloc bug on AIX. * testsuite/18_support/new_aligned.cc: New test. From-SVN: r263073
Jonathan Wakely committed -
gcc/testsuite/ PR rtl-optimization/85160 * gcc.target/powerpc/combine-2-2.c: New testcase. From-SVN: r263072
Segher Boessenkool committed -
From-SVN: r263070
Joseph Myers committed -
2018-07-30 Tom Tromey <tom@tromey.com> * cplus-dem.c (remember_Btype): Don't call memcpy with LEN==0. From-SVN: r263069
Tom Tromey committed -
2018-07-30 Bernd Edlinger <bernd.edlinger@hotmail.de> * tree-ssa-forwprop.c (simplify_builtin_call): Don't create a not NUL terminated string literal. From-SVN: r263068
Bernd Edlinger committed -
This patch allows combine to combine two insns into two. This helps in many cases, by reducing instruction path length, and also allowing further combinations to happen. PR85160 is a typical example of code that it can improve. This patch does not allow such combinations if either of the original instructions was a simple move instruction. In those cases combining the two instructions increases register pressure without improving the code. With this move test register pressure does no longer increase noticably as far as I can tell. (At first I also didn't allow either of the resulting insns to be a move instruction. But that is actually a very good thing to have, as should have been obvious). PR rtl-optimization/85160 * combine.c (is_just_move): New function. (try_combine): Allow combining two instructions into two if neither of the original instructions was a move. From-SVN: r263067
Segher Boessenkool committed -
2018-07-30 Christophe Lyon <christophe.lyon@linaro.org> * config/arm/ieee754-df.S: Fix comment for code working on architectures >= 4. * config/arm/ieee754-sf.S: Likewise. From-SVN: r263066
Christophe Lyon committed -
PR target/86673 * doc/extend.texi (Global Register Variables): Discourage use of type qualifiers. (Local Register Variables): Likewise. From-SVN: r263065
Alexander Monakov committed -
In r262961 I only updated the out-of-line copy of ceil_log2. This patch applies the same change to the other (inline) one. 2018-07-30 Richard Sandiford <richard.sandiford@arm.com> gcc/ PR tree-optimization/86506 * hwint.h (ceil_log2): Resync with hwint.c implementation. From-SVN: r263064
Richard Sandiford committed -
The idea behind the rclass loop in spill_hard_reg_in_range() seems to be: find a hard_regno, which in general conflicts with reload regno, but does not do so between `from` and `to`, and then do the live range splitting based on this information. To check the absence of conflicts, we make use of insn_bitmap, which does not contain insns which clobber the hard_regno. gcc/ChangeLog: 2018-07-30 Ilya Leoshkevich <iii@linux.ibm.com> PR target/86547 * lra-constraints.c (spill_hard_reg_in_range): When selecting the hard_regno, make sure no insn between `from` and `to` clobbers it. From-SVN: r263063
Ilya Leoshkevich committed -
Currently parallel-loop-1.c fails at -O0 on a Quadro M1200, because one of the kernel launch configurations exceeds the resources available in the device, due to the default dimensions chosen by the runtime. This patch fixes that by taking the per-function max_threads_per_block into account when using the default dimensions. 2018-07-30 Tom de Vries <tdevries@suse.de> * plugin/plugin-nvptx.c (MIN, MAX): Redefine. (nvptx_exec): Ensure worker and vector default dims don't exceed targ_fn->max_threads_per_block. From-SVN: r263062
Tom de Vries committed -
The default dimensions are calculated using per-device properties, but initialized once and used on all devices. This patch fixes this problem by introducing per-device default dimensions. 2018-07-30 Tom de Vries <tdevries@suse.de> * plugin/plugin-nvptx.c (struct ptx_device): Add default_dims field. (nvptx_open_device): Init default_dims for device. (nvptx_exec): Use default_dims from device. From-SVN: r263061
Tom de Vries committed -
Currently, if the user doesn't specify the number of workers for an openacc region, the compiler hardcodes it to a default value. This patch removes this functionality, such that the libgomp runtime can decide on a default value. 2018-07-30 Cesar Philippidis <cesar@codesourcery.com> Tom de Vries <tdevries@suse.de> * config/nvptx/nvptx.c (PTX_GANG_DEFAULT): Rename to ... (PTX_DEFAULT_RUNTIME_DIM): ... this. (nvptx_goacc_validate_dims): Set default worker and gang dims to PTX_DEFAULT_RUNTIME_DIM. (nvptx_dim_limit): Ignore GOMP_DIM_WORKER. Co-Authored-By: Tom de Vries <tdevries@suse.de> From-SVN: r263060
Cesar Philippidis committed -
From-SVN: r263059
GCC Administrator committed
-
- 29 Jul, 2018 2 commits
-
-
* config/pa/pa.c (pa_output_addr_vec): Align address table. * config/pa/pa.h (JUMP_TABLES_IN_TEXT_SECTION): Revise comment. * config/pa/pa32-linux.h (JUMP_TABLES_IN_TEXT_SECTION): Define. From-SVN: r263051
John David Anglin committed -
From-SVN: r263050
GCC Administrator committed
-
- 28 Jul, 2018 2 commits
-
-
This makes it easier to compare cp_printer with gcc_cxxdiag_char_table in c-format.c. No functional change intended. gcc/cp/ChangeLog: * error.c (cp_printer): In the leading comment, move "%H" and "%I" into alphabetical order, and add missing "%G" and "%K". Within the switch statement, move cases 'G', 'H', 'I' and 'K' so that the cases are in alphabetical order. From-SVN: r263046
David Malcolm committed -
From-SVN: r263045
GCC Administrator committed
-
- 27 Jul, 2018 9 commits
-
-
2018-07-27 Michael Meissner <meissner@linux.ibm.com> * config/rs6000/constraints.md (wG constraint): Delete, no longer used. * config/rs6000/predicates.md (p9_fusion_reg_operand): Rename predicate to reflect toc fusion has been deleted. (toc_fusion_mem_raw): Delete, no longer used. (toc_fusion_mem_wrapped): Likewise. * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Delete toc fusion mask bit. * config/rs6000/rs6000-protos.h (fusion_wrap_memory_address): Delete, no longer used. * config/rs6000/rs6000.c (struct rs6000_reg_addr): Delete fields meant to be used for toc fusion. (rs6000_debug_print_mode): Delete toc fusion debugging. (rs6000_debug_reg_global): Likewise. (rs6000_init_hard_regno_mode_ok): Delete setting up fields for toc fusion and secondary reload support that were never used. (rs6000_option_override_internal): Delete TOC fusion, that was only partially defined, and it did not work unless you also used the -mcmodel= switch. (rs6000_legitimate_address_p): Delete TOC fusion support. (rs6000_opt_masks): Likewise. (fusion_wrap_memory_address): Delete function, no longer used. (fusion_split_address); Delete TOC fusion support. * config/rs6000/rs6000.h (TARGET_TOC_FUSION_INT): Delete, no longer used with toc fusion being deleted. (TARGET_TOC_FUSION_FP): Likewise. * config/rs6000/rs6000.md (UNSPEC_FUSION_ADDIS): Delete TOC fusion UNSPEC. (toc fusion spliter): Delete TOC fusion support. (toc_fusionload_<mode>): Likewise. (toc_fusionload_di): Likewise. (fusion_gpr_load_<mode>): Delete generator function, this insn no longer needs to be named. Rename predicate to delete TOC fusion. (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_load): Likewise. (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_store): Likewise. (fusion_vsx_<P:mode>_<GPR_FUSION:mode>_load): Likewise. (fusion_vsx_<P:mode>_<GPR_FUSION:mode>_store): Likewise. (p9 fusion peephole2s): Rename predicate to delete TOC fusion. From-SVN: r263039
Michael Meissner committed -
* be.po, da.po, de.po, el.po, es.po, fi.po, fr.po, hr.po, id.po, ja.po, nl.po, ru.po, sr.po, sv.po, tr.po, uk.po, vi.po, zh_CN.po, zh_TW.po: Update. From-SVN: r263036
Joseph Myers committed -
When writing stack frames to the pprof CPU profile machinery, it is very important to insure that the frames emitted do not contain any frames corresponding to artifacts of the profiling process itself (signal handlers, sigprof, etc). This patch changes runtime.sigprof to strip out those frames from the raw stack generated by "runtime.callers". Fixes golang/go#26595. Reviewed-on: https://go-review.googlesource.com/126175 From-SVN: r263035
Ian Lance Taylor committed -
extend.texi (Basic PowerPC Built-in Functions Available on ISA 2.05): Replace __uint128_t with __uint128 and __int128_t with __int128 in built-in... gcc/ChangeLog: 2018-07-27 Kelvin Nilsen <kelvin@gcc.gnu.org> * doc/extend.texi (Basic PowerPC Built-in Functions Available on ISA 2.05): Replace __uint128_t with __uint128 and __int128_t with __int128 in built-in function prototypes. (PowerPC AltiVec Built-in Functions on ISA 2.07): Likewise. (PowerPC AltiVec Built-in Functions on ISA 3.0): Likewise. From-SVN: r263033
Kelvin Nilsen committed -
gcc/ChangeLog: PR tree-optimization/86696 * tree-ssa-strlen.c (get_min_string_length): Handle all integer types, including enums. (handle_char_store): Be prepared for the above function to fail. gcc/testsuite/ChangeLog: PR tree-optimization/86696 * gcc.dg/pr86696.C: New test. From-SVN: r263032
Martin Sebor committed -
gcc/testsuite/ChangeLog: PR tree-optimization/86636 * gcc.c-torture/compile/pr86636.c: Add dg-do compile. Add dg-require-effective-target pthread. From-SVN: r263031
David Malcolm committed -
CET kernel has been changed to place a restore token on shadow stack for signal handler to enhance security. It is usually transparent to user programs since kernel will pop the restore token when signal handler returns. But when an exception is thrown from a signal handler, now we need to remove _Unwind_Frames_Increment to pop the the restore token from shadow stack. Otherwise, we get FAIL: g++.dg/torture/pr85334.C -O0 execution test FAIL: g++.dg/torture/pr85334.C -O1 execution test FAIL: g++.dg/torture/pr85334.C -O2 execution test FAIL: g++.dg/torture/pr85334.C -O3 -g execution test FAIL: g++.dg/torture/pr85334.C -Os execution test FAIL: g++.dg/torture/pr85334.C -O2 -flto -fno-use-linker-plugin -flto-partition=none execution test PR libgcc/85334 * config/i386/shadow-stack-unwind.h (_Unwind_Frames_Increment): Removed. From-SVN: r263030
H.J. Lu committed -
level is lower than 2 or Os From-SVN: r263028
Qing Zhao committed -
From-SVN: r263027
GCC Administrator committed
-
- 26 Jul, 2018 6 commits
-
-
From-SVN: r263022
Marek Polacek committed -
PR target/86612 * gcc.target/powerpc/pr58673-2.c: Call strdup. From-SVN: r263020
Pat Haugen committed -
PR tree-optimization/86043 - strlen after memcpy partially overwriting a string not optimized PR tree-optimization/86042 - missing strlen optimization after second strcpy gcc/ChangeLog: PR tree-optimization/86043 PR tree-optimization/86042 * tree-ssa-strlen.c (handle_builtin_memcpy): Handle strict overlaps. (get_string_cst_length): Rename... (get_min_string_length): ...to this. Add argument. (handle_char_store): Extend to handle multi-character stores by MEM_REF. * tree.c (initializer_zerop): Use new argument. Handle MEM_REF. * tree.h (initializer_zerop): Add argument. gcc/testsuite/ChangeLog: PR tree-optimization/86043 PR tree-optimization/86042 * gcc/testsuite/gcc.dg/attr-nonstring-2.c: Xfail test cases due to pr86688. * gcc.dg/strlenopt-44.c: New test. From-SVN: r263018
Martin Sebor committed -
From-SVN: r263016
Marek Polacek committed -
PR testsuite/86660 * testsuite/libgomp.c++/for-15.C (results): Include it in omp declare target region. (main): Use map (always, tofrom: results) instead of map (tofrom: results). From-SVN: r263011
Jakub Jelinek committed -
PR middle-end/86660 * omp-low.c (scan_sharing_clauses): Don't ignore map clauses for declare target to variables if they have always,{to,from,tofrom} map kinds. * testsuite/libgomp.c/pr86660.c: New test. From-SVN: r263010
Jakub Jelinek committed
-