1 | // Instruction-related utilities for RTL SSA -*- C++ -*- |
2 | // Copyright (C) 2020-2024 Free Software Foundation, Inc. |
3 | // |
4 | // This file is part of GCC. |
5 | // |
6 | // GCC is free software; you can redistribute it and/or modify it under |
7 | // the terms of the GNU General Public License as published by the Free |
8 | // Software Foundation; either version 3, or (at your option) any later |
9 | // version. |
10 | // |
11 | // GCC is distributed in the hope that it will be useful, but WITHOUT ANY |
12 | // WARRANTY; without even the implied warranty of MERCHANTABILITY or |
13 | // FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
14 | // for more details. |
15 | // |
16 | // You should have received a copy of the GNU General Public License |
17 | // along with GCC; see the file COPYING3. If not see |
18 | // <http://www.gnu.org/licenses/>. |
19 | |
20 | namespace rtl_ssa { |
21 | |
22 | // Return whichever of INSN1 and INSN2 occurs earlier in the function's |
23 | // reverse postorder. |
24 | inline insn_info * |
25 | earlier_insn (insn_info *insn1, insn_info *insn2) |
26 | { |
27 | return *insn1 < *insn2 ? insn1 : insn2; |
28 | } |
29 | |
30 | // Return whichever of INSN1 and INSN2 occurs later in the function's |
31 | // reverse postorder. |
32 | inline insn_info * |
33 | later_insn (insn_info *insn1, insn_info *insn2) |
34 | { |
35 | return *insn1 < *insn2 ? insn2 : insn1; |
36 | } |
37 | |
38 | // Return a closure of operator== for INSN. See insn_is_changing for |
39 | // the rationale for defining the function this way. |
40 | inline insn_is_closure |
41 | insn_is (const insn_info *insn) |
42 | { |
43 | return insn_is_closure (insn); |
44 | } |
45 | |
46 | } |
47 | |