LLVM 22.0.0git
LowLevelType.h File Reference

Implement a low-level type suitable for MachineInstr level instruction selection. More...

Go to the source code of this file.

Classes

class  llvm::LLT
struct  llvm::DenseMapInfo< LLT >

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.

Functions

raw_ostreamllvm::operator<< (raw_ostream &OS, const LLT &Ty)

Detailed Description

Implement a low-level type suitable for MachineInstr level instruction selection.

For a type attached to a MachineInstr, we only care about 2 details: total size and the number of vector lanes (if any). Accordingly, there are 4 possible valid type-kinds:

  • sN for scalars and aggregates
  • <N x sM> for vectors, which must have at least 2 elements.
  • pN for pointers

Other information required for correct selection is expected to be carried by the opcode, or non-type flags. For example the distinction between G_ADD and G_FADD for int/float or fast-math flags.

Definition in file LowLevelType.h.