- 06 Jul, 2016 4 commits
-
-
I recently relaxed the peeling-for-gaps conditions for LD3 but kept them as-is for load-and-permute. I don't think the conditions are needed for load-and-permute either though. No current load-and- permute should load outside the group, so if there is no gap at the end, the final vector element loaded will correspond to an element loaded by the original scalar loop. The patch for PR68559 (a missed optimisation PR) increased the peeled cases from "exact_log2 (groupsize) == -1" to "vf % group_size == 0", so before that fix, we didn't peel for gaps if there was no gap at the end of the group and if the group size was a power of 2. The only current non-power-of-2 load-and-permute size is 3, which doesn't require loading more than 3 vectors. The testcase is based on gcc.dg/vect/pr49038.c. Tested on aarch64-linux-gnu and x86_64-linux-gnu. gcc/ * tree-vect-stmts.c (vectorizable_load): Remove unnecessary peeling-for-gaps condition. gcc/testsuite/ * gcc.dg/vect/group-no-gaps-1.c: New test. From-SVN: r238033
Richard Sandiford committed -
The fallback routine in the S/390 vecinit expander did not check whether each of the initializer elements is a proper general_operand. Since revision r236582 the expander is invoked also with e.g. symbol refs with an odd addend resulting in invalid insns. Fixed by forcing the element into a register in such cases. gcc/ChangeLog: 2016-07-06 Andreas Krebbel <krebbel@linux.vnet.ibm.com> * config/s390/s390.c (s390_expand_vec_init): Force initializer element to register if it doesn't match general_operand. From-SVN: r238032
Andreas Krebbel committed -
I have a Skylake system with MPX in the CPU, but MPX is disabled in the kernel configuration. This makes all the MPX tests fail because they assume if MPX is in CPUID it works Check the output of XGETBV too to detect non MPX kernels. gcc/testsuite/: 2016-07-05 Andi Kleen <ak@linux.intel.com> * gcc.target/i386/mpx/mpx-check.h: Check XGETBV output if kernel supports MPX. From-SVN: r238031
Andi Kleen committed -
From-SVN: r238029
GCC Administrator committed
-
- 05 Jul, 2016 18 commits
-
-
2016-07-05 Kito Cheng <kito.cheng@gmail.com> * gcc.c-torture/compile/pr69102.c: Require fpic support. From-SVN: r238023
Kito Cheng committed -
any_cast doesn't work with rvalue reference targets and cannot move with a value target. * include/experimental/any (any(_ValueType&&)): Constrain and add an overload that doesn't forward. (any_cast(any&&)): Constrain and add an overload that moves. * testsuite/experimental/any/misc/any_cast.cc: Add tests for the functionality added by LWG 2509. From-SVN: r238022
Ville Voutilainen committed -
Fix PR c++/71214 PR c++/71214 * c-cppbuiltin.c (c_cpp_builtins): Define __cpp_rvalue_references. From-SVN: r238017
Markus Trippelsdorf committed -
[gcc] 2016-07-05 Michael Meissner <meissner@linux.vnet.ibm.com> Bill Schmidt <wschmidt@linux.vnet.ibm.com> * config/rs6000/rs6000-protos.h (rs6000_split_signbit): New prototype. * config/rs6000/rs6000.c (rs6000_split_signbit): New function. * config/rs6000/rs6000.md (UNSPEC_SIGNBIT): New constant. (SIGNBIT): New mode iterator. (Fsignbit): New mode attribute. (signbit<mode>2): Change operand1 to match FLOAT128 instead of IBM128; dispatch to gen_signbit{kf,tf}2_dm for __float128 when direct moves are available. (signbit<mode>2_dm): New define_insn_and_split). (signbit<mode>2_dm2): New define_insn. [gcc/testsuite] 2016-07-05 Michael Meissner <meissner@linux.vnet.ibm.com> Bill Schmidt <wschmidt@linux.vnet.ibm.com> * gcc.target/powerpc/signbit-1.c: New test. * gcc.target/powerpc/signbit-2.c: New test. * gcc.target/powerpc/signbit-3.c: New test. Co-Authored-By: Bill Schmidt <wschmidt@linux.vnet.ibm.com> From-SVN: r238016
Michael Meissner committed -
PR rtl-optimization/71594 * ifcvt.c (noce_convert_multiple_sets): Wrap new_val or old_val into subregs of appropriate mode before trying to emit a conditional move. * gcc.dg/torture/pr71594.c: New test. From-SVN: r238013
Kyrylo Tkachov committed -
* tree-scalar-evolution.c (iv_can_overflow_p): New function. (simple_iv): Use it. * gcc.dg/tree-ssa/scev-14.c: new testcase. From-SVN: r238012
Jan Hubicka committed -
From-SVN: r238011
Jan Hubicka committed -
* lra-constraints.c (process_alt_operands): Don't add spilling cost for "offmemok". From-SVN: r238010
Jiong Wang committed -
* tree-scalar-evoluiton.c (simple_iv): Use nowrap_type to check if IV can overflow. From-SVN: r238009
Jan Hubicka committed -
gcc/cp/ChangeLog: PR c++/62314 * parser.c (cp_parser_class_specifier_1): When reporting missing semicolons, use a fixit-hint to suggest insertion of a semicolon immediately after the closing brace, offsetting the reported column accordingly. gcc/testsuite/ChangeLog: PR c++/62314 * gcc/testsuite/g++.dg/parse/error5.C: Update column number of missing semicolon error. * g++.dg/pr62314-2.C: New test case. From-SVN: r238008
David Malcolm committed -
From-SVN: r238007
Alessandro Fanfarillo committed -
2016-07-05 Richard Biener <rguenther@suse.de> * gimple-ssa-split-paths.c (find_block_to_duplicate_for_splitting_pa): Handle empty else block. (is_feasible_trace): Likewise. (split_paths): Likewise. From-SVN: r238005
Richard Biener committed -
2016-07-05 Richard Biener <rguenther@suse.de> * tree-loop-distribution.c (distribute_loop): Fix issue with the cost model loop. From-SVN: r238004
Richard Biener committed -
From-SVN: r238003
Arnaud Charlet committed -
gcc/fortran/ChangeLog: 2016-07-05 Andre Vehreschild <vehre@gcc.gnu.org> PR fortran/71623 * trans-stmt.c (gfc_trans_allocate): Add code of pre block of typespec in allocate to parent block. gcc/testsuite/ChangeLog: 2016-07-05 Andre Vehreschild <vehre@gcc.gnu.org> PR fortran/71623 * gfortran.dg/deferred_character_17.f90: New test. From-SVN: r238002
Andre Vehreschild committed -
* gcc-interface/decl.c (gnat_to_gnu_entity): Invoke global_bindings_p last when possible. Do not call elaborate_expression_2 on offsets in local record types and avoid useless processing for constant offsets. From-SVN: r238001
Eric Botcazou committed -
2016-07-05 Christophe Lyon <christophe.lyon@linaro.org> gcc/ * config/arm/neon-testgen.ml: Delete. * config/arm/neon.ml: Delete. gcc/testsuite/ * gcc.target/arm/neon/polytypes.c: Move to ... * gcc.target/arm/polytypes.c: ... here. * gcc.target/arm/neon/pr51534.c: Move to ... * gcc.target/arm/pr51534.c: ... here. * gcc.target/arm/neon/vect-vcvt.c: Move to ... * gcc.target/arm/vect-vcvt.c: ... here. * gcc.target/arm/neon/vect-vcvtq.c: Move to ... * gcc.target/arm/vect-vcvtq.c: ... here. * gcc.target/arm/neon/vfp-shift-a2t2.c: Move to ... * gcc.target/arm/vfp-shift-a2t2.c: ... here. * gcc.target/arm/neon/vst1Q_laneu64-1.c: Move to ... * gcc.target/arm/vst1Q_laneu64-1.c: ... here. Fix foo() prototype. * gcc.target/arm/neon/neon.exp: Delete. * gcc.target/arm/neon/*.c: Delete. From-SVN: r238000
Christophe Lyon committed -
From-SVN: r237998
GCC Administrator committed
-
- 04 Jul, 2016 18 commits
-
-
2016-07-04 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR fortran/66575 * decl.c (match_procedure_interface): Exit loop if procedure interface refers to itself. * gfortran.dg: pr65575.f90: New test. From-SVN: r237994
Jerry DeLisle committed -
2016-07-04 Jerry DeLisle <jvdelisle@gcc.gnu.org> Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/35849 * simplify.c (gfc_simplify_ishftc): Check that absolute value of SHIFT is less than or equal to SIZE. * gfortran.dg: pr35849.f90: New test. Co-Authored-By: Steven G. Kargl <kargl@gcc.gnu.org> From-SVN: r237993
Jerry DeLisle committed -
re PR c++/71739 (ICE on valid C++11 code: tree check: expected identifier_node, have tree_list in private_is_attribute_p, at tree.c:6080) PR c++/71739 * tree.c (attribute_value_equal): Use get_attribute_name instead of directly using TREE_PURPOSE. * g++.dg/cpp0x/pr71739.C: New test. From-SVN: r237991
Jakub Jelinek committed -
* config/aarch64/aarch64.h: Rename "ARMv8.1" to "ARMv8.1-A". * config/aarch64/aarch64_neon.h: Likewise. * config/aarch64/arm_neon.h: Likewise. * config/aarch64/atomics.md: Likewise. * config/aarch64/aarch64-simd-builtins.def: Likewise. * doc/invoke.texi: Likewise. From-SVN: r237988
Jiong Wang committed -
2016-07-04 Christophe Lyon <christophe.lyon@linaro.org> * c-c++-common/asan/clone-test-1.c (main): Handle clone() failure. From-SVN: r237987
Christophe Lyon committed -
2016-07-04 François Dumont <fdumont@gcc.gnu.org> * testsuite/23_containers/vector/modifiers/emplace/self_emplace.cc: New test. * testsuite/23_containers/vector/modifiers/insert/self_insert.cc: New test. From-SVN: r237986
François Dumont committed -
* include/bits/stl_vector.h (emplace(const_iterator, _Args&&...)): Define inline. Forward to _M_emplace_aux. (insert(const_iterator, value_type&&)): Forward to _M_insert_rval. (_M_insert_rval, _M_emplace_aux): Declare new functions. (_Temporary_value): New RAII type using allocator to construct/destroy. (_S_insert_aux_assign): Remove. (_M_insert_aux): Make non-variadic. * include/bits/vector.tcc (insert(const_iterator, const value_type&)): Use _Temporary_value. (emplace(const_iterator, _Args&&...)): Remove definition. (_M_insert_rval, _M_emplace_aux): Define. (_M_insert_aux): Make non-variadic, stop using _S_insert_aux_assign. (_M_fill_insert): Use _Temporary_value. * testsuite/23_containers/vector/allocator/construction.cc: New test. * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc: Adjust expected results for emplacing an lvalue with reallocation. * testsuite/23_containers/vector/check_construct_destroy.cc: Adjust expected results to account for construction/destruction of temporary using allocator. From-SVN: r237985
Jonathan Wakely committed -
The attached patch adds patterns to make use of the z13 LOCHI and LOCGHI instructions. gcc/ChangeLog: 2016-07-04 Dominik Vogt <vogt@linux.vnet.ibm.com> * config/s390/s390.md: Add "z13" cpu_facility. ("*mov<mode>cc"): Add support for z13 instructions lochi and locghi. * config/s390/predicates.md ("loc_operand"): New predicate for "load on condition" type instructions. gcc/testsuite/ChangeLog: 2016-07-04 Dominik Vogt <vogt@linux.vnet.ibm.com> * gcc.target/s390/vector/vec-scalar-cmp-1.c: Expect lochi instead of locr. * gcc.target/s390/loc-1.c: New test. From-SVN: r237984
Dominik Vogt committed -
gcc/ChangeLog: 2016-07-04 Dominik Vogt <vogt@linux.vnet.ibm.com> Jeff Law <law@redhat.com> * explow.c (allocate_dynamic_stack_space): Simplify knowing that MUST_ALIGN was always true and extra_align ist always BITS_PER_UNIT. Co-Authored-By: Jeff Law <law@redhat.com> From-SVN: r237983
Dominik Vogt committed -
gcc/ * config/i386/i386.c (ix86_expand_vec_perm): Add handle one-operand permutation for TARGET_AVX512F. (ix86_expand_vec_one_operand_perm_avx512): New function. (expand_vec_perm_1): Invoke introduced function. * tree-vect-loop.c (vect_transform_loop): Clear-up safelen value since it may be not valid after vectorization. gcc/testsuite/ * gcc/testsuite/gcc.target/i386/avx512f-vect-perm-1.c: New test. * gcc/testsuite/gcc.target/i386/avx512f-vect-perm-2.c: New test. From-SVN: r237982
Yuri Rumyantsev committed -
From-SVN: r237979
Arnaud Charlet committed -
PR libstdc++/71313 * src/filesystem/ops.cc (remove_all(const path&, error_code&)): Call remove_all for children of a directory. * testsuite/experimental/filesystem/operations/create_directories.cc: Adjust. From-SVN: r237978
Ville Voutilainen committed -
From-SVN: r237977
Arnaud Charlet committed -
2016-07-04 Ed Schonberg <schonberg@adacore.com> * sem_attr.adb (Analyze_Attribute_Old_Result): The attributes can appear in the postcondition of a subprogram renaming declaration, when the renamed entity is an attribute reference that is a function (such as 'Value). * sem_attr.adb (Eval_Attribute): It doesn't need to be static, just known at compile time, so use Compile_Time_Known_Value instead of Is_Static_Expression. This is an efficiency improvement over the previous bug fix. * sem_ch13.adb (Analyze_One_Aspect): Use Original_Node to detect illegal aspects on subprogram renaming declarations that may have been rewritten as bodies. 2016-07-04 Arnaud Charlet <charlet@adacore.com> * sem_intr.adb (Errint): Do not emit error message in Relaxed_RM_Semantics mode. From-SVN: r237976
Arnaud Charlet committed -
2016-07-04 Bob Duff <duff@adacore.com> * sem_attr.adb (Eval_Attribute): The code was assuming that X'Enum_Rep, where X denotes a constant, can be constant folded. Fix it so it makes that assumption only when X denotes a STATIC constant. From-SVN: r237975
Bob Duff committed -
From-SVN: r237974
Arnaud Charlet committed -
2016-07-04 Ed Schonberg <schonberg@adacore.com> * sem_ch4.adb (Compatible_Types_In_Predicate): New function to handle cases where a formal of a predicate function and the corresponding actual have different views of the same type. 2016-07-04 Philippe Gil <gil@adacore.com> * g-debpoo.adb (Free_Blocks) free blocks also until Logically_Deallocated less than Maximum_Logically_Freed_Memory (Dump) add dump of number of traceback & validity elements already allocated. 2016-07-04 Justin Squirek <squirek@adacore.com> * sem_ch12.adb (Instantiate_Package_Body): Add a guard to ignore Itypes which fail when installing primitives. From-SVN: r237973
Arnaud Charlet committed -
sem_eval.adb (Decompose_Expr): Set 'out' parameters Kind and Cons to valid values, to avoid use of uninit vars. 2016-07-04 Bob Duff <duff@adacore.com> * sem_eval.adb (Decompose_Expr): Set 'out' parameters Kind and Cons to valid values, to avoid use of uninit vars. (Extract_Length): Reorder the check to make it clearer that we're depending on BOTH Ent1 and Ent2 to be Present. * sem_aggr.adb (Resolve_Aggregate): Remove dead code. (Check_Misspelled_Component): Remove exit statement, because it's covered by the 'while' condition. * checks.adb (Apply_Selected_Range_Checks): Remove useless condition "or else not Checks_On". (Selected_Range_Checks): Initialize Known_LB and Known_HB to False, because they are tested unconditionally; avoid use of uninit vars. * frontend.adb (Frontend): Removed useless condition "Operating_Mode = Check_Semantics and then", and added an Assert to clarify why it was useless. * prep.adb (Preprocess): Remove redundant condition. Add an assertion. * sem_ch10.adb (Analyze_Proper_Body): Moved redundant condition "Original_Operating_Mode = Generate_Code" to an Assert. (Process_Spec_Clauses, Process_Body_Clauses): Change parameters from 'in out' to 'out', and don't initialize actuals. * sem_ch12.adb (Is_In_Main_Unit): Removed useless condition "Unum = Main_Unit or else". (Save_Global_Descendant): Moved redundant condition "D = Union_Id (No_List)" to an Assert. * sem_ch4.adb (Check_Misspelled_Selector): Remove exit statement, because it's covered by the 'while' condition. (Analyze_Case_Expression): Initialize Wrong_Alt to Empty, because it looks like it is used uninitialized otherwise. * sem_ch6.adb (Check_Return_Subtype_Indication): Moved redundant condition "not R_Type_Is_Anon_Access" to an Assert. * sem_elim.adb (Line_Num_Match): Moved redundant condition "Sloc_Trace (Idx) = '['" to an Assert. * sem_util.adb (Compile_Time_Constraint_Error): Change "J" to "J - 1". This code is trying to replace "?" with "<", but not if the "?" is quoted, as in "'?", so we want to check the PREVIOUS character for '''. * snames.adb-tmpl (Is_Pragma_Name): Remove useless condition "or else N = Name_Relative_Deadline". It's useless because Name_Relative_Deadline is in the range First_Pragma_Name .. Last_Pragma_Name. * treepr.adb (Visit_Node): Moved redundant condition "D = Union_Id (No_List)" to an Assert. * sem_ch3.adb (Derive_Subprogram, Derive_Subprograms): Change parameters from 'in out' to 'out'. * errout.adb (Error_Msg_Internal): Replace redundant test with Assert. * inline.adb (Add_Inlined_Body): Code cleanup. From-SVN: r237972
Bob Duff committed
-