LLVM
22.0.0git
include
llvm
CodeGen
MachineSSAContext.h
Go to the documentation of this file.
1
//===- MachineSSAContext.h --------------------------------------*- C++ -*-===//
2
//
3
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4
// See https://llvm.org/LICENSE.txt for license information.
5
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6
//
7
//===----------------------------------------------------------------------===//
8
/// \file
9
///
10
/// This file declares a specialization of the GenericSSAContext<X>
11
/// template class for Machine IR.
12
///
13
//===----------------------------------------------------------------------===//
14
15
#ifndef LLVM_CODEGEN_MACHINESSACONTEXT_H
16
#define LLVM_CODEGEN_MACHINESSACONTEXT_H
17
18
#include "
llvm/ADT/GenericSSAContext.h
"
19
#include "
llvm/CodeGen/MachineBasicBlock.h
"
20
#include "
llvm/Support/Printable.h
"
21
22
namespace
llvm
{
23
class
MachineInstr
;
24
class
MachineFunction
;
25
class
Register
;
26
27
inline
auto
instrs
(
const
MachineBasicBlock
&BB) {
return
BB.
instrs
(); }
28
29
template
<>
struct
GenericSSATraits
<
MachineFunction
> {
30
using
BlockT
=
MachineBasicBlock
;
31
using
FunctionT
=
MachineFunction
;
32
using
InstructionT
=
MachineInstr
;
33
using
ValueRefT
=
Register
;
34
using
ConstValueRefT
=
Register
;
35
using
UseT
=
MachineOperand
;
36
};
37
38
using
MachineSSAContext
=
GenericSSAContext<MachineFunction>
;
39
}
// namespace llvm
40
41
#endif
// LLVM_CODEGEN_MACHINESSACONTEXT_H
GenericSSAContext.h
This file defines the little GenericSSAContext<X> template class that can be used to implement IR ana...
MachineBasicBlock.h
Printable.h
llvm::GenericSSAContext
Definition
GenericSSAContext.h:41
llvm::MachineBasicBlock
Definition
MachineBasicBlock.h:122
llvm::MachineBasicBlock::instrs
instr_range instrs()
Definition
MachineBasicBlock.h:372
llvm::MachineFunction
Definition
MachineFunction.h:286
llvm::MachineInstr
Representation of each machine instruction.
Definition
MachineInstr.h:72
llvm::MachineOperand
MachineOperand class - Representation of each machine instruction operand.
Definition
MachineOperand.h:48
llvm::Register
Wrapper class representing virtual and physical registers.
Definition
Register.h:19
llvm
This is an optimization pass for GlobalISel generic memory operations.
Definition
AddressRanges.h:18
llvm::MachineSSAContext
GenericSSAContext< MachineFunction > MachineSSAContext
Definition
MachineSSAContext.h:38
llvm::instrs
auto instrs(const MachineBasicBlock &BB)
Definition
MachineSSAContext.h:27
llvm::GenericSSATraits< MachineFunction >::ConstValueRefT
Register ConstValueRefT
Definition
MachineSSAContext.h:34
llvm::GenericSSATraits< MachineFunction >::FunctionT
MachineFunction FunctionT
Definition
MachineSSAContext.h:31
llvm::GenericSSATraits< MachineFunction >::ValueRefT
Register ValueRefT
Definition
MachineSSAContext.h:33
llvm::GenericSSATraits< MachineFunction >::BlockT
MachineBasicBlock BlockT
Definition
MachineSSAContext.h:30
llvm::GenericSSATraits< MachineFunction >::InstructionT
MachineInstr InstructionT
Definition
MachineSSAContext.h:32
llvm::GenericSSATraits< MachineFunction >::UseT
MachineOperand UseT
Definition
MachineSSAContext.h:35
llvm::GenericSSATraits
Definition
GenericSSAContext.h:33
Generated on
for LLVM by
1.14.0