LLVM
23.0.0git
lib
Target
AArch64
AArch64ExpandImm.h
Go to the documentation of this file.
1
//===- AArch64ExpandImm.h - AArch64 Immediate Expansion ---------*- 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 contains the AArch64 immediate expansion stuff.
10
//
11
//===----------------------------------------------------------------------===//
12
13
#ifndef LLVM_LIB_TARGET_AARCH64_MCTARGETDESC_AARCH64EXPANDIMM_H
14
#define LLVM_LIB_TARGET_AARCH64_MCTARGETDESC_AARCH64EXPANDIMM_H
15
16
#include "
llvm/ADT/SmallVector.h
"
17
18
namespace
llvm
{
19
20
namespace
AArch64_IMM
{
21
22
struct
ImmInsnModel
{
23
unsigned
Opcode
;
24
uint64_t
Op1
;
25
uint64_t
Op2
;
26
};
27
28
struct
AddrInsnModel
{
29
unsigned
Opcode
;
30
};
31
32
void
expandMOVImm
(
uint64_t
Imm,
unsigned
BitSize,
33
SmallVectorImpl<ImmInsnModel>
&Insn);
34
35
void
expandMOVAddr
(
unsigned
Opcode,
unsigned
TargetFlags,
bool
IsTargetMachO,
36
SmallVectorImpl<AddrInsnModel>
&Insn);
37
38
}
// end namespace AArch64_IMM
39
40
}
// end namespace llvm
41
42
#endif
SmallVector.h
This file defines the SmallVector class.
llvm::SmallVectorImpl
This class consists of common code factored out of the SmallVector class to reduce code duplication b...
Definition
SmallVector.h:581
uint64_t
llvm::AArch64_IMM
Definition
AArch64ExpandImm.h:20
llvm::AArch64_IMM::expandMOVAddr
void expandMOVAddr(unsigned Opcode, unsigned TargetFlags, bool IsTargetMachO, SmallVectorImpl< AddrInsnModel > &Insn)
Definition
AArch64ExpandImm.cpp:724
llvm::AArch64_IMM::expandMOVImm
void expandMOVImm(uint64_t Imm, unsigned BitSize, SmallVectorImpl< ImmInsnModel > &Insn)
Expand a MOVi32imm or MOVi64imm pseudo instruction to one or more real move-immediate instructions to...
Definition
AArch64ExpandImm.cpp:598
llvm
This is an optimization pass for GlobalISel generic memory operations.
Definition
FunctionInfo.h:25
llvm::AArch64_IMM::AddrInsnModel
Definition
AArch64ExpandImm.h:28
llvm::AArch64_IMM::AddrInsnModel::Opcode
unsigned Opcode
Definition
AArch64ExpandImm.h:29
llvm::AArch64_IMM::ImmInsnModel
Definition
AArch64ExpandImm.h:22
llvm::AArch64_IMM::ImmInsnModel::Op2
uint64_t Op2
Definition
AArch64ExpandImm.h:25
llvm::AArch64_IMM::ImmInsnModel::Opcode
unsigned Opcode
Definition
AArch64ExpandImm.h:23
llvm::AArch64_IMM::ImmInsnModel::Op1
uint64_t Op1
Definition
AArch64ExpandImm.h:24
Generated on
for LLVM by
1.14.0