LLVM
23.0.0git
lib
Target
X86
MCTargetDesc
X86MCLFIRewriter.h
Go to the documentation of this file.
1
//===- X86MCLFIRewriter.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
//
9
// This file declares the X86MCLFIRewriter class, the X86 specific
10
// subclass of MCLFIRewriter.
11
//
12
//===----------------------------------------------------------------------===//
13
#ifndef LLVM_LIB_TARGET_X86_MCTARGETDESC_X86MCLFIREWRITER_H
14
#define LLVM_LIB_TARGET_X86_MCTARGETDESC_X86MCLFIREWRITER_H
15
16
#include "
llvm/MC/MCInstrInfo.h
"
17
#include "
llvm/MC/MCLFIRewriter.h
"
18
#include "
llvm/MC/MCRegisterInfo.h
"
19
20
namespace
llvm
{
21
class
MCContext
;
22
class
MCInst
;
23
class
MCStreamer
;
24
class
MCSubtargetInfo
;
25
26
namespace
X86
{
27
28
class
X86MCLFIRewriter
:
public
MCLFIRewriter
{
29
public
:
30
X86MCLFIRewriter
(
MCContext
&Ctx, std::unique_ptr<MCRegisterInfo> &&RI,
31
std::unique_ptr<MCInstrInfo> &&
II
)
32
:
MCLFIRewriter
(Ctx,
std
::
move
(RI),
std
::
move
(
II
)) {}
33
34
bool
rewriteInst
(
const
MCInst
&Inst,
MCStreamer
&Out,
35
const
MCSubtargetInfo
&STI)
override
;
36
37
private
:
38
/// Recursion guard to prevent infinite loops when emitting instructions.
39
bool
Guard =
false
;
40
41
void
doRewriteInst(
const
MCInst
&Inst,
MCStreamer
&Out,
42
const
MCSubtargetInfo
&STI);
43
44
void
rewriteSyscall(
const
MCInst
&Inst,
MCStreamer
&Out,
45
const
MCSubtargetInfo
&STI);
46
47
bool
isFSAccess(
const
MCInst
&Inst);
48
void
rewriteFSAccess(
const
MCInst
&Inst,
MCStreamer
&Out,
49
const
MCSubtargetInfo
&STI);
50
};
51
52
}
// namespace X86
53
}
// namespace llvm
54
#endif
// LLVM_LIB_TARGET_X86_MCTARGETDESC_X86MCLFIREWRITER_H
MCInstrInfo.h
MCLFIRewriter.h
This file declares the MCLFIRewriter class, an abstract class that encapsulates the rewriting logic f...
MCRegisterInfo.h
II
uint64_t IntrinsicInst * II
Definition
NVVMIntrRange.cpp:46
llvm::MCContext
Context object for machine code objects.
Definition
MCContext.h:83
llvm::MCInst
Instances of this class represent a single low-level machine instruction.
Definition
MCInst.h:188
llvm::MCLFIRewriter::MCLFIRewriter
MCLFIRewriter(MCContext &Ctx, std::unique_ptr< MCRegisterInfo > &&RI, std::unique_ptr< MCInstrInfo > &&II)
Definition
MCLFIRewriter.h:40
llvm::MCStreamer
Streaming machine code generation interface.
Definition
MCStreamer.h:222
llvm::MCSubtargetInfo
Generic base class for all target subtargets.
Definition
MCSubtargetInfo.h:117
llvm::X86::X86MCLFIRewriter::X86MCLFIRewriter
X86MCLFIRewriter(MCContext &Ctx, std::unique_ptr< MCRegisterInfo > &&RI, std::unique_ptr< MCInstrInfo > &&II)
Definition
X86MCLFIRewriter.h:30
llvm::X86::X86MCLFIRewriter::rewriteInst
bool rewriteInst(const MCInst &Inst, MCStreamer &Out, const MCSubtargetInfo &STI) override
Definition
X86MCLFIRewriter.cpp:236
llvm::X86
Define some predicates that are used for node matching.
Definition
X86TargetParser.h:25
llvm
This is an optimization pass for GlobalISel generic memory operations.
Definition
FunctionInfo.h:25
llvm::move
OutputIt move(R &&Range, OutputIt Out)
Provide wrappers to std::move which take ranges instead of having to pass begin/end explicitly.
Definition
STLExtras.h:1917
std
Implement std::hash so that hash_code can be used in STL containers.
Definition
BitVector.h:860
Generated on
for LLVM by
1.14.0