LLVM
22.0.0git
include
llvm
IR
SSAContext.h
Go to the documentation of this file.
1
//===- SSAContext.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
/// class template for LLVM IR.
12
///
13
//===----------------------------------------------------------------------===//
14
15
#ifndef LLVM_IR_SSACONTEXT_H
16
#define LLVM_IR_SSACONTEXT_H
17
18
#include "
llvm/ADT/GenericSSAContext.h
"
19
#include "
llvm/IR/BasicBlock.h
"
20
21
namespace
llvm
{
22
class
BasicBlock
;
23
class
Function
;
24
class
Instruction
;
25
class
Value
;
26
27
inline
auto
instrs
(
const
BasicBlock
&BB) {
28
return
llvm::make_range
(BB.
begin
(), BB.
end
());
29
}
30
31
template
<>
struct
GenericSSATraits
<
Function
> {
32
using
BlockT
=
BasicBlock
;
33
using
FunctionT
=
Function
;
34
using
InstructionT
=
Instruction
;
35
using
ValueRefT
=
Value
*;
36
using
ConstValueRefT
=
const
Value
*;
37
using
UseT
=
Use
;
38
};
39
40
using
SSAContext
=
GenericSSAContext<Function>
;
41
42
}
// namespace llvm
43
44
#endif
// LLVM_IR_SSACONTEXT_H
GenericSSAContext.h
This file defines the little GenericSSAContext<X> template class that can be used to implement IR ana...
BasicBlock.h
llvm::BasicBlock
LLVM Basic Block Representation.
Definition
BasicBlock.h:62
llvm::BasicBlock::end
iterator end()
Definition
BasicBlock.h:472
llvm::BasicBlock::begin
iterator begin()
Instruction iterator methods.
Definition
BasicBlock.h:459
llvm::Function
Definition
Function.h:64
llvm::GenericSSAContext
Definition
GenericSSAContext.h:41
llvm::Instruction
Definition
Instruction.h:69
llvm::Use
A Use represents the edge between a Value definition and its users.
Definition
Use.h:35
llvm::Value
LLVM Value Representation.
Definition
Value.h:75
llvm
This is an optimization pass for GlobalISel generic memory operations.
Definition
AddressRanges.h:18
llvm::SSAContext
GenericSSAContext< Function > SSAContext
Definition
FunctionLoweringInfo.h:48
llvm::make_range
iterator_range< T > make_range(T x, T y)
Convenience function for iterating over sub-ranges.
Definition
iterator_range.h:70
llvm::instrs
auto instrs(const MachineBasicBlock &BB)
Definition
MachineSSAContext.h:27
llvm::GenericSSATraits< Function >::FunctionT
Function FunctionT
Definition
SSAContext.h:33
llvm::GenericSSATraits< Function >::ConstValueRefT
const Value * ConstValueRefT
Definition
SSAContext.h:36
llvm::GenericSSATraits< Function >::BlockT
BasicBlock BlockT
Definition
SSAContext.h:32
llvm::GenericSSATraits< Function >::UseT
Use UseT
Definition
SSAContext.h:37
llvm::GenericSSATraits< Function >::ValueRefT
Value * ValueRefT
Definition
SSAContext.h:35
llvm::GenericSSATraits< Function >::InstructionT
Instruction InstructionT
Definition
SSAContext.h:34
llvm::GenericSSATraits
Definition
GenericSSAContext.h:33
Generated on
for LLVM by
1.14.0