LLVM
8.0.1
|
InstCombineWorklist - This is the worklist management logic for InstCombine. More...
#include "llvm/Transforms/InstCombine/InstCombineWorklist.h"
Public Member Functions | |
InstCombineWorklist ()=default | |
InstCombineWorklist (InstCombineWorklist &&)=default | |
InstCombineWorklist & | operator= (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) |
Instruction * | RemoveOne () |
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... | |
InstCombineWorklist - This is the worklist management logic for InstCombine.
Definition at line 27 of file InstCombineWorklist.h.
|
default |
|
default |
|
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(), llvm::DenseMapBase< DenseMap< KeyT, ValueT, KeyInfoT, BucketT >, KeyT, ValueT, KeyInfoT, BucketT >::insert(), LLVM_DEBUG, llvm::SmallVectorTemplateBase< T >::push_back(), and llvm::SmallVectorBase::size().
Referenced by AddUsersToWorkList(), AddValue(), combineInstructionsOverFunction(), llvm::InstCombiner::eraseInstFromFunction(), getShiftedValue(), llvm::InstCombiner::InsertNewInstBefore(), and processUMulZExtIdiom().
|
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(), llvm::SmallVectorBase::empty(), I, llvm::DenseMapBase< DenseMap< KeyT, ValueT, KeyInfoT, BucketT >, KeyT, ValueT, KeyInfoT, BucketT >::insert(), LLVM_DEBUG, llvm::SmallVectorTemplateBase< T >::push_back(), llvm::DenseMapBase< DenseMap< KeyT, ValueT, KeyInfoT, BucketT >, KeyT, ValueT, KeyInfoT, BucketT >::reserve(), llvm::SmallVectorImpl< T >::reserve(), llvm::reverse(), and llvm::ArrayRef< T >::size().
Referenced by AddReachableCodeToWorklist().
|
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 90 of file InstCombineWorklist.h.
References Add(), and llvm::Value::users().
Referenced by llvm::InstCombiner::replaceInstUsesWith().
|
inline |
Definition at line 48 of file InstCombineWorklist.h.
|
inline |
Definition at line 37 of file InstCombineWorklist.h.
References llvm::SmallVectorBase::empty().
|
default |
|
inline |
Definition at line 70 of file InstCombineWorklist.h.
References llvm::DenseMapBase< DenseMap< KeyT, ValueT, KeyInfoT, BucketT >, KeyT, ValueT, KeyInfoT, BucketT >::end(), llvm::DenseMapBase< DenseMap< KeyT, ValueT, KeyInfoT, BucketT >, KeyT, ValueT, KeyInfoT, BucketT >::erase(), and llvm::DenseMapBase< DenseMap< KeyT, ValueT, KeyInfoT, BucketT >, KeyT, ValueT, KeyInfoT, BucketT >::find().
Referenced by llvm::InstCombiner::eraseInstFromFunction().
|
inline |
Definition at line 80 of file InstCombineWorklist.h.
References llvm::DenseMapBase< DenseMap< KeyT, ValueT, KeyInfoT, BucketT >, KeyT, ValueT, KeyInfoT, BucketT >::erase(), I, and llvm::SmallVectorImpl< T >::pop_back_val().
|
inline |
Zap - check that the worklist is empty and nuke the backing store for the map if it is large.
Definition at line 98 of file InstCombineWorklist.h.
References assert(), llvm::DenseMapBase< DenseMap< KeyT, ValueT, KeyInfoT, BucketT >, KeyT, ValueT, KeyInfoT, BucketT >::clear(), and llvm::DenseMapBase< DenseMap< KeyT, ValueT, KeyInfoT, BucketT >, KeyT, ValueT, KeyInfoT, BucketT >::empty().