Intel® Implicit SPMD Program Compiler (Intel® ISPC)  1.13.0
Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
MaskOpsCleanupPass Class Reference
Inheritance diagram for MaskOpsCleanupPass:
Inheritance graph
[legend]
Collaboration diagram for MaskOpsCleanupPass:
Collaboration graph
[legend]

Public Member Functions

 MaskOpsCleanupPass (llvm::Module *m)
 
llvm::StringRef getPassName () const
 
bool runOnBasicBlock (llvm::BasicBlock &BB)
 
bool runOnFunction (llvm::Function &F)
 

Private Member Functions

llvm::Value * lGetNotOperand (llvm::Value *v) const
 

Private Attributes

llvm::Function * notFunc
 
llvm::Function * andNotFuncs [2]
 

Static Private Attributes

static char ID = 0
 

Detailed Description

This pass does various peephole improvements to mask modification operations. In particular, it converts mask XORs with "all true" to calls to __not() and replaces operations like and(not(a), b) to __and_not1(a, b) (and similarly if the second operand has not applied to it...)

Definition at line 5085 of file cbackend.cpp.

Constructor & Destructor Documentation

◆ MaskOpsCleanupPass()

MaskOpsCleanupPass::MaskOpsCleanupPass ( llvm::Module *  m)
inline

Definition at line 5087 of file cbackend.cpp.

Member Function Documentation

◆ getPassName()

llvm::StringRef MaskOpsCleanupPass::getPassName ( ) const
inline

Definition at line 5122 of file cbackend.cpp.

◆ lGetNotOperand()

llvm::Value * MaskOpsCleanupPass::lGetNotOperand ( llvm::Value *  v) const
private

Checks to see if the given value is the NOT of some other value. If so, it returns the operand of the NOT; otherwise returns NULL.

Definition at line 5158 of file cbackend.cpp.

◆ runOnBasicBlock()

bool MaskOpsCleanupPass::runOnBasicBlock ( llvm::BasicBlock &  BB)

Definition at line 5172 of file cbackend.cpp.

◆ runOnFunction()

bool MaskOpsCleanupPass::runOnFunction ( llvm::Function &  F)

Definition at line 5224 of file cbackend.cpp.

Member Data Documentation

◆ andNotFuncs

llvm::Function * MaskOpsCleanupPass::andNotFuncs[2]
private

Definition at line 5129 of file cbackend.cpp.

◆ ID

char MaskOpsCleanupPass::ID = 0
staticprivate

Definition at line 5131 of file cbackend.cpp.

◆ notFunc

llvm::Function* MaskOpsCleanupPass::notFunc
private

Definition at line 5129 of file cbackend.cpp.


The documentation for this class was generated from the following file: