OpenGrok
Home
Sort by:
relevance
|
last modified time
|
path
Full Search
in project(s):
src
xsrc
Definition
Symbol
File Path
History
|
|
Help
Searched
refs:VPValue
(Results
1 - 11
of
11
) sorted by relevancy
/src/external/apache2/llvm/dist/llvm/lib/Transforms/Vectorize/
VPlanValue.h
13
///
VPValue
VPUser VPDef
44
class
VPValue
{
60
// Hold the underlying Value, if any, attached to this
VPValue
.
63
/// Pointer to the VPDef that defines this
VPValue
. If it is nullptr, the
64
///
VPValue
is not defined by any recipe modeled in VPlan.
67
VPValue
(const unsigned char SC, Value *UV = nullptr, VPDef *Def = nullptr);
76
// Set \p Val as the underlying Value of this
VPValue
.
83
/// Return the underlying Value attached to this
VPValue
.
87
/// An enumeration for keeping track of the concrete subclass of
VPValue
that
89
/// SubclassID field of the
VPValue
objects. They are used for concret
[
all
...]
VPlanPredicator.h
48
/// Create and return
VPValue
corresponding to the predicate for the edge from
50
VPValue
*getOrCreateNotPredicate(VPBasicBlock *PredBB, VPBasicBlock *CurrBB);
54
VPValue
*genPredicateTree(std::list<
VPValue
*> &Worklist);
VPlanPredicator.cpp
37
VPValue
*VPlanPredicator::getOrCreateNotPredicate(VPBasicBlock *PredBB,
39
VPValue
*CBV = PredBB->getCondBit();
44
VPValue
*IntermediateVal = nullptr;
58
VPValue
*BP = PredBB->getPredicate();
85
VPValue
*VPlanPredicator::genPredicateTree(std::list<
VPValue
*> &Worklist) {
93
VPValue
*LHS = Worklist.front();
95
VPValue
*RHS = Worklist.front();
99
VPValue
*Or = Builder.createOr(LHS, RHS);
108
VPValue
*Root = Worklist.front()
[
all
...]
VPlan.h
216
DenseMap<
VPValue
*, PerPartValuesTy> PerPartOutput;
219
DenseMap<
VPValue
*, ScalarsPerPartValuesTy> PerPartScalars;
222
/// Get the generated Value for a given
VPValue
and a given Part. Note that
227
Value *get(
VPValue
*Def, unsigned Part);
229
/// Get the generated Value for a given
VPValue
and given Part and Lane.
230
Value *get(
VPValue
*Def, const VPIteration &Instance);
232
bool hasVectorValue(
VPValue
*Def, unsigned Part) {
238
bool hasAnyVectorValue(
VPValue
*Def) const {
242
bool hasScalarValue(
VPValue
*Def, VPIteration Instance) {
252
/// Set the generated Value for a given
VPValue
and a given Part
[
all
...]
LoopVectorizationPlanner.h
48
ArrayRef<
VPValue
*> Operands) {
56
std::initializer_list<
VPValue
*> Operands) {
57
return createInstruction(Opcode, ArrayRef<
VPValue
*>(Operands));
124
VPValue
*createNaryOp(unsigned Opcode, ArrayRef<
VPValue
*> Operands,
130
VPValue
*createNaryOp(unsigned Opcode,
131
std::initializer_list<
VPValue
*> Operands,
133
return createNaryOp(Opcode, ArrayRef<
VPValue
*>(Operands), Inst);
136
VPValue
*createNot(
VPValue
*Operand)
[
all
...]
VPlanSLP.cpp
57
void VPlanSlp::addCombined(ArrayRef<
VPValue
*> Operands, VPInstruction *New) {
58
if (all_of(Operands, [](
VPValue
*V) {
62
for (
VPValue
*V : Operands) {
76
bool VPlanSlp::areVectorizable(ArrayRef<
VPValue
*> Operands) const {
78
if (!all_of(Operands, [](
VPValue
*Op) {
94
if (!all_of(Operands, [Opcode, Width](
VPValue
*Op) {
104
if (any_of(Operands, [this](
VPValue
*Op) {
112
[](
VPValue
*Op) { return Op->hasMoreThanOneUniqueUser(); })) {
141
if (!all_of(Operands, [](
VPValue
*Op) {
151
if (!all_of(Operands, [](
VPValue
*Op)
[
all
...]
VPRecipeBuilder.h
24
using VPRecipeOrVPValueTy = PointerUnion<VPRecipeBase *,
VPValue
*>;
49
DenseMap<std::pair<BasicBlock *, BasicBlock *>,
VPValue
*>;
50
using BlockMaskCacheTy = DenseMap<BasicBlock *,
VPValue
*>;
71
VPRecipeBase *tryToWidenMemory(Instruction *I, ArrayRef<
VPValue
*> Operands,
77
tryToOptimizeInductionPHI(PHINode *Phi, ArrayRef<
VPValue
*> Operands) const;
82
tryToOptimizeInductionTruncate(TruncInst *I, ArrayRef<
VPValue
*> Operands,
85
/// Handle non-loop phi nodes. Return a
VPValue
, if all incoming values match
89
VPRecipeOrVPValueTy tryToBlend(PHINode *Phi, ArrayRef<
VPValue
*> Operands,
95
VPWidenCallRecipe *tryToWidenCall(CallInst *CI, ArrayRef<
VPValue
*> Operands,
101
VPWidenRecipe *tryToWiden(Instruction *I, ArrayRef<
VPValue
*> Operands) const
[
all
...]
VPlanHCFGBuilder.cpp
57
DenseMap<Value *,
VPValue
*> IRDef2VPValue;
69
VPValue
*getOrCreateVPOperand(Value *IRVal);
96
VPValue
*VPVal = IRDef2VPValue[Phi];
163
// Create a new
VPValue
or retrieve an existing one for the Instruction's
167
VPValue
*PlainCFGBuilder::getOrCreateVPOperand(Value *IRVal) {
170
// Operand has an associated VPInstruction or
VPValue
that was previously
174
// Operand doesn't have a previously created VPInstruction/
VPValue
. This
178
// For now, we use
VPValue
to represent A and B and classify both as external
179
// definitions. We may introduce specific
VPValue
subclasses for them in the
183
// A and B: Create
VPValue
and add it to the pool of external definitions an
[
all
...]
VPlanTransforms.cpp
36
VPValue
*VPV = Ingredient->getVPSingleValue();
39
VPValue
DummyValue;
51
VPValue
*Start = Plan->getOrAddVPValue(II.getStartValue());
VPlan.cpp
54
raw_ostream &llvm::operator<<(raw_ostream &OS, const
VPValue
&V) {
76
VPValue
::
VPValue
(const unsigned char SC, Value *UV, VPDef *Def)
82
VPValue
::~
VPValue
() {
83
assert(Users.empty() && "trying to delete a
VPValue
with remaining users");
89
void
VPValue
::print(raw_ostream &OS, VPSlotTracker &SlotTracker) const {
96
void
VPValue
::dump() const {
191
VPValue
*VPBlockBase::getCondBit() {
195
const
VPValue
*VPBlockBase::getCondBit() const
[
all
...]
LoopVectorize.cpp
486
void widenInstruction(Instruction &I,
VPValue
*Def, VPUser &Operands,
490
void widenCallInstruction(CallInst &I,
VPValue
*Def, VPUser &ArgOperands,
494
void widenSelectInstruction(SelectInst &I,
VPValue
*VPDef, VPUser &Operands,
510
void widenGEP(GetElementPtrInst *GEP,
VPValue
*VPDef, VPUser &Indices,
523
/// inclusive. Uses the
VPValue
operands from \p Operands instead of \p
525
void scalarizeInstruction(Instruction *Instr,
VPValue
*Def, VPUser &Operands,
533
VPValue
*Def,
VPValue
*CastDef,
537
void packScalarIntoVectorValue(
VPValue
*Def, const VPIteration &Instance,
545
ArrayRef<
VPValue
*> VPDefs
[
all
...]
Completed in 27 milliseconds
Indexes created Sat Jun 20 00:25:23 UTC 2026