LLVM: llvm::HashRecognize Class Reference (original) (raw)

The analysis. More...

#include "[llvm/Analysis/HashRecognize.h](HashRecognize%5F8h%5Fsource.html)"

Public Member Functions
HashRecognize (const Loop &L, ScalarEvolution &SE)
std::variant< PolynomialInfo, StringRef > recognizeCRC () const
The main entry point for analyzing a loop and recognizing the CRC algorithm.
std::optional< PolynomialInfo > getResult () const
void print (raw_ostream &OS) const
LLVM_DUMP_METHOD void dump () const
Static Public Member Functions
static CRCTable genSarwateTable (const APInt &GenPoly, bool ByteOrderSwapped)
Generate a lookup table of 256 entries by interleaving the generating polynomial.

The analysis.

Definition at line 74 of file HashRecognize.h.

dump()

void HashRecognize::dump ( ) const

genSarwateTable()

getResult()

print()

recognizeCRC()

The main entry point for analyzing a loop and recognizing the CRC algorithm.

Returns a PolynomialInfo on success, and a StringRef on failure.

Definition at line 440 of file HashRecognize.cpp.

References assert(), llvm::cast(), containsUnreachable(), llvm::PHINode::getIncomingValueForBlock(), llvm::Type::getIntegerBitWidth(), getRecurrences(), llvm::BasicBlock::getTerminator(), llvm::Value::getType(), isBigEndianBitShift(), isConditionalOnXorOfPHIs(), isSignificantBitCheckWellFormed(), llvm::none_of(), and llvm::SmallVectorTemplateBase< T, bool >::push_back().

Referenced by print().


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