LLVM 23.0.0git
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
17
18namespace llvm {
19
20namespace AArch64_IMM {
21
27
29 unsigned Opcode;
30};
31
32void expandMOVImm(uint64_t Imm, unsigned BitSize,
34
35void expandMOVAddr(unsigned Opcode, unsigned TargetFlags, bool IsTargetMachO,
37
38} // end namespace AArch64_IMM
39
40} // end namespace llvm
41
42#endif
This file defines the SmallVector class.
This class consists of common code factored out of the SmallVector class to reduce code duplication b...
void expandMOVAddr(unsigned Opcode, unsigned TargetFlags, bool IsTargetMachO, SmallVectorImpl< AddrInsnModel > &Insn)
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...
This is an optimization pass for GlobalISel generic memory operations.