- 30 Jul, 2018 7 commits
-
-
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 -
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, 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 8 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 -
level is lower than 2 or Os From-SVN: r263028
Qing Zhao committed -
From-SVN: r263027
GCC Administrator committed
-
- 26 Jul, 2018 7 commits
-
-
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 -
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 -
2018-07-26 Martin Liska <mliska@suse.cz> PR lto/86548 * lto-wrapper.c: Add linker_output as prefix for ltrans_output_file. 2018-07-26 Martin Liska <mliska@suse.cz> PR lto/86548 * libiberty.h (make_temp_file_with_prefix): New function. 2018-07-26 Martin Liska <mliska@suse.cz> PR lto/86548 * make-temp-file.c (TEMP_FILE): Remove leading 'cc'. (make_temp_file): Call make_temp_file_with_prefix with first argument set to NULL. (make_temp_file_with_prefix): Support also prefix. From-SVN: r262999
Martin Liska committed -
The current code in reg_nonzero_bits_for_combine allows using the reg_stat info when last_set_mode is a different integer mode. This is completely wrong for non-pseudos. For example, as in the PR, a value in a DImode hard register is set by eight writes to its constituent QImode parts. The value written to the DImode is not the same as that written to the lowest-numbered QImode! PR rtl-optimization/85805 * combine.c (reg_nonzero_bits_for_combine): Only use the last set value for hard registers if that was written in the same mode. From-SVN: r262994
Segher Boessenkool committed -
2018-07-26 Martin Liska <mliska@suse.cz> PR gcov-profile/86536 * gcov.c (format_gcov): Use printf format %.*f directly and do not handle special values. 2018-07-26 Martin Liska <mliska@suse.cz> PR gcov-profile/86536 * gcc.misc-tests/gcov-pr86536.c: New test. From-SVN: r262991
Martin Liska committed -
From-SVN: r262988
GCC Administrator committed
-
- 25 Jul, 2018 14 commits
-
-
From-SVN: r262982
Joseph Myers committed -
gcc/testsuite/ChangeLog: * gcc.c-torture/execute/builtins/strnlen.c: Remove DejaGnu directives ignored by the test harness. From-SVN: r262981
Martin Sebor 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-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-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-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. Co-Authored-By: Thomas Koenig <tkoenig@gcc.gnu.org> From-SVN: r262978
Nicolas Koenig committed -
cp-tree.h (enum cp_tree_index): Add CPTI_{ABI_TAG,ALIGNED,BEGIN,END,GET,TUPLE_{ELEMENT,SIZE}}_IDENTIFIER and... * cp-tree.h (enum cp_tree_index): Add CPTI_{ABI_TAG,ALIGNED,BEGIN,END,GET,TUPLE_{ELEMENT,SIZE}}_IDENTIFIER and CPTI_{GNU,TYPE,VALUE,FUN,CLOSURE}_IDENTIFIER. (abi_tag_identifier, aligned_identifier, begin_identifier, end_identifier, get__identifier, gnu_identifier, tuple_element_identifier, tuple_size_identifier, type_identifier, value_identifier, fun_identifier, closure_identifier): Define. * decl.c (initialize_predefined_identifiers): Initialize the above identifiers. (get_tuple_size): Use tuple_size_identifier instead of get_identifier ("tuple_size") and value_identifier instead of get_identifier ("value"). (get_tuple_element_type): Use tuple_element_identifier instead of get_identifier ("tuple_element") and type_identifier instead of get_identifier ("type"). (get_tuple_decomp_init): Use get__identifier instead of get_identifier ("get"). * lambda.c (maybe_add_lambda_conv_op): Use fun_identifier instead of get_identifier ("_FUN"). * parser.c (cp_parser_lambda_declarator_opt): Use closure_identifier instead of get_identifier ("__closure"). (cp_parser_std_attribute): Use gnu_identifier instead of get_identifier ("gnu"). (cp_parser_std_attribute_spec): Likewise. Use aligned_identifier instead of get_identifier ("aligned"). * class.c (check_abi_tags, inherit_targ_abi_tags): Use abi_tag_identifier instead of get_identifier ("abi_tag"). From-SVN: r262976
Jakub Jelinek committed -
PR c++/85515 * cp-tree.h (enum cp_tree_index): Add CPTI_FOR_{RANGE,BEGIN,END}{,_}_IDENTIFIER. (for_range__identifier, for_begin__identifier, for_end__identifier, for_range_identifier, for_begin_identifier, for_end_identifier): Define. * decl.c (initialize_predefined_identifiers): Initialize for_{range,begin,end}{,_}_identifier. * parser.c (build_range_temp): Use for_range__identifier instead of get_identifier ("__for_range"). (cp_convert_range_for): Use for_begin__identifier and for_end__identifier instead of get_identifier ("__for_begin") and get_identifier ("__for_end"). * semantics.c (finish_for_stmt): Rename "__for_{range,begin,end} " local symbols to "__for_{range,begin,end}". * g++.dg/pr85515-2.C: Add expected dg-error. * g++.dg/cpp0x/range-for36.C: New test. From-SVN: r262975
Jakub Jelinek committed -
Update the list of default optimizations used for size compilations. gcc/ 2018-07-10 Claudiu Zissulescu <claziss@synopsys.com> * common/config/arc/arc-common.c (arc_option_optimization_table): Update default optimizations for size. From-SVN: r262973
Claudiu Zissulescu committed -
gcc/po: * gcc.pot: Regenerate. libcpp/po: * cpplib.pot: Regenerate. From-SVN: r262972
Joseph Myers committed -
Improve selection of short instruction for fp-moves. gcc/ 2018-05-17 Claudiu Zissulescu <claziss@synopsys.com> * config/arc/arc.md (movsf_insn): Add short instruction selection. * config/arc/constraints.md (CfZ): New constraint. * config/arc/fpu.md (addssf3_fpu): Use CfZ constraint. (subsf3_fpu): Likewise. (cmpsf_fpu): Likewise. (cmpsf_fpu_uneq): Likewise. From-SVN: r262971
Claudiu Zissulescu committed -
gcc/ 2018-05-09 Claudiu Zissulescu <claziss@synopsys.com> * config/arc/arc.c (compact_memory_operand_p): Check for uncached accesses as well. (arc_is_uncached_mem_p): uncached applies to both the variable and the pointer. testsuite/ 2018-05-09 Claudiu Zissulescu <claziss@synopsys.com> * gcc.target/arc/uncached-1.c: New test. * gcc.target/arc/uncached-2.c: Likewise. From-SVN: r262970
Claudiu Zissulescu committed -
gcc/ Claudiu Zissulescu <claziss@synopsys.com> * config/arc/arc.h (ADDITIONAL_REGISTER_NAMES): Add additional register names. From-SVN: r262969
Claudiu Zissulescu committed -
gcc/ChangeLog: * optinfo-emit-json.cc (class optrecord_json_writer): Convert field "m_scopes" from vec to auto_vec. From-SVN: r262967
David Malcolm committed -
2018-07-25 Martin Liska <mliska@suse.cz> * config/powerpcspe/powerpcspe-protos.h (rs6000_loop_align): Fix return type. From-SVN: r262966
Martin Liska committed -
2018-07-25 Richard Biener <rguenther@suse.de> PR debug/86654 * dwarf2out.c (dwarf2out_decl): Do not handle nested functions special wrt context_die late. (gen_subprogram_die): Re-use DIEs in local scope. From-SVN: r262965
Richard Biener committed -
From-SVN: r262962
Richard Sandiford committed
-