|
| 1 | +2022-02-09 Uroš Bizjak < [email protected]> |
| 2 | + |
| 3 | + PR target/104462 |
| 4 | + * common/config/i386/i386-common.cc (OPTION_MASK_ISA2_XSAVE_UNSET): |
| 5 | + Also include OPTION_MASK_ISA2_AVX2_UNSET. |
| 6 | + |
| 7 | +2022-02-09 Uroš Bizjak < [email protected]> |
| 8 | + |
| 9 | + PR target/104458 |
| 10 | + * config/i386/i386-expand.cc (ix86_split_idivmod): |
| 11 | + Force operands[2] and operands[3] into a register.. |
| 12 | + |
| 13 | +2022-02-09 Jeff Law < [email protected]> |
| 14 | + |
| 15 | + PR target/97040 |
| 16 | + * config/v850/v850.md (*v850_fnmasf4): Renamed from fnmasf4. |
| 17 | + (*v850_fnmssf4): Renamed from fnmssf4 |
| 18 | + |
| 19 | +2022-02-09 Ian Lance Taylor < [email protected]> |
| 20 | + |
| 21 | + * godump.cc (go_force_record_alignment): Really name the alignment |
| 22 | + field "_" (complete 2021-12-29 change). |
| 23 | + |
| 24 | +2022-02-09 Bill Schmidt < [email protected]> |
| 25 | + |
| 26 | + * config/rs6000/rs6000-builtins.def (VREPLACE_UN_UV2DI): Change |
| 27 | + function prototype. |
| 28 | + (VREPLACE_UN_UV4SI): Likewise. |
| 29 | + (VREPLACE_UN_V2DF): Likewise. |
| 30 | + (VREPLACE_UN_V2DI): Likewise. |
| 31 | + (VREPLACE_UN_V4SF): Likewise. |
| 32 | + (VREPLACE_UN_V4SI): Likewise. |
| 33 | + * config/rs6000/rs6000-overload.def (VEC_REPLACE_UN): Change all |
| 34 | + function prototypes. |
| 35 | + * config/rs6000/vsx.md (vreplace_un_<mode>): Remove define_expand. |
| 36 | + (vreplace_un_<mode>): New define_insn. |
| 37 | + |
| 38 | +2022-02-09 Richard Sandiford < [email protected]> |
| 39 | + |
| 40 | + * config/aarch64/iterators.md (VDCSIF): New mode iterator. |
| 41 | + (VDBL): Handle SF. |
| 42 | + (single_wx, single_type, single_dtype, dblq): New mode attributes. |
| 43 | + * config/aarch64/aarch64-simd.md (load_pair_lanes<mode>): Extend |
| 44 | + from VDC to VDCSIF. |
| 45 | + (store_pair_lanes<mode>): Likewise. |
| 46 | + (*aarch64_combine_internal<mode>): Likewise. |
| 47 | + (*aarch64_combine_internal_be<mode>): Likewise. |
| 48 | + (*aarch64_combinez<mode>): Likewise. |
| 49 | + (*aarch64_combinez_be<mode>): Likewise. |
| 50 | + * config/aarch64/aarch64.cc (aarch64_classify_address): Handle |
| 51 | + 8-byte modes for ADDR_QUERY_LDP_STP_N. |
| 52 | + (aarch64_print_operand): Likewise for %y. |
| 53 | + |
| 54 | +2022-02-09 Richard Sandiford < [email protected]> |
| 55 | + |
| 56 | + * config/aarch64/aarch64-simd.md (@aarch64_split_simd_mov<mode>): |
| 57 | + Use aarch64_combine instead of move_lo/hi_quad. Tabify. |
| 58 | + (move_lo_quad_<mode>, aarch64_simd_move_hi_quad_<mode>): Delete. |
| 59 | + (aarch64_simd_move_hi_quad_be_<mode>, move_hi_quad_<mode>): Delete. |
| 60 | + (vec_pack_trunc_<mode>): Take general_operand elements and use |
| 61 | + aarch64_combine rather than move_lo/hi_quad to combine them. |
| 62 | + (vec_pack_trunc_df): Likewise. |
| 63 | + |
| 64 | +2022-02-09 Richard Sandiford < [email protected]> |
| 65 | + |
| 66 | + * config/aarch64/aarch64-protos.h (aarch64_split_simd_combine): |
| 67 | + Delete. |
| 68 | + * config/aarch64/aarch64-simd.md (@aarch64_combinez<mode>): Rename |
| 69 | + to... |
| 70 | + (*aarch64_combinez<mode>): ...this. |
| 71 | + (@aarch64_combinez_be<mode>): Rename to... |
| 72 | + (*aarch64_combinez_be<mode>): ...this. |
| 73 | + (@aarch64_vec_concat<mode>): New expander. |
| 74 | + (aarch64_combine<mode>): Use it. |
| 75 | + (@aarch64_simd_combine<mode>): Delete. |
| 76 | + * config/aarch64/aarch64.cc (aarch64_split_simd_combine): Delete. |
| 77 | + (aarch64_expand_vector_init): Use aarch64_vec_concat. |
| 78 | + |
| 79 | +2022-02-09 Richard Sandiford < [email protected]> |
| 80 | + |
| 81 | + * config/aarch64/predicates.md (aarch64_reg_or_mem_pair_operand): |
| 82 | + New predicate. |
| 83 | + * config/aarch64/aarch64-simd.md (*aarch64_combine_internal<mode>) |
| 84 | + (*aarch64_combine_internal_be<mode>): New patterns. |
| 85 | + |
| 86 | +2022-02-09 Richard Sandiford < [email protected]> |
| 87 | + |
| 88 | + * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>) |
| 89 | + (move_lo_quad_internal_be_<mode>): Delete. |
| 90 | + (move_lo_quad_<mode>): Use aarch64_combine<Vhalf> instead of the above. |
| 91 | + |
| 92 | +2022-02-09 Richard Sandiford < [email protected]> |
| 93 | + |
| 94 | + * config/aarch64/aarch64-protos.h (aarch64_mergeable_load_pair_p): |
| 95 | + Declare. |
| 96 | + * config/aarch64/aarch64-simd.md (load_pair_lanes<mode>): Use |
| 97 | + aarch64_mergeable_load_pair_p instead of inline check. |
| 98 | + * config/aarch64/aarch64.cc (aarch64_expand_vector_init): Likewise. |
| 99 | + (aarch64_check_consecutive_mems): Allow the reversed parameter |
| 100 | + to be null. |
| 101 | + (aarch64_mergeable_load_pair_p): New function. |
| 102 | + |
| 103 | +2022-02-09 Richard Sandiford < [email protected]> |
| 104 | + |
| 105 | + * config/aarch64/aarch64-simd.md (vec_set<mode>): Allow the |
| 106 | + element to be an aarch64_simd_nonimmediate_operand. |
| 107 | + |
| 108 | +2022-02-09 Richard Sandiford < [email protected]> |
| 109 | + |
| 110 | + * config/aarch64/aarch64-simd.md (aarch64_simd_vec_set<mode>): Use |
| 111 | + aarch64_simd_nonimmediate_operand instead of |
| 112 | + aarch64_simd_general_operand. |
| 113 | + (@aarch64_combinez<mode>): Use nonimmediate_operand instead of |
| 114 | + general_operand. |
| 115 | + (@aarch64_combinez_be<mode>): Likewise. |
| 116 | + |
| 117 | +2022-02-09 Richard Biener < [email protected]> |
| 118 | + |
| 119 | + PR middle-end/104464 |
| 120 | + * gimple-isel.cc (gimple_expand_vec_cond_expr): Postpone |
| 121 | + throwing check to after unproblematic replacement. |
| 122 | + |
| 123 | +2022-02-09 Roger Sayle < [email protected]> |
| 124 | + |
| 125 | + PR tree-optimization/104420 |
| 126 | + * match.pd (mult @0 real_zerop): Tweak conditions for constant |
| 127 | + folding X*0.0 (or X*-0.0) to HONOR_SIGNED_ZEROS when appropriate. |
| 128 | + |
| 129 | +2022-02-09 Jakub Jelinek < [email protected]> |
| 130 | + |
| 131 | + PR debug/104407 |
| 132 | + * dwarf2out.cc (mangle_referenced_decls): New function. |
| 133 | + (tree_add_const_value_attribute): Don't call rtl_for_decl_init if |
| 134 | + early_dwarf. Instead walk the initializer and try to mangle vars or |
| 135 | + functions referenced from it. |
| 136 | + |
| 137 | +2022-02-09 Andrew MacLeod < [email protected]> |
| 138 | + |
| 139 | + PR tree-optimization/104288 |
| 140 | + * gimple-range-cache.cc (non_null_ref::set_nonnull): New. |
| 141 | + (non_null_ref::adjust_range): Move to header. |
| 142 | + (ranger_cache::range_of_def): Don't check non-null. |
| 143 | + (ranger_cache::entry_range): Don't check non-null. |
| 144 | + (ranger_cache::range_on_edge): Check for nonnull on normal edges. |
| 145 | + (ranger_cache::update_to_nonnull): New. |
| 146 | + (non_null_loadstore): New. |
| 147 | + (ranger_cache::block_apply_nonnull): New. |
| 148 | + * gimple-range-cache.h (class non_null_ref): Update prototypes. |
| 149 | + (non_null_ref::adjust_range): Move to here and inline. |
| 150 | + (class ranger_cache): Update prototypes. |
| 151 | + * gimple-range-path.cc (path_range_query::range_defined_in_block): Do |
| 152 | + not search dominators. |
| 153 | + (path_range_query::adjust_for_non_null_uses): Ditto. |
| 154 | + * gimple-range.cc (gimple_ranger::range_of_expr): Check on-entry for |
| 155 | + def overrides. Do not check nonnull. |
| 156 | + (gimple_ranger::range_on_entry): Check dominators for nonnull. |
| 157 | + (gimple_ranger::range_on_edge): Check for nonnull on normal edges.. |
| 158 | + (gimple_ranger::register_side_effects): New. |
| 159 | + * gimple-range.h (gimple_ranger::register_side_effects): New. |
| 160 | + * tree-vrp.cc (rvrp_folder::fold_stmt): Call register_side_effects. |
| 161 | + |
| 162 | +2022-02-09 Richard Biener < [email protected]> |
| 163 | + |
| 164 | + PR tree-optimization/104445 |
| 165 | + PR tree-optimization/102832 |
| 166 | + * optabs-query.h (can_vec_extract): New. |
| 167 | + * optabs-query.cc (can_vec_extract): Likewise. |
| 168 | + * tree-vect-loop.cc (vect_find_reusable_accumulator): Check |
| 169 | + we can extract a hi/lo part from the larger vector, rework |
| 170 | + check iteration from larger to smaller sizes. |
| 171 | + |
| 172 | +2022-02-09 H.J. Lu < [email protected]> |
| 173 | + |
| 174 | + PR target/35513 |
| 175 | + PR target/100593 |
| 176 | + * config/i386/gnu-property.cc: Include "i386-protos.h". |
| 177 | + (file_end_indicate_exec_stack_and_gnu_property): Generate |
| 178 | + a GNU_PROPERTY_1_NEEDED note for -mno-direct-extern-access or |
| 179 | + nodirect_extern_access attribute. |
| 180 | + * config/i386/i386-options.cc |
| 181 | + (handle_nodirect_extern_access_attribute): New function. |
| 182 | + (ix86_attribute_table): Add nodirect_extern_access attribute. |
| 183 | + * config/i386/i386-protos.h (ix86_force_load_from_GOT_p): Add a |
| 184 | + bool argument. |
| 185 | + (ix86_has_no_direct_extern_access): New. |
| 186 | + * config/i386/i386.cc (ix86_has_no_direct_extern_access): New. |
| 187 | + (ix86_force_load_from_GOT_p): Add a bool argument to indicate |
| 188 | + call operand. Force non-call load from GOT for |
| 189 | + -mno-direct-extern-access or nodirect_extern_access attribute. |
| 190 | + (legitimate_pic_address_disp_p): Avoid copy relocation in PIE |
| 191 | + for -mno-direct-extern-access or nodirect_extern_access attribute. |
| 192 | + (ix86_print_operand): Pass true to ix86_force_load_from_GOT_p |
| 193 | + for call operand. |
| 194 | + (asm_preferred_eh_data_format): Use PC-relative format for |
| 195 | + -mno-direct-extern-access to avoid copy relocation. Check |
| 196 | + ptr_mode instead of TARGET_64BIT when selecting DW_EH_PE_sdata4. |
| 197 | + (ix86_binds_local_p): Set ix86_has_no_direct_extern_access to |
| 198 | + true for -mno-direct-extern-access or nodirect_extern_access |
| 199 | + attribute. Don't treat protected data as extern and avoid copy |
| 200 | + relocation on common symbol with -mno-direct-extern-access or |
| 201 | + nodirect_extern_access attribute. |
| 202 | + (ix86_reloc_rw_mask): New to avoid copy relocation for |
| 203 | + -mno-direct-extern-access. |
| 204 | + (TARGET_ASM_RELOC_RW_MASK): New. |
| 205 | + * config/i386/i386.opt: Add -mdirect-extern-access. |
| 206 | + * doc/extend.texi: Document nodirect_extern_access attribute. |
| 207 | + * doc/invoke.texi: Document -m[no-]direct-extern-access. |
| 208 | + |
| 209 | +2022-02-09 H.J. Lu < [email protected]> |
| 210 | + |
| 211 | + PR target/104441 |
| 212 | + * config/i386/i386.cc (ix86_avx_u128_mode_source): New function. |
| 213 | + (ix86_avx_u128_mode_needed): Return AVX_U128_ANY for debug INSN. |
| 214 | + Call ix86_avx_u128_mode_source to check mode for each component |
| 215 | + of source operand. |
| 216 | + |
| 217 | +2022-02-09 liuhongt < [email protected]> |
| 218 | + |
| 219 | + PR target/104451 |
| 220 | + * config/i386/sse.md (<insn><mode>3): lowpart_subreg |
| 221 | + operands[2] from SImode to QImode. |
| 222 | + |
| 223 | +2022-02-09 Richard Biener < [email protected]> |
| 224 | + |
| 225 | + PR middle-end/104450 |
| 226 | + * gimple-isel.cc: Pass cfun around. |
| 227 | + (+gimple_expand_vec_cond_expr): Do not combine a throwing |
| 228 | + comparison with the select. |
| 229 | + |
| 230 | +2022-02-09 Richard Biener < [email protected]> |
| 231 | + |
| 232 | + PR target/104453 |
| 233 | + * config/i386/i386.cc (ix86_gimple_fold_builtin): Guard shift |
| 234 | + folding for NULL LHS. |
| 235 | + |
1 | 236 | 2022-02-08 Robin Dapp < [email protected]>
|
2 | 237 |
|
3 | 238 | PR rtl-optimization/104198
|
|
0 commit comments