|
| 1 | +2025-12-16 Iain Sandoe < [email protected]> |
| 2 | + |
| 3 | + * config/aarch64/aarch64.cc |
| 4 | + (aarch64_function_abi): Use checking assert. |
| 5 | + (aarch64_fndecl_abi): Test for the availability of the |
| 6 | + machine content before trying to look up the cached PCS. |
| 7 | + Use a checking assert. |
| 8 | + |
| 9 | +2025-12-16 Jose E. Marchesi < [email protected]> |
| 10 | + |
| 11 | + * common.opt.urls: Regenerate. |
| 12 | + |
| 13 | +2025-12-16 Takayuki 'January June' Suwa < [email protected]> |
| 14 | + |
| 15 | + * config/xtensa/xtensa.cc (xtensa_expand_scc_SALT): |
| 16 | + New sub-function that emits the SALT/SALTU instructions. |
| 17 | + (xtensa_expand_scc): Change the part related to the SALT/SALTU |
| 18 | + instructions to a call to the above sub-function. |
| 19 | + |
| 20 | +2025-12-16 Takayuki 'January June' Suwa < [email protected]> |
| 21 | + |
| 22 | + * config/xtensa/xtensa.cc |
| 23 | + (xtensa_expand_block_set_libcall, |
| 24 | + xtensa_expand_block_set_unrolled_loop, |
| 25 | + xtensa_expand_block_set_small_loop, xtensa_call_tls_desc): |
| 26 | + Change the return statement to pass the return value of |
| 27 | + end_sequence() directly without going through a variable, and |
| 28 | + remove the definition of that variable. |
| 29 | + |
| 30 | +2025-12-16 Claudiu Zissulescu < [email protected]> |
| 31 | + |
| 32 | + |
| 33 | + * config/aarch64/aarch64.md (addg): Update pattern to use |
| 34 | + addg/subg instructions. |
| 35 | + (stg): Update pattern. |
| 36 | + (st2g): New pattern. |
| 37 | + (tag_memory): Likewise. |
| 38 | + (compose_tag): Likewise. |
| 39 | + (irq): Update pattern to accept xzr register. |
| 40 | + (gmi): Likewise. |
| 41 | + (UNSPECV_TAG_SPACE): Define. |
| 42 | + * config/aarch64/aarch64.cc (AARCH64_MEMTAG_GRANULE_SIZE): |
| 43 | + Define. |
| 44 | + (AARCH64_MEMTAG_TAG_BITSIZE): Likewise. |
| 45 | + (aarch64_override_options_internal): Error out if MTE instructions |
| 46 | + are not available. |
| 47 | + (aarch64_post_cfi_startproc): Emit .cfi_mte_tagged_frame. |
| 48 | + (aarch64_can_tag_addresses): Add MEMTAG specific handling. |
| 49 | + (aarch64_memtag_tag_bitsize): New function |
| 50 | + (aarch64_memtag_granule_size): Likewise. |
| 51 | + (aarch64_memtag_insert_random_tag): Likwise. |
| 52 | + (aarch64_memtag_add_tag): Likewise. |
| 53 | + (aarch64_memtag_extract_tag): Likewise. |
| 54 | + (aarch64_granule16_memory_address_p): Likewise. |
| 55 | + (aarch64_emit_stxg_insn): Likewise. |
| 56 | + (aarch64_memtag_tag_memory_via_loop): New definition. |
| 57 | + (aarch64_expand_tag_memory): Likewise. |
| 58 | + (aarch64_check_memtag_ops): Likewise. |
| 59 | + (TARGET_MEMTAG_TAG_BITSIZE): Likewise. |
| 60 | + (TARGET_MEMTAG_GRANULE_SIZE): Likewise. |
| 61 | + (TARGET_MEMTAG_INSERT_RANDOM_TAG): Likewise. |
| 62 | + (TARGET_MEMTAG_ADD_TAG): Likewise. |
| 63 | + (TARGET_MEMTAG_EXTRACT_TAG): Likewise. |
| 64 | + * config/aarch64/aarch64-builtins.cc |
| 65 | + (aarch64_expand_builtin_memtag): Update set tag builtin logic. |
| 66 | + * config/aarch64/aarch64-linux.h: Pass memtag-stack sanitizer |
| 67 | + specific options to the linker. |
| 68 | + * config/aarch64/aarch64-protos.h |
| 69 | + (aarch64_granule16_memory_address_p): New prototype. |
| 70 | + (aarch64_check_memtag_ops): Likewise. |
| 71 | + (aarch64_expand_tag_memory): Likewise. |
| 72 | + * config/aarch64/constraints.md (Umg): New memory constraint. |
| 73 | + (Uag): New constraint. |
| 74 | + (Ung): Likewise. |
| 75 | + * config/aarch64/predicates.md (aarch64_memtag_tag_offset): |
| 76 | + Refactor it. |
| 77 | + (aarch64_granule16_imm6): Rename from aarch64_granule16_uimm6 and |
| 78 | + refactor it. |
| 79 | + (aarch64_granule16_memory_operand): New constraint. |
| 80 | + * config/aarch64/iterators.md (MTE_PP): New code iterator to be |
| 81 | + used for mte instructions. |
| 82 | + (stg_ops): New code attributes. |
| 83 | + (st2g_ops): Likewise. |
| 84 | + (mte_name): Likewise. |
| 85 | + * config/aarch64/aarch64.opt (aarch64-tag-memory-loop-threshold): |
| 86 | + New parameter. |
| 87 | + * doc/invoke.texi: Update documentation. |
| 88 | + |
| 89 | +2025-12-16 Claudiu Zissulescu < [email protected]> |
| 90 | + |
| 91 | + |
| 92 | + * asan.cc (handle_builtin_stack_restore): Accommodate MEMTAG |
| 93 | + sanitizer. |
| 94 | + (handle_builtin_alloca): Expand differently if MEMTAG sanitizer. |
| 95 | + (get_mem_refs_of_builtin_call): Include MEMTAG along with |
| 96 | + HWASAN. |
| 97 | + (memtag_sanitize_stack_p): New definition. |
| 98 | + (memtag_sanitize_allocas_p): Likewise. |
| 99 | + (memtag_memintrin): Likewise. |
| 100 | + (hwassist_sanitize_p): Likewise. |
| 101 | + (hwassist_sanitize_stack_p): Likewise. |
| 102 | + (report_error_func): Include MEMTAG along with HWASAN. |
| 103 | + (build_check_stmt): Likewise. |
| 104 | + (instrument_derefs): MEMTAG too does not deal with globals yet. |
| 105 | + (instrument_builtin_call): Include MEMTAG along with HWASAN. |
| 106 | + (maybe_instrument_call): Likewise. |
| 107 | + (asan_expand_mark_ifn): Likewise. |
| 108 | + (asan_expand_check_ifn): Likewise. |
| 109 | + (asan_expand_poison_ifn): Expand differently if MEMTAG sanitizer. |
| 110 | + (asan_instrument): Include MEMTAG along with HWASAN. |
| 111 | + (hwasan_emit_prologue): Expand differently if MEMTAG sanitizer. |
| 112 | + (hwasan_emit_untag_frame): Likewise. |
| 113 | + * asan.h (memtag_sanitize_stack_p): New declaration. |
| 114 | + (memtag_sanitize_allocas_p): Likewise. |
| 115 | + (hwassist_sanitize_p): Likewise. |
| 116 | + (hwassist_sanitize_stack_p): Likewise. |
| 117 | + (asan_sanitize_use_after_scope): Include MEMTAG along with |
| 118 | + HWASAN. |
| 119 | + * cfgexpand.cc (align_local_variable): Likewise. |
| 120 | + (expand_one_stack_var_at): Likewise. |
| 121 | + (expand_stack_vars): Likewise. |
| 122 | + (expand_one_stack_var_1): Likewise. |
| 123 | + (init_vars_expansion): Likewise. |
| 124 | + (expand_used_vars): Likewise. |
| 125 | + (pass_expand::execute): Likewise. |
| 126 | + * gimplify.cc (asan_poison_variable): Likewise. |
| 127 | + * internal-fn.cc (expand_HWASAN_ALLOCA_POISON): New definition. |
| 128 | + (expand_HWASAN_ALLOCA_UNPOISON): Expand differently if MEMTAG |
| 129 | + sanitizer. |
| 130 | + (expand_HWASAN_MARK): Likewise. |
| 131 | + * internal-fn.def (HWASAN_ALLOCA_POISON): Define new. |
| 132 | + * params.opt: Document new param. |
| 133 | + * sanopt.cc (pass_sanopt::execute): Include MEMTAG along with |
| 134 | + HWASAN. |
| 135 | + * gcc.cc (sanitize_spec_function): Add check for memtag-stack. |
| 136 | + * doc/tm.texi: Regenerate. |
| 137 | + * target.def (extract_tag): Update documentation. |
| 138 | + (add_tag): Likewise. |
| 139 | + (insert_random_tag): Likewise. |
| 140 | + |
| 141 | +2025-12-16 Indu Bhagat < [email protected]> |
| 142 | + Claudiu Zissulescu < [email protected]> |
| 143 | + |
| 144 | + * builtins.def: Adjust the macro to include the new |
| 145 | + SANTIZIE_MEMTAG_STACK. |
| 146 | + * flag-types.h (enum sanitize_code): Add new enumerator for |
| 147 | + SANITIZE_MEMTAG and SANITIZE_MEMTAG_STACK. |
| 148 | + * opts.cc (finish_options): memtag-stack sanitizer conflicts with |
| 149 | + hwaddress and address sanitizers. |
| 150 | + (sanitizer_opts): Add new memtag-stack sanitizer. |
| 151 | + (parse_sanitizer_options): memtag-stack sanitizer cannot recover. |
| 152 | + * params.opt: Add new params for memtag-stack sanitizer. |
| 153 | + * doc/invoke.texi: Update documentation. |
| 154 | + |
| 155 | +2025-12-16 Claudiu Zissulescu < [email protected]> |
| 156 | + |
| 157 | + * target-insns.def (compose_tag): New target instruction. |
| 158 | + * doc/md.texi (compose_tag): Add documentation. |
| 159 | + |
| 160 | +2025-12-16 Claudiu Zissulescu < [email protected]> |
| 161 | + |
| 162 | + * target-insns.def (tag_memory): New target instruction. |
| 163 | + * doc/md.texi (tag_memory): Add documentation. |
| 164 | + |
| 165 | +2025-12-16 Jennifer Schmitz < [email protected]> |
| 166 | + |
| 167 | + * config/aarch64/aarch64.md: Include olympus.md. |
| 168 | + * config/aarch64/olympus.md: New file. |
| 169 | + * config/aarch64/tuning_models/olympus.h: Add dispatch |
| 170 | + constraints and enable dispatch scheduling. |
| 171 | + |
| 172 | +2025-12-16 Maxim Kuvyrkov < [email protected]> |
| 173 | + |
| 174 | + * haifa-sched.cc (choose_ready): Don't require dfa_lookahead <= 0 |
| 175 | + to schedule SCHED_GROUP_P insns first. |
| 176 | + |
| 177 | +2025-12-16 Richard Biener < [email protected]> |
| 178 | + |
| 179 | + PR ipa/122456 |
| 180 | + * cgraph.cc (cgraph_edge::resolve_speculation): Handle |
| 181 | + a NULL symtab_node::get (callee_decl). |
| 182 | + |
| 183 | +2025-12-16 Andrew Pinski < [email protected]> |
| 184 | + |
| 185 | + PR tree-optimization/123110 |
| 186 | + * tree-cfgcleanup.cc (maybe_remove_forwarder_block): Add back |
| 187 | + check for eh landing pad or non-local dest on the dest. |
| 188 | + |
| 189 | +2025-12-16 Andrew Pinski < [email protected]> |
| 190 | + |
| 191 | + PR tree-optimization/123111 |
| 192 | + * tree-cfg.cc (ifconvertable_edge): New function. |
| 193 | + (make_forwarders_with_degenerate_phis): Add skip_ifcvtable argument, |
| 194 | + check ifconvertable_edge if skip_ifcvtable is true. |
| 195 | + * tree-cfg.h (make_forwarders_with_degenerate_phis): New argument |
| 196 | + with default of false. |
| 197 | + * tree-cfgcleanup.cc (execute_cleanup_cfg_post_optimizing): Update |
| 198 | + argument to make_forwarders_with_degenerate_phis. |
| 199 | + |
1 | 200 | 2025-12-15 Martin Jambor < [email protected]> |
2 | 201 |
|
3 | 202 | PR ipa/107666 |
|
0 commit comments