LLVM  8.0.1
Macros | Functions
WebAssemblyPrepareForLiveIntervals.cpp File Reference

Fix up code to meet LiveInterval's requirements. More...

#include "MCTargetDesc/WebAssemblyMCTargetDesc.h"
#include "WebAssembly.h"
#include "WebAssemblyMachineFunctionInfo.h"
#include "WebAssemblySubtarget.h"
#include "WebAssemblyUtilities.h"
#include "llvm/CodeGen/MachineFunctionPass.h"
#include "llvm/CodeGen/MachineInstrBuilder.h"
#include "llvm/CodeGen/MachineRegisterInfo.h"
#include "llvm/CodeGen/Passes.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/raw_ostream.h"
Include dependency graph for WebAssemblyPrepareForLiveIntervals.cpp:

Go to the source code of this file.

Macros

#define DEBUG_TYPE   "wasm-prepare-for-live-intervals"
 

Functions

 INITIALIZE_PASS (WebAssemblyPrepareForLiveIntervals, DEBUG_TYPE, "Fix up code for LiveIntervals", false, false) FunctionPass *llvm
 
static bool HasArgumentDef (unsigned Reg, const MachineRegisterInfo &MRI)
 

Detailed Description

Fix up code to meet LiveInterval's requirements.

Some CodeGen passes don't preserve LiveInterval's requirements, because they run after register allocation and it isn't important. However, WebAssembly runs LiveIntervals in a late pass. This pass transforms code to meet LiveIntervals' requirements; primarily, it ensures that all virtual register uses have definitions (IMPLICIT_DEF definitions if nothing else).

Definition in file WebAssemblyPrepareForLiveIntervals.cpp.

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "wasm-prepare-for-live-intervals"

Definition at line 35 of file WebAssemblyPrepareForLiveIntervals.cpp.

Function Documentation

◆ HasArgumentDef()

static bool HasArgumentDef ( unsigned  Reg,
const MachineRegisterInfo MRI 
)
static

◆ INITIALIZE_PASS()

INITIALIZE_PASS ( WebAssemblyPrepareForLiveIntervals  ,
DEBUG_TYPE  ,
"Fix up code for LiveIntervals ,
false  ,
false   
)

Definition at line 58 of file WebAssemblyPrepareForLiveIntervals.cpp.