summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Update gcc.dg/stack-layout-dynamic-1.chjl/pr81769/gcc-7-branchuros2017-09-051-4/+4
| | | | | | | | PR target/81313 * gcc.dg/stack-layout-dynamic-1.c (bar): Add 4 additional integer argumets to bypass x86_64 outgoing args optimization. (cherry picked from commit ac2f5a408fa8768a0936b256f5cd7e0fe9f3b963)
* i386: Avoid stack realignment if possiblehjl2017-09-055-50/+136
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ix86_finalize_stack_frame_flags has been extended to eliminate frame pointer when the new stack frame isn't needed with and without -maccumulate-outgoing-args as well as -fomit-frame-pointer. Since stack access with larger alignment may be optimized out, to decide if stack realignment is needed, we need to not only check for stack frame access, but also verify the alignment of stack frame access. Since alignment of memory access via arg_pointer is set up by caller, not by callee, we should find the maximum stack alignment from the stack frame access instructions via stack pointer and frame pointrer to avoid stack realignment when stack alignment needed is less than incoming stack boundary. gcc/ PR target/59501 PR target/81624 PR target/81769 * config/i386/i386.c (ix86_finalize_stack_realign_flags): Don't realign stack if stack alignment needed is less than incoming stack boundary. gcc/testsuite/ PR target/59501 PR target/81624 PR target/81769 * gcc.target/i386/pr59501-4a.c: Remove xfail. * gcc.target/i386/pr81769-1a.c: New test. * gcc.target/i386/pr81769-1b.c: Likewise. * gcc.target/i386/pr81769-2.c: Likewise. (cherry picked from commit d960aadf72c323db640bf2ba3e90621eab92cb26)
* x86: Use DRAP only if there are outgoing arguments on stackH.J. Lu2017-09-057-2/+79
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since DRAP is needed only if there are outgoing arguments on stack, we should track outgoing arguments on stack and avoid setting need_drap to true when there are no outgoing arguments on stack. gcc/ PR target/81313 * config/i386/i386.c (ix86_function_arg_advance): Set outgoing_args_on_stack to true if there are outgoing arguments on stack. (ix86_function_arg): Likewise. (ix86_get_drap_rtx): Use DRAP only if there are outgoing arguments on stack and ACCUMULATE_OUTGOING_ARGS is false. * config/i386/i386.h (machine_function): Add outgoing_args_on_stack. gcc/testsuite/ PR target/81313 * gcc.target/i386/pr81313-1.c: New test. * gcc.target/i386/pr81313-2.c: Likewise. * gcc.target/i386/pr81313-3.c: Likewise. * gcc.target/i386/pr81313-4.c: Likewise. * gcc.target/i386/pr81313-5.c: Likewise. (cherry picked from commit 84066338f533756496dc8ce09726fe8dad8b0cf5)
* i386: Replace frame pointer with stack pointer in debug insnsH.J. Lu2017-09-051-0/+35
| | | | | | | | | | | | | | | | | | | | | | | | | When we eliminate frame pointer, we should also replace frame pointer with stack pointer - UNITS_PER_WORD in debug insns. This patch fixed: FAIL: gcc.dg/guality/pr58791-5.c -Os line pr58791-5.c:20 b1 == 9 FAIL: gcc.dg/guality/pr58791-5.c -Os line pr58791-5.c:20 b2 == 73 FAIL: gcc.dg/guality/pr58791-5.c -Os line pr58791-5.c:20 b3 == 585 FAIL: gcc.dg/guality/pr58791-5.c -Os line pr58791-5.c:20 b4 == 4681 FAIL: gcc.dg/guality/pr59776.c -Os line pr59776.c:17 s1.f == 5.0 FAIL: gcc.dg/guality/pr59776.c -Os line pr59776.c:17 s1.g == 6.0 FAIL: gcc.dg/guality/pr59776.c -Os line pr59776.c:17 s2.g == 6.0 FAIL: gcc.dg/guality/pr59776.c -Os line pr59776.c:20 s1.f == 5.0 FAIL: gcc.dg/guality/pr59776.c -Os line pr59776.c:20 s1.g == 6.0 FAIL: gcc.dg/guality/pr59776.c -Os line pr59776.c:20 s2.f == 5.0 FAIL: gcc.dg/guality/pr59776.c -Os line pr59776.c:20 s2.g == 6.0 on Linux/i386. PR target/81820 * config/i386/i386.c (ix86_finalize_stack_frame_flags): Replace frame pointer with stack pointer - UNITS_PER_WORD in debug insns. (cherry picked from commit ac36c55f2dac2b54a657d242646d84dfd522eb55)
* i386: Don't use frame pointer without stack accessH.J. Lu2017-09-059-11/+114
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When there is no stack access, there is no need to use frame pointer even if -fno-omit-frame-pointer is used and caller's frame pointer is unchanged. gcc/ PR target/81736 * config/i386/i386.c (ix86_finalize_stack_realign_flags): Renamed to ... (ix86_finalize_stack_frame_flags): This. Also clear frame_pointer_needed if -fno-omit-frame-pointer is used without stack access. (ix86_expand_prologue): Replace ix86_finalize_stack_realign_flags with ix86_finalize_stack_frame_flags. (ix86_expand_epilogue): Likewise. (ix86_expand_split_stack_prologue): Likewise. * doc/invoke.texi: Add a note for -fno-omit-frame-pointer. gcc/testsuite/ PR target/81736 * gcc.target/i386/pr81736-1.c: New test. * gcc.target/i386/pr81736-2.c: Likewise. * gcc.target/i386/pr81736-3.c: Likewise. * gcc.target/i386/pr81736-4.c: Likewise. * gcc.target/i386/pr81736-5.c: Likewise. * gcc.target/i386/pr81736-6.c: Likewise. * gcc.target/i386/pr81736-7.c: Likewise. (cherry picked from commit cd557ff63f388ad27c376d0a225e74d3594a6f9d)
* [PR79542][Ada] Fix ICE in dwarf2out.c with nested func. inliningpmderodat2017-09-055-57/+149
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a backport from trunk. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79542 reports an ICE in dwarf2out.c for an Ada testcase built with optimization. This crash happens during the late generation pass because add_gnat_descriptive_type cannot find the type DIE corresponding to some descriptive type after having tried to generate it. This is because the DIE was generated during the early generation pass, but then pruned by the type pruning machinery. So why was it pruned? We are in a situation where we have cloned types (because of inlining, IIUC) whose TYPE_NAME have non-null DECL_ABSTRACT_ORIGIN attributes. As a consequence: * In modified_type_die, the "handle C typedef types" part calls gen_type_die on the cloned type. * gen_type_die matches a typedef variant, and then calls gen_decl_die on its TYPE_NAME, which will end up calling gen_typedef_die. * gen_typedef_die checks decl_ultimate_origin for this TYPE_DECL, and finds one, so it only adds a DW_AT_abstract_origin attribute to the DW_TAG_typedef DIE, but the cloned type itself does not get its own DIE. * Back in modified_type_die, the call to lookup_type_die on the type passed to gen_type_die returns NULL. In the end, whole type trees, i.e. the ones referenced by DECL_ABSTRACT_ORIGIN attributes, are never referenced from type pruning "roots" and are thus pruned. The descriptive type at stake here is one of them, hence the assertion failure. This patch attemps to fix that with what seems to be the most sensible thing to do in my opinion: updating the "handle C typedef types" part in modified_type_die to check decl_ultimate_origin before calling gen_type_die: if that function returns something not null, then we know that gen_type_die/gen_typedef_die will not generate a DIE for the input type, so we try to process the ultimate origin instead. It also updates in a similar way gen_type_die_with_usage, assert that when gen_typedef_die is called on nodes that have an ultimate origin, this origin is themselves. gcc/ PR ada/79542 * dwarf2out.c (modified_type_die): For C typedef types that have an ultimate origin, process the ultimate origin instead of the input type. (gen_typedef_die): Assert that input DECLs have no ultimate origin. (gen_type_die_with_usage): For typedef variants that have an ultimate origin, just call gen_decl_die on the original DECL. (process_scope_var): Avoid creating DIEs for local typedefs and concrete static variables. gcc/testsuite/ PR ada/79542 * gnat.dg/debug13.ads, gnat.dg/debug13.adb: New testcase. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@251709 138bc75d-0d04-0410-961f-82ee72b054a4
* PR ada/62235ebotcazou2017-09-057-3/+81
| | | | | | | | | * gcc-interface/decl.c (gnat_to_gnu_entity): Skip regular processing for Itypes that are E_Record_Subtype with a cloned subtype. <E_Record_Subtype>: Use the DECL of the cloned type directly, if any. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@251707 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcc-interface/utils.c (unchecked_convert): When the result type is aebotcazou2017-09-054-14/+47
| | | | | | | non-biased integral type with size 0, set the result to 0 directly. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@251702 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcc-interface/trans.c (Call_to_gnu): If this is a function call andebotcazou2017-09-052-5/+13
| | | | | | | | there is no target, do not create a temporary for the return value for an allocator either. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@251696 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcc-interface/trans.c (pos_to_constructor): Skip conversions to anebotcazou2017-09-055-1/+50
| | | | | | | unconstrained array type. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@251693 138bc75d-0d04-0410-961f-82ee72b054a4
* Daily bump.gccadmin2017-09-051-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@251688 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcc.target/i386/mpx/mpx-os-support.h: New file.uros2017-09-049-19/+47
| | | | | | | | | | | | | | | | | | * gcc.target/i386/mpx/mpx-check.h: Include mpx-os-support.h. (check_osxsave): New function. (main): Use __get_cpuid_count and return NORUNRES on failure. Use check_osxsave. * gcc.target/i386/mpx/va-arg-pack-1-lbv.c (foo1): Use __builtin_va_arg_pack instead of __va_arg_pack. * gcc.target/i386/mpx/va-arg-pack-1-nov.c (foo1): Ditto. * gcc.target/i386/mpx/va-arg-pack-1-ubv.c (foo1): Ditto. * gcc.target/i386/mpx/va-arg-pack-2-lbv.c (foo1): Ditto. * gcc.target/i386/mpx/va-arg-pack-2-nov.c (foo1): Ditto. * gcc.target/i386/mpx/va-arg-pack-2-ubv.c (foo1): Ditto. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@251684 138bc75d-0d04-0410-961f-82ee72b054a4
* PR c++/82039 suppress -Wzero-as-null-pointer-constant warningredi2017-09-042-1/+8
| | | | | | | | | | | Backport from mainline 2017-08-31 Jonathan Wakely <jwakely@redhat.com> PR c++/82039 * include/ext/new_allocator.h (__gnu_cxx::new_allocator::allocate): Adjust null pointer constant to avoid warning. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@251658 138bc75d-0d04-0410-961f-82ee72b054a4
* PR libstdc++/81912 make std::__iterator_category constexprredi2017-09-046-5/+74
| | | | | | | | | | | | | | | | Backport from mainline 2017-08-21 Jonathan Wakely <jwakely@redhat.com> PR libstdc++/81912 * include/bits/stl_iterator_base_types.h (__iterator_category): Add constexpr for C++11 and later. * testsuite/24_iterators/container_access.cc: Add target selector. * testsuite/24_iterators/range_access.cc: Fix clause number in comment. * testsuite/24_iterators/range_access_cpp14.cc: Likewise. * testsuite/24_iterators/range_access_cpp17.cc: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@251657 138bc75d-0d04-0410-961f-82ee72b054a4
* Fix test for __has_unique_object_representations support in Clangredi2017-09-042-6/+15
| | | | | | | | | | | Backport from mainline 2017-08-09 Jonathan Wakely <jwakely@redhat.com> * include/std/type_traits (_GLIBCXX_NO_BUILTIN_HAS_UNIQ_OBJ_REP): Replace with _GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP and use __is_identifier to set it. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@251656 138bc75d-0d04-0410-961f-82ee72b054a4
* Fix test for __is_aggregate support in Clangredi2017-09-042-2/+8
| | | | | | | | | | Backport from mainline 2017-08-09 Katsuhiko Nishimra <ktns.87@gmail.com> * include/std/type_traits (_GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE): Use __is_identifier instead of __has_builtin. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@251655 138bc75d-0d04-0410-961f-82ee72b054a4
* PR libstdc++/81891 fix double-free in hashtable constructorredi2017-09-043-11/+80
| | | | | | | | | | | | | | Backport from mainline 2017-08-18 Jonathan Wakely <jwakely@redhat.com> PR libstdc++/81891 * include/bits/hashtable.h (_Hashtable(_InputIterator, _InputIterator, size_type, const _H1&, const _H2&, const _Hash&, const _Equal&, const _ExtractKey&, const allocator_type&)): Let destructor do clean up if an exception is thrown. * testsuite/23_containers/unordered_map/cons/81891.cc: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@251654 138bc75d-0d04-0410-961f-82ee72b054a4
* PR libstdc++/81599 fix typo in Doxygen commentsredi2017-09-042-1/+7
| | | | | | | | | | Backport from mainline 2017-07-31 Marek Polacek <polacek@redhat.com> PR libstdc++/81599 * include/bits/stl_stack.h: Fix typo. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@251653 138bc75d-0d04-0410-961f-82ee72b054a4
* PR libstdc++/81338 correctly manage string capacityredi2017-09-045-5/+94
| | | | | | | | | | | | | | | | Backport from mainline 2017-07-10 Jonathan Wakely <jwakely@redhat.com> PR libstdc++/81338 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] (basic_string): Declare basic_stringbuf to be a friend. * include/bits/sstream.tcc (basic_stringbuf::overflow) [_GLIBCXX_USE_CXX11_ABI]: Use unused capacity before reallocating. * include/std/sstream (basic_stringbuf::__xfer_bufptrs): Update string length to buffer length. * testsuite/27_io/basic_stringstream/assign/81338.cc: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@251652 138bc75d-0d04-0410-961f-82ee72b054a4
* Daily bump.gccadmin2017-09-041-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@251632 138bc75d-0d04-0410-961f-82ee72b054a4
* Daily bump.gccadmin2017-09-031-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@251623 138bc75d-0d04-0410-961f-82ee72b054a4
* 2017-09-02 Janus Weil <janus@gcc.gnu.org>janus2017-09-025-2/+45
| | | | | | | | | | | | | | | | | | Backport from trunk PR fortran/81770 * expr.c (gfc_check_pointer_assign): Improve the check whether pointer may outlive pointer target. 2017-09-02 Janus Weil <janus@gcc.gnu.org> Backport from trunk PR fortran/81770 * gfortran.dg/warn_target_lifetime_3.f90: Fix a typo. * gfortran.dg/warn_target_lifetime_4.f90: New testcase. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@251618 138bc75d-0d04-0410-961f-82ee72b054a4
* Daily bump.gccadmin2017-09-021-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@251616 138bc75d-0d04-0410-961f-82ee72b054a4
* PR c++/82040mpolacek2017-09-013-0/+20
| | | | | | | | | * typeck.c (cp_build_unary_op): Avoid re-entering reporting routines. * g++.dg/warn/Wbool-operation-1.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@251582 138bc75d-0d04-0410-961f-82ee72b054a4
* Daily bump.gccadmin2017-09-011-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@251579 138bc75d-0d04-0410-961f-82ee72b054a4
* 2017-08-31 Bill Schmidt <wschmidt@linux.vnet.ibm.com>wschmidt2017-08-312-8/+52
| | | | | | | | | | | | | | | | | Backport from mainline 2017-08-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com> PR target/81504 * config/rs6000/rs6000.c (find_alignment_op): Add reference parameter and_insn and return it. (recombine_lvx_pattern): Insert a copy to ensure availability of the base register of the copied masking operation at the point of the instruction replacement. (recombine_stvx_pattern): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@251575 138bc75d-0d04-0410-961f-82ee72b054a4
* Daily bump.gccadmin2017-08-311-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@251552 138bc75d-0d04-0410-961f-82ee72b054a4
* 2017-08-29 Michael Meissner <meissner@linux.vnet.ibm.com>meissner2017-08-302-0/+50
| | | | | | | | | | | | | | Back port from trunk 2017-08-07 Michael Meissner <meissner@linux.vnet.ibm.com> PR target/81593 * gcc.target/powerpc/vsx-extract-6.c: New tests for optimzing vector inserts from vector extracts. * gcc.target/powerpc/vsx-extract-7.c: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@251446 138bc75d-0d04-0410-961f-82ee72b054a4
* [gcc]meissner2017-08-308-15/+539
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2017-08-29 Michael Meissner <meissner@linux.vnet.ibm.com> Back port from trunk 2017-08-07 Michael Meissner <meissner@linux.vnet.ibm.com> PR target/81593 * config/rs6000/vsx.md (vsx_concat_<mode>_1): New combiner insns to recognize inserting into a vector from a double word element that was extracted from another vector, and eliminate extra XXPERMDI instructions. (vsx_concat_<mode>_2): Likewise. (vsx_concat_<mode>_3): Likewise. (vsx_set_<mode>, VSX_D): Rewrite vector set in terms of vector concat to allow optimizing inserts from previous extracts. [gcc/testsuite] 2017-08-29 Michael Meissner <meissner@linux.vnet.ibm.com> Back port from trunk 2017-08-07 Michael Meissner <meissner@linux.vnet.ibm.com> PR target/81593 * gcc.target/powerpc/vec-setup.h: New tests to test various combinations of setting up vectors of 2 double word elements. * gcc.target/powerpc/vec-setup-long.c: Likewise. * gcc.target/powerpc/vec-setup-double.c: Likewise. * gcc.target/powerpc/vec-setup-be-long.c: Likewise. * gcc.target/powerpc/vec-setup-be-double.c: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@251445 138bc75d-0d04-0410-961f-82ee72b054a4
* Daily bump.gccadmin2017-08-301-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@251443 138bc75d-0d04-0410-961f-82ee72b054a4
* [RS6000] linux startfile/endfileamodra2017-08-292-18/+35
| | | | | | | | | | | | | | | These need to match the gnu-user.h definitions to support --enable-default-pie. Otherwise we end up linking the wrong startup files when defaulting to PIE. PR target/81170 PR target/81295 * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Upgrade to match gnu-user.h startfile. (ENDFILE_LINUX_SPEC): Similarly. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@251403 138bc75d-0d04-0410-961f-82ee72b054a4
* PR driver/81523: Make -static override -pieamodra2017-08-294-23/+57
| | | | | | | | | | | | | | | | | | | | | | | | | | | -static and -pie together behave differently depending on whether GCC is configured with --enable-default-pie. On x86, "-static -pie" fails to create executable when --enable-default-pie isn't used, but creates a static executable when --enable-default-pie is used. This patch makes -static completely override -pie to create a static executable, regardless if --enable-default-pie is used to configure GCC. PR target/81170 PR target/81295 PR driver/81523 * gcc.c (NO_PIE_SPEC): Delete. (PIE_SPEC): Define as !no-pie/pie. Move static|shared|r exclusion.. (LINK_PIE_SPEC): ..to here. (LINK_COMMAND_SPEC): Support -no-pie. * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Correct chain of crtbegin*.o selection, update for PIE_SPEC changes and format. (GNU_USER_TARGET_ENDFILE_SPEC): Similarly. * config/sol2.h (STARTFILE_CRTBEGIN_SPEC): Similarly. (ENDFILE_CRTEND_SPEC): Similarly. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@251402 138bc75d-0d04-0410-961f-82ee72b054a4
* 2017-08-29 Richard Biener <rguenther@suse.de>rguenth2017-08-295-2/+81
| | | | | | | | | | | | | | | | | | | | Backport from mainline 2017-08-28 Richard Biener <rguenther@suse.de> PR tree-optimization/81977 * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix look through memcpy. * g++.dg/torture/pr81977.C: New testcase. 2017-08-28 Richard Biener <rguenther@suse.de> PR debug/81993 * dwarf2out.c (gen_remaining_tmpl_value_param_die_attributes): Do nothing for removed DIEs. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@251399 138bc75d-0d04-0410-961f-82ee72b054a4
* Daily bump.gccadmin2017-08-291-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@251394 138bc75d-0d04-0410-961f-82ee72b054a4
* 2017-08-28 Richard Biener <rguenther@suse.de>rguenth2017-08-286-14/+100
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Backport from mainline 2017-06-14 Richard Biener <rguenther@suse.de> PR middle-end/81088 * fold-const.c (split_tree): Drop TREE_OVERFLOW flag from literal constants. (fold_binary_loc): When associating do not treat pre-existing TREE_OVERFLOW on literal constants as a reason to allow TREE_OVERFLOW on associated literal constants. * c-c++-common/ubsan/pr81088.c: New testcase. 2017-06-13 Richard Biener <rguenther@suse.de> PR middle-end/81065 * fold-const.c (extract_muldiv_1): Remove bogus distribution case of C * (x * C2 + C3). (fold_addr_of_array_ref_difference): Properly fold index difference. * c-c++-common/ubsan/pr81065.c: New testcase. 2017-06-08 Marek Polacek <polacek@redhat.com> PR sanitize/80932 * c-c++-common/ubsan/pr80932.c: Test with ints, not with long ints. 2017-06-07 Marek Polacek <polacek@redhat.com> PR sanitizer/80932 * fold-const.c (extract_muldiv_1) <case MINUS_EXPR>: Add TYPE_OVERFLOW_WRAPS check. * c-c++-common/ubsan/pr80932.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@251381 138bc75d-0d04-0410-961f-82ee72b054a4
* 2017-08-28 Richard Biener <rguenther@suse.de>rguenth2017-08-288-33/+159
| | | | | | | | | | | | | | | | | | | | | | | | Backport from mainline 2017-08-21 Richard Biener <rguenther@suse.de> PR middle-end/81884 * tree-ssa-alias.c (stmt_kills_ref_p): Handle array accesses at struct end conservatively when comparing common bases. * g++.dg/torture/pr81884.C: New testcase. 2017-05-04 Richard Biener <rguenther@suse.de> * tree.c (array_at_struct_end_p): Handle arrays at struct end with flexarrays more conservatively. Refactor and treat arrays of arrays or aggregates more strict. Fix VIEW_CONVERT_EXPR handling. Remove allow_compref argument. * tree.h (array_at_struct_end_p): Adjust prototype. * gimple-fold.c (get_range_strlen): Likewise. * tree-chkp.c (chkp_may_narrow_to_field): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@251379 138bc75d-0d04-0410-961f-82ee72b054a4
* 2017-08-28 Richard Biener <rguenther@suse.de>rguenth2017-08-287-9/+230
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Backport from mainline 2017-08-01 Richard Biener <rguenther@suse.de> PR tree-optimization/81181 * tree-ssa-pre.c (compute_antic_aux): Defer clean() to ... (compute_antic): ... end of iteration here. * gcc.dg/torture/pr81181.c: New testcase. 2017-08-08 Richard Biener <rguenther@suse.de> PR tree-optimization/81723 * tree-vect-slp.c (struct bst_traits): New hash traits. (bst_fail): New global. (vect_build_slp_tree_2): New worker, split out from ... (vect_build_slp_tree): ... this now wrapping it with using bst_fail set to cache SLP tree build fails. Properly handle max_tree_size. (vect_analyze_slp_instance): Allocate and free bst_fail. * gfortran.dg/pr81723.f: New testcase. 2017-08-24 Richard Biener <rguenther@suse.de> PR target/81921 * config/i386/i386.c: Include symbol-summary.h, ipa-prop.h and ipa-inline.h. (ix86_can_inline_p): When ix86_fpmath flags do not match check whether the callee uses FP math at all. * gcc/testsuite/gcc.target/i386/pr81921.c: New testcase. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@251376 138bc75d-0d04-0410-961f-82ee72b054a4
* Daily bump.gccadmin2017-08-281-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@251372 138bc75d-0d04-0410-961f-82ee72b054a4
* Daily bump.gccadmin2017-08-271-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@251366 138bc75d-0d04-0410-961f-82ee72b054a4
* Daily bump.gccadmin2017-08-261-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@251361 138bc75d-0d04-0410-961f-82ee72b054a4
* PR c++/81607mpolacek2017-08-253-5/+24
| | | | | | | | | * cp-gimplify.c (cp_fold): If folding exposed a branch of a COND_EXPR, convert it to the original type of the COND_EXPR, if they differ. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@251358 138bc75d-0d04-0410-961f-82ee72b054a4
* Daily bump.gccadmin2017-08-251-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@251345 138bc75d-0d04-0410-961f-82ee72b054a4
* Backport from mainlineuros2017-08-242-0/+9
| | | | | | | | | | | 2017-08-23 Daniel Santos <daniel.santos@pobox.com> * lib/target-supports.exp (check_avx2_hw_available): Fix breakage due NULL being undefined. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@251336 138bc75d-0d04-0410-961f-82ee72b054a4
* Daily bump.gccadmin2017-08-241-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@251324 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/bergner2017-08-234-15/+92
| | | | | | | | | | | | | | | | | | | | | | Backport from mainline 2017-08-17 Peter Bergner <bergner@vnet.ibm.com> PR target/72804 * config/rs6000/vsx.md (*vsx_le_permute_<mode>): Add support for operands residing in integer registers. (*vsx_le_perm_load_<mode>): Likewise. (*vsx_le_perm_store_<mode>): Likewise. (define_peephole2): Add peepholes to optimize the above. gcc/testsuite/ Backport from mainline 2017-08-17 Peter Bergner <bergner@vnet.ibm.com> PR target/72804 * gcc.target/powerpc/pr72804.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@251318 138bc75d-0d04-0410-961f-82ee72b054a4
* 2017-08-22 Jerry DeLisle <jvdelisle@gcc.gnu.org>jvdelisle2017-08-234-10/+35
| | | | | | | | | | | Backport from trunk PR fortran/81296 * trans-io.c (get_dtio_proc): Add check for format label and set formatted flag accordingly. Reorganize the code a little. * gfortran.dg/dtio_12.f90: Update test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@251301 138bc75d-0d04-0410-961f-82ee72b054a4
* Daily bump.gccadmin2017-08-231-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@251299 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/bergner2017-08-224-47/+83
| | | | | | | | | | | | | | | | | | | Backport from mainline 2017-08-17 Peter Bergner <bergner@vnet.ibm.com> PR target/80210 * config/rs6000/rs6000.c (rs6000_activate_target_options): New function. (rs6000_set_current_function): Rewrite function to use it. gcc/testsuite/ Backport from mainline 2017-08-17 Peter Bergner <bergner@vnet.ibm.com> PR target/80210 * gcc.target/powerpc/pr80210.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@251293 138bc75d-0d04-0410-961f-82ee72b054a4
* [PowerPC/RTEMS] Enable -mcmodel optionsh2017-08-223-1/+77
| | | | | | | | | | | | | | | | | gcc/ * config.gcc (powerpc-*-rtems*): Add rs6000/linux64.opt. * config/rs6000/rtems.h (ASM_PREFERRED_EH_DATA_FORMAT): New define. (DOT_SYMBOLS): Likewise. (MINIMAL_TOC_SECTION_ASM_OP): Likewise. (RELOCATABLE_NEEDS_FIXUP): Likewise. (RS6000_ABI_NAME): Likewise. (TARGET_CMODEL): Likewise. (TOC_SECTION_ASM_OP): Likewise. (SET_CMODEL): New macro. (SUBSUBTARGET_OVERRIDE_OPTIONS): Evaluate cmodel options. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@251277 138bc75d-0d04-0410-961f-82ee72b054a4
* 2017-08-22 Yvan Roux <yvan.roux@linaro.org>yroux2017-08-222-0/+21
| | | | | | | | | | | Backport from mainline 2017-08-22 Yvan Roux <yvan.roux@linaro.org> PR c++/80287 * g++.dg/pr80287.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-7-branch@251273 138bc75d-0d04-0410-961f-82ee72b054a4