LLVM
20.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:61
llvm::BasicBlock::end
iterator end()
Definition:
BasicBlock.h:461
llvm::BasicBlock::begin
iterator begin()
Instruction iterator methods.
Definition:
BasicBlock.h:448
llvm::Function
Definition:
Function.h:63
llvm::GenericSSAContext
Definition:
GenericSSAContext.h:41
llvm::Instruction
Definition:
Instruction.h:68
llvm::Use
A Use represents the edge between a Value definition and its users.
Definition:
Use.h:43
llvm::Value
LLVM Value Representation.
Definition:
Value.h:74
llvm::ISD::BasicBlock
@ BasicBlock
Various leaf nodes.
Definition:
ISDOpcodes.h:71
llvm::TargetStackID::Value
Value
Definition:
TargetFrameLowering.h:29
llvm::codeview::PublicSymFlags::Function
@ Function
llvm
This is an optimization pass for GlobalISel generic memory operations.
Definition:
AddressRanges.h:18
llvm::make_range
iterator_range< T > make_range(T x, T y)
Convenience function for iterating over sub-ranges.
Definition:
iterator_range.h:77
llvm::instrs
auto instrs(const MachineBasicBlock &BB)
Definition:
MachineSSAContext.h:27
llvm::GenericSSATraits
Definition:
GenericSSAContext.h:33
Generated on Sat Dec 21 2024 20:57:27 for LLVM by
1.9.6