Skip to content

Commit

Permalink
[Hexagon] Fix build: move template specialization into namespace scope
Browse files Browse the repository at this point in the history
  • Loading branch information
Krzysztof Parzyszek committed Dec 9, 2020
1 parent 19c56e1 commit 43d1c7a
Showing 1 changed file with 13 additions and 13 deletions.
26 changes: 13 additions & 13 deletions llvm/lib/Target/Hexagon/HexagonVectorCombine.cpp
Expand Up @@ -212,19 +212,6 @@ class AlignVectors {
const_iterator end() const { return Blocks.end(); }
};

template <typename T> static T *getIfUnordered(T *MaybeT) {
return MaybeT && MaybeT->isUnordered() ? MaybeT : nullptr;
}
template <typename T> static T *isCandidate(Instruction *In) {
return dyn_cast<T>(In);
}
template <> LoadInst *isCandidate<LoadInst>(Instruction *In) {
return getIfUnordered(dyn_cast<LoadInst>(In));
}
template <> StoreInst *isCandidate<StoreInst>(Instruction *In) {
return getIfUnordered(dyn_cast<StoreInst>(In));
}

Align getAlignFromValue(const Value *V) const;
Optional<MemoryLocation> getLocation(const Instruction &In) const;
Optional<AddrInfo> getAddrInfo(Instruction &In) const;
Expand Down Expand Up @@ -294,6 +281,19 @@ raw_ostream &operator<<(raw_ostream &OS, const AlignVectors::ByteSpan &BS) {

namespace {

template <typename T> T *getIfUnordered(T *MaybeT) {
return MaybeT && MaybeT->isUnordered() ? MaybeT : nullptr;
}
template <typename T> T *isCandidate(Instruction *In) {
return dyn_cast<T>(In);
}
template <> LoadInst *isCandidate<LoadInst>(Instruction *In) {
return getIfUnordered(dyn_cast<LoadInst>(In));
}
template <> StoreInst *isCandidate<StoreInst>(Instruction *In) {
return getIfUnordered(dyn_cast<StoreInst>(In));
}

template <typename Pred, typename... Ts>
void erase_if(std::map<Ts...> &map, Pred p) {
for (auto i = map.begin(), e = map.end(); i != e;) {
Expand Down

0 comments on commit 43d1c7a

Please sign in to comment.