- 09 Nov, 2015 19 commits
-
-
While cmps and movs allow a segment override of the ds:esi source, the es:edi source/destination cannot be overriden. Simplify things in the backend for now by disallowing segments for string insns entirely. * config/i386/i386.c (ix86_check_no_addr_space): New. (decide_alg): Add have_as parameter. (alg_usable_p): Likewise; disable rep algorithms if set. (ix86_expand_set_or_movmem): Notice if either MEM has a non-default address space. (ix86_expand_strlen): Likewise. * config/i386/i386.md (strmov, strset): Likewise. (*strmovdi_rex_1): Use ix86_check_no_addr_space. (*strmovsi_1, *strmovqi_1, *rep_movdi_rex64, *rep_movsi, *rep_movqi, *strsetdi_rex_1, *strsetsi_1, *strsethi_1, *strsetqi_1, *rep_stosdi_rex64, *rep_stossi, *rep_stosqi, *cmpstrnqi_nz_1, *cmpstrnqi_1, *strlenqi_1): Likewise. From-SVN: r230002
Richard Henderson committed -
* config/i386/i386.md (*movabs<mode>_1): Print the full memory rtx. (*movabs<mode>_2): Likewise. From-SVN: r230001
Richard Henderson committed -
* dwarf2out.c (modified_type_die): Pass the address space number through TARGET_ADDR_SPACE_DEBUG to produce the dwarf address class. * target.def (TARGET_ADDR_SPACE_DEBUG): New. * targhooks.c (default_addr_space_debug): New. * targhooks.h (default_addr_space_debug): Declare. * doc/tm.texi.in (TARGET_ADDR_SPACE_DEBUG): Mark it. * doc/tm.texi: Rebuild. From-SVN: r230000
Richard Henderson committed -
* gimple.c (check_loadstore): Return false when 0 is a valid address. * fold-const.c (const_unop) [ADDR_SPACE_CONVERT_EXPR]: Do not fold null when 0 is valid in the source address space. * target.def (TARGET_ADDR_SPACE_ZERO_ADDRESS_VALID): New. * targhooks.c (default_addr_space_zero_address_valid): New. * targhooks.h (default_addr_space_zero_address_valid): Declare. * doc/tm.texi.in (TARGET_ADDR_SPACE_ZERO_ADDRESS_VALID): Mark it. * doc/tm.texi: Rebuild. From-SVN: r229999
Richard Henderson committed -
* cselib.c (add_mem_for_addr): Compare address spaces when matching memories. (cselib_lookup_mem): Likewise. * fold-const.c (operand_equal_p): Check address spaces of pointer types before checking integer constants. From-SVN: r229998
Richard Henderson committed -
PR tree-opt/66768 * tree-ssa-address.c (create_mem_ref_raw): Use a pointer of the correct type for the base. From-SVN: r229997
Richard Henderson committed -
[PATCH] Minor refactoring in tree-ssanames.c & freelists verifier * tree-into-ssa.c (names_to_release): No longer static. * tree-into-ssa.h (names_to_release): Declare. * tree-ssanames.c (verify_ssaname_freelists): New debug function. (release_free_names_and_compact_live_names): New function extracted from pass_release_ssa_names::execute. (pass_release_ssa_names::execute): Use it. Co-Authored-By: Nathan Sidwell <nathan@acm.org> From-SVN: r229995
Jeff Law committed -
2015-11-08 Steven g. Kargl <kargl@gcc.gnu.org> PR fortran/68053 * decl.c (add_init_expr_to_sym): Try to reduce initialization expression before testing for a constant value. 2015-11-08 Steven g. Kargl <kargl@gcc.gnu.org> PR fortran/68053 * gfortran.dg/pr68053.f90: New test. From-SVN: r229992
Steven G. Kargl committed -
Missed from last patch * config.in: Regenerate. From-SVN: r229991
Alan Modra committed -
* configure.ac: Check size of size_t. * configure: Regenerate. From-SVN: r229990
Alan Modra committed -
* obstack.c (_obstack_newchunk): Silence -Wc++compat warning. (_obstack_begin_worker): Likewise. Move assignment to h->chunk after alloc failure check. From-SVN: r229989
Alan Modra committed -
Using the standard gnulib obstack source requires importing quite a lot of other files from gnulib, and requires build changes. include/ * obstack.h (__attribute_pure__): Expand _GL_ATTRIBUTE_PURE. libiberty/ * obstack.c (__alignof__): Expand alignof_type from alignof.h. (obstack_exit_failure): Don't use exitfail.h. (_): Include libintl.h when HAVE_LIBINTL_H and nls enabled. Provide default. Don't include gettext.h. (_Noreturn): Define. * obstacks.texi: Adjust node references to external libc info files. From-SVN: r229988
Alan Modra committed -
This copies obstack.[ch] from gnulib, and updates the docs. The next patch should be applied if someone repeats the import at a later date. include/ * obstack.h: Import current gnulib file. libiberty/ * obstack.c: Import current gnulib file. * obstacks.texi: Updated doc, from glibc's manual/memory.texi. From-SVN: r229987
Alan Modra committed -
New obstack uses sensible types, size_t instead of int for length params. Since libsanitizer does not use prototypes from obstack.h to call the real functions, it's necessary to update the libsanitizer function declarations emitted by the INTERCEPTOR macro. * sanitizer_common/sanitizer_common_interceptors.inc: Update size params for _obstack_begin_1, _obstack_begin, _obstack_newchunk interceptors. * configure.ac: Substitute OBSTACK_DEFS. * asan/Makefile.am: Add OBSTACK_DEFS to DEFS. * tsan/Makefile.am: Likewise. * configure: Regenerate. * Makefile.in: Regenerate. * asan/Makefile.in: Regenerate. * interception/Makefile.in: Regenerate. * libbacktrace/Makefile.in: Regenerate. * lsan/Makefile.in: Regenerate. * sanitizer_common/Makefile.in: Regenerate. * tsan/Makefile.in: Regenerate. * ubsan/Makefile.in: Regenerate. From-SVN: r229986
Alan Modra committed -
Fixes a compile error with both old and new obstacks due to obstack_chunk_free having the wrong signature. Also, setting chunk size and alignment before obstack_init is pointless since they are overwritten. * vtv_malloc.cc (obstack_chunk_free): Correct param type. (__vtv_malloc_init): Use obstack_specify_allocation. From-SVN: r229985
Alan Modra committed -
New obstack.h casts obstack_next_free to (void *), resulting in it being a non-lvalue, and warnings on pointer arithmetic. gcc/ * gensupport.c (add_mnemonic_string): Make len param a size_t. (gen_mnemonic_setattr): Make "size" var a size_t. Use obstack_blank_fast to shrink obstack. Cast obstack_next_free return value. gcc/objc/ * objc-encoding.c (encode_aggregate_within): Cast obstack_next_free return value. From-SVN: r229984
Alan Modra committed -
The code mistakenly thinks any cond_jump has two successors. This is not true if both destinations are the same, as can happen with weird patterns as in the PR. PR rtl-optimization/68182 * gcc/bb-reorder.c (reorder_basic_blocks_simple): Treat a conditional branch with only one successor just like unconditional branches. From-SVN: r229983
Segher Boessenkool committed -
* tree-ssa-threadupdate.c (register_jump_thraed): Assert that a non-FSM path has no edges marked with EDGE_DFS_BACK. (ssa_redirect_edges): No longer call mark_loop_for_removal. (thread_single_edge, def_split_header_continue_p): Remove. (bb_ends_with_multiway_branch): Likewise. (thread_through_loop_header): Remove cases of threading from latch through the header. Simplify knowing we won't thread the latch. (thread_through_all_blocks): Simplify knowing that only the FSM threader needs to handle backedges. From-SVN: r229982
Jeff Law committed -
From-SVN: r229980
GCC Administrator committed
-
- 08 Nov, 2015 9 commits
-
-
From-SVN: r229968
Jan Hubicka committed -
2015-11-08 Joost VandeVondele <vondele@gcc.gnu.org> * gfortran.dg/PR67518.f90: move from here... * gfortran.dg/graphite/PR67518.f90: to here. * gfortran.dg/PR53852.f90: move from here... * gfortran.dg/graphite/PR53852.f90: to here. From-SVN: r229967
Joost VandeVondele committed -
From-SVN: r229965
Eric Botcazou committed -
gcc/ PR c++/67942 * cp/init.c (warn_placement_new_too_small): Convert integer operand of POINTER_PLUS_EXPR to ssize_t to determine its signed value. c-family/ * c.opt (Wplacement-new): Add a period to the end of a sentence. From-SVN: r229959
Martin Sebor committed -
gcc/fortran/ChangeLog: 2015-11-08 Andre Vehreschild <vehre@gcc.gnu.org> PR fortran/68218 * trans-array.c (gfc_array_init_size): Add gfc_evaluate_now() when array spec in allocate is a function call. gcc/testsuite/ChangeLog: 2015-11-08 Andre Vehreschild <vehre@gcc.gnu.org> PR fortran/68218 * gfortran.dg/allocate_with_arrayspec_1.f90: New test. From-SVN: r229956
Andre Vehreschild committed -
2015-11-08 Steven G. Kargl <kargl@gc.gnu.org> PR fortran/68224 * array.c (match_array_element_spec): Check of invalid NULL(). While here, fix nearby comments. 2015-11-08 Steven G. Kargl <kargl@gc.gnu.org> PR fortran/68224 * gfortran.dg/pr68224.f90: New test. From-SVN: r229955
Steven G. Kargl committed -
2015-11-08 Paul Thomas <pault@gcc.gnu.org> PR fortran/68196 * class.c (has_finalizer_component): Prevent infinite recursion through this function if the derived type and that of its component are the same. * trans-types.c (gfc_get_derived_type): Do the same for proc pointers by ignoring the explicit interface for the component. PR fortran/66465 * check.c (same_type_check): If either of the expressions is BT_PROCEDURE, use the typespec from the symbol, rather than the expression. 2015-11-08 Paul Thomas <pault@gcc.gnu.org> PR fortran/68196 * gfortran.dg/proc_ptr_47.f90: New test. PR fortran/66465 * gfortran.dg/pr66465.f90: New test. From-SVN: r229954
Paul Thomas committed -
Forgot to commit the new testcases: gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vqtbX.c From-SVN: r229946
Christophe Lyon committed -
From-SVN: r229944
GCC Administrator committed
-
- 07 Nov, 2015 12 commits
-
-
From-SVN: r229941
Eric Botcazou committed -
* gcc.dg/Wno-frame-address.c: Skip on hppa*-*-*. From-SVN: r229940
John David Anglin committed -
2015-11-07 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/68153 * check.c (gfc_check_reshape): Improve check for valid SHAPE argument. 2015-11-07 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/68153 * gfortran.dg/pr68153.f90: New test. From-SVN: r229939
Steven G. Kargl committed -
2015-11-07 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/68151 * match.c (match_case_selector): Check for invalid type. 2015-11-07 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/68151 * gfortran.dg/pr68151.f90: New test. From-SVN: r229938
Steven G. Kargl committed -
For x86, STC still gives better results for optimise-for-size than "simple" does. So use STC at -Os as well. PR rtl-optimization/67864 * common/config/i386/i386-common.c (ix86_option_optimization_table) <OPT_freorder_blocks_algorithm_>: Use REORDER_BLOCKS_ALGORITHM_STC at -Os and up. From-SVN: r229937
Segher Boessenkool committed -
libgcc/ChangeLog: 2015-11-07 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> * config/visium/lib2funcs.c (__set_trampoline_parity): Use __CHAR_BIT__ instead of BITS_PER_UNIT. * fixed-bit.h: Likewise. * fp-bit.h: Likewise. * libgcc2.c (__popcountSI2): Likewise. (__popcountDI2): Likewise. * libgcc2.h: Likewise. * libgcov.h: Likewise. libobjc/ChangeLog: 2015-11-07 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> PR libobjc/24775 * encoding.c (_darwin_rs6000_special_round_type_align): Use __CHAR_BIT__ instead of BITS_PER_UNIT. (objc_sizeof_type): Likewise. (objc_layout_structure): Likewise. (objc_layout_structure_next_member): Likewise. (objc_layout_finish_structure): Likewise. (objc_layout_structure_get_info): Likewise. From-SVN: r229936
Trevor Saunders committed -
* config/rs6000/atexit.c: New file. * config/rs6000/t-aix-cxa (LIB2ADDEH): Build atexit.c. * config/rs6000/libgcc-aix-cxa.ver (atexit): Add symbol to exports. * config/rs6000/cxa_finalize.c (catomic_compare_and_exchange_bool_acq): Negate return value. From-SVN: r229932
David Edelsohn committed -
The upcoming changes to use internal functions for things like sqrt caused a failure in gcc.dg/tm/20100610.c, because we were trying to get call flags from the null gimple_call_fn of an IFN_SQRT call. We've been making fairly heavy use of internal functions for a while now so I think this might be latent. Tested on x86_64-linux-gnu, aarch64-linux-gnu and arm-linux-gnueabi. gcc/ * trans-mem.c (is_tm_pure_call): Use gimple_call_flags for internal functions. From-SVN: r229925
Richard Sandiford committed -
I was confused at first why tree-core.h was undefining DEF_BUILTIN_CHKP before defining it, then undefining it again after including builtins.def. This is because builtins.def provides a default definition of DEF_BUILTIN_CHKP, but leaves it up to the caller to undefine it where necessary. Similarly to the previous internal-fn.def patch, it seems more obvious for builtins.def to #undef things unconditionally. One argument might have been that keeping preprocessor stuff out of the .def files makes it easier for non-cpp parsers. In practice though we already have #ifs and multiline #defines, so single-line #undefs should be easy in comparison. Tested on x86_64-linux-gnu, aarch64-linux-gnu and arm-linux-gnueabi. gcc/ada/ * gcc-interface/utils.c: Don't undef DEF_BUILTIN. gcc/c-family/ * c-common.c: Don't undef DEF_BUILTIN. gcc/jit/ * jit-builtins.c: Don't undef DEF_BUILTIN. gcc/lto/ * lto-lang.c: Don't undef DEF_BUILTIN. gcc/ * builtins.def: #undef DEF_BUILTIN and DEF_BUILTIN_CHKP * builtins.c, genmatch.c, tree-core.h: Don't undef them here. From-SVN: r229924
Richard Sandiford committed -
In practice the definition of DEF_INTERNAL_FN is never reused after including internal-fn.def, so we might as well #undef it there. This becomes more obvious with a later patch that adds other DEF_INTERNAL_* directives, such as DEF_INTERNAL_OPTAB_FN. If the includer doesn't care about the information carried in these new directives, it can simply leave the macro undefined and internals.def will provide a definition that forwards to DEF_INTERNAL_FN. It doesn't make much sense for includers to have to #undef macros that are defined by internals.def and it seems overly complicated to get internals.def to undef macros only in the cases where it provided a definition. Instead I went with the approach of #undeffing all the DEF_INTERNAL_* macros unconditionally. Tested on x86_64-linux-gnu, aarch64-linux-gnu and arm-linux-gnueabi. gcc/ * internal-fn.def: #undef DEF_INTERNAL_FN at the end. * internal-fn.c: Don't undef it here. * tree-core.h: Likewise. From-SVN: r229923
Richard Sandiford committed -
This patch moves folds that deal with constant string arguments and return a constant integer or floating-point value. For example, it handles strcmp ("foo", "bar") but not strstr ("foobar", "bar"), which wouldn't currently be accepted by the gimple folders. The builtins.c folding for strlen (via c_strlen) is a bit more general than what the fold-const-call.c code does (and more general than we need for the gimple folders). I've therefore left it as-is, even though it partially duplicates the new code. Tested on x86_64-linux-gnu, aarch64-linux-gnu and arm-linux-gnueabi. gcc/ * builtins.c (fold_builtin_nan): Delete. (fold_builtin_memcmp): Remove case where both arguments are constant. (fold_builtin_strcmp, fold_builtin_strncmp): Likewise. (fold_builtin_strspn, fold_builtin_strcspn): Likewise. (fold_builtin_1): Remove BUILT_IN_NAN* handling. * fold-const-call.c: Include fold-const.h. (host_size_t_cst_p): New function. (build_cmp_result, fold_const_builtin_nan): Likewise. (fold_const_call_1): New function, split out from... (fold_const_call): ...here (for all three interfaces). Handle constant nan, nans, strlen, strcmp, strncmp, strspn and strcspn. From-SVN: r229922
Richard Sandiford committed -
The only folds left in builtins.c were for constants, so we can remove the builtins.c handling entirely. Tested on x86_64-linux-gnu, aarch64-linux-gnu and arm-linux-gnueabi. gcc/ * builtins.c (fold_builtin_bitop, fold_builtin_bswap): Delete. (fold_builtin_1): Don't call them. * fold-const-call.c: Include tm.h. (fold_const_call_ss): New variant for integer-to-integer folds. (fold_const_call): Call it. From-SVN: r229921
Richard Sandiford committed
-