- 27 May, 2018 6 commits
-
-
* config/pdp11/pdp11.md (truncsihi2): Remove. From-SVN: r260807
Paul Koning committed -
2018-05-27 François Dumont <fdumont@gcc.gnu.org> * include/bits/stl_tree.h (_Rb_tree_impl(_Node_allocator&&)): New. (_Rb_tree(const allocator_type&)): Use latter. * include/bits/stl_map.h (map(const allocator_type&)): Likewise. (map(initializer_list<value_type>, const allocator_type&)): Likewise. (map(_InputIterator, _InputIterator, const allocator_type&)): Likewise. * include/bits/stl_multimap.h (multimap(const allocator_type&)): Likewise. (multimap(initializer_list<value_type>, const allocator_type&)): Likewise. (multimap(_InputIterator, _InputIterator, const allocator_type&)): Likewise. * include/bits/stl_set.h (set(const allocator_type&)): Likewise. (set(initializer_list<value_type>, const allocator_type&)): Likewise. (set(_InputIterator, _InputIterator, const allocator_type&)): Likewise. * include/bits/stl_multiset.h (multiset(const allocator_type&)): Likewise. (multiset(initializer_list<value_type>, const allocator_type&)): Likewise. (multiset(_InputIterator, _InputIterator, const allocator_type&)): Likewise. From-SVN: r260806
François Dumont committed -
gcc/ * config/nds32/nds32-intrinsic.md (unaligned_storedi): Modify patterns implementation. (unaligned_store_dw): Ditto. * config/nds32/nds32-memory-manipulation.c (nds32_expand_movmemsi_loop_known_size): Refactoring implementation. (nds32_gen_dup_4_byte_to_word_value): Rename to ... (nds32_gen_dup_4_byte_to_word_value_aux): ... this. (emit_setmem_word_loop): Rename to ... (emit_setmem_doubleword_loop): ... this. (nds32_gen_dup_4_byte_to_word_value): New function. (nds32_gen_dup_8_byte_to_double_word_value): New function. (nds32_expand_setmem_loop): Refine implementation. (nds32_expand_setmem_loop_v3m): Ditto. * config/nds32/nds32-multiple.md (unaligned_store_update_base_dw): New pattern. Co-Authored-By: Chung-Ju Wu <jasonwucj@gmail.com> From-SVN: r260805
Monk Chiang committed -
gcc/ * config/nds32/nds32.md (bswapsi2, bswaphi2): New patterns. From-SVN: r260804
Chung-Ju Wu committed -
gcc/ * config/nds32/nds32.c (nds32_attribute_table): Add "no_prologue". (nds32_init_machine_status): Initialize machine->attr_naked_p and machine->attr_no_prologue_p. (nds32_compute_stack_frame): Check "naked" and "no_prologue" attributes. (nds32_naked_function_p): Handle "naked" and "no_prologue" attributes. (nds32_expand_epilogue): Consider attr_naked_p. (nds32_expand_epilogue_v3pop): Likewise. (nds32_can_use_return_insn): Likewise. * config/nds32/nds32.h (machine_function): Add attr_naked_p and attr_no_prologue_p fields. * config/nds32/nds32.opt (mret-in-naked-func): New option. From-SVN: r260803
Chung-Ju Wu committed -
From-SVN: r260801
GCC Administrator committed
-
- 26 May, 2018 8 commits
-
-
re PR target/85918 (Conversions to/from [unsigned] long long are not vectorized for AVX512DQ target) PR target/85918 * config/i386/i386.md (fixunssuffix, floatunssuffix): New code attributes. * config/i386/sse.md (<floatsuffix>float<sseintvecmodelower><mode>2<mask_name><round_name>): Rename to ... (float<floatunssuffix><sseintvecmodelower><mode>2<mask_name><round_name>): ... this. (<floatsuffix>float<sselongvecmodelower><mode>2<mask_name><round_name>): Rename to ... (float<floatunssuffix><sselongvecmodelower><mode>2<mask_name><round_name>): ... this. (*<floatsuffix>floatv2div2sf2): Rename to ... (*float<floatunssuffix>v2div2sf2): ... this. (<floatsuffix>floatv2div2sf2_mask): Rename to ... (float<floatunssuffix>v2div2sf2_mask): ... this. (*<floatsuffix>floatv2div2sf2_mask_1): Rename to ... (*float<floatunssuffix>v2div2sf2_mask_1): ... this. (<fixsuffix>fix_truncv8dfv8si2<mask_name><round_saeonly_name>): Rename to ... (fix<fixunssuffix>_truncv8dfv8si2<mask_name><round_saeonly_name>): ... this. (<fixsuffix>fix_trunc<mode><sseintvecmodelower>2<mask_name><round_saeonly_name>): Rename to ... (fix<fixunssuffix>_trunc<mode><sseintvecmodelower>2<mask_name><round_saeonly_name>): ... this. (<fixsuffix>fix_trunc<mode><sselongvecmodelower>2<mask_name><round_saeonly_name>): Rename to ... (fix<fixunssuffix>_trunc<mode><sselongvecmodelower>2<mask_name><round_saeonly_name>): ... this. (<fixsuffix>fix_truncv2sfv2di2<mask_name>): Rename to ... (fix<fixunssuffix>_truncv2sfv2di2<mask_name>): ... this. (vec_pack_ufix_trunc_<mode>): Use gen_fixuns_truncv8dfv8si2 instead of gen_ufix_truncv8dfv8si2. * config/i386/i386-builtin.def (__builtin_ia32_cvttpd2uqq256_mask, __builtin_ia32_cvttpd2uqq128_mask, __builtin_ia32_cvttps2uqq256_mask, __builtin_ia32_cvttps2uqq128_mask, __builtin_ia32_cvtuqq2ps256_mask, __builtin_ia32_cvtuqq2ps128_mask, __builtin_ia32_cvtuqq2pd256_mask, __builtin_ia32_cvtuqq2pd128_mask, __builtin_ia32_cvttpd2udq512_mask, __builtin_ia32_cvtuqq2ps512_mask, __builtin_ia32_cvtuqq2pd512_mask, __builtin_ia32_cvttps2uqq512_mask, __builtin_ia32_cvttpd2uqq512_mask): Use fixuns instead ufix or floatuns instead ufloat in CODE_FOR_ names. * gcc.target/i386/avx512dq-pr85918.c: New test. From-SVN: r260797
Jakub Jelinek committed -
From-SVN: r260796
Jerry DeLisle committed -
2018-05-26 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR libgfortran/89506 * io/write.c (write_integer): Initialise the fnode format to FMT_NONE, used for list directed write. (BUF_STACK_SZ): Bump default buffer size up to avoid allocs on small stuff. From-SVN: r260795
Jerry DeLisle committed -
From-SVN: r260794
Jerry DeLisle committed -
2018-05-26 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR libgfortran/85840 * io/write.c (write_float_0): Use separate local variable for the float string length. From-SVN: r260793
Jerry DeLisle committed -
Since ifunc_resolver isn't set when an error is detected, we should lookup ifunc attribute in this case. PR target/85900 PR target/85345 * varasm.c (assemble_alias): Lookup ifunc attribute on error. From-SVN: r260792
H.J. Lu committed -
PR bootstrap/85921 * c-warn.c (diagnose_mismatched_attributes): Remove unnecessary noinline variable to workaround broken kernel headers. From-SVN: r260790
Jakub Jelinek committed -
From-SVN: r260789
GCC Administrator committed
-
- 25 May, 2018 26 commits
-
-
gcc/ * config/riscv/riscv-protos.h (riscv_epilogue_uses): New. * config/riscv/riscv.c (struct machine_function): Add interrupt_handler_p and attribute_checked_p fields. (riscv_attribute_table): Add interrupt. (riscv_interrupt_type_p): New. (riscv_save_reg_p): Save extra regs for interrupt handler. (riscv_use_save_libcall): Return false for interrupt handler. (riscv_first_stack_step): Add forward declaration. (riscv_compute_frame_info): New local interrupt_save_t1. Set it for interrupt handler with large frame. Use it for saved reg list. (riscv_expand_prologue): Move flag_stack_usage_info support to eliminate duplication. (riscv_expand_epilogue): Generate mret for interrupt handler. (riscv_epilogue_uses): New. (riscv_can_use_return_insn): Return false for interrupt handler. (riscv_function_ok_for_sibcall): Likewise. (riscv_set_current_function): Add interrupt handler support. * config/riscv/riscv.h (EPILOGUE_USES): Call riscv_epilogue_uses. * config/riscv/riscv.md (UNSPECV_MRET): New. (GP_REGNUM): New. (riscv_frflags, riscv_fsflags): Use tab after opcode. (riscv_mret): New. * doc/extend.texi (RISC-V Function Attributes) <interrupt>: New. gcc/testsuite/ * gcc.target/riscv/interrupt-1.c: New. * gcc.target/riscv/interrupt-2.c: New. * gcc.target/riscv/interrupt-3.c: New. * gcc.target/riscv/interrupt-4.c: New. * gcc.target/riscv/interrupt-5.c: New. From-SVN: r260785
Jim Wilson committed -
2018-05-25 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/85786 * gfortran.dg/pr85786.f90: New test. From-SVN: r260783
Steven G. Kargl committed -
* search.c (lookup_base): Use currently_open_class. (lookup_member): Use it regardless of -fconcepts. * parser.c (cp_parser_postfix_dot_deref_expression): Check it. From-SVN: r260782
Jason Merrill committed -
* gcc.c-torture/compile/20151204.c: Skip if pdp11. * gcc.c-torture/compile/pr55921.c: Ditto. * gcc.c-torture/compile/pr60655-1.c: Ditto. * gcc.c-torture/compile/vector-align-1.c: Add max alignment if pdp11. From-SVN: r260781
Paul Koning committed -
* tree.c (lvalue_kind): Fix handling of ARRAY_REF of pointer. From-SVN: r260780
Jason Merrill committed -
re PR tree-optimization/85712 (ICE in all_phi_incrs_profitable_1 at gcc/gimple-ssa-strength-reduction.c:3479) 2018-05-25 Bill Schmidt <wschmidt@linux.ibm.com> PR tree-optimization/85712 * gimple-ssa-strength-reduction.c (replace_one_candidate): Skip if this candidate has already been replaced in-situ by a copy. From-SVN: r260772
Bill Schmidt committed -
From-SVN: r260763
Rasmus Villemoes committed -
* symtab.c (nonzero_address): Check DECL_COMDAT. From-SVN: r260762
Jason Merrill committed -
2018-05-25 François Dumont <fdumont@gcc.gnu.org> PR libstdc++/85768 * src/c++11/debug.cc: Remove backtrace usage. From-SVN: r260761
François Dumont committed -
PR target/83628 * config/alpha/alpha.md (ashlsi3): New insn pattern. (*ashlsi_se): Rename from *ashldi_se. Define as sign extension of SImode operation. Use const123_operand predicate. (*saddsi_1): Remove. (*saddl_se_1): Ditto. (*ssubsi_1): Ditto. (*ssubl_se_1): Ditto. * config/alpha/predicates.md (const123_operand): New predicate. * config/alpha/constraints.md (P): Use IN_RANGE. From-SVN: r260760
Uros Bizjak committed -
2018-05-25 Richard Biener <rguenther@suse.de> * tree-ssa-alias.h (refs_may_alias_p): Add tbaa_p bool parameter, defaulted to true. (ref_maybe_used_by_stmt_p): Likewise. (stmt_may_clobber_ref_p): Likewise. (stmt_may_clobber_ref_p_1): Likewise. * tree-ssa-alias.c (refs_may_alias_p): Add tbaa_p bool parameter and pass it along. (ref_maybe_used_by_stmt_p): Likewise. (stmt_may_clobber_ref_p): Likewise. (stmt_may_clobber_ref_p_1): Likewise. * tree-vect-data-refs.c (vect_slp_analyze_node_dependences): Use the alias oracle to disambiguate DRs with stmts DR analysis couldn't handle. (vect_analyze_data_refs): Do not give up on not analyzable DRs for BB vectorization. Remove code truncating the dataref vector. From-SVN: r260757
Richard Biener committed -
PR target/85832 * config/i386/sse.md (<avx512>_eq<mode>3<mask_scalar_merge_name>_1): Add (=Yk,v,C) variant using vptestm insn. Use TARGET_AVX512BW in test instead of TARGET_AVX512F for VI12_AVX512VL iterator. * gcc.target/i386/avx512f-pr85832.c: New test. * gcc.target/i386/avx512vl-pr85832.c: New test. * gcc.target/i386/avx512bw-pr85832.c: New test. * gcc.target/i386/avx512vlbw-pr85832.c: New test. From-SVN: r260756
Jakub Jelinek committed -
tree-vect-data-refs.c (vect_find_stmt_data_reference): New function, combining stmt data ref gathering and fatal analysis parts. 2018-05-25 Richard Biener <rguenther@suse.de> * tree-vect-data-refs.c (vect_find_stmt_data_reference): New function, combining stmt data ref gathering and fatal analysis parts. (vect_analyze_data_refs): Remove now redudnant code and simplify. * tree-vect-loop.c (vect_get_datarefs_in_loop): Factor out from vect_analyze_loop_2 and use vect_find_stmt_data_reference. * tree-vect-slp.c (vect_slp_bb): Use vect_find_stmt_data_reference. * tree-vectorizer.h (vect_find_stmt_data_reference): Declare. From-SVN: r260754
Richard Biener committed -
PR tree-optimization/85720 * tree-loop-distribution.c (break_alias_scc_partitions): Don't merge SCC if all partitions are builtins. (version_loop_by_alias_check): New parameter. Generate cancelable runtime alias check if all partitions are builtins. (distribute_loop): Update call to above function. gcc/testsuite * gcc.dg/tree-ssa/pr85720.c: New test. * gcc.target/i386/avx256-unaligned-store-2.c: Disable loop pattern distribution. From-SVN: r260753
Bin Cheng committed -
2018-05-25 Martin Liska <mliska@suse.cz> PR testsuite/85911 * gcc.dg/tree-prof/update-loopch.c: Do not scan for 'Removing basic block'. From-SVN: r260748
Martin Liska committed -
* tree-outof-ssa.c (tree-ssa.h, tree-dfa.h): Include header files. (create_default_def, for_all_parms): Moved from tree-ssa-coalesce.c. (parm_default_def_partition_arg): Ditto. (set_parm_default_def_partition): Ditto. (get_parm_default_def_partitions): Ditto and make it static. (get_undefined_value_partitions): Ditto and make it static. (remove_ssa_form): Refactor call to init_var_map here. * tree-ssa-coalesce.c (build_ssa_conflict_graph): Support live range computation for loop region. (coalesce_partitions, compute_optimized_partition_bases): Ditto. (register_default_def): Delete. (for_all_parms, create_default_def): Move to tree-outof-ssa.c. (parm_default_def_partition_arg): Ditto. (set_parm_default_def_partition): Ditto. (get_parm_default_def_partitions): Ditto and make it static. (get_undefined_value_partitions): Ditto and make it static. (coalesce_with_default, coalesce_with_default): Update comment. (create_coalesce_list_for_region): New func factored out from create_outofssa_var_map. (populate_coalesce_list_for_outofssa): New func factored out from create_outofssa_var_map and coalesce_ssa_name. (create_outofssa_var_map): Delete. (coalesce_ssa_name): Refactor to support live range computation. * tree-ssa-coalesce.h (coalesce_ssa_name): Change decl. (get_parm_default_def_partitions): Delete. (get_undefined_value_partitions): Ditto. * tree-ssa-live.c (init_var_map, delete_var_map): Support live range computation for loop region. (new_tree_live_info, loe_visit_block): Ditto. (live_worklist, set_var_live_on_entry): Ditto. (calculate_live_on_exit, verify_live_on_entry): Ditto. * tree-ssa-live.h (struct _var_map): New fields. (init_var_map): Change decl. (region_contains_p): New. From-SVN: r260747
Bin Cheng committed -
From-SVN: r260746
Bin Cheng committed -
2018-05-25 Richard Biener <rguenther@suse.de> PR c++/85912 * tree-dump.c (dequeue_and_dump): Remove access to removed operand 2 of a SWITCH_EXPR. From-SVN: r260744
Richard Biener committed -
Once it is sure that the result will be infinity, stop computation and return the result. This ensure that the function call duration is bounded. Before that change on some cases the computation was taking more than a few seconds. 2018-05-25 Nicolas Roche <roche@adacore.com> gcc/ada/ * libgnat/s-valrea.adb (Scan_Real): Abort computation once it is sure that the result will be either -infinite or +infinite. From-SVN: r260743
Nicolas Roche committed -
This patch removes the restriction introduced recently that limited the size of the secondary stack to 2GB. The size of the secondary stack is now limited to half of the size of the memory address space for the target. 2018-05-25 Patrick Bernardi <bernardi@adacore.com> gcc/ada/ * libgnat/s-parame.ads, libgnat/s-parame__vxworks.ads, libgnat/s-parame__ae653.ads, libgnat/s-parame__hpux.ads (Size_Type): Expand range of type to match the address space of the target. (Task_Storage_Size): Remove unused type. gcc/testsuite/ * gnat.dg/sec_stack1.adb: New testcase. From-SVN: r260742
Patrick Bernardi committed -
This patch fixes a spurious error in a fixed-point operand of a multiplying operator M when the operand is an adding operation and the context imposes a different fixed-point type to the result of M. 2018-05-25 Ed Schonberg <schonberg@adacore.com> gcc/ada/ * sem_res.adb (Set_Mixed_Mode_Operand): If the operand is an expression of a fixed point type and the parent is a multiplying operation, resolve the operand with its own type because the context will impose a resulting type on the result of the multiplication by means of approriate conversion. gcc/testsuite/ * gnat.dg/fixedpnt4.adb: New testcase. From-SVN: r260741
Ed Schonberg committed -
This patch modifies the expansion of default-initialized array objects when pragma Initialize_Scalars or Normalize_Scalars is in effect to suppress the generation of checks on the constructed in-place aggregate. The aggregate intentionally contains invalid values which may not necessarily fit the constraints of a particular component type. Check suppression ensures that no spurious checks are generated, and that the effects of the pragmas are carried out. ------------ -- Source -- ------------ -- gnat.adc pragma Initialize_Scalars; -- init_scalar.adb with Ada.Text_IO; use Ada.Text_IO; procedure Init_Scalar is type Fixed is delta 0.25 range -12.0 .. 1270.0; type Fixed_Array is array (1 .. 1) of Fixed; begin begin declare Obj : Fixed; pragma Unreferenced (Obj); begin null; end; exception when others => Put_Line ("ERROR: Fixed raised exception"); end; begin declare Obj : Fixed_Array; pragma Unreferenced (Obj); begin null; end; exception when others => Put_Line ("ERROR: Fixed_Array raised exception"); end; end Init_Scalar; ----------------- -- Compilation -- ----------------- $ gnatmake -q init_scalar.adb $ ./init_scalar 2018-05-25 Hristian Kirtchev <kirtchev@adacore.com> gcc/ada/ * exp_ch3.adb (Default_Initialize_Object): Ensure that the analysis of the in-place initialization aggregate created for pragmas Initialize_Scalars or Normalize_Scalars is performed with checks suppressed. From-SVN: r260740
Hristian Kirtchev committed -
2018-05-25 Arnaud Charlet <charlet@adacore.com> gcc/ada/ * exp_aggr.adb (Convert_To_Positional): Bump default for Max_Others_Replicate to 32. Update comments. * osint.ads (Unknown_Attributes): No longer pretend this is a constant. (No_File_Info_Cache): Initialize separately. * osint.adb (No_File_Info_Cache): Update initializer. From-SVN: r260739
Arnaud Charlet committed -
The compiler rejects the use of a membership test when the left operand is a class-wide interface type object and the right operand is not a class-wide type. 2018-05-25 Javier Miranda <miranda@adacore.com> gcc/ada/ * sem_res.adb (Resolve_Membership_Op): Allow the use of the membership test when the left operand is a class-wide interface and the right operand is not a class-wide type. * exp_ch4.adb (Tagged_Membership): Adding support for interface as the left operand. gcc/testsuite/ * gnat.dg/interface7.adb: New testcase. From-SVN: r260738
Javier Miranda committed -
2018-05-25 Ed Schonberg <schonberg@adacore.com> gcc/ada/ * exp_aggr.adb (Flatten): A quantified expression cannot be duplicated in an others clause to prevent visibility issues with the generated loop variable. (Component_OK_For_Backend): Return false for a quantified expression. (Check_Static_Component): Ditto. From-SVN: r260737
Ed Schonberg committed -
This patch reimplements the secondary stack allocation logic to eliminate an issue which causes the memory index to overflow while the stack itself uses very little memory, thus causing a spurious Storage_Error. The issue in details: The total amount of memory that the secondary stack can accomodate is dictated by System.Parameters.Size_Type which is really an Integer, giving roughly 2 GB of storage. The secondary stack is comprised of multiple frames which logically form a contiguous array of memory. Each frame maintans a range over which it operates, where Low bound = Previous frame's high bound + 1 High bound = Previous frame's high bound + Frame size The allocation logic starts by first checking whether the current top frame (which may not be the "last" frame in the secondary stack) has enough memory to fit an object. If it does, then that frame is used. If it does not, the logic then examines the subsequent frames, while carrying out the following actions: * If the frame is too small to fit the object, it is deleted * If the frame is big enough to fit the object, it is used If all the frames were too small (and thus deleted), a new frame is added which is big enough to fit the object. Due to an issue with the deletion logic, the last frame would never be deleted. Since any new frame's range is based on the previous frame's range, the new range would keep growing, even though the secondary stack may have very few frames in use. Eventually this growth overflows the memory index type. The overflow of the memory index type happens only when the secondary stack is full, and thus signals a Storage_Error. Due to the spurious growth of the ranges, the overflow happens much faster and results in a bogus stack depleton. The issue manifests only when each new memory request to the secondary stack is slightly bigger than the previous memory request, thus prompring the secondary stack to delete all its frames, and create a new one. 2018-05-25 Hristian Kirtchev <kirtchev@adacore.com> gcc/ada/ * libgnat/s-secsta.adb (SS_Allocate): Reimplemented. (SS_Allocate_Dynamic): New routine. The allocation logic is now split into three distring cases rather than in one loop which attempts to handle all three cases. This rewrite eliminates an issue where the last frame of the stack cannot be freed, thus causing the memory range of a new frame to approach the overflow point of the memory index type. Since the overflow is logically treated as a too-much-memory-on-the-stack scenario, it causes a bogus Storage_Error. (SS_Allocate_Static): New routine. The routine factorizes the static secondary stack-related code from the former SS_Allocate. gcc/testsuite/ * gnat.dg/sec_stack2.adb: New testcase. From-SVN: r260736
Hristian Kirtchev committed
-