LLVM 22.0.0git
PPCMacroFusion.cpp File Reference
#include "PPC.h"
#include "PPCSubtarget.h"
#include "llvm/ADT/DenseSet.h"
#include "llvm/CodeGen/MacroFusion.h"
#include "llvm/CodeGen/ScheduleDAGMutation.h"
#include <optional>
#include "PPCMacroFusion.def"

Go to the source code of this file.

Namespaces

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

Macros

#define FUSION_KIND(KIND)
#define FUSION_FEATURE(KIND, HAS_FEATURE, DEP_OP_IDX, OPSET1, OPSET2)
#define FUSION_OP_SET(...)
#define FUSION_FEATURE(KIND, HAS_FEATURE, DEP_OP_IDX, OPSET1, OPSET2)
#define FUSION_OP_SET(...)

Functions

std::unique_ptr< ScheduleDAGMutationllvm::createPowerPCMacroFusionDAGMutation ()
 Note that you have to add: DAG.addMutation(createPowerPCMacroFusionDAGMutation()); to PPCTargetMachine::createMachineScheduler() to have an effect.

Macro Definition Documentation

◆ FUSION_FEATURE [1/2]

#define FUSION_FEATURE ( KIND,
HAS_FEATURE,
DEP_OP_IDX,
OPSET1,
OPSET2 )
Value:
#define KIND(ENUM, FIELD)
Definition LVSupport.h:116
#define FUSION_KIND(KIND)

Definition at line 30 of file PPCMacroFusion.cpp.

◆ FUSION_FEATURE [2/2]

#define FUSION_FEATURE ( KIND,
HAS_FEATURE,
DEP_OP_IDX,
OPSET1,
OPSET2 )
Value:
{ \
FusionFeature::FUSION_KIND(KIND), ST.HAS_FEATURE(), DEP_OP_IDX, { OPSET1 },\
{ OPSET2 } },

Definition at line 30 of file PPCMacroFusion.cpp.

◆ FUSION_KIND

#define FUSION_KIND ( KIND)
Value:
FK_##KIND

Definition at line 29 of file PPCMacroFusion.cpp.

◆ FUSION_OP_SET [1/2]

#define FUSION_OP_SET ( ...)
Value:
__VA_ARGS__

Definition at line 60 of file PPCMacroFusion.cpp.

◆ FUSION_OP_SET [2/2]

#define FUSION_OP_SET ( ...)
Value:
__VA_ARGS__

Definition at line 60 of file PPCMacroFusion.cpp.