LLVM  4.0.0
Macros | Functions
SIInsertSkips.cpp File Reference

This pass inserts branches on the 0 exec mask over divergent branches branches when it's expected that jumping over the untaken control flow will be cheaper than having every workitem no-op through it. More...

#include "AMDGPU.h"
#include "AMDGPUSubtarget.h"
#include "SIInstrInfo.h"
#include "SIMachineFunctionInfo.h"
#include "llvm/CodeGen/MachineFrameInfo.h"
#include "llvm/CodeGen/MachineFunction.h"
#include "llvm/CodeGen/MachineFunctionPass.h"
#include "llvm/CodeGen/MachineInstrBuilder.h"
#include "llvm/MC/MCAsmInfo.h"
Include dependency graph for SIInsertSkips.cpp:

Go to the source code of this file.

Macros

#define DEBUG_TYPE   "si-insert-skips"
 

Functions

static INITIALIZE_PASS(SIInsertSkips,
DEBUG_TYPE,"SI insert
s_cbranch_execz instructions",
false, false) char &llvm bool 
opcodeEmitsNoInsts (unsigned Opc)
 

Detailed Description

This pass inserts branches on the 0 exec mask over divergent branches branches when it's expected that jumping over the untaken control flow will be cheaper than having every workitem no-op through it.

Definition in file SIInsertSkips.cpp.

Macro Definition Documentation

#define DEBUG_TYPE   "si-insert-skips"

Definition at line 28 of file SIInsertSkips.cpp.

Function Documentation

static INITIALIZE_PASS (SIInsertSkips, DEBUG_TYPE, "SI insert s_cbranch_execz instructions", false, false) char &llvm bool opcodeEmitsNoInsts ( unsigned  Opc)
static

Definition at line 81 of file SIInsertSkips.cpp.

References llvm::ISD::EH_LABEL, and llvm::AMDGPUISD::KILL.