tbsaunde [Sun, 13 Sep 2015 16:53:25 +0000 (16:53 +0000)]
dse.c: remove some typedefs that hide pointerness
gcc/ChangeLog:
2015-09-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
* dse.c (store_info_t): Remove typedef.
(group_info_t): Likewise.
(const_group_info_t): Likewise.
(deferred_change_t): Likewise.
(get_group_info): Adjust.
(free_store_info): Likewise.
(canon_address): Likewise.
(clear_rhs_from_active_local_stores): Likewise.
(record_store): Likewise.
(replace_read): Likewise.
(check_mem_read_rtx): Likewise.
(scan_insn): Likewise.
(remove_useless_values): Likewise.
(dse_step1): Likewise.
(dse_step2_init): Likewise.
(dse_step2_nospill): Likewise.
(scan_stores_nospill): Likewise.
(scan_reads_nospill): Likewise.
(dse_step3_exit_block_scan): Likewise.
(dse_step3): Likewise.
(dse_step5_nospill): Likewise.
(dse_step6): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227719
138bc75d-0d04-0410-961f-
82ee72b054a4
tbsaunde [Sun, 13 Sep 2015 16:53:08 +0000 (16:53 +0000)]
don't typedef alias_set_entry and unhide pointerness
gcc/ChangeLog:
2015-09-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
* alias.c (alias_set_entry_d): Rename to alias_set_entry.
(alias_set_entry): Remove typedef.
(alias_set_subset_of): Adjust.
(alias_sets_conflict_p): Likewise.
(init_alias_set_entry): Likewise.
(get_alias_set): Likewise.
(new_alias_set): Likewise.
(record_alias_subset): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227718
138bc75d-0d04-0410-961f-
82ee72b054a4
danglin [Sun, 13 Sep 2015 15:05:57 +0000 (15:05 +0000)]
* config/pa/fptr.c (SIGN_EXTEND): Cast -1 to unsigned.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227717
138bc75d-0d04-0410-961f-
82ee72b054a4
gerald [Sun, 13 Sep 2015 11:40:36 +0000 (11:40 +0000)]
* doc/install.texi (Downloading the source): Mark up
contrib/download_prerequisites properly and drop leading "./".
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227716
138bc75d-0d04-0410-961f-
82ee72b054a4
gccadmin [Sun, 13 Sep 2015 00:16:16 +0000 (00:16 +0000)]
Daily bump.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227715
138bc75d-0d04-0410-961f-
82ee72b054a4
tbsaunde [Sat, 12 Sep 2015 22:19:11 +0000 (22:19 +0000)]
stop including tm.h in sendmsg.c
libobjc/ChangeLog:
2015-09-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
PR libobjc/24775
* sendmsg.c (tm.h): Remove include.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227712
138bc75d-0d04-0410-961f-
82ee72b054a4
tbsaunde [Sat, 12 Sep 2015 22:19:06 +0000 (22:19 +0000)]
remove unused defines from sendmsg.c
libobjc/ChangeLog:
2015-09-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
PR libobjc/24775
* sendmsg.c (gen_rtx): Remove macro.
(gen_rtx_MEM): Likewise.
(gen_rtx_REG): Likewise.
(rtx): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227711
138bc75d-0d04-0410-961f-
82ee72b054a4
tbsaunde [Sat, 12 Sep 2015 22:19:00 +0000 (22:19 +0000)]
remove STRUCT_VALUE macro
This macro was converted to the TARGET_STRUCT_VALUE_RTX hook many years
ago, however there are still some lingering definitions, and a use in
libobjc. All the remaining definitions define the macro to 0, which
libobjc treats the same as undefined, so it won't break anything else to
have libobjc stop checking the macro. However it may be that this part
of libobjc has been broken for a long time on targets that only define
the hook, but that is a separate issue.
gcc/ChangeLog:
2015-09-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
* config/arc/arc.h: Remove define of STRUCT_VALUE.
* config/lm32/lm32.h: Likewise.
* config/mep/mep.h: Likewise.
* config/visium/visium.h: Likewise.
* system.h: Poison STRUCT_VALUE macro.
libobjc/ChangeLog:
2015-09-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
PR libobjc/24775
* sendmsg.c: Remove check of STRUCT_VALUE macro.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227710
138bc75d-0d04-0410-961f-
82ee72b054a4
ebotcazou [Sat, 12 Sep 2015 16:35:20 +0000 (16:35 +0000)]
PR ada/66965
* gnat.dg/specs/addr1.ads: Remove.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227709
138bc75d-0d04-0410-961f-
82ee72b054a4
danglin [Sat, 12 Sep 2015 13:51:40 +0000 (13:51 +0000)]
* config/pa/pa.c (pa_output_move_double): Enhance to handle HIGH
CONSTANT_P operands.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227706
138bc75d-0d04-0410-961f-
82ee72b054a4
fxcoudert [Sat, 12 Sep 2015 12:05:44 +0000 (12:05 +0000)]
PR libfortran/67527
PR libfortran/67535
PR libfortran/67536
* io/io.h: Use unsigned values for 31-bit left shifts.
* io/unix.c (buf_read): Do not call memcpy() with NULL pointer arg.
* io/write.c (nml_write_obj): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227705
138bc75d-0d04-0410-961f-
82ee72b054a4
gccadmin [Sat, 12 Sep 2015 00:16:10 +0000 (00:16 +0000)]
Daily bump.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227704
138bc75d-0d04-0410-961f-
82ee72b054a4
davem [Sat, 12 Sep 2015 00:13:23 +0000 (00:13 +0000)]
Convert SPARC backend over to LRA.
gcc/
* config/sparc/constraints.md: Make "U" constraint a real register
constraint.
* config/sparc/sparc.c (TARGET_LRA_P): Define.
(D_MODES, DF_MODES): Add missing cast.
(TF_MODES, TF_MODES_NO_S): Include T_MODE.
(OF_MODES, OF_MODES_NO_S): Include O_MODE.
(sparc_register_move_cost): Decrease Niagara/UltrsSPARC memory
cost to 8.
* config/sparc/sparc.h (PROMOTE_MODE): Define.
* config/sparc/sparc.md (*movsi_lo_sum, *movsi_high): Do not
provide these insn when flag_pic.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227701
138bc75d-0d04-0410-961f-
82ee72b054a4
ian [Fri, 11 Sep 2015 21:41:30 +0000 (21:41 +0000)]
compiler: Avoid unsafe memcmp for nointerface comments.
Fixes golang/go#11577.
Reviewed-on: https://go-review.googlesource.com/14182
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227699
138bc75d-0d04-0410-961f-
82ee72b054a4
law [Fri, 11 Sep 2015 21:32:38 +0000 (21:32 +0000)]
[PATCH] Another small cleanup to the const_and_copies stack
2015-09-11 Jeff Law <law@redhat.com>
PR tree-optimization/47679
* tree-ssa-dom.c (struct cond_equivalence): Update comment.
* tree-ssa-scopedtables.h (class const_and_copies): Prefix data
member with m_. Update inline member functions as necessary. Add
toplevel comment.
* tree-ssa-scopedtables.c: Update const_and_copies's member
functions to use m_ prefix to access the stack.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227697
138bc75d-0d04-0410-961f-
82ee72b054a4
spop [Fri, 11 Sep 2015 19:50:48 +0000 (19:50 +0000)]
Remove dead code from graphite-optimize-isl.c
The variable `static bool enable_polly_vector' is always assigned to false.
This results in dead code in optimize-isl.c. No functional change intended.
Passes bootstrap and regtest.
gcc/ChangeLog:
2015-09-11 Aditya Kumar <aditya.k7@samsung.com>
* graphite-optimize-isl.c (disable_tiling): Remove.
(get_schedule_for_band): Do not use disable_tiling.
(get_prevector_map): Delete function.
(enable_polly_vector): Remove.
(get_schedule_for_band_list): Remove dead code.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227696
138bc75d-0d04-0410-961f-
82ee72b054a4
spop [Fri, 11 Sep 2015 19:50:41 +0000 (19:50 +0000)]
Refactor optimize isl
Refactor graphite-optimize-isl.c. Renamed function name, variable names etc.,
and indented the source according to gcc style guidelines. Modified comments
accordingly. No functional change intended.
Passes regtest and bootstap on x86_64.
gcc/ChangeLog:
2015-09-10 Aditya Kumar <aditya.k7@samsung.com>
* graphite-optimize-isl.c (get_tile_map): Refactor.
(get_schedule_for_band): Same.
(getScheduleForBand): Same.
(get_prevector_map): Same.
(get_schedule_for_band_list): Same.
(get_schedule_map): Same.
(get_single_map): Same.
(apply_schedule_map_to_scop): Same.
(optimize_isl): Same.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227695
138bc75d-0d04-0410-961f-
82ee72b054a4
ian [Fri, 11 Sep 2015 18:37:31 +0000 (18:37 +0000)]
* Makefile.am (backtrace.lo): Depend on internal.h.
(sort.lo, stest.lo): Add explicit dependencies.
* Makefile.in: Rebuild.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227691
138bc75d-0d04-0410-961f-
82ee72b054a4
redi [Fri, 11 Sep 2015 14:20:32 +0000 (14:20 +0000)]
Fix filesystem::canonical on Solaris 10.
PR libstdc++/67173
* src/filesystem/ops.cc (filesystem::canonical): Allocate buffer for
realpath on Solaris 10.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227689
138bc75d-0d04-0410-961f-
82ee72b054a4
redi [Fri, 11 Sep 2015 13:44:26 +0000 (13:44 +0000)]
Check read() result in std::random_device.
PR libstdc++/65142
* src/c++11/random.cc (random_device::_M_getval()): Check read result.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227687
138bc75d-0d04-0410-961f-
82ee72b054a4
redi [Fri, 11 Sep 2015 13:06:42 +0000 (13:06 +0000)]
Fix invalid UTF-8 in wchar_t tests.
2015-09-11 John Marino <gnugcc@marino.st>
Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/67096
* testsuite/22_locale/codecvt/in/wchar_t/4.cc: Do not test code points
above U+10FFFF.
* testsuite/22_locale/codecvt/in/wchar_t/8.cc: Likewise.
* testsuite/22_locale/codecvt/in/wchar_t/9.cc: Likewise.
* testsuite/22_locale/codecvt/length/wchar_t/4.cc: Likewise.
* testsuite/22_locale/codecvt/out/wchar_t/4.cc: Likewise.
* testsuite/22_locale/codecvt/unshift/wchar_t/4.cc: Likewise.
* testsuite/27_io/basic_filebuf/seekoff/wchar_t/1.cc: Likewise.
* testsuite/27_io/basic_filebuf/seekpos/wchar_t/9874.cc: Likewise.
* testsuite/27_io/basic_filebuf/underflow/wchar_t/1.cc: Likewise.
* testsuite/27_io/basic_filebuf/underflow/wchar_t/2.cc: Likewise.
* testsuite/27_io/basic_filebuf/underflow/wchar_t/3.cc: Likewise.
* testsuite/27_io/objects/wchar_t/10.cc: Likewise.
* testsuite/27_io/objects/wchar_t/11.cc: Likewise.
* testsuite/27_io/objects/wchar_t/12.cc: Likewise.
* testsuite/27_io/objects/wchar_t/13.cc: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227686
138bc75d-0d04-0410-961f-
82ee72b054a4
redi [Fri, 11 Sep 2015 12:39:56 +0000 (12:39 +0000)]
Remove empty directory.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227685
138bc75d-0d04-0410-961f-
82ee72b054a4
redi [Fri, 11 Sep 2015 12:25:43 +0000 (12:25 +0000)]
Rationalise PCH headers and 17_intro/headers tests.
PR libstdc++/64857
* doc/xml/manual/using.xml: Improve aggregate header documentation.
* doc/html/manual/*: Regenerate.
* include/precompiled/extc++.h: Include <bits/stdc++.h> for C++11
and later and include more extension headers.
* testsuite/17_intro/headers/c++1998/all_attributes.cc: Remove
redundant header.
* testsuite/17_intro/headers/c++200x/: Rename to c++2011.
* testsuite/17_intro/headers/c++2014/all_attributes.cc: Remove
redundant headers.
* testsuite/17_intro/headers/c++2014/all_no_exceptions.cc: New.
* testsuite/17_intro/headers/c++2014/all_no_rtti.cc: New.
* testsuite/17_intro/headers/c++2014/all_pedantic_errors.cc: New.
* testsuite/17_intro/headers/c++2014/operator_names.cc: New.
* testsuite/17_intro/headers/c++2014/stdc++.cc: New.
* testsuite/17_intro/headers/c++2014/stdc++_multiple_inclusion.cc:
New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227684
138bc75d-0d04-0410-961f-
82ee72b054a4
ro [Fri, 11 Sep 2015 11:10:03 +0000 (11:10 +0000)]
Link gcc.dg/pie-link.c with -pie
* gcc.dg/pie-link.c: Add -pie to dg-options.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227682
138bc75d-0d04-0410-961f-
82ee72b054a4
redi [Fri, 11 Sep 2015 11:02:14 +0000 (11:02 +0000)]
Implement N4258 noexcept for std::basic_string.
PR libstdc++/58265
* doc/xml/manual/intro.xml: Document LWG 2063 and 2064 resolutions.
* doc/html/manual/bugs.html: Regenerate.
* include/bits/basic_string.h (basic_string): Implement N4258. Add
correct exception-specifications and propagate allocators correctly.
* include/bits/basic_string.tcc (basic_string::swap): Propagate
allocators correctly.
* include/debug/string (__gnu_debug::basic_string): Add correct
exceptions-specifications and allcoator-extended constructors.
* testsuite/21_strings/basic_string/allocator/char/copy.cc: New.
* testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
New.
* testsuite/21_strings/basic_string/allocator/char/minimal.cc: New.
* testsuite/21_strings/basic_string/allocator/char/move.cc: New.
* testsuite/21_strings/basic_string/allocator/char/move_assign.cc:
New.
* testsuite/21_strings/basic_string/allocator/char/noexcept.cc: New.
* testsuite/21_strings/basic_string/allocator/char/swap.cc: New.
* testsuite/21_strings/basic_string/allocator/wchar_t/copy.cc: New.
* testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
New.
* testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc: New.
* testsuite/21_strings/basic_string/allocator/wchar_t/move.cc: New.
* testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc:
New.
* testsuite/21_strings/basic_string/allocator/wchar_t/noexcept.cc: New.
* testsuite/21_strings/basic_string/allocator/wchar_t/swap.cc: New.
* testsuite/util/testsuite_allocator.h (tracker_allocator): Define
defaulted assignment operators.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227681
138bc75d-0d04-0410-961f-
82ee72b054a4
redi [Fri, 11 Sep 2015 09:51:29 +0000 (09:51 +0000)]
Allocator-extended constructors for container adaptors.
PR libstdc++/65092
* include/bits/stl_queue.h (queue, priority_queue): Add
allocator-extended constructors.
* include/bits/stl_stack.h (stack): Likewise.
* testsuite/23_containers/priority_queue/requirements/
uses_allocator.cc: Test allocator-extended constructors.
* testsuite/23_containers/queue/requirements/uses_allocator.cc:
Likewise.
* testsuite/23_containers/stack/requirements/uses_allocator.cc:
Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227680
138bc75d-0d04-0410-961f-
82ee72b054a4
ramana [Fri, 11 Sep 2015 09:44:26 +0000 (09:44 +0000)]
Remove separate movtf pattern - Use an iterator for all FP modes.
movtf is unnecessary as a separate expander. Move this to be with
the standard scalar floating point expanders.
Achieved by adding a new iterator and then using the same.
Tested cross aarch64-none-elf and no regressions.
Rebased version from https://gcc.gnu.org/ml/gcc-patches/2015-09/msg00767.html
2015-09-10 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
PR target/63304
* config/aarch64/aarch.md (mov<mode>:GPF_F16): Use GPF_TF_F16.
(movtf): Delete.
* config/aarch64/iterators.md (GPF_TF_F16): New.
(GPF_F16): Delete.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227679
138bc75d-0d04-0410-961f-
82ee72b054a4
avelenko [Fri, 11 Sep 2015 09:25:59 +0000 (09:25 +0000)]
gcc/testsuite
* gcc.target/arm/pr63210.c (dg-skip-if): Skip armv4t.
(dg-additional-options): Add -march=armv5t if arm_arch_v5t_ok.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227677
138bc75d-0d04-0410-961f-
82ee72b054a4
trippels [Fri, 11 Sep 2015 06:09:36 +0000 (06:09 +0000)]
Make sure that contrib/download_prerequisites is run from correct place
* download_prerequisites: Make sure that script is run from
top level source directory.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227674
138bc75d-0d04-0410-961f-
82ee72b054a4
ian [Fri, 11 Sep 2015 03:12:28 +0000 (03:12 +0000)]
libgo/runtime: return 0, not NULL, from main
Reviewed-on: https://go-review.googlesource.com/13421
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227673
138bc75d-0d04-0410-961f-
82ee72b054a4
gccadmin [Fri, 11 Sep 2015 00:16:10 +0000 (00:16 +0000)]
Daily bump.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227671
138bc75d-0d04-0410-961f-
82ee72b054a4
nathan [Thu, 10 Sep 2015 22:53:37 +0000 (22:53 +0000)]
* config/nvptx/nvptx.c (nvptx_expand_call): Add spacing.
(nvptx_reorg): Adjust comments.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227667
138bc75d-0d04-0410-961f-
82ee72b054a4
danglin [Thu, 10 Sep 2015 22:52:08 +0000 (22:52 +0000)]
PR bootstrap/67363
* configure.ac: Check if setenv and unsetenv are declared.
* configure: Rebuild.
* config.in: Rebuild.
* system.h: Declare setenv and unsetenv if not declared.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227666
138bc75d-0d04-0410-961f-
82ee72b054a4
ian [Thu, 10 Sep 2015 21:17:00 +0000 (21:17 +0000)]
libgo: Use stat_atim.go on Solaris 12+
From Rainer Orth.
Solaris 12 changes the stat_[amc]tim members of struct stat from
timestruc_t to timespec_t for XPG7 compatiblity, thus breaking the libgo
build. The following patch checks for this change and uses the common
stat_atim.go if appropriate.
Reviewed-on: https://go-review.googlesource.com/14495
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227665
138bc75d-0d04-0410-961f-
82ee72b054a4
wschmidt [Thu, 10 Sep 2015 20:22:37 +0000 (20:22 +0000)]
[gcc]
2015-09-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
* config/rs6000/rs6000.c (swap_web_entry): Update preceding
commentary to simplify permute mask adjustment equation.
(special_handling_values): Add SH_VPERM.
(const_load_sequence_p): New function.
(insn_is_swappable_p): Add logic to recognize an UNSPEC_VPERM with
the mask loaded from the constant pool.
(adjust_vperm): New function.
(handle_special_swappables): Call adjust_vperm.
(dump_swap_insn_table): Handle SH_VPERM.
[gcc/testsuite]
2015-09-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
* gcc.target/powerpc/swaps-p8-20.c: New test.
* gcc.target/powerpc/swaps-p8-21.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227664
138bc75d-0d04-0410-961f-
82ee72b054a4
redi [Thu, 10 Sep 2015 19:33:09 +0000 (19:33 +0000)]
* testsuite/util/testsuite_allocator.h (PointerBase::operator[]): Add.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227661
138bc75d-0d04-0410-961f-
82ee72b054a4
redi [Thu, 10 Sep 2015 19:33:04 +0000 (19:33 +0000)]
* testsuite/21_strings/basic_string/operators/char/1.cc: Verify the
string contents.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227660
138bc75d-0d04-0410-961f-
82ee72b054a4
hjl [Thu, 10 Sep 2015 19:19:27 +0000 (19:19 +0000)]
Put back requires_stack_frame_p used by i386.c
* shrink-wrap.c (requires_stack_frame_p): Remove static.
* shrink-wrap.h (requires_stack_frame_p): Put back.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227659
138bc75d-0d04-0410-961f-
82ee72b054a4
rsandifo [Thu, 10 Sep 2015 19:17:24 +0000 (19:17 +0000)]
Stop reload1.c warning from breaking bootstrap
Some host-target combinations get bogus warnings about orig_dup
being used uninitialized. I tried to coerce the current uninit
pass to handle this case, but the patch I ended up with only worked
by accident because of the strange way in which the pass handles
limit cases. (If we have more than MAX_NUM_CHAINS chains, it silently
drops the excess chains and continues regardless, so it's quite easy
to come up with cases where the predicates for either the definition
or the use consider an arbitrary subset of the actual conditions.)
For now this patch turns -Wmaybe-uninitialized into a warning for
the affacted function. It will be a warning even if someone turns
off warnings on the command line, but I don't think that's important.
Bootstrapped and regression-tested on x86_64-linux-gnu. Also tested
with a cross-compiler to sparc-linux-gnu (which also triggered the
warning for me).
gcc/
* reload1.c (elimination_costs_in_insn): Locally turn
-Wmaybe-uninitialized into a warning.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227658
138bc75d-0d04-0410-961f-
82ee72b054a4
ian [Thu, 10 Sep 2015 18:24:28 +0000 (18:24 +0000)]
compiler: Report errors from very large types.
The gcc backend throws an internal error when trying to get the size
of a type which is larger than the amount of address space on the
machine. This patch catches this error and reports it in a user
friendly way.
Fixes golang/go#11554.
Reviewed-on: https://go-review.googlesource.com/13684
* go-gcc.cc (Gcc_backend::type_size): Return -1 for
unrepresentable size.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227656
138bc75d-0d04-0410-961f-
82ee72b054a4
segher [Thu, 10 Sep 2015 17:25:35 +0000 (17:25 +0000)]
shrink-wrap: Header hygiene
2015-09-10 Segher Boessenkool <segher@kernel.crashing.org>
* shrink-wrap.c (requires_stack_frame_p): Make static.
(prepare_shrink_wrap): Likewise.
(dup_block_and_redirect): Likewise.
* shrink-wrap.h: Remove declarations of those functions.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227652
138bc75d-0d04-0410-961f-
82ee72b054a4
kargl [Thu, 10 Sep 2015 17:13:11 +0000 (17:13 +0000)]
2015-09-09 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/67526
* gfortran.dg/pr67526.f90: New test.
2015-09-09 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/67526
* expr.c (gfc_check_init_expr): Do not dereference a NULL pointer.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227651
138bc75d-0d04-0410-961f-
82ee72b054a4
paolo [Thu, 10 Sep 2015 15:36:54 +0000 (15:36 +0000)]
/cp
2015-09-10 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/67318
* parser.c (cp_parser_parameter_declaration): Consume the ellipsis
and set template_parameter_pack_p also when the type is null.
/testsuite
2015-09-10 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/67318
* g++.dg/cpp0x/variadic166.C: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227650
138bc75d-0d04-0410-961f-
82ee72b054a4
mark [Thu, 10 Sep 2015 15:29:44 +0000 (15:29 +0000)]
Warn when comparing nonnull arguments to NULL in a function.
If an argument is marked as nonnull then passing in a NULL argument
will produce bad results even if the code checks against NULL. GCC
might optimize such checks away so warn the user when the function
contains such comparisons.
nn.c: In function ‘foo’:
nn.c:6:27: warning: nonnull argument ‘bar’ compared to NULL [-Wnonnull]
void foo(void *bar) { if (!bar) abort(); }
^
gcc/ChangeLog
* doc/invoke.texi (Wnonnull): Also warns when comparing against NULL.
gcc/c/ChangeLog
* c-typeck.c (build_binary_op): Check and warn when nonnull arg
parm against NULL.
gcc/cp/ChangeLog
* typeck.c (cp_build_binary_op): Check and warn when nonnull arg
parm against NULL.
gcc/testsuite/ChangeLog
* c-c++-common/nonnull-1.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227649
138bc75d-0d04-0410-961f-
82ee72b054a4
pault [Thu, 10 Sep 2015 15:22:20 +0000 (15:22 +0000)]
2015-09-10 Paul Thomas <pault@gcc.gnu.org>
PR fortran/66993
* module.c (read_module): If a symtree exists and the symbol has
been associated in a submodule from a parent (sub)module, attach
the symbol to a 'unique symtree' and the new symbol to the
existing symtree.
2015-09-10 Paul Thomas <pault@gcc.gnu.org>
PR fortran/66993
* gfortran.dg/submodule_11.f08: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227648
138bc75d-0d04-0410-961f-
82ee72b054a4
olegendo [Thu, 10 Sep 2015 14:53:48 +0000 (14:53 +0000)]
gcc/
PR target/67506
* config/sh/sh.c (sh_extending_set_of_reg::use_as_extended_reg): Add
missing simplify_gen_subreg.
gcc/testsuite/
PR target/67506
* gcc.c-torture/compile/pr67506.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227646
138bc75d-0d04-0410-961f-
82ee72b054a4
krebbel [Thu, 10 Sep 2015 14:04:28 +0000 (14:04 +0000)]
S/390: Don't use vgm for v1ti and v1tf.
gcc/ChangeLog:
2015-09-10 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
* config/s390/s390.c (s390_contiguous_bitmask_vector_p): Reject if
the vector element is bigger than 64 bit.
gcc/testsuite/ChangeLog:
2015-09-10 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
* gcc.target/s390/vector/vec-genbytemask-1.c: Add check for V1TI
initialization with a byte mask. No change expected here.
* gcc.target/s390/vector/vec-genmask-1.c: Fix whitespace.
* gcc.target/s390/vector/vec-genmask-2.c: Add check for V1TI
initialization with contigious bitmask. Literal pool is expectd
to be used here.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227637
138bc75d-0d04-0410-961f-
82ee72b054a4
krebbel [Thu, 10 Sep 2015 14:02:34 +0000 (14:02 +0000)]
S/390: Fix mode iterators vmal, vmah, and vmalh.
gcc/ChangeLog:
2015-09-10 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
* config/s390/vx-builtins.md ("vec_vmal<mode>", "vec_vmah<mode>")
("vec_vmalh<mode>"): Change mode iterator from VI_HW to VI_HW_QHS.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227636
138bc75d-0d04-0410-961f-
82ee72b054a4
krebbel [Thu, 10 Sep 2015 14:01:03 +0000 (14:01 +0000)]
S/390: Add V1TImode to constant pool modes.
gcc/ChangeLog:
2015-09-10 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
* config/s390/s390.c: Add V1TImode to constant pool modes.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227635
138bc75d-0d04-0410-961f-
82ee72b054a4
ktkachov [Thu, 10 Sep 2015 10:43:43 +0000 (10:43 +0000)]
[ARM] PR 67439: Allow matching of *arm32_movhf when -mrestrict-it is on
PR target/67439
* config/arm/arm.md (*arm32_movhf): Remove !arm_restrict_it from
predicate. Set predicable_short_it attr to "no".
* gcc.target/arm/pr67439_1.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227630
138bc75d-0d04-0410-961f-
82ee72b054a4
jiwang [Thu, 10 Sep 2015 10:37:17 +0000 (10:37 +0000)]
[Patch/expand] Cost instruction sequences when doing left wide shift
Patch background details:
https://gcc.gnu.org/ml/gcc-patches/2015-08/msg01147.html
gcc/
PR rtl-optimization/67421
* expr.c (expand_expr_real_2): Cost instrcution sequences when doing left wide
shift tranformation.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227629
138bc75d-0d04-0410-961f-
82ee72b054a4
amylaar [Thu, 10 Sep 2015 09:46:03 +0000 (09:46 +0000)]
2015-09-10 Claudiu Zissulescu <claziss@synopsys.com>
* common/config/arc/arc-common.c: Remove references to A5.
* config/arc/arc-opts.h: Likewise.
* config/arc/arc.c, config/arc/arc.h, config/arc/arc.md: Likewise.
* config/arc/arc.opt, config/arc/constraints.md: Likewise.
* config/arc/t-arc-newlib: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227627
138bc75d-0d04-0410-961f-
82ee72b054a4
amylaar [Thu, 10 Sep 2015 09:19:52 +0000 (09:19 +0000)]
2015-09-10 Claudiu Zissulescu <claziss@synopsys.com>
* config/arc/arc.md (length): Fix attribute length for conditional
executed instructions with long immediate.
(posted as: https://gcc.gnu.org/ml/gcc/2015-03/msg00268.html)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227626
138bc75d-0d04-0410-961f-
82ee72b054a4
jiwang [Thu, 10 Sep 2015 09:15:14 +0000 (09:15 +0000)]
[AArch64] Skip tiny and large code model on gcc.target/aarch64/pic-small.c
gcc/testsuite/
* gcc.target/aarch64/pic-small.c (dg-skip-if): Skip tiny and large code model.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227624
138bc75d-0d04-0410-961f-
82ee72b054a4
ktkachov [Thu, 10 Sep 2015 09:10:06 +0000 (09:10 +0000)]
[AArch64] Use logics_imm type for 2nd alternative of *and<mode>3nr_compare0
* config/aarch64/aarch64.md (*and<mode>3nr_compare0): Use logics_imm
type for second alternative.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227623
138bc75d-0d04-0410-961f-
82ee72b054a4
trippels [Thu, 10 Sep 2015 07:57:13 +0000 (07:57 +0000)]
Fix typo in doc/install.texi
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227620
138bc75d-0d04-0410-961f-
82ee72b054a4
trippels [Thu, 10 Sep 2015 07:55:36 +0000 (07:55 +0000)]
doc/install.texi: Mention contrib/download_prerequisites
Mention ./contrib/download_prerequisites on the "Downloading GCC" page.
* doc/invoke.texi (Downloading GCC): Mention
contrib/download_prerequisites script.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227619
138bc75d-0d04-0410-961f-
82ee72b054a4
jakub [Thu, 10 Sep 2015 07:35:56 +0000 (07:35 +0000)]
PR c++/67523
* gimplify.c (gimplify_omp_for): If inner stmt is not found
for combined loop, assert seen_error () and return GS_ERROR.
* g++.dg/gomp/pr67523.C: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227611
138bc75d-0d04-0410-961f-
82ee72b054a4
jakub [Thu, 10 Sep 2015 07:34:42 +0000 (07:34 +0000)]
PR c++/67522
* semantics.c (handle_omp_array_sections_1): Only run
type_dependent_expression_p on VAR_DECL/PARM_DECLs.
(finish_omp_clauses) <case OMP_CLAUSE_LINEAR>: Likewise.
Don't adjust OMP_CLAUSE_LINEAR_STEP if OMP_CLAUSE_DECL
is not a VAR_DECL/PARM_DECL.
* g++.dg/gomp/pr67522.C: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227610
138bc75d-0d04-0410-961f-
82ee72b054a4
jakub [Thu, 10 Sep 2015 07:32:54 +0000 (07:32 +0000)]
PR middle-end/67521
* gimplify.c (gimplify_omp_for): Don't call omp_add_variable
if decl is already in outer->variables.
* c-c++-common/gomp/pr67521.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227609
138bc75d-0d04-0410-961f-
82ee72b054a4
jakub [Thu, 10 Sep 2015 07:32:13 +0000 (07:32 +0000)]
PR middle-end/67517
* gimplify.c (gimplify_scan_omp_clauses): Instead of
asserting that decl is not specified in octx->variables,
break out of the loop if it is.
* c-c++-common/gomp/pr67517.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227608
138bc75d-0d04-0410-961f-
82ee72b054a4
jakub [Thu, 10 Sep 2015 07:31:14 +0000 (07:31 +0000)]
PR c++/67514
* gimplify.c (gimplify_omp_for): For loop SIMD construct, if
iterator is not explicitly determined, but is defined inside
of the combined workshare region, handle it like if it has
DECL_EXPR in OMP_FOR_PRE_BODY.
* g++.dg/gomp/pr67514.C: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227607
138bc75d-0d04-0410-961f-
82ee72b054a4
jakub [Thu, 10 Sep 2015 07:30:29 +0000 (07:30 +0000)]
PR c++/67511
* semantics.c (handle_omp_for_class_iterator): Don't wrap
error_mark_node into a NOP_EXPR to void_type_node.
* g++.dg/gomp/pr67511.C: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227606
138bc75d-0d04-0410-961f-
82ee72b054a4
jakub [Thu, 10 Sep 2015 07:28:27 +0000 (07:28 +0000)]
PR c/67502
* c-parser.c (c_parser_omp_for_loop): Emit DECL_EXPR stmts
into OMP_FOR_PRE_BODY rather than before the loop.
* c-c++-common/gomp/pr67502.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227605
138bc75d-0d04-0410-961f-
82ee72b054a4
ian [Thu, 10 Sep 2015 03:46:03 +0000 (03:46 +0000)]
compiler: Don't allow shifts with non-integers.
Fixes golang/go#11616.
Reviewed-on: https://go-review.googlesource.com/13688
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227604
138bc75d-0d04-0410-961f-
82ee72b054a4
gccadmin [Thu, 10 Sep 2015 00:16:11 +0000 (00:16 +0000)]
Daily bump.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227603
138bc75d-0d04-0410-961f-
82ee72b054a4
nathan [Wed, 9 Sep 2015 17:18:15 +0000 (17:18 +0000)]
* config/nvptx/nvptx.md (call_operation): Move bound out of loop.
(*cmp<mode>): Add assembler spacing.
(setcc_int<mode>, set_cc_float<mode>): Likewise.
* config/nvptx/nvptx.c (nvptx_option_override): Override debug
level.
(write_func_decl_from_insn): Refactor argument loops & comma emission.
(nvptx_expand_call): Likewise.
(nvptx_output_call_insn): Likewise.
(nvptx_reorg_subreg): Add spacing.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227597
138bc75d-0d04-0410-961f-
82ee72b054a4
redi [Wed, 9 Sep 2015 17:12:47 +0000 (17:12 +0000)]
Enable lightweight checks with _GLIBCXX_ASSERTIONS.
* doc/xml/manual/using.xml (_GLIBCXX_ASSERTIONS): Document.
* doc/html/manual/using_macros.html: Regenerate.
* include/bits/c++config: Define _GLIBCXX_ASSERTIONS when
_GLIBCXX_DEBUG is defined. Disable std::string extern templates when
(_GLIBCXX_EXTERN_TEMPLATE, __glibcxx_assert): Depend on
_GLIBCXX_ASSERTIONS instead of _GLIBCXX_DEBUG.
* include/debug/debug.h [!_GLIBCXX_DEBUG]: Define
__glibcxx_requires_non_empty_range and __glibcxx_requires_nonempty.
* include/backward/auto_ptr.h (auto_ptr::operator*,
auto_ptr::operator->): Replace _GLIBCXX_DEBUG_ASSERT with
__glibcxx_assert.
* include/bits/basic_string.h (basic_string::operator[],
basic_string::front, basic_string::back, basic_string::pop_back):
Likewise.
* include/bits/random.h
(uniform_int_distribution::param_type::param_type,
uniform_real_distribution::param_type::param_type,
normal_distribution::param_type::param_type,
gamma_distribution::param_type::param_type,
bernoulli_distribution::param_type::param_type,
binomial_distribution::param_type::param_type,
geometric_distribution::param_type::param_type,
negative_binomial_distribution::param_type::param_type,
poisson_distribution::param_type::param_type,
exponential_distribution::param_type::param_type): Likewise.
* include/bits/regex.h (match_results::operator[],
match_results::prefix, match_results::suffix): Likewise.
* include/bits/regex.tcc (format, regex_iterator::operator++):
Likewise.
* include/bits/regex_automaton.tcc (_StateSeq::_M_clone): Likewise.
* include/bits/regex_compiler.tcc (_Compiler::_Compiler,
_Compiler::_M_insert_character_class_matcher): Likewise.
* include/bits/regex_executor.tcc (_Executor::_M_dfs): Likewise.
* include/bits/regex_scanner.tcc (_Scanner::_M_advance,
_Scanner::_M_scan_normal): Likewise.
* include/bits/shared_ptr_base.h (__shared_ptr::_M_reset,
__shared_ptr::operator*): Likewise.
* include/bits/stl_iterator_base_funcs.h (__advance): Likewise.
* include/bits/unique_ptr.h (unique_ptr::operator*,
unique_ptr::operator[]): Likewise.
* include/experimental/fs_path.h (path::path(string_type, _Type),
path::iterator::operator++, path::iterator::operator--,
path::iterator::operator*): Likewise.
* include/experimental/string_view (basic_string_view::operator[],
basic_string_view::front, basic_string_view::back,
basic_string_view::remove_prefix): Likewise.
* include/ext/random (beta_distribution::param_type::param_type,
normal_mv_distribution::param_type::param_type,
rice_distribution::param_type::param_type,
pareto_distribution::param_type::param_type,
k_distribution::param_type::param_type,
arcsine_distribution::param_type::param_type,
hoyt_distribution::param_type::param_type,
triangular_distribution::param_type::param_type,
von_mises_distribution::param_type::param_type,
hypergeometric_distribution::param_type::param_type,
logistic_distribution::param_type::param_type): Likewise.
* include/ext/vstring.h (__versa_string::operator[]): Likewise.
* include/std/complex (polar): Likewise.
* include/std/mutex [!_GTHREAD_USE_MUTEX_TIMEDLOCK]
(timed_mutex::~timed_mutex, timed_mutex::unlock,
(recursive_timed_mutex::~timed_mutex, recursive_timed_mutex::unlock):
Likewise.
* include/std/shared_mutex [!PTHREAD_RWLOCK_INITIALIZER]
(__shared_mutex_pthread::__shared_mutex_pthread,
__shared_mutex_pthread::~__shared_mutex_pthread): Likewise.
(__shared_mutex_pthread::lock, __shared_mutex_pthread::try_lock,
__shared_mutex_pthread::unlock, __shared_mutex_pthread::lock_shared,
__shared_mutex_pthread::try_lock_shared): Likewise.
(__shared_mutex_cv::~__shared_mutex_cv, __shared_mutex_cv::unlock,
__shared_mutex_cv::unlock_shared): Likewise.
(shared_timed_mutex::try_lock_until,
shared_timed_mutex::try_lock_shared_until): Likewise.
* include/std/valarray (valarray::valarray(const _Tp*, size_t),
valarray::operator=, valarray::sum, valarray::min, valarray::max,
_DEFINE_VALARRAY_AUGMENTED_ASSIGNMENT, _DEFINE_BINARY_OPERATOR):
Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227595
138bc75d-0d04-0410-961f-
82ee72b054a4
mpolacek [Wed, 9 Sep 2015 17:09:32 +0000 (17:09 +0000)]
PR middle-end/67512
* tree-ssa-uninit.c (pred_equal_p): Only call invert_tree_comparison
for comparisons.
* gcc.dg/pr67512.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227594
138bc75d-0d04-0410-961f-
82ee72b054a4
paolo [Wed, 9 Sep 2015 16:48:13 +0000 (16:48 +0000)]
2015-09-09 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/53184
* doc/invoke.texi ([Wsubobject-linkage]): Document.
/c-family
2015-09-09 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/53184
* c.opt ([Wsubobject-linkage]): Add.
/cp
2015-09-09 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/53184
* decl2.c (constrain_class_visibility): Use Wsubobject-linkage.
/testsuite
2015-09-09 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/53184
* g++.dg/warn/Wsubobject-linkage-1.C: New.
* g++.dg/warn/Wsubobject-linkage-2.C: Likewise.
* g++.dg/warn/Wsubobject-linkage-3.C: Likewise.
* g++.dg/warn/Wsubobject-linkage-4.C: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227593
138bc75d-0d04-0410-961f-
82ee72b054a4
trippels [Wed, 9 Sep 2015 16:34:59 +0000 (16:34 +0000)]
Fix sanitizer/67258 by cherry picking upstream patch
PR sanitizer/67258
* ubsan/ubsan_type_hash.cc: Cherry pick upstream r244101.
Upstraem patch:
commit
1d2477faafda9ad2cc19927b3c31efd22747f013
Author: Alexey Samsonov <vonosmas@gmail.com>
Date: Wed Aug 5 19:35:46 2015 +0000
[UBSan] Fix UBSan-vptr false positive.
Offset from vptr to the start of most-derived object can actually
be positive in some virtual base class vtables.
Patch by Stephan Bergmann!
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@244101
91177308-0d34-0410-b5e6-
96231b3b80d8
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227591
138bc75d-0d04-0410-961f-
82ee72b054a4
vries [Wed, 9 Sep 2015 14:44:01 +0000 (14:44 +0000)]
Add copyright in gcc/params-list.h
2015-09-09 Tom de Vries <tom@codesourcery.com>
* params-list.h: Add missing copyright notice.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227590
138bc75d-0d04-0410-961f-
82ee72b054a4
nathan [Wed, 9 Sep 2015 14:07:01 +0000 (14:07 +0000)]
* config/nvptx/nvptx.md (atomic_compare_and_swap<mode>): Use
sel_truesi, not andsi.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227587
138bc75d-0d04-0410-961f-
82ee72b054a4
ktkachov [Wed, 9 Sep 2015 08:41:41 +0000 (08:41 +0000)]
[ARM][3/3] Expand mod by power of 2
* config/arm/arm.md (*subsi3_compare0): Rename to...
(subsi3_compare0): ... This.
(modsi3): New define_expand.
* config/arm/arm.c (arm_new_rtx_costs, MOD case): Handle case
when operand is power of 2.
* gcc.target/aarch64/mod_2.x: New file.
* gcc.target/aarch64/mod_256.x: Likewise.
* gcc.target/arm/mod_2.c: New test.
* gcc.target/arm/mod_256.c: Likewise.
* gcc.target/aarch64/mod_2.c: Likewise.
* gcc.target/aarch64/mod_256.c: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227586
138bc75d-0d04-0410-961f-
82ee72b054a4
ktkachov [Wed, 9 Sep 2015 08:39:13 +0000 (08:39 +0000)]
[AArch64][1/3] Expand signed mod by power of 2 using CSNEG
* config/aarch64/aarch64.md (mod<mode>3): New define_expand.
(*neg<mode>2_compare0): Rename to...
(neg<mode>2_compare0): ... This.
* config/aarch64/aarch64.c (aarch64_rtx_costs, MOD case):
Move check for speed inside the if-then-elses. Reflect
CSNEG sequence in MOD by power of 2 case.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227585
138bc75d-0d04-0410-961f-
82ee72b054a4
jakub [Wed, 9 Sep 2015 07:25:53 +0000 (07:25 +0000)]
PR c++/67504
* parser.c (cp_parser_omp_clause_collapse): Test tree_fits_shwi_p
before INTEGRAL_TYPE_P test.
* g++.dg/gomp/pr67504.C: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227579
138bc75d-0d04-0410-961f-
82ee72b054a4
jakub [Wed, 9 Sep 2015 07:24:48 +0000 (07:24 +0000)]
PR c/67501
* c-parser.c (c_parser_oacc_all_clauses,
c_parser_omp_all_clauses): Remove invalid clause from
list of clauses even if parser->error is set.
* c-c++-common/gomp/pr67501.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227578
138bc75d-0d04-0410-961f-
82ee72b054a4
jakub [Wed, 9 Sep 2015 07:24:03 +0000 (07:24 +0000)]
PR c/67500
* c-parser.c (c_parser_omp_clause_aligned,
c_parser_omp_clause_safelen, c_parser_omp_clause_simdlen): Fix up
test for errors.
* c-decl.c (temp_pop_parm_decls): Allow b->decl equal to
error_mark_node.
* gcc.dg/gomp/pr67500.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227577
138bc75d-0d04-0410-961f-
82ee72b054a4
jakub [Wed, 9 Sep 2015 07:23:11 +0000 (07:23 +0000)]
PR c/67495
* c-parser.c (c_parser_omp_atomic): Use c_parser_cast_expression
instead of c_parser_unary_expression. If the result is !lvalue_p,
wrap the result of c_fully_fold into NON_LVALUE_EXPR.
* gcc.dg/gomp/pr67495.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227576
138bc75d-0d04-0410-961f-
82ee72b054a4
amodra [Wed, 9 Sep 2015 05:56:26 +0000 (05:56 +0000)]
Fix PowerPC ICE due to secondary_reload ignoring reload replacements
The reason for this PR is that insns emitted by secondary reload
patterns are being generated without taking into account other reloads
that may have occurred. We run into this problem when an insn has a
pseudo that doesn't get a hard reg, and the pseudo is used in a way
that requires a secondary reload. In this case the secondary reload
is needed due to gcc generating a 64-bit gpr load from memory insn
with an address offset not a multiple of 4.
PR target/67378
* config/rs6000/rs6000.c (rs6000_secondary_reload_gpr): Find
reload replacement for PRE_MODIFY address reg.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227573
138bc75d-0d04-0410-961f-
82ee72b054a4
spop [Wed, 9 Sep 2015 04:20:47 +0000 (04:20 +0000)]
fix PR53852: stop ISL after a given number of operations
2015-09-02 Sebastian Pop <s.pop@samsung.com>
* config.in: Regenerate.
* configure: Regenerate.
* configure.ac (HAVE_ISL_CTX_MAX_OPERATIONS): Detect.
* graphite-optimize-isl.c (optimize_isl): Stop computation when
PARAM_MAX_ISL_OPERATIONS is reached.
* params.def (PARAM_MAX_ISL_OPERATIONS): Add.
* graphite-dependences.c (extend_schedule): Remove gcc_asserts on
result equal to isl_stat_ok as the status now can be isl_error_quota.
(subtract_commutative_associative_deps): Same.
(compute_deps): Same.
testsuite/
* gcc.dg/graphite/uns-interchange-12.c: Adjust pattern to pass with
both isl-0.12 and isl-0.15.
* gcc.dg/graphite/uns-interchange-14.c: Same.
* gcc.dg/graphite/uns-interchange-15.c: Same.
* gcc.dg/graphite/uns-interchange-mvt.c: Same.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227572
138bc75d-0d04-0410-961f-
82ee72b054a4
gccadmin [Wed, 9 Sep 2015 00:16:12 +0000 (00:16 +0000)]
Daily bump.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227571
138bc75d-0d04-0410-961f-
82ee72b054a4
hp [Tue, 8 Sep 2015 23:58:09 +0000 (23:58 +0000)]
* backtrace.c: #include <sys/types.h>.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227568
138bc75d-0d04-0410-961f-
82ee72b054a4
spop [Tue, 8 Sep 2015 22:18:11 +0000 (22:18 +0000)]
Remove limit_scops
This patch removes graphite-scop-detection.c:limit_scops function and fix
related issues arising because of that. The functionality limit_scop was added
as an intermediate step to discard the loops which graphite could not
handle. Removing limit_scop required handling of different cases of loops and
surrounding code. The scop is now larger so most test cases required 'number of
scops detected' to be fixed. By increasing the size of scop we can now optimize
loops which are 'siblings' of each other. This could enable loop fusion on a
number of loops. Since in the graphite framework we mostly want to opimize
loop-nests/adjacent-loops, we now discard scops with less than 2 loops. We
also discard scops without any data references.
Essentially:
- Remove limite_scops.
- Only select scops when there are at least two loops (loop nest or, side by side).
- Discard loops without data-refs.
- Fix test cases.
Passes bootstrap and reg-test.
gcc/ChangeLog:
2015-09-02 Aditya Kumar <hiraditya@msn.com>
Sebastian Pop <s.pop@samsung.com>
* graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
Return the parameter if it was saved in corresponding
parameter_rename_map of the region.
(copy_def): Copy def from sese region to the newly created region.
(copy_internal_parameters): Copy all the internal parameters defined
within a region to the newly created region.
(graphite_regenerate_ast_isl): Copy parameters to the new region before
translating isl to gimple.
* graphite-scop-detection.c (graphite_can_represent_loop): Bail out if
the loop-nest does not have any data-references.
(build_graphite_scops): Create a scop only when there is at least one
loop inside it.
(contains_only_close_phi_nodes): Deleted.
(print_graphite_scop_statistics): Deleted
(print_graphite_statistics): Deleted
(limit_scops): Deleted.
(build_scops): Removed call to limit_scops.
* sese.c (new_sese): Construct.
(free_sese): Destruct.
(sese_add_exit_phis_edge): update_stmt after exit phi edge has been
added.
(set_rename): Pass sese region so that parameters inside the region can
be added to its parameter_rename_map.
(rename_uses): Pass sese region.
(graphite_copy_stmts_from_block): Do not copy parameters that have been
generated in the header of the scop. For each SSA_NAME in the
parameter_rename_map rename its usage.
(invariant_in_sese_p_rec): Return false if tree t is defined outside
sese region.
(scalar_evolution_in_region): If the tree t is invariant just return t.
* sese.h: Added a parameter renamne map (parameter_rename_map_t) to
struct sese to keep track of all the parameters which need renaming.
* tree-data-ref.c (loop_nest_has_data_refs): Check if a loop nest has
any data-refs.
* tree-data-ref.h: Declaration of loop_nest_has_data_refs.
gcc/testsuite/ChangeLog:
2015-09-02 Aditya Kumar <hiraditya@msn.com>
Sebastian Pop <s.pop@samsung.com>
* gcc.dg/graphite/block-0.c: Modifed test case to match current output.
* gcc.dg/graphite/block-1.c: Same.
* gcc.dg/graphite/block-5.c: Same.
* gcc.dg/graphite/block-6.c: Same.
* gcc.dg/graphite/interchange-1.c: Same.
* gcc.dg/graphite/interchange-10.c: Same.
* gcc.dg/graphite/interchange-11.c: Same.
* gcc.dg/graphite/interchange-13.c: Same.
* gcc.dg/graphite/interchange-14.c: Same.
* gcc.dg/graphite/interchange-3.c: Same.
* gcc.dg/graphite/interchange-4.c: Same.
* gcc.dg/graphite/interchange-7.c: Same.
* gcc.dg/graphite/interchange-8.c: Same.
* gcc.dg/graphite/interchange-9.c: Same.
* gcc.dg/graphite/isl-codegen-loop-dumping.c: Same.
* gcc.dg/graphite/pr35356-1.c (foo): Same.
* gcc.dg/graphite/pr37485.c: Same.
* gcc.dg/graphite/scop-0.c (int toto): Same.
* gcc.dg/graphite/scop-1.c: Same.
* gcc.dg/graphite/scop-10.c: Same.
* gcc.dg/graphite/scop-11.c: Same.
* gcc.dg/graphite/scop-12.c: Same.
* gcc.dg/graphite/scop-13.c: Same.
* gcc.dg/graphite/scop-16.c: Same.
* gcc.dg/graphite/scop-17.c: Same.
* gcc.dg/graphite/scop-18.c: Same.
* gcc.dg/graphite/scop-2.c: Same.
* gcc.dg/graphite/scop-21.c (int test): Same.
* gcc.dg/graphite/scop-22.c (void foo): Same.
* gcc.dg/graphite/scop-4.c: Same.
* gcc.dg/graphite/scop-5.c: Same.
* gcc.dg/graphite/scop-6.c: Same.
* gcc.dg/graphite/scop-7.c: Same.
* gcc.dg/graphite/scop-8.c: Same.
* gcc.dg/graphite/scop-9.c: Same.
* gcc.dg/graphite/scop-mvt.c (void mvt): Introduced dependency so that
data-refs remain inside the inner loop.
* gcc.dg/graphite/uns-block-1.c: Modifed test case to match o/p.
* gcc.dg/graphite/uns-interchange-14.c: Same.
* gcc.dg/graphite/uns-interchange-9.c: Same.
* gfortran.dg/graphite/interchange-3.f90
libgomp/ChangeLog:
2015-09-04 Aditya Kumar <hiraditya@msn.com>
Sebastian Pop <s.pop@samsung.com>
* testsuite/libgomp.graphite/bounds.c (int foo): Modifed test case to
match o/p.
* testsuite/libgomp.graphite/force-parallel-1.c (void parloop): Same.
* testsuite/libgomp.graphite/force-parallel-4.c: Same.
* testsuite/libgomp.graphite/force-parallel-5.c: Same.
* testsuite/libgomp.graphite/force-parallel-7.c: Same.
* testsuite/libgomp.graphite/force-parallel-8.c: Same.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227567
138bc75d-0d04-0410-961f-
82ee72b054a4
vries [Tue, 8 Sep 2015 21:20:51 +0000 (21:20 +0000)]
Prevent unnecessary recompilation for trivial params.def changes
2015-09-08 Tom de Vries <tom@codesourcery.com>
* Makefile.in (generated_files): Add params.list.
(params.list, s-params.list): Add rule.
* params.h (enum compiler_param): Include params-list.h. Move define
DEFPARAM, include params.def and undef DEFPARAM ...
* params-list.h: ... here. New file.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227566
138bc75d-0d04-0410-961f-
82ee72b054a4
dmalcolm [Tue, 8 Sep 2015 19:59:42 +0000 (19:59 +0000)]
Trivial typo fix in pretty-print.h
gcc/ChangeLog:
* pretty-print.h (printer_fn): Fix typo in comment.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227562
138bc75d-0d04-0410-961f-
82ee72b054a4
law [Tue, 8 Sep 2015 19:54:23 +0000 (19:54 +0000)]
Re: [PATCH] Minor cleanup of const_and_copies stack
* tree-ssa-scopedtables.h (class const_and_copies): Fix comment typo.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227559
138bc75d-0d04-0410-961f-
82ee72b054a4
alalaw01 [Tue, 8 Sep 2015 19:44:36 +0000 (19:44 +0000)]
correct ChangeLog dates+address
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227558
138bc75d-0d04-0410-961f-
82ee72b054a4
alalaw01 [Tue, 8 Sep 2015 19:43:39 +0000 (19:43 +0000)]
ARM/AArch64 Testsuite] Add float16 lane_f16_indices tests
PR target/63870
* gcc.target/aarch64/advsimd-intrinsics/vld2_lane_f16_indices_1.c: New.
* gcc.target/aarch64/advsimd-intrinsics/vld2q_lane_f16_indices_1.c: New.
* gcc.target/aarch64/advsimd-intrinsics/vld3_lane_f16_indices_1.c: New.
* gcc.target/aarch64/advsimd-intrinsics/vld3q_lane_f16_indices_1.c: New.
* gcc.target/aarch64/advsimd-intrinsics/vld4_lane_f16_indices_1.c: New.
* gcc.target/aarch64/advsimd-intrinsics/vld4q_lane_f16_indices_1.c: New.
* gcc.target/aarch64/advsimd-intrinsics/vst2_lane_f16_indices_1.c: New.
* gcc.target/aarch64/advsimd-intrinsics/vst2q_lane_f16_indices_1.c: New.
* gcc.target/aarch64/advsimd-intrinsics/vst3_lane_f16_indices_1.c: New.
* gcc.target/aarch64/advsimd-intrinsics/vst3q_lane_f16_indices_1.c: New.
* gcc.target/aarch64/advsimd-intrinsics/vst4_lane_f16_indices_1.c: New.
* gcc.target/aarch64/advsimd-intrinsics/vst4q_lane_f16_indices_1.c: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227557
138bc75d-0d04-0410-961f-
82ee72b054a4
alalaw01 [Tue, 8 Sep 2015 19:38:22 +0000 (19:38 +0000)]
[ARM] Update sourcebuild.texi with testsuite/effective-target hooks
* doc/sourcebuild.texi (arm_neon_fp16): Correct cross-reference.
(arm_neon_fp16_ok): Document adding of -mfp16-format=ieee flag.
(arm_neon_fp16_hw): New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227556
138bc75d-0d04-0410-961f-
82ee72b054a4
alalaw01 [Tue, 8 Sep 2015 19:36:41 +0000 (19:36 +0000)]
[ARM/AArch64 Testsuite]Add test of vcvt{,_high}_i{f32_f16,f16_f32}
* gcc.target/aarch64/advsimd-intrinsics/vcvt_f16.c: New.
* lib/target-supports.exp
(check_effective_target_arm_neon_fp16_hw): New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227555
138bc75d-0d04-0410-961f-
82ee72b054a4
alalaw01 [Tue, 8 Sep 2015 19:34:21 +0000 (19:34 +0000)]
[ARM/AArch64 Testsuite] Add float16 tests to advsimd-intrinsics testsuite
* gcc.target/aarch64/advsimd-intrinsics/advsimd-intrinsics.exp:
Set additional_flags for neon-fp16 if supported, else fallback to neon.
* gcc.target/aarch64/advsimd-intrinsics/arm-neon-ref.h
(hfloat16_t): New.
(result, expected, clean_results, DECL_VARIABLE_64BITS_VARIANTS,
DECL_VARIABLE_128BITS_VARIANTS): Add float16x4_t and float16x8_t cases
if supported.
(CHECK_RESULTS): Redefine using CHECK_RESULTS_NAMED.
(CHECK_RESULTS_NAMED): Move body to CHECK_RESULTS_NAMED_NO_FP16;
redefine in terms of CHECK_RESULTS_NAMED_NO_FP16 with float16 variants
when those are supported.
(CHECK_RESULTS_NAMED_NO_FP16, CHECK_RESULTS_NO_FP16): New.
(vdup_n_f16): New.
* gcc.target/aarch64/advsimd-intrinsics/compute-ref-data.h (buffer,
buffer_pad, buffer_dup, buffer_dup_pad): Add float16x4 and float16x8_t
cases if supported.
* gcc.target/aarch64/advsimd-intrinsics/vbsl.c (exec_vbsl):
Use CHECK_RESULTS_NO_FP16 in place of CHECK_RESULTS.
* gcc.target/aarch64/advsimd-intrinsics/vdup-vmov.c (exec_vdup_vmov):
Likewise.
* gcc.target/aarch64/advsimd-intrinsics/vdup_lane.c (exec_vdup_lane):
Likewise.
* gcc.target/aarch64/advsimd-intrinsics/vext.c (exec_vext): Likewise.
* gcc.target/aarch64/advsimd-intrinsics/vcombine.c (expected):
Add float16x8_t case.
(main, exec_vcombine): test float16x4_t -> float16x8_t, if supported.
* gcc.target/aarch64/advsimd-intrinsics/vcreate.c (expected,
main, exec_vcreate): Likewise.
* gcc.target/aarch64/advsimd-intrinsics/vget_high (expected,
exec_vget_high): Likewise.
* gcc.target/aarch64/advsimd-intrinsics/vget_low.c (expected,
exec_vget_low): Likewise.
* gcc.target/aarch64/advsimd-intrinsics/vld1.c (expected, exec_vld1):
Likewise.
* gcc.target/aarch64/advsimd-intrinsics/vld1_dup.c (expected,
exec_vld1_dup): Likewise.
* gcc.target/aarch64/advsimd-intrinsics/vld1_lane.c (expected,
exec_vld1_lane): Likewise.
* gcc.target/aarch64/advsimd-intrinsics/vldX.c (expected, exec_vldX):
Likewise.
* gcc.target/aarch64/advsimd-intrinsics/vldX_dup.c (expected,
exec_vldX_dup): Likewise.
* gcc.target/aarch64/advsimd-intrinsics/vldX_lane.c (expected,
exec_vldX_lane): Likewise.
* gcc.target/aarch64/advsimd-intrinsics/vset_lane.c (expected,
exec_vset_lane): Likewise.
* gcc.target/aarch64/advsimd-intrinsics/vst1_lane.c (expected,
exec_vst1_lane): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227554
138bc75d-0d04-0410-961f-
82ee72b054a4
jason [Tue, 8 Sep 2015 19:33:47 +0000 (19:33 +0000)]
PR c++/67041
* pt.c (tsubst_copy_and_build): Handle variables like functions.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227553
138bc75d-0d04-0410-961f-
82ee72b054a4
alalaw01 [Tue, 8 Sep 2015 19:27:30 +0000 (19:27 +0000)]
[fold-const.c] Fix bigendian HFmode in native_interpret_real
* fold-const.c (native_interpret_real): Fix HFmode for bigendian where
UNITS_PER_WORD >= 4.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227552
138bc75d-0d04-0410-961f-
82ee72b054a4
alalaw01 [Tue, 8 Sep 2015 19:24:35 +0000 (19:24 +0000)]
[AArch64] Add vcvt(_high)?_f32_f16 intrinsics, with BE RTL fix
gcc/:
* config/aarch64/aarch64-simd.md (aarch64_simd_vec_unpacks_lo_<mode>,
aarch64_simd_vec_unpacks_hi_<mode>): New insn.
(vec_unpacks_lo_v4sf, vec_unpacks_hi_v4sf): Delete insn.
(vec_unpacks_lo_<mode>, vec_unpacks_hi_<mode>): New expand.
(aarch64_float_extend_lo_v2df): Rename to...
(aarch64_float_extend_lo_<Vwide>): this, using VDF and so adding V4SF.
* config/aarch64/aarch64-simd-builtins.def (vec_unpacks_hi): Add v8hf.
(float_extend_lo): Add v4sf.
* config/aarch64/arm_neon.h (vcvt_f32_f16, vcvt_high_f32_f16): New.
* config/aarch64/iterators.md (VQ_HSF): New iterator.
(VWIDE, Vwtype, Vhalftype): Add V8HF, V4SF.
(Vwide): New mode_attr.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227551
138bc75d-0d04-0410-961f-
82ee72b054a4
alalaw01 [Tue, 8 Sep 2015 19:18:29 +0000 (19:18 +0000)]
[AArch64] Improve code generation for float16 vector code
gcc/:
* config/aarch64/aarch64-simd.md (aarch64_simd_dup<mode>,
aarch64_dup_lane<mode>, aarch64_dup_lane_<vswap_width_name><mode>,
aarch64_simd_vec_set<mode>, vec_set<mode>, vec_perm_const<mode>,
vec_init<mode>, *aarch64_simd_ld1r<mode>, vec_extract<mode>): Add
V4HF and V8HF variants to iterator.
* config/aarch64/aarch64.c (aarch64_evpc_dup): Add V4HF and V8HF cases.
* config/aarch64/iterators.md (VDQF_F16): New.
(VSWAP_WIDTH, vswap_width_name): Add V4HF and V8HF cases.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227550
138bc75d-0d04-0410-961f-
82ee72b054a4
alalaw01 [Tue, 8 Sep 2015 19:13:29 +0000 (19:13 +0000)]
[AArch64] vreinterpret(q?), vget_(low|high), vld1(q?)_dup
gcc/:
* config/aarch64/arm_neon.h (vreinterpret_p8_f16, vreinterpret_p16_f16,
vreinterpret_f16_f64, vreinterpret_f16_s8, vreinterpret_f16_s16,
vreinterpret_f16_s32, vreinterpret_f16_s64, vreinterpret_f16_f32,
vreinterpret_f16_u8, vreinterpret_f16_u16, vreinterpret_f16_u32,
vreinterpret_f16_u64, vreinterpret_f16_p8, vreinterpret_f16_p16,
vreinterpretq_f16_f64, vreinterpretq_f16_s8, vreinterpretq_f16_s16,
vreinterpretq_f16_s32, vreinterpretq_f16_s64, vreinterpretq_f16_f32,
vreinterpretq_f16_u8, vreinterpretq_f16_u16, vreinterpretq_f16_u32,
vreinterpretq_f16_u64, vreinterpretq_f16_p8, vreinterpretq_f16_p16,
vreinterpret_f32_f16, vreinterpret_f64_f16, vreinterpret_s64_f16,
vreinterpret_u64_f16, vreinterpretq_u64_f16, vreinterpret_s8_f16,
vreinterpret_s16_f16, vreinterpret_s32_f16, vreinterpret_u8_f16,
vreinterpret_u16_f16, vreinterpret_u32_f16, vreinterpretq_p8_f16,
vreinterpretq_p16_f16, vreinterpretq_f32_f16, vreinterpretq_f64_f16,
vreinterpretq_s64_f16, vreinterpretq_s8_f16, vreinterpretq_s16_f16,
vreinterpretq_s32_f16, vreinterpretq_u8_f16, vreinterpretq_u16_f16,
vreinterpretq_u32_f16, vget_low_f16, vget_high_f16, vld1_dup_f16,
vld1q_dup_f16): New.
gcc/testsuite/:
* gcc.target/aarch64/vget_high_1.c: Add float16x8->float16x4 case.
* gcc.target/aarch64/vget_low_1.c: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227546
138bc75d-0d04-0410-961f-
82ee72b054a4
alalaw01 [Tue, 8 Sep 2015 19:08:34 +0000 (19:08 +0000)]
[AArch64] Implement vcvt_{,high_}f16_f32
* config/aarch64/aarch64-simd.md (aarch64_float_truncate_lo_v2sf):
Reparameterize to...
(aarch64_float_truncate_lo_<mode>): ...this, for both V2SF and V4HF.
(aarch64_float_truncate_hi_v4sf): Reparameterize to...
(aarch64_float_truncate_hi_<Vdbl>): ...this, for both V4SF and V8HF.
* config/aarch64/aarch64-simd-builtins.def (float_truncate_hi_): Add
v8hf variant.
(float_truncate_lo_): Use BUILTIN_VDF iterator.
* config/aarch64/arm_neon.h (vcvt_f16_f32, vcvt_high_f16_f32): New.
* config/aarch64/iterators.md (VDF, Vdtype): New.
(VWIDE, Vmwtype): Add cases for V4HF and V2SF.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227545
138bc75d-0d04-0410-961f-
82ee72b054a4
alalaw01 [Tue, 8 Sep 2015 19:03:53 +0000 (19:03 +0000)]
[AArch64] vld{2,3,4}{,_lane,_dup}, vcombine, vcreate
gcc/:
* config/aarch64/aarch64.c (aarch64_split_simd_combine): Add V4HFmode.
* config/aarch64/aarch64-builtins.c (VAR13, VAR14): New.
(aarch64_scalar_builtin_types, aarch64_init_simd_builtin_scalar_types):
Add __builtin_aarch64_simd_hf.
* config/aarch64/arm_neon.h (float16x4x2_t, float16x8x2_t,
float16x4x3_t, float16x8x3_t, float16x4x4_t, float16x8x4_t,
vcombine_f16, vst2_lane_f16, vst2q_lane_f16, vst3_lane_f16,
vst3q_lane_f16, vst4_lane_f16, vst4q_lane_f16, vld2_f16, vld2q_f16,
vld3_f16, vld3q_f16, vld4_f16, vld4q_f16, vld2_dup_f16, vld2q_dup_f16,
vld3_dup_f16, vld3q_dup_f16, vld4_dup_f16, vld4q_dup_f16,
vld2_lane_f16, vld2q_lane_f16, vld3_lane_f16, vld3q_lane_f16,
vld4_lane_f16, vld4q_lane_f16, vst2_f16, vst2q_f16, vst3_f16,
vst3q_f16, vst4_f16, vst4q_f16, vcreate_f16): New.
* config/aarch64/iterators.md (VALLDIF, Vtype, Vetype, Vbtype,
V_cmp_result, v_cmp_result): Add cases for V4HF and V8HF.
(VDC, Vdbl): Add V4HF.
gcc/testsuite/:
* gcc.target/aarch64/vldN_1.c: Add float16x4_t and float16x8_t cases.
* gcc.target/aarch64/vldN_dup_1.c: Likewise.
* gcc.target/aarch64/vldN_lane_1.c: Likewise.
(main): update orig_data to avoid float16 NaN on bigendian.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227543
138bc75d-0d04-0410-961f-
82ee72b054a4
alalaw01 [Tue, 8 Sep 2015 18:57:31 +0000 (18:57 +0000)]
[AArch64] Add support for float16x{4,8}_t vectors/builtins
gcc/:
* config/aarch64/aarch64.c (aarch64_vector_mode_supported_p): Support
V4HFmode and V8HFmode.
(aarch64_split_simd_move): Add case for V8HFmode.
* config/aarch64/aarch64-builtins.c (v4hf_UP, v8hf_UP): Define.
(aarch64_simd_builtin_std_type): Handle HFmode.
(aarch64_init_simd_builtin_types): Include Float16x4_t and Float16x8_t.
* config/aarch64/aarch64-simd.md (mov<mode>, aarch64_get_lane<mode>,
aarch64_ld1<VALL:mode>, aarch64_st1<VALL:mode): Use VALL_F16 iterator.
(aarch64_be_ld1<mode>, aarch64_be_st1<mode>): Use VALLDI_F16 iterator.
* config/aarch64/aarch64-simd-builtin-types.def: Add Float16x4_t,
Float16x8_t.
* config/aarch64/aarch64-simd-builtins.def (ld1, st1): Use VALL_F16.
* config/aarch64/arm_neon.h (float16x4_t, float16x8_t, float16_t):
New typedefs.
(vget_lane_f16, vgetq_lane_f16, vset_lane_f16, vsetq_lane_f16,
vld1_f16, vld1q_f16, vst1_f16, vst1q_f16, vst1_lane_f16,
vst1q_lane_f16): New.
* config/aarch64/iterators.md (VD, VQ, VQ_NO2E): Add vectors of HFmode.
(VALLDI_F16, VALL_F16): New.
(Vmtype, VEL, VCONQ, VHALF, V_TWO_ELEM, V_THREE_ELEM, V_FOUR_ELEM, q):
Add cases for V4HF and V8HF.
(VDBL, VRL2, VRL3, VRL4): Add V4HF case.
gcc/testsuite/:
* g++.dg/abi/mangle-neon-aarch64.C: Add cases for float16x4_t and
float16x8_t.
* gcc.target/aarch64/vset_lane_1.c: Likewise.
* gcc.target/aarch64/vld1-vst1_1.c: Likewise.
* gcc.target/aarch64/vld1_lane.c: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227542
138bc75d-0d04-0410-961f-
82ee72b054a4