LLVM  4.0.0
Public Member Functions | List of all members
llvm::InstCombineWorklist Class Reference

InstCombineWorklist - This is the worklist management logic for InstCombine. More...

#include <InstCombineWorklist.h>

Public Member Functions

 InstCombineWorklist ()=default
 
 InstCombineWorklist (InstCombineWorklist &&)=default
 
InstCombineWorklistoperator= (InstCombineWorklist &&)=default
 
bool isEmpty () const
 
void Add (Instruction *I)
 Add - Add the specified instruction to the worklist if it isn't already in it. More...
 
void AddValue (Value *V)
 
void AddInitialGroup (ArrayRef< Instruction * > List)
 AddInitialGroup - Add the specified batch of stuff in reverse order. More...
 
void Remove (Instruction *I)
 
InstructionRemoveOne ()
 
void AddUsersToWorkList (Instruction &I)
 AddUsersToWorkList - When an instruction is simplified, add all users of the instruction to the work lists because they might get more simplified now. More...
 
void Zap ()
 Zap - check that the worklist is empty and nuke the backing store for the map if it is large. More...
 

Detailed Description

InstCombineWorklist - This is the worklist management logic for InstCombine.

Definition at line 27 of file InstCombineWorklist.h.

Constructor & Destructor Documentation

llvm::InstCombineWorklist::InstCombineWorklist ( )
default
llvm::InstCombineWorklist::InstCombineWorklist ( InstCombineWorklist &&  )
default

Member Function Documentation

void llvm::InstCombineWorklist::Add ( Instruction I)
inline

Add - Add the specified instruction to the worklist if it isn't already in it.

Definition at line 41 of file InstCombineWorklist.h.

References llvm::dbgs(), and DEBUG.

Referenced by AddUsersToWorkList(), AddValue(), combineInstructionsOverFunction(), GetShiftedValue(), processUMulZExtIdiom(), llvm::InstCombiner::visitLoadInst(), and llvm::InstCombiner::visitStoreInst().

void llvm::InstCombineWorklist::AddInitialGroup ( ArrayRef< Instruction * >  List)
inline

AddInitialGroup - Add the specified batch of stuff in reverse order.

which should only be done when the worklist is empty and when the group has no duplicates.

Definition at line 56 of file InstCombineWorklist.h.

References assert(), llvm::dbgs(), DEBUG, I, llvm::reverse(), and llvm::ArrayRef< T >::size().

Referenced by AddReachableCodeToWorklist().

void llvm::InstCombineWorklist::AddUsersToWorkList ( Instruction I)
inline

AddUsersToWorkList - When an instruction is simplified, add all users of the instruction to the work lists because they might get more simplified now.

Definition at line 89 of file InstCombineWorklist.h.

References Add(), and llvm::Value::users().

void llvm::InstCombineWorklist::AddValue ( Value V)
inline

Definition at line 48 of file InstCombineWorklist.h.

References Add(), and I.

bool llvm::InstCombineWorklist::isEmpty ( ) const
inline

Definition at line 37 of file InstCombineWorklist.h.

InstCombineWorklist& llvm::InstCombineWorklist::operator= ( InstCombineWorklist &&  )
default
void llvm::InstCombineWorklist::Remove ( Instruction I)
inline

Definition at line 69 of file InstCombineWorklist.h.

Instruction* llvm::InstCombineWorklist::RemoveOne ( )
inline

Definition at line 79 of file InstCombineWorklist.h.

References I.

void llvm::InstCombineWorklist::Zap ( )
inline

Zap - check that the worklist is empty and nuke the backing store for the map if it is large.

Definition at line 97 of file InstCombineWorklist.h.

References assert().


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