- 28 Nov, 2016 24 commits
-
-
PR rtl-optimization/78546 * simplify-rtx.c (neg_const_int): When negating most negative number in mode wider than HOST_BITS_PER_WIDE_INT, use simplify_const_unary_operation to produce CONST_DOUBLE or CONST_WIDE_INT. (simplify_plus_minus): Hanlde the case where neg_const_int doesn't return a CONST_INT. * gcc.dg/torture/pr78546-1.c: New test. * gcc.dg/torture/pr78546-2.c: New test. From-SVN: r242929
Jakub Jelinek committed -
Running bootstrap-ubsan on ppc64le shows many instances of e.g.: config/rs6000/rs6000.c:6217:36: runtime error: left shift of negative value -12301 PR target/78556 * config/rs6000/rs6000.c (vspltis_constant): Add casts to avoid left shifting of negative values. From-SVN: r242928
Markus Trippelsdorf committed -
PR fortran/78298 * tree-nested.c (convert_local_reference_stmt): After adding shared (FRAME.NN) clause to omp parallel, task or target, add it also to all outer omp parallel, task or target constructs. * gfortran.dg/gomp/pr78298.f90: New test. From-SVN: r242926
Jakub Jelinek committed -
* config/i386/i386.md (UNSPEC_KMASKOP): New. (UNSPEC_KMOV): Remove. (kmovw): Expand to plain HImode move. (k<any_logic:code><mode>): Rename from *k<logic><mode>. Use register_operand predicates. Tag pattern with UNSPEC_KMASKOP. Remove corresponding clobber-removing splitter. (*anddi_1): Remove mask register alternatives. (*andsi_1): Ditto. (*andhi_1): Ditto. (*andqi_1): Ditto. (*<any_or:code><mode>_1): Ditto. (*<any_or:code>qi_1): Ditto. (kandn<mode>): Use SWI1248_AVX512BW mode iterator. Remove general register alternatives. Tag pattern with UNSPEC_KMASKOP. Remove corresponding splitter to operation with general registers. (*andn<SWI38:mode>): Rename from *bmi_andn_<mode>. (*andn<SWI12:mode>): New pattern. (*kxnor<mode>): Remove general register alternatives. Tag pattern with UNSPEC_KMASKOP. Remove corresponding splitter to operation with general registers. (knot<mode>): New insn pattern. (*one_cmpl<mode>2_1): Remove mask register alternatives. (one_cmplqi2_1): Ditto. (*k<any_lshift:code><mode>): Rename from *k<mshift><mode>3. Tag pattern with UNSPEC_KMASKOP. Add mode attribute. * config/i386/predicates.md (mask_reg_operand): Remove predicate. * config/i386/sse.md (vec_unpacks_hi_hi): Update pattern to generate kmaskop shift. (vec_unpacks_hi_<mode>): Ditto. * config/i386/i386-builtin.def (__builtin_ia32_kandhi): Use CODE_FOR_kandhi. (__builtin_ia32_knothi): Use CODE_FOR_knothi. (__builtin_ia32_korhi): Use CODE_FOR_kiorhi. (__builtin_ia32_kxorhi): Use CODE_FOR_kxorhi. testsuite/ChangeLog: * gcc.target/i386/bmi-andn-1a.c (dg-final): Update scan string. * gcc.target/i386/bmi-andn-2a.c (dg-final): Ditto. From-SVN: r242925
Uros Bizjak committed -
re PR c++/77591 (decltype(auto) and ternary operator allow returning local reference without a warning) PR c++/77591 * typeck.c (maybe_warn_about_returning_address_of_local): Optimize whats_returned through fold_for_warn. * g++.dg/cpp1y/pr77591.C: New test. From-SVN: r242924
Jakub Jelinek committed -
From-SVN: r242923
Nathan Sidwell committed -
From-SVN: r242922
David Edelsohn committed -
tree-vrp.c (vrp_visit_assignment_or_call): Handle simplifications to SSA names via extract_range_from_ssa_name if allowed. 2016-11-28 Richard Biener <rguenther@suse.de> * tree-vrp.c (vrp_visit_assignment_or_call): Handle simplifications to SSA names via extract_range_from_ssa_name if allowed. From-SVN: r242921
Richard Biener committed -
2016-11-28 Richard Biener <rguenther@suse.de> PR tree-optimization/78542 * tree-ssa-ccp.c (evaluate_stmt): Only valueize simplification if allowed. * gcc.dg/torture/pr78542.c: New testcase. From-SVN: r242920
Richard Biener committed -
* config/nvptx/critical.c: Delete to use generic implementation. From-SVN: r242919
Alexander Monakov committed -
2016-11-28 Jonas Hahnfeld <Hahnfeld@itc.rwth-aachen.de> * config/linux/affinity.c [!HAVE_PTHREAD_AFFINITY_NP]: Include ../../affinity.c as fallback. * config/nvptx/affinity.c: Delete to use fallback implementation. From-SVN: r242918
Jonas Hahnfeld committed -
gcc: * combine.c (simplify_if_then_else): Simplify IF_THEN_ELSE that isolates a single bit, even if the condition involves subregs. From-SVN: r242917
Paolo Bonzini committed -
* config/aarch64/aarch64-simd-builtins.def (BSL_P): Added di and v2di mode. * config/aarch64/arm_neon.h (vsriq_n_p64, vsri_n_p64): Added poly type. (vextq_p64, vext_p64): Likewise. (vceq_p64, vbslq_p64, vbsl_p64): Likewise. From-SVN: r242916
Tamar Christina committed -
2016-11-28 Tamar Christina <tamar.christina@arm.com> * config/aarch64/aarch64-builtins.c (TYPES_SETREGP): Added poly type. (TYPES_GETREGP): Likewise. (TYPES_SHIFTINSERTP): Likewise. (TYPES_COMBINEP): Likewise. (TYPES_STORE1P): Likewise. * config/aarch64/aarch64-simd-builtins.def (combine): Added poly generator. (get_dregoi): Likewise. (get_dregci): Likewise. (get_dregxi): Likewise. (ssli_n): Likewise. (ld1): Likewise. (st1): Likewise. * config/aarch64/arm_neon.h (poly64x1x2_t, poly64x1x3_t): New. (poly64x1x4_t, poly64x2x2_t): Likewise. (poly64x2x3_t, poly64x2x4_t): Likewise. (poly64x1_t): Likewise. (vcreate_p64, vcombine_p64): Likewise. (vdup_n_p64, vdupq_n_p64): Likewise. (vld2_p64, vld2q_p64): Likewise. (vld3_p64, vld3q_p64): Likewise. (vld4_p64, vld4q_p64): Likewise. (vld2_dup_p64, vld3_dup_p64): Likewise. (vld4_dup_p64, vsli_n_p64): Likewise. (vsliq_n_p64, vst1_p64): Likewise. (vst1q_p64, vst2_p64): Likewise. (vst3_p64, vst4_p64): Likewise. (__aarch64_vdup_lane_p64, __aarch64_vdup_laneq_p64): Likewise. (__aarch64_vdupq_lane_p64, __aarch64_vdupq_laneq_p64): Likewise. (vget_lane_p64, vgetq_lane_p64): Likewise. (vreinterpret_p8_p64, vreinterpretq_p8_p64): Likewise. (vreinterpret_p16_p64, vreinterpretq_p16_p64): Likewise. (vreinterpret_p64_f16, vreinterpret_p64_f64): Likewise. (vreinterpret_p64_s8, vreinterpret_p64_s16): Likewise. (vreinterpret_p64_s32, vreinterpret_p64_s64): Likewise. (vreinterpret_p64_f32, vreinterpret_p64_u8): Likewise. (vreinterpret_p64_u16, vreinterpret_p64_u32): Likewise. (vreinterpret_p64_u64, vreinterpret_p64_p8): Likewise. (vreinterpretq_p64_f64, vreinterpretq_p64_s8): Likewise. (vreinterpretq_p64_s16, vreinterpretq_p64_s32): Likewise. (vreinterpretq_p64_s64, vreinterpretq_p64_f16): Likewise. (vreinterpretq_p64_f32, vreinterpretq_p64_u8): Likewise. (vreinterpretq_p64_u16, vreinterpretq_p64_u32): Likewise. (vreinterpretq_p64_u64, vreinterpretq_p64_p8): Likewise. (vreinterpret_f16_p64, vreinterpretq_f16_p64): Likewise. (vreinterpret_f32_p64, vreinterpretq_f32_p64): Likewise. (vreinterpret_f64_p64, vreinterpretq_f64_p64): Likewise. (vreinterpret_s64_p64, vreinterpretq_s64_p64): Likewise. (vreinterpret_u64_p64, vreinterpretq_u64_p64): Likewise. (vreinterpret_s8_p64, vreinterpretq_s8_p64): Likewise. (vreinterpret_s16_p64, vreinterpret_s32_p64): Likewise. (vreinterpretq_s32_p64, vreinterpret_u8_p64): Likewise. (vreinterpret_u16_p64, vreinterpretq_u16_p64): Likewise. (vreinterpret_u32_p64, vreinterpretq_u32_p64): Likewise. (vset_lane_p64, vsetq_lane_p64): Likewise. (vget_low_p64, vget_high_p64): Likewise. (vcombine_p64, vst2_lane_p64): Likewise. (vst3_lane_p64, vst4_lane_p64): Likewise. (vst2q_lane_p64, vst3q_lane_p64): Likewise. (vst4q_lane_p64, vget_lane_p64): Likewise. (vget_laneq_p64, vset_lane_p64): Likewise. (vset_laneq_p64, vcopy_lane_p64): Likewise. (vcopy_laneq_p64, vdup_n_p64): Likewise. (vdupq_n_p64, vdup_lane_p64): Likewise. (vdup_laneq_p64, vld1_p64): Likewise. (vld1q_p64, vld1_dup_p64): Likewise. (vld1q_dup_p64, vld1q_dup_p64): Likewise. (vmov_n_p64, vmovq_n_p64): Likewise. (vst3q_p64, vst4q_p64): Likewise. (vld1_lane_p64, vld1q_lane_p64): Likewise. (vst1_lane_p64, vst1q_lane_p64): Likewise. (vcopy_laneq_p64, vcopyq_laneq_p64): Likewise. (vdupq_laneq_p64): Likewise. From-SVN: r242915
Tamar Christina committed -
* config/arm/arm_neon.h (vget_lane_p64): New. From-SVN: r242914
Tamar Christina committed -
2016-11-28 Richard Biener <rguenther@suse.de> PR tree-optimization/78343 * gcc.dg/tree-ssa/20030808-1.c: Fix dump to generate. * gcc.dg/tree-ssa/20040305-1.c: Likewise. From-SVN: r242913
Richard Biener committed -
The method used in the applied patch caused configuration errors on freeBSD and hppa. 2016-11-28 Iain Sandoe <iain@codesourcery.com> PR target/71767 * configure.ac (with_ld64): Use portable method to extract the major part of the version number. * configure: Regenerated. From-SVN: r242912
Iain Sandoe committed -
* gimple-ssa-sprintf.c (build_intmax_type_nodes): Look at UINTMAX_TYPE rather than SIZE_TYPE. Add gcc_unreachable if intmax_t couldn't be determined. (format_integer): Make {,u}intmax_type_node no longer static, initialize them only when needed. For z and t use signed_or_unsigned_type_for instead of assuming size_t and ptrdiff_t have the same precision. From-SVN: r242911
Jakub Jelinek committed -
PR lto/78211 * ipa-icf.h (sem_item_optimizer): Add m_classes_vec member. * ipa-icf.c (sem_item_optimizer::sem_item_optimizer): Initialize it. (sem_item_optimizer::~sem_item_optimizer): Traverse m_classes_vec vector instead of traversing m_classes hash table. Release m_classes_vec. (sem_item_optimizer::read_section, sem_item_optimizer::add_class): Formatting fixes. (sem_item_optimizer::get_group_by_hash): When inserting a new group, add it also to m_classes_vec vector. (sem_item_optimizer::remove_symtab_node, sem_item_optimizer::build_hash_based_classes, sem_item_optimizer::parse_nonsingleton_classes): Formatting fixes. (sem_item_optimizer::subdivide_classes_by_equality, sem_item_optimizer::subdivide_classes_by_sensitive_refs, sem_item_optimizer::verify_classes): Traverse m_classes_vec vector instead of traversing m_classes hash table. Formatting fixes. (sem_item_optimizer::traverse_congruence_split, sem_item_optimizer::do_congruence_step_for_index, sem_item_optimizer::do_congruence_step): Formatting fixes. (sem_item_optimizer::process_cong_reduction): Traverse m_classes_vec vector instead of traversing m_classes hash table. (sem_item_optimizer::dump_cong_classes): Likewise. Formatting fixes. (sem_item_optimizer::merge_classes): Traverse m_classes_vec vector instead of traversing m_classes hash table. * g++.dg/ipa/pr78211.C: New test. From-SVN: r242910
Jakub Jelinek committed -
* config/avr/avr.c (out_movhi_r_mr) [REG_X + PLUS]: Only SBIW if X is not unused after. From-SVN: r242909
Georg-Johann Lay committed -
PR rtl-optimization/78120 * rtlanal.c (insn_rtx_cost): Revert previous change. From-SVN: r242908
Bernd Schmidt committed -
PR 41076 * config/avr/avr.md (SPLIT34): New mode iterator. (bitop): New code iterator. (*iorhi3.ashift8-*). New insn-and-split patterns. (*movhi): Post-reload split reg = 0. [!MOVW]: Post-reload split reg = reg. (*mov<mode>) [SI,SF,PSI,SQ,USQ,SA,USA]: Post-reload split reg = reg. (andhi3, andpsi3, andsi3): Post-reload split reg-reg operations. (iorhi3, iorpsi3, iorsi3): Same. (xorhi3, xorpsi3, xorsi3): Same. * config/avr/avr.c (avr_rtx_costs_1) [IOR && HImode]: Adjust rtx costs to *iorhi3.ashift8-* patterns. From-SVN: r242907
Georg-Johann Lay committed -
* constexpr.c (cxx_eval_constant_expression): Use cp_fold_convert. From-SVN: r242906
Jason Merrill committed -
From-SVN: r242905
GCC Administrator committed
-
- 27 Nov, 2016 12 commits
-
-
PR ada/78524 * gcc-interface/utils.c (max_size) <tcc_reference>: Add missing conversion to original type in the PLACEHOLDER_EXPR case. From-SVN: r242902
Eric Botcazou committed -
PR ada/78531 * namet.h (Max_Line_Length): Define. (struct Bounded_String): Declare Chars with exact size. (namet__get_decoded_name_string): Delete. (Get_Decoded_Name_String): Likewise. (casing__set_all_upper_case): Likewise. From-SVN: r242901
Eric Botcazou committed -
2016-11-27 Paul Thomas <pault@gcc.gnu.org> PR fortran/78474 * module.c (gfc_match_submodule): If there is more than one colon, it is a syntax error. PR fortran/78331 * module.c (gfc_use_module): If an smod file does not exist it is either because the module does not have a module procedure interface or there is an error in the module. 2016-11-27 Paul Thomas <pault@gcc.gnu.org> PR fortran/78474 * gfortran.dg/submodule_22.f08: New test. PR fortran/78331 * gfortran.dg/submodule_21.f08: New test. From-SVN: r242900
Paul Thomas committed -
* g++.dg/torture/pr65655.C: Use dg-timeout-factor 2. From-SVN: r242899
John David Anglin committed -
A/ Newer versions of ld64 check the min_version command, and newer versions of the system assembler inserts this in response to "-mmacosx-version-min=" on the assembler line. Unless one makes sensible versions, some object is bound to conflict. B/ Additionally, there's a difference in behaviour between "as" and "ld" when presented with xx.yy.zz (ld truncates to xx.yy, as doesn't); net result is that one needs to pass a truncated version to "as". So (if the assembler supports minversion commands) (a) provide a truncated minversion (as asm_macosx_version_min, which is a driver-only var). (b) pass this to "as" (c) Update tests to determine 'HAVE_AS_MMACOSX_VERSION_MIN_OPTION' (Rainer's patch) (d) For some reason the testcases are "run" (it's not obvious they need to be, they are checking compile-time issues) - anyway, to preserve the status quo, I've left them as exec. However, the minimum version that can be code-gened for is target-dependent (there are no released x86 versions before 10.4, for example). To avoid conflicts where the "as" is assuming some minimum, I've set the testversion to 10.5 (which is supported by all the archs we have) (e) We need to ensure that libgcc and crts are generated with a sufficiently old minversion not to conflict. gcc/ 2016-11-27 Iain Sandoe <iain@codesourcery.com> Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> PR target/67710 * config.in: Regenerate * config/darwin-driver.c (darwin_driver_init): Emit a version string for the assembler. * config/darwin.h(ASM_MMACOSX_VERSION_MIN_SPEC): New, new tests. * config/darwin.opt(asm_macosx_version_min): New. * config/i386/darwin.h: Handle ASM_MMACOSX_VERSION_MIN_SPEC. * configure: Regenerate * configure.ac: Check for mmacosx-version-min handling. gcc/testsuite/ 2016-11-27 Iain Sandoe <iain@codesourcery.com> Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> Dominique d'Humieres <dominiq@lps.ens.fr> PR target/67710 * gcc.dg/darwin-minversion-1.c: Update min version check. * gcc.dg/darwin-minversion-2.c: Likewise. * gcc.dg/darwin-minversion-3.c: Likewise. libgcc/ 2016-11-27 Iain Sandoe <iain@codesourcery.com> Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> PR target/67710 * config/t-darwin: Default builds to 10.5 codegen. Co-Authored-By: Dominique d'Humieres <dominiq@lps.ens.fr> Co-Authored-By: Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> From-SVN: r242898
Iain Sandoe committed -
A. Empty function bodies causes two problems for Darwin's linker (i) zero-length FDEs and (ii) coincident label addresses that might point to items of differing weakness. B. Trailing local labels can be problematic when they end a function because similarly they might apparently point to a following weak function, leading to the linker concluding that there's a pointer-diff to a weak symbol (which is not allowed). Both conditions arise from __builtin_unreachable() lowering to a barrier. The solution for both is to emit some finite amount of code; in the case of A a trap is emitted, in the case of B a nop. gcc/ 2016-11-27 Iain Sandoe <iain@codesourcery.com> PR target/57438 * config/i386/i386.c (ix86_code_end): Note that we emitted code where the function might otherwise appear empty for picbase thunks. (ix86_output_function_epilogue): If we find a zero-sized function assume that reaching it is UB and trap. If we find a trailing label append a nop. * config/rs6000/rs6000.c (rs6000_output_function_epilogue): If we find a zero-sized function assume that reaching it is UB and trap. If we find a trailing label, append a nop. gcc/testsuite/ 2016-11-27 Iain Sandoe <iain@codesourcery.com> PR target/57438 * gcc.dg/pr57438-1.c: New Test. * gcc.dg/pr57438-2.c: New Test. From-SVN: r242897
Iain Sandoe committed -
Update Darwin tests to reflect the differences in symbol names and section usage. gcc/testsuite/ 2016-11-27 Dominique d'Humieres <dominiq@lps.ens.fr> Iain Sandoe <iain@codesourcery.com> PR target/71767 * g++.dg/abi/key2.C: Adjust for changed Darwin sections and linker-visible symbols. * g++.dg/torture/darwin-cfstring-3.C: Likewise. * gcc.dg/const-uniq-1.c: Likewise. * gcc.dg/torture/darwin-cfstring-3.c: Likewise. * gcc.target/i386/pr70799-1.c: Likewise. Co-Authored-By: Iain Sandoe <iain@codesourcery.com> From-SVN: r242896
Dominique d'Humieres committed -
(much) Older Darwin linkers needed separate sections marked "coalesce" to allow for weak symbol coalescing. This has not been needed for some time and is now deprecated, newer assemblers warn if the old coalesced sections are used. gcc/ 2016-11-27 Iain Sandoe <iain@codesourcery.com> PR target/71767 * config/darwin-sections.def (picbase_thunk_section): New. * config/darwin.c (darwin_init_sections): Set up picbase thunk section. (darwin_rodata_section, darwin_objc2_section, machopic_select_section, darwin_asm_declare_constant_name, darwin_emit_weak_or_comdat, darwin_function_section): Don’t use coalesced with newer linkers. (darwin_override_options): Decide on usage of coalesed sections on the basis of the target linker version. * config/darwin.h (MIN_LD64_NO_COAL_SECTS): New. * config/darwin.opt (mtarget-linker): New. * config/i386/i386.c (ix86_code_end): Do not force the thunks into a coalesced section, instead use a thunks section. From-SVN: r242895
Iain Sandoe committed -
This is an initial patch in a series that converts Darwin's configury to detect ld64 features, rather than the current process of hard-coding them on target system version. A ld64-compatible linker is currently required and assumed by Darwin. If a DEFAULT_LINKER is set via --with-ld= then this will be tested to see if it is ld64. The ld64 version is determined for the chosen ld and this is exported for use in setting a default value for -mtarget-linker (needed for run-time code-gen changes to section choices). The support for -rdynamic is converted to be detected at config time, or by the ld64 version if that is found. gcc/ 2016-11-27 Iain Sandoe <iain@codesourcery.com> PR target/71767 * configure.ac (with-ld64): New var, set for Darwin, set on detection of ld64, gcc_cv_ld64_export_dynamic: New, New test. * config/darwin.h: Use LD64_HAS_DYNAMIC export. DEF_LD64: New, define. * config/darwin10.h(DEF_LD64): Update for this target version. * config/darwin12.h(LINK_GCC_C_SEQUENCE_SPEC): Remove rdynamic test. (DEF_LD64): Update for this target version. * configure: Regenerated. * config.in: Regenerated. From-SVN: r242894
Iain Sandoe committed -
Indirections: If we have a situation like: global_weak_symbol: .... Lnon_weak_local: .... ld64 will be unable to split this into two atoms (because the "L" makes the second symbol 'invisible'). This means that legitimate direct accesses to the second symbol will appear to be non-allowed direct accesses to an atom of type weak, global which are not allowed. To avoid this, we make the indirections have a leading 'l' (lower-case L) which has a special meaning: linker can see this and use it to determine atoms, but it is not placed into the final symbol table. The implementation here is somewhat heavy-handed in that it will also mark indirections to the __IMPORT,__pointers section the same way which is really unnecessary, since ld64 _can_ split those into atoms as they are fixed size. FIXME: determine if this is a penalty worth extra code to fix. Similarly, with: .const weak_global_constant: .... LCxx: ... ld64 can't split the second, causing a warning when it's directly accessed. gcc/ 2016-11-27 Iain Sandoe <iain@codesourcery.com> PR target/71767 * config/darwin.c (imachopic_indirection_name): Make data section indirections linker-visible. * config/darwin.h (ASM_GENERATE_INTERNAL_LABEL): Make local constant labels linker-visible. From-SVN: r242893
Iain Sandoe committed -
PR libstdc++/78441 * include/std/variant: Propagate cv qualifications to types returned by variant_alternative. * testsuite/20_util/variant/compile.cc: Tests. From-SVN: r242892
Tim Shen committed -
From-SVN: r242891
GCC Administrator committed
-
- 26 Nov, 2016 2 commits
-
-
2016-11-26 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> * tree.c (build_common_tree_nodes): Initialize ptrdiff_type_node. (free_lang_data): Remove assignment to ptrdiff_type_node. c-family/ * c-common.c (c_common_nodes_and_builtins): Remove initialization of ptrdiff_type_node. lto/ * lto-lang.c (lto_init): Remove initialization of ptrdiff_type_node. From-SVN: r242888
Prathamesh Kulkarni committed -
From-SVN: r242887
GCC Administrator committed
-
- 25 Nov, 2016 2 commits
-
-
2016-11-25 Janne Blomqvist <jb@gcc.gnu.org> * intrinsic.texi: Fix ptrdiff_t typo in ISO_C_BINDING constants table. From-SVN: r242884
Janne Blomqvist committed -
PR rtl-optimization/78438 PR rtl-optimization/78477 * gcc.c-torture/execute/pr78438.c: New test. * gcc.c-torture/execute/pr78477.c: New test. From-SVN: r242883
Jakub Jelinek committed
-