Simplify LowerTo pragma handling
This commit is contained in:
parent
3db50fd2b8
commit
1146340bd8
|
@ -1398,7 +1398,7 @@ ValueWithOffsets MLIRScanner::CommonArrayLookup(ValueWithOffsets array,
|
|||
EmittingFunctionDecl->dump();
|
||||
builder.getInsertionBlock()->dump();
|
||||
function.dump();
|
||||
llvm::errs() << val << "\n";
|
||||
llvm::errs() << "value: " << val << "\n";
|
||||
}
|
||||
|
||||
ValueWithOffsets dref;
|
||||
|
@ -2841,7 +2841,7 @@ ValueWithOffsets MLIRScanner::VisitBinaryOperator(clang::BinaryOperator *BO) {
|
|||
if (!cond.getType().isa<mlir::IntegerType>()) {
|
||||
BO->dump();
|
||||
BO->getType()->dump();
|
||||
llvm::errs() << cond << "\n";
|
||||
llvm::errs() << "cond: " << cond << "\n";
|
||||
}
|
||||
auto prevTy = cond.getType().cast<mlir::IntegerType>();
|
||||
if (!prevTy.isInteger(1)) {
|
||||
|
@ -3406,7 +3406,7 @@ ValueWithOffsets MLIRScanner::CommonFieldLookup(clang::QualType CT,
|
|||
loc, iTy, builder.getIntegerAttr(iTy, fnum))};
|
||||
if (!PT.getElementType()
|
||||
.isa<mlir::LLVM::LLVMStructType, mlir::LLVM::LLVMArrayType>()) {
|
||||
llvm::errs() << function << "\n";
|
||||
llvm::errs() << "function: " << function << "\n";
|
||||
// rd->dump();
|
||||
FD->dump();
|
||||
FD->getType()->dump();
|
||||
|
@ -3580,7 +3580,7 @@ ValueWithOffsets MLIRScanner::VisitMemberExpr(MemberExpr *ME) {
|
|||
EmittingFunctionDecl->dump();
|
||||
function.dump();
|
||||
ME->dump();
|
||||
llvm::errs() << base.val << "\n";
|
||||
llvm::errs() << "base value: " << base.val << "\n";
|
||||
}
|
||||
assert(base.isReference);
|
||||
const FieldDecl *field = cast<FieldDecl>(ME->getMemberDecl());
|
||||
|
@ -3707,7 +3707,7 @@ ValueWithOffsets MLIRScanner::VisitCastExpr(CastExpr *E) {
|
|||
if (!scalar.getType().isa<mlir::MemRefType>()) {
|
||||
E->dump();
|
||||
E->getType()->dump();
|
||||
llvm::errs() << scalar << "\n";
|
||||
llvm::errs() << "scalar: " << scalar << "\n";
|
||||
}
|
||||
auto ut = scalar.getType().cast<mlir::MemRefType>();
|
||||
auto mlirty = getMLIRType(E->getType());
|
||||
|
@ -3857,7 +3857,7 @@ ValueWithOffsets MLIRScanner::VisitCastExpr(CastExpr *E) {
|
|||
auto scalar = Visit(E->getSubExpr()).getValue(builder);
|
||||
if (!scalar.getType().isa<mlir::FloatType>()) {
|
||||
E->dump();
|
||||
llvm::errs() << scalar << "\n";
|
||||
llvm::errs() << "scalar: " << scalar << "\n";
|
||||
}
|
||||
auto prevTy = scalar.getType().cast<mlir::FloatType>();
|
||||
auto postTy = getMLIRType(E->getType()).cast<mlir::FloatType>();
|
||||
|
@ -3931,7 +3931,7 @@ ValueWithOffsets MLIRScanner::VisitCastExpr(CastExpr *E) {
|
|||
return ValueWithOffsets(val, /*isReference*/ false);
|
||||
}
|
||||
function.dump();
|
||||
llvm::errs() << scalar << "\n";
|
||||
llvm::errs() << "scalar: " << scalar << "\n";
|
||||
E->dump();
|
||||
assert(0 && "unhandled ptrtobool cast");
|
||||
}
|
||||
|
@ -3947,7 +3947,7 @@ ValueWithOffsets MLIRScanner::VisitCastExpr(CastExpr *E) {
|
|||
return ValueWithOffsets(val, /*isReference*/ false);
|
||||
}
|
||||
function.dump();
|
||||
llvm::errs() << scalar << "\n";
|
||||
llvm::errs() << "scalar: " << scalar << "\n";
|
||||
E->dump();
|
||||
assert(0 && "unhandled ptrtoint cast");
|
||||
}
|
||||
|
|
|
@ -437,8 +437,7 @@ struct MLIRASTConsumer : public ASTConsumer {
|
|||
reverseTypeTranslator(lcontext) {
|
||||
PP.AddPragmaHandler(new PragmaScopHandler(scopLocList));
|
||||
PP.AddPragmaHandler(new PragmaEndScopHandler(scopLocList));
|
||||
Sema Actions(PP, astContext, *this);
|
||||
addPragmaLowerToHandlers(PP, Actions, LTInfo);
|
||||
addPragmaLowerToHandlers(PP, LTInfo);
|
||||
}
|
||||
|
||||
~MLIRASTConsumer() {}
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
#include "pragmaLowerToHandler.h"
|
||||
|
||||
#include "clang/AST/AST.h"
|
||||
#include "clang/AST/ASTConsumer.h"
|
||||
#include "clang/AST/Attr.h"
|
||||
#include "clang/Frontend/FrontendPluginRegistry.h"
|
||||
#include "clang/Lex/LexDiagnostic.h"
|
||||
#include "clang/Lex/LiteralSupport.h"
|
||||
#include "clang/Lex/Preprocessor.h"
|
||||
#include "clang/Sema/Sema.h"
|
||||
|
||||
|
@ -20,13 +20,11 @@ namespace {
|
|||
/// Handles the #pragma lower_to(<identifier>, "<mlir function target>")
|
||||
/// directive.
|
||||
class PragmaLowerToHandler : public PragmaHandler {
|
||||
Sema &Actions;
|
||||
|
||||
LowerToInfo &Info;
|
||||
|
||||
public:
|
||||
PragmaLowerToHandler(Sema &Actions, LowerToInfo &Info)
|
||||
: PragmaHandler("lower_to"), Actions(Actions), Info(Info) {}
|
||||
PragmaLowerToHandler(LowerToInfo &Info)
|
||||
: PragmaHandler("lower_to"), Info(Info) {}
|
||||
|
||||
/// The pragma handler will extract the single argument to the lower_to(...)
|
||||
/// pragma definition, which is the target MLIR function symbol, and relate
|
||||
|
@ -58,14 +56,12 @@ public:
|
|||
assert(SymbolTok.is(tok::string_literal) &&
|
||||
"The second argument of lower_to should be a string literal.");
|
||||
SymbolToks.push_back(SymbolTok);
|
||||
clang::StringLiteral *SymbolName = cast<clang::StringLiteral>(
|
||||
Actions.ActOnStringLiteral(SymbolToks).get());
|
||||
|
||||
StringRef SymbolName = StringLiteralParser(SymbolToks, PP).GetString();
|
||||
PP.Lex(Tok); // rparen
|
||||
assert(Tok.is(tok::r_paren) && "lower_to should end with '('.");
|
||||
|
||||
// Link SymbolName with the function.
|
||||
auto result = Info.SymbolTable.try_emplace(FuncId, SymbolName->getString());
|
||||
auto result = Info.SymbolTable.try_emplace(FuncId, SymbolName);
|
||||
assert(result.second &&
|
||||
"Shouldn't define lower_to over the same func id more than once.");
|
||||
}
|
||||
|
@ -75,7 +71,6 @@ private:
|
|||
|
||||
} // namespace
|
||||
|
||||
void addPragmaLowerToHandlers(Preprocessor &PP, Sema &Actions,
|
||||
LowerToInfo <Info) {
|
||||
PP.AddPragmaHandler(new PragmaLowerToHandler(Actions, LTInfo));
|
||||
void addPragmaLowerToHandlers(Preprocessor &PP, LowerToInfo <Info) {
|
||||
PP.AddPragmaHandler(new PragmaLowerToHandler(LTInfo));
|
||||
}
|
||||
|
|
|
@ -11,7 +11,6 @@ struct LowerToInfo {
|
|||
llvm::StringMap<std::string> SymbolTable;
|
||||
};
|
||||
|
||||
void addPragmaLowerToHandlers(clang::Preprocessor &PP, clang::Sema &Actions,
|
||||
LowerToInfo <Info);
|
||||
void addPragmaLowerToHandlers(clang::Preprocessor &PP, LowerToInfo <Info);
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue