LLVM
15.0.0git
|
#include "Hexagon.h"
#include "HexagonISelDAGToDAG.h"
#include "HexagonISelLowering.h"
#include "HexagonTargetMachine.h"
#include "llvm/ADT/SetVector.h"
#include "llvm/CodeGen/MachineInstrBuilder.h"
#include "llvm/CodeGen/SelectionDAGISel.h"
#include "llvm/IR/Intrinsics.h"
#include "llvm/IR/IntrinsicsHexagon.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/Debug.h"
#include <deque>
#include <map>
#include <set>
#include <utility>
#include <vector>
Go to the source code of this file.
Classes | |
struct | llvm::HvxSelector |
Namespaces | |
llvm | |
This is an optimization pass for GlobalISel generic memory operations. | |
Macros | |
#define | DEBUG_TYPE "hexagon-isel" |
Functions | |
static const HexagonTargetLowering & | getHexagonLowering (SelectionDAG &G) |
static const HexagonSubtarget & | getHexagonSubtarget (SelectionDAG &G) |
static void | splitMask (ArrayRef< int > Mask, MutableArrayRef< int > MaskL, MutableArrayRef< int > MaskR) |
static std::pair< int, unsigned > | findStrip (ArrayRef< int > A, int Inc, unsigned MaxLen) |
static bool | isUndef (ArrayRef< int > Mask) |
static bool | isIdentity (ArrayRef< int > Mask) |
static SmallVector< unsigned, 4 > | getInputSegmentList (ShuffleMask SM, unsigned SegLen) |
static SmallVector< unsigned, 4 > | getOutputSegmentMap (ShuffleMask SM, unsigned SegLen) |
static void | packSegmentMask (ArrayRef< int > Mask, ArrayRef< unsigned > OutSegMap, unsigned SegLen, MutableArrayRef< int > PackedMask) |
static bool | isPermutation (ArrayRef< int > Mask) |
#define DEBUG_TYPE "hexagon-isel" |
Definition at line 27 of file HexagonISelDAGToDAGHVX.cpp.
|
static |
Definition at line 800 of file HexagonISelDAGToDAGHVX.cpp.
References G.
|
static |
Definition at line 803 of file HexagonISelDAGToDAGHVX.cpp.
References G.
|
static |
Definition at line 925 of file HexagonISelDAGToDAGHVX.cpp.
References llvm::alignTo(), assert(), B, llvm::isPowerOf2_32(), llvm::Log2_32(), M, llvm::BitVector::set(), llvm::BitVector::set_bits(), and Shift.
|
static |
Definition at line 916 of file HexagonISelDAGToDAGHVX.cpp.
References E, I, M, and llvm::BitmaskEnumDetail::Mask().
Definition at line 1003 of file HexagonISelDAGToDAGHVX.cpp.
References assert(), llvm::BitmaskEnumDetail::Mask(), and N.
Definition at line 909 of file HexagonISelDAGToDAGHVX.cpp.
References llvm::BitmaskEnumDetail::Mask().
Referenced by combineX86ShuffleChain(), CompactSwizzlableVector(), EltsFromConsecutiveLoads(), llvm::finalizeBundle(), llvm::ConstantStruct::get(), getGeneralPermuteNode(), getKnownUndefForVectorBinop(), llvm::HexagonInstrInfo::getPredReg(), llvm::HexagonInstrInfo::insertBranch(), llvm::SIInstrInfo::insertBranch(), lowerV4X128Shuffle(), resolveTargetShuffleInputsAndMask(), and llvm::TargetLowering::SimplifyDemandedVectorElts().
|
static |
Definition at line 980 of file HexagonISelDAGToDAGHVX.cpp.
References assert(), E, I, llvm::Log2_32(), M, llvm::BitmaskEnumDetail::Mask(), llvm::SmallVectorImpl< T >::resize(), S, Shift, and llvm::ArrayRef< T >::size().
|
static |
Definition at line 878 of file HexagonISelDAGToDAGHVX.cpp.
References assert(), I, M, llvm::BitmaskEnumDetail::Mask(), and llvm::ArrayRef< T >::size().