LLVM  9.0.0svn
Namespaces | Functions
AArch64ExpandImm.cpp File Reference
#include "AArch64.h"
#include "AArch64ExpandImm.h"
#include "MCTargetDesc/AArch64AddressingModes.h"
Include dependency graph for AArch64ExpandImm.cpp:

Go to the source code of this file.

Namespaces

 llvm
 This class represents lattice values for constants.
 
 llvm::AArch64_IMM
 

Functions

static uint64_t llvm::AArch64_IMM::getChunk (uint64_t Imm, unsigned ChunkIdx)
 Helper function which extracts the specified 16-bit chunk from a 64-bit value. More...
 
static bool llvm::AArch64_IMM::canUseOrr (uint64_t Chunk, uint64_t &Encoding)
 Check whether the given 16-bit chunk replicated to full 64-bit width can be materialized with an ORR instruction. More...
 
static bool llvm::AArch64_IMM::tryToreplicateChunks (uint64_t UImm, SmallVectorImpl< ImmInsnModel > &Insn)
 Check for identical 16-bit chunks within the constant and if so materialize them with a single ORR instruction. More...
 
static bool llvm::AArch64_IMM::isStartChunk (uint64_t Chunk)
 Check whether this chunk matches the pattern '1...0...'. More...
 
static bool llvm::AArch64_IMM::isEndChunk (uint64_t Chunk)
 Check whether this chunk matches the pattern '0...1...' This pattern ends a contiguous sequence of ones if we look at the bits from the LSB towards the MSB. More...
 
static uint64_t llvm::AArch64_IMM::updateImm (uint64_t Imm, unsigned Idx, bool Clear)
 Clear or set all bits in the chunk at the given index. More...
 
static bool llvm::AArch64_IMM::trySequenceOfOnes (uint64_t UImm, SmallVectorImpl< ImmInsnModel > &Insn)
 Check whether the constant contains a sequence of contiguous ones, which might be interrupted by one or two chunks. More...
 
static void llvm::AArch64_IMM::expandMOVImmSimple (uint64_t Imm, unsigned BitSize, unsigned OneChunks, unsigned ZeroChunks, SmallVectorImpl< ImmInsnModel > &Insn)
 Expand a MOVi32imm or MOVi64imm pseudo instruction to a MOVZ or MOVN of width BitSize followed by up to 3 MOVK instructions. More...
 
void llvm::AArch64_IMM::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 synthesize the immediate. More...