LLVM 18.0.0git
Functions
ARMLegalizerInfo.cpp File Reference

This file implements the targeting of the Machinelegalizer class for ARM. More...

#include "ARMLegalizerInfo.h"
#include "ARMCallLowering.h"
#include "ARMSubtarget.h"
#include "llvm/CodeGen/GlobalISel/LegalizerHelper.h"
#include "llvm/CodeGen/GlobalISel/MachineIRBuilder.h"
#include "llvm/CodeGen/LowLevelTypeUtils.h"
#include "llvm/CodeGen/MachineRegisterInfo.h"
#include "llvm/CodeGen/TargetOpcodes.h"
#include "llvm/CodeGen/ValueTypes.h"
#include "llvm/IR/DerivedTypes.h"
#include "llvm/IR/Type.h"

Go to the source code of this file.

Functions

static void addAndInterleaveWithUnsupported (LegacyLegalizerInfo::SizeAndActionsVec &result, const LegacyLegalizerInfo::SizeAndActionsVec &v)
 FIXME: The following static functions are SizeChangeStrategy functions that are meant to temporarily mimic the behaviour of the old legalization based on doubling/halving non-legal types as closely as possible.
 
static LegacyLegalizerInfo::SizeAndActionsVec widen_8_16 (const LegacyLegalizerInfo::SizeAndActionsVec &v)
 
static bool AEABI (const ARMSubtarget &ST)
 

Detailed Description

This file implements the targeting of the Machinelegalizer class for ARM.

Todo:
This should be generated by TableGen.

Definition in file ARMLegalizerInfo.cpp.

Function Documentation

◆ addAndInterleaveWithUnsupported()

static void addAndInterleaveWithUnsupported ( LegacyLegalizerInfo::SizeAndActionsVec result,
const LegacyLegalizerInfo::SizeAndActionsVec v 
)
static

FIXME: The following static functions are SizeChangeStrategy functions that are meant to temporarily mimic the behaviour of the old legalization based on doubling/halving non-legal types as closely as possible.

This is not entirly possible as only legalizing the types that are exactly a power of 2 times the size of the legal types would require specifying all those sizes explicitly. In practice, not specifying those isn't a problem, and the below functions should disappear quickly as we add support for legalizing non-power-of-2 sized types further.

Definition at line 37 of file ARMLegalizerInfo.cpp.

References llvm::LegacyLegalizeActions::Unsupported.

Referenced by widen_8_16().

◆ AEABI()

static bool AEABI ( const ARMSubtarget ST)
static

Definition at line 64 of file ARMLegalizerInfo.cpp.

Referenced by llvm::ARMLegalizerInfo::ARMLegalizerInfo().

◆ widen_8_16()