LLVM 21.0.0git
|
Maps the original instructions to the vectorized instrs and the reverse. More...
#include "llvm/Transforms/Vectorize/SandboxVectorizer/InstrMaps.h"
Public Member Functions | |
InstrMaps (Context &Ctx) | |
~InstrMaps () | |
Value * | getVectorForOrig (Value *Orig) const |
\Returns the vector value that we got from vectorizing Orig , or nullptr if not found. | |
std::optional< unsigned > | getOrigLane (Value *Vec, Value *Orig) const |
\Returns the lane of Orig before it got vectorized into Vec , or nullopt if not found. | |
void | registerVector (ArrayRef< Value * > Origs, Value *Vec) |
Update the map to reflect that Origs got vectorized into Vec . | |
void | clear () |
void | print (raw_ostream &OS) const |
LLVM_DUMP_METHOD void | dump () const |
Maps the original instructions to the vectorized instrs and the reverse.
For now an original instr can only map to a single vector.
Definition at line 27 of file InstrMaps.h.
|
inline |
Definition at line 62 of file InstrMaps.h.
References I, and llvm::sandboxir::Context::registerEraseInstrCallback().
|
inline |
Definition at line 66 of file InstrMaps.h.
References llvm::sandboxir::Context::unregisterEraseInstrCallback().
|
inline |
Definition at line 95 of file InstrMaps.h.
References llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::clear().
Referenced by llvm::sandboxir::LegalityAnalysis::clear().
void llvm::sandboxir::InstrMaps::dump | ( | ) | const |
Definition at line 15 of file InstrMaps.cpp.
References llvm::dbgs(), and print().
|
inline |
\Returns the lane of Orig
before it got vectorized into Vec
, or nullopt if not found.
Definition at line 75 of file InstrMaps.h.
References llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::end(), and llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::find().
\Returns the vector value that we got from vectorizing Orig
, or nullptr if not found.
Definition at line 69 of file InstrMaps.h.
References llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::end(), and llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::find().
|
inline |
Update the map to reflect that Origs
got vectorized into Vec
.
Definition at line 86 of file InstrMaps.h.
References assert(), llvm::enumerate(), and llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::try_emplace().