Skip to content
Open
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
14 changes: 8 additions & 6 deletions llvm/lib/CodeGen/GlobalISel/PatternGen.cpp
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
//===- llvm/CodeGen/GlobalISel/PatternGen.cpp - PatternGen ---==//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
Expand Down Expand Up @@ -579,15 +579,15 @@
std::string TypeStr = lltToString(Type);

// ignore bitcast ops for now
if (Op == TargetOpcode::G_BITCAST)
if ((Op == TargetOpcode::G_BITCAST) || (Op == TargetOpcode::G_CONSTANT_FOLD_BARRIER))
return Operand->patternString();

return "(" + TypeStr + " (" + std::string(UnopStr.at(Op)) + " " +
Operand->patternString() + "))";
}

LLT getRegisterTy(int OperandId) const override {
if (OperandId == -1 && Op != TargetOpcode::G_BITCAST)
if (OperandId == -1 && Op != TargetOpcode::G_BITCAST && Op != TargetOpcode::G_CONSTANT_FOLD_BARRIER)
return Type;
return Operand->getRegisterTy(OperandId);
}
Expand Down Expand Up @@ -701,7 +701,7 @@
abort();
}

static bool classof(const PatternNode *p) { return p->getKind() == PN_Load; }

Check warning on line 704 in llvm/lib/CodeGen/GlobalISel/PatternGen.cpp

View workflow job for this annotation

GitHub Actions / Run linters

llvm/lib/CodeGen/GlobalISel/PatternGen.cpp:704:42 [readability-identifier-naming]

invalid case style for parameter 'p'
};

struct CastNode : public PatternNode {
Expand All @@ -715,7 +715,7 @@
return "(" + LLTString + " " + Value->patternString() + ")";
}

static bool classof(const PatternNode *p) { return p->getKind() == PN_Cast; }

Check warning on line 718 in llvm/lib/CodeGen/GlobalISel/PatternGen.cpp

View workflow job for this annotation

GitHub Actions / Run linters

llvm/lib/CodeGen/GlobalISel/PatternGen.cpp:718:42 [readability-identifier-naming]

invalid case style for parameter 'p'
};

struct StoreNode : public PatternNode {
Expand Down Expand Up @@ -743,20 +743,20 @@
abort();
}

static bool classof(const PatternNode *p) { return p->getKind() == PN_Cast; }

Check warning on line 746 in llvm/lib/CodeGen/GlobalISel/PatternGen.cpp

View workflow job for this annotation

GitHub Actions / Run linters

llvm/lib/CodeGen/GlobalISel/PatternGen.cpp:746:42 [readability-identifier-naming]

invalid case style for parameter 'p'
};

using PatternOrError = std::pair<PatternError, std::unique_ptr<PatternNode>>;
static PatternOrError pError(PatternErrorT Type, MachineInstr *Inst) {
return std::make_pair(PatternError(Type, Inst), nullptr);
}
static PatternOrError PError(PatternError Error) {

Check warning on line 753 in llvm/lib/CodeGen/GlobalISel/PatternGen.cpp

View workflow job for this annotation

GitHub Actions / Run linters

llvm/lib/CodeGen/GlobalISel/PatternGen.cpp:753:23 [readability-identifier-naming]

invalid case style for function 'PError'
return std::make_pair(Error, nullptr);
}
static PatternOrError PError(PatternErrorT Type) {

Check warning on line 756 in llvm/lib/CodeGen/GlobalISel/PatternGen.cpp

View workflow job for this annotation

GitHub Actions / Run linters

llvm/lib/CodeGen/GlobalISel/PatternGen.cpp:756:23 [readability-identifier-naming]

invalid case style for function 'PError'
return std::make_pair(PatternError(Type), nullptr);
}
static PatternOrError PPattern(std::unique_ptr<PatternNode> Pattern) {

Check warning on line 759 in llvm/lib/CodeGen/GlobalISel/PatternGen.cpp

View workflow job for this annotation

GitHub Actions / Run linters

llvm/lib/CodeGen/GlobalISel/PatternGen.cpp:759:23 [readability-identifier-naming]

invalid case style for function 'PPattern'
return std::make_pair(PatternError(SUCCESS), std::move(Pattern));
}

Expand Down Expand Up @@ -1040,6 +1040,7 @@

return std::make_pair(SUCCESS, std::move(Node));
}
case TargetOpcode::G_CONSTANT_FOLD_BARRIER:
case TargetOpcode::G_ANYEXT:
case TargetOpcode::G_SEXT:
case TargetOpcode::G_ZEXT:
Expand Down Expand Up @@ -1362,10 +1363,6 @@
return true;
}

llvm::outs() << "Pattern for " << InstName << ": " << Node->patternString()
<< '\n';
++PatternGenNumPatternsGenerated;

LLT OutType = LLT();
std::string OutsString;
std::string InsString;
Expand Down Expand Up @@ -1409,6 +1406,11 @@
}
}

llvm::outs() << "Pattern for " << InstName << ": " << Node->patternString()
<< '\n';
++PatternGenNumPatternsGenerated;


InsString = InsString.substr(0, InsString.size() - 2);
OutsString = OutsString.substr(0, OutsString.size() - 2);

Expand Down
8 changes: 5 additions & 3 deletions llvm/tools/pattern-gen/lib/Parser.cpp
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
#include "Parser.hpp"
#include "InstrInfo.hpp"
#include "Token.hpp"
Expand Down Expand Up @@ -40,10 +40,10 @@
using namespace std::placeholders;

struct Value {
llvm::Value *ll;

Check warning on line 43 in llvm/tools/pattern-gen/lib/Parser.cpp

View workflow job for this annotation

GitHub Actions / Run linters

llvm/tools/pattern-gen/lib/Parser.cpp:43:16 [readability-identifier-naming]

invalid case style for member 'll'
int bitWidth;

Check warning on line 44 in llvm/tools/pattern-gen/lib/Parser.cpp

View workflow job for this annotation

GitHub Actions / Run linters

llvm/tools/pattern-gen/lib/Parser.cpp:44:7 [readability-identifier-naming]

invalid case style for member 'bitWidth'
bool isSigned;

Check warning on line 45 in llvm/tools/pattern-gen/lib/Parser.cpp

View workflow job for this annotation

GitHub Actions / Run linters

llvm/tools/pattern-gen/lib/Parser.cpp:45:8 [readability-identifier-naming]

invalid case style for member 'isSigned'
bool isLValue;

Check warning on line 46 in llvm/tools/pattern-gen/lib/Parser.cpp

View workflow job for this annotation

GitHub Actions / Run linters

llvm/tools/pattern-gen/lib/Parser.cpp:46:8 [readability-identifier-naming]

invalid case style for member 'isLValue'

Value(llvm::Value *llvalue, bool isSigned = false)
: ll(llvalue), isSigned(isSigned) {
Expand Down Expand Up @@ -268,10 +268,12 @@
llvm::Value *mask =
(len == llLen)
? llvm::ConstantInt::get(upper.ll->getType(), 0)
: build.CreateShl(llvm::ConstantInt::get(upper.ll->getType(), 1),
: build.CreateShl(
llvm::ConstantInt::get(llvm::Type::getIntNTy(ctx, len + 1), 1),
len);
mask =
build.CreateSub(mask, llvm::ConstantInt::get(upper.ll->getType(), 1));
mask = build.CreateSub(mask, llvm::ConstantInt::get(mask->getType(), 1));
mask = (len < left.ll->getType()->getIntegerBitWidth()) ? build.CreateZExt(mask, left.ll->getType()) : ((build.CreateTrunc(mask, left.ll->getType())) ? : mask);

left.ll = build.CreateAnd(left.ll, mask);

left.bitWidth = len;
Expand Down