1 /* AArch64
-specific passes declarations.
2 Copyright (C
) 2016-2025 Free Software Foundation
, Inc.
3 Contributed by ARM Ltd.
5 This file is part of GCC.
7 GCC is free software
; you can redistribute it and
/or modify it
8 under the terms of the GNU General Public License as published by
9 the Free Software Foundation
; either version
3, or (at your option
)
12 GCC is distributed in the hope that it will be useful
, but
13 WITHOUT ANY WARRANTY
; without even the implied warranty of
14 MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU
15 General Public License for more details.
17 You should have received a copy of the GNU General Public License
18 along with GCC
; see the file COPYING3. If not see
19 <http
://www.gnu.org
/licenses
/>.
*/
21 INSERT_PASS_BEFORE (pass_sched
, 1, pass_aarch64_early_ra
);
22 INSERT_PASS_AFTER (pass_regrename
, 1, pass_fma_steering
);
23 INSERT_PASS_BEFORE (pass_reorder_blocks
, 1, pass_track_speculation
);
24 INSERT_PASS_BEFORE (pass_late_thread_prologue_and_epilogue
, 1, pass_switch_pstate_sm
);
25 INSERT_PASS_BEFORE (pass_late_thread_prologue_and_epilogue
, 1, pass_late_track_speculation
);
26 INSERT_PASS_BEFORE (pass_shorten_branches
, 1, pass_insert_bti
);
27 INSERT_PASS_AFTER (pass_if_after_combine
, 1, pass_cc_fusion
);
28 INSERT_PASS_BEFORE (pass_early_remat
, 1, pass_ldp_fusion
);
29 INSERT_PASS_BEFORE (pass_peephole2
, 1, pass_ldp_fusion
);