summaryrefslogtreecommitdiffstats
path: root/gnu/llvm/lib/CodeGen/GlobalISel/LegalityPredicates.cpp
diff options
context:
space:
mode:
authorpatrick <patrick@openbsd.org>2020-08-03 15:06:44 +0000
committerpatrick <patrick@openbsd.org>2020-08-03 15:06:44 +0000
commitb64793999546ed8adebaeebd9d8345d18db8927d (patch)
tree4357c27b561d73b0e089727c6ed659f2ceff5f47 /gnu/llvm/lib/CodeGen/GlobalISel/LegalityPredicates.cpp
parentAdd support for UTF-8 DISPLAY-HINTs with octet length. For now only (diff)
downloadwireguard-openbsd-b64793999546ed8adebaeebd9d8345d18db8927d.tar.xz
wireguard-openbsd-b64793999546ed8adebaeebd9d8345d18db8927d.zip
Remove LLVM 8.0.1 files.
Diffstat (limited to 'gnu/llvm/lib/CodeGen/GlobalISel/LegalityPredicates.cpp')
-rw-r--r--gnu/llvm/lib/CodeGen/GlobalISel/LegalityPredicates.cpp101
1 files changed, 0 insertions, 101 deletions
diff --git a/gnu/llvm/lib/CodeGen/GlobalISel/LegalityPredicates.cpp b/gnu/llvm/lib/CodeGen/GlobalISel/LegalityPredicates.cpp
deleted file mode 100644
index 94eab9ae00c..00000000000
--- a/gnu/llvm/lib/CodeGen/GlobalISel/LegalityPredicates.cpp
+++ /dev/null
@@ -1,101 +0,0 @@
-//===- lib/CodeGen/GlobalISel/LegalizerPredicates.cpp - Predicates --------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// A library of predicate factories to use for LegalityPredicate.
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/CodeGen/GlobalISel/LegalizerInfo.h"
-
-using namespace llvm;
-
-LegalityPredicate LegalityPredicates::typeIs(unsigned TypeIdx, LLT Type) {
- return
- [=](const LegalityQuery &Query) { return Query.Types[TypeIdx] == Type; };
-}
-
-LegalityPredicate
-LegalityPredicates::typeInSet(unsigned TypeIdx,
- std::initializer_list<LLT> TypesInit) {
- SmallVector<LLT, 4> Types = TypesInit;
- return [=](const LegalityQuery &Query) {
- return std::find(Types.begin(), Types.end(), Query.Types[TypeIdx]) != Types.end();
- };
-}
-
-LegalityPredicate LegalityPredicates::typePairInSet(
- unsigned TypeIdx0, unsigned TypeIdx1,
- std::initializer_list<std::pair<LLT, LLT>> TypesInit) {
- SmallVector<std::pair<LLT, LLT>, 4> Types = TypesInit;
- return [=](const LegalityQuery &Query) {
- std::pair<LLT, LLT> Match = {Query.Types[TypeIdx0], Query.Types[TypeIdx1]};
- return std::find(Types.begin(), Types.end(), Match) != Types.end();
- };
-}
-
-LegalityPredicate LegalityPredicates::typePairAndMemSizeInSet(
- unsigned TypeIdx0, unsigned TypeIdx1, unsigned MMOIdx,
- std::initializer_list<TypePairAndMemSize> TypesAndMemSizeInit) {
- SmallVector<TypePairAndMemSize, 4> TypesAndMemSize = TypesAndMemSizeInit;
- return [=](const LegalityQuery &Query) {
- TypePairAndMemSize Match = {Query.Types[TypeIdx0], Query.Types[TypeIdx1],
- Query.MMODescrs[MMOIdx].SizeInBits};
- return std::find(TypesAndMemSize.begin(), TypesAndMemSize.end(), Match) !=
- TypesAndMemSize.end();
- };
-}
-
-LegalityPredicate LegalityPredicates::isScalar(unsigned TypeIdx) {
- return [=](const LegalityQuery &Query) {
- return Query.Types[TypeIdx].isScalar();
- };
-}
-
-LegalityPredicate LegalityPredicates::narrowerThan(unsigned TypeIdx,
- unsigned Size) {
- return [=](const LegalityQuery &Query) {
- const LLT &QueryTy = Query.Types[TypeIdx];
- return QueryTy.isScalar() && QueryTy.getSizeInBits() < Size;
- };
-}
-
-LegalityPredicate LegalityPredicates::widerThan(unsigned TypeIdx,
- unsigned Size) {
- return [=](const LegalityQuery &Query) {
- const LLT &QueryTy = Query.Types[TypeIdx];
- return QueryTy.isScalar() && QueryTy.getSizeInBits() > Size;
- };
-}
-
-LegalityPredicate LegalityPredicates::sizeNotPow2(unsigned TypeIdx) {
- return [=](const LegalityQuery &Query) {
- const LLT &QueryTy = Query.Types[TypeIdx];
- return QueryTy.isScalar() && !isPowerOf2_32(QueryTy.getSizeInBits());
- };
-}
-
-LegalityPredicate LegalityPredicates::memSizeInBytesNotPow2(unsigned MMOIdx) {
- return [=](const LegalityQuery &Query) {
- return !isPowerOf2_32(Query.MMODescrs[MMOIdx].SizeInBits / 8);
- };
-}
-
-LegalityPredicate LegalityPredicates::numElementsNotPow2(unsigned TypeIdx) {
- return [=](const LegalityQuery &Query) {
- const LLT &QueryTy = Query.Types[TypeIdx];
- return QueryTy.isVector() && isPowerOf2_32(QueryTy.getNumElements());
- };
-}
-
-LegalityPredicate LegalityPredicates::atomicOrderingAtLeastOrStrongerThan(
- unsigned MMOIdx, AtomicOrdering Ordering) {
- return [=](const LegalityQuery &Query) {
- return isAtLeastOrStrongerThan(Query.MMODescrs[MMOIdx].Ordering, Ordering);
- };
-}