LLVM 17.0.0git
Macros | Functions
WebAssemblyRegColoring.cpp File Reference

This file implements a virtual register coloring pass. More...

#include "WebAssembly.h"
#include "WebAssemblyMachineFunctionInfo.h"
#include "llvm/CodeGen/LiveIntervals.h"
#include "llvm/CodeGen/MachineBlockFrequencyInfo.h"
#include "llvm/CodeGen/MachineRegisterInfo.h"
#include "llvm/CodeGen/Passes.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/raw_ostream.h"

Go to the source code of this file.


#define DEBUG_TYPE   "wasm-reg-coloring"


 INITIALIZE_PASS (WebAssemblyRegColoring, DEBUG_TYPE, "Minimize number of registers used", false, false) FunctionPass *llvm
static float computeWeight (const MachineRegisterInfo *MRI, const MachineBlockFrequencyInfo *MBFI, unsigned VReg)

Detailed Description

This file implements a virtual register coloring pass.

WebAssembly doesn't have a fixed number of registers, but it is still desirable to minimize the total number of registers used in each function.

This code is modeled after lib/CodeGen/StackSlotColoring.cpp.

Definition in file WebAssemblyRegColoring.cpp.

Macro Definition Documentation


#define DEBUG_TYPE   "wasm-reg-coloring"

Definition at line 29 of file WebAssemblyRegColoring.cpp.

Function Documentation

◆ computeWeight()

static float computeWeight ( const MachineRegisterInfo MRI,
const MachineBlockFrequencyInfo MBFI,
unsigned  VReg 

Definition at line 65 of file WebAssemblyRegColoring.cpp.

References llvm::LiveIntervals::getSpillWeight(), and MRI.


INITIALIZE_PASS ( WebAssemblyRegColoring  ,
"Minimize number of registers used"  ,
false  ,

Definition at line 57 of file WebAssemblyRegColoring.cpp.