Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 7 additions & 19 deletions llvm/lib/Transforms/Vectorize/VPlan.h
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
#define LLVM_TRANSFORMS_VECTORIZE_VPLAN_H

#include "VPlanValue.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/MapVector.h"
#include "llvm/ADT/SmallPtrSet.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/Twine.h"
Expand Down Expand Up @@ -4332,13 +4332,9 @@ class VPlan {
/// Represents the loop-invariant VF * UF of the vector loop region.
VPValue VFxUF;

/// Holds a mapping between Values and their corresponding VPValue inside
/// VPlan.
Value2VPValueTy Value2VPValue;

/// Contains all the external definitions created for this VPlan. External
/// definitions are VPValues that hold a pointer to their underlying IR.
SmallVector<VPValue *, 16> VPLiveIns;
/// Contains all the external definitions created for this VPlan, as a mapping
/// from IR Values to VPValues.
SmallMapVector<Value *, VPValue *, 16> LiveIns;

/// Blocks allocated and owned by the VPlan. They will be deleted once the
/// VPlan is destroyed.
Expand Down Expand Up @@ -4535,10 +4531,9 @@ class VPlan {
/// yet) for \p V.
VPValue *getOrAddLiveIn(Value *V) {
assert(V && "Trying to get or add the VPValue of a null Value");
auto [It, Inserted] = Value2VPValue.try_emplace(V);
auto [It, Inserted] = LiveIns.try_emplace(V);
if (Inserted) {
VPValue *VPV = new VPValue(V);
VPLiveIns.push_back(VPV);
assert(VPV->isLiveIn() && "VPV must be a live-in.");
It->second = VPV;
}
Expand Down Expand Up @@ -4570,17 +4565,10 @@ class VPlan {
}

/// Return the live-in VPValue for \p V, if there is one or nullptr otherwise.
VPValue *getLiveIn(Value *V) const { return Value2VPValue.lookup(V); }
VPValue *getLiveIn(Value *V) const { return LiveIns.lookup(V); }

/// Return the list of live-in VPValues available in the VPlan.
ArrayRef<VPValue *> getLiveIns() const {
assert(all_of(Value2VPValue,
[this](const auto &P) {
return is_contained(VPLiveIns, P.second);
}) &&
"all VPValues in Value2VPValue must also be in VPLiveIns");
return VPLiveIns;
}
auto getLiveIns() const { return LiveIns.values(); }

#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
/// Print the live-ins of this VPlan to \p O.
Expand Down
5 changes: 0 additions & 5 deletions llvm/lib/Transforms/Vectorize/VPlanValue.h
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,8 @@
#ifndef LLVM_TRANSFORMS_VECTORIZE_VPLAN_VALUE_H
#define LLVM_TRANSFORMS_VECTORIZE_VPLAN_VALUE_H

#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringMap.h"
#include "llvm/ADT/TinyPtrVector.h"
#include "llvm/ADT/iterator_range.h"
#include "llvm/Support/Compiler.h"
Expand Down Expand Up @@ -196,9 +194,6 @@ class LLVM_ABI_FOR_TEST VPValue {
}
};

typedef DenseMap<Value *, VPValue *> Value2VPValueTy;
typedef DenseMap<VPValue *, Value *> VPValue2ValueTy;

LLVM_ABI_FOR_TEST raw_ostream &operator<<(raw_ostream &OS,
const VPRecipeBase &R);

Expand Down