Loading compiler/fuzzy_parsing.hpp +2 −2 Original line number Diff line number Diff line Loading @@ -32,7 +32,7 @@ private: public: FuzzyParsingExternalSemaSource(CompilerInstance &c) : ci(c) {} void initialize(); void initialize(std::vector<std::string> args = {}); // void setASTContext(ASTContext *context) { m_Context = context; } // void setFileManager(FileManager *m) { manager = m; } Loading compiler/fuzzy_parsing.in.cpp +3 −3 Original line number Diff line number Diff line Loading @@ -17,7 +17,7 @@ using namespace clang::ast_matchers; namespace qcor { namespace compiler { void FuzzyParsingExternalSemaSource::initialize() { void FuzzyParsingExternalSemaSource::initialize(std::vector<std::string> args) { auto provider = xacc::getService<xacc::IRProvider>("quantum"); validInstructions = provider->getInstructions(); validInstructions.push_back("CX"); Loading Loading @@ -51,8 +51,8 @@ void FuzzyParsingExternalSemaSource::initialize() { hast = tooling::buildASTFromCodeWithArgs( "#include \"heterogeneous.hpp\"\nvoid f(xacc::HeterogeneousMap&& " "m, std::vector<double>& x){return;}", {"-std=c++14", "-I@CMAKE_INSTALL_PREFIX@/include/xacc"}); "m, std::vector<double>& x){return;}", args); //{"-std=c++14", "-I@CMAKE_INSTALL_PREFIX@/include/xacc","-I/usr/lib/gcc/x86_64-linux-gnu/8/include", "-v"}); hMapRValue = FirstDeclMatcher<ParmVarDecl>().match( hast->getASTContext().getTranslationUnitDecl(), namedDecl(hasName("m"))); stdVector = FirstDeclMatcher<ParmVarDecl>().match( Loading compiler/qcor-driver.in.cpp +4 −3 Original line number Diff line number Diff line Loading @@ -18,7 +18,6 @@ int main(int argc, char **argv) { // Initialize rewriter Rewriter Rewrite; auto action = new qcor::compiler::QCORFrontendAction(Rewrite, fileName); std::vector<std::string> args{"-Wno-dangling", "-std=c++14", "-I@CMAKE_INSTALL_PREFIX@/include/qcor", "-I@CMAKE_INSTALL_PREFIX@/include/xacc"}; Loading @@ -43,6 +42,8 @@ int main(int argc, char **argv) { } } auto action = new qcor::compiler::QCORFrontendAction(Rewrite, fileName, args); if (!accName.empty()) { xacc::setAccelerator(accName); } Loading compiler/qcor_frontend_action.cpp +2 −2 Original line number Diff line number Diff line Loading @@ -10,7 +10,7 @@ void QCORFrontendAction::ExecuteAction() { auto fuzzyParser = std::make_shared<qcor::compiler::FuzzyParsingExternalSemaSource>(CI); fuzzyParser->initialize(); fuzzyParser->initialize(extraArgs); // fuzzyParser->setASTContext(&CI.getASTContext()); // fuzzyParser->setFileManager(&CI.getFileManager()); CI.getSema().addExternalSource(fuzzyParser.get()); Loading compiler/qcor_frontend_action.hpp +4 −3 Original line number Diff line number Diff line Loading @@ -35,12 +35,13 @@ namespace qcor { namespace compiler { class QCORFrontendAction : public clang::ASTFrontendAction { public: QCORFrontendAction(Rewriter &rw, const std::string file) : rewriter(rw), fileName(file) {} QCORFrontendAction(Rewriter &rw, const std::string file, std::vector<std::string> args) : rewriter(rw), fileName(file), extraArgs(args) {} protected: Rewriter &rewriter; std::string fileName; std::vector<std::string> extraArgs; std::unique_ptr<clang::ASTConsumer> CreateASTConsumer(clang::CompilerInstance &Compiler, llvm::StringRef /* dummy */) override { Loading Loading
compiler/fuzzy_parsing.hpp +2 −2 Original line number Diff line number Diff line Loading @@ -32,7 +32,7 @@ private: public: FuzzyParsingExternalSemaSource(CompilerInstance &c) : ci(c) {} void initialize(); void initialize(std::vector<std::string> args = {}); // void setASTContext(ASTContext *context) { m_Context = context; } // void setFileManager(FileManager *m) { manager = m; } Loading
compiler/fuzzy_parsing.in.cpp +3 −3 Original line number Diff line number Diff line Loading @@ -17,7 +17,7 @@ using namespace clang::ast_matchers; namespace qcor { namespace compiler { void FuzzyParsingExternalSemaSource::initialize() { void FuzzyParsingExternalSemaSource::initialize(std::vector<std::string> args) { auto provider = xacc::getService<xacc::IRProvider>("quantum"); validInstructions = provider->getInstructions(); validInstructions.push_back("CX"); Loading Loading @@ -51,8 +51,8 @@ void FuzzyParsingExternalSemaSource::initialize() { hast = tooling::buildASTFromCodeWithArgs( "#include \"heterogeneous.hpp\"\nvoid f(xacc::HeterogeneousMap&& " "m, std::vector<double>& x){return;}", {"-std=c++14", "-I@CMAKE_INSTALL_PREFIX@/include/xacc"}); "m, std::vector<double>& x){return;}", args); //{"-std=c++14", "-I@CMAKE_INSTALL_PREFIX@/include/xacc","-I/usr/lib/gcc/x86_64-linux-gnu/8/include", "-v"}); hMapRValue = FirstDeclMatcher<ParmVarDecl>().match( hast->getASTContext().getTranslationUnitDecl(), namedDecl(hasName("m"))); stdVector = FirstDeclMatcher<ParmVarDecl>().match( Loading
compiler/qcor-driver.in.cpp +4 −3 Original line number Diff line number Diff line Loading @@ -18,7 +18,6 @@ int main(int argc, char **argv) { // Initialize rewriter Rewriter Rewrite; auto action = new qcor::compiler::QCORFrontendAction(Rewrite, fileName); std::vector<std::string> args{"-Wno-dangling", "-std=c++14", "-I@CMAKE_INSTALL_PREFIX@/include/qcor", "-I@CMAKE_INSTALL_PREFIX@/include/xacc"}; Loading @@ -43,6 +42,8 @@ int main(int argc, char **argv) { } } auto action = new qcor::compiler::QCORFrontendAction(Rewrite, fileName, args); if (!accName.empty()) { xacc::setAccelerator(accName); } Loading
compiler/qcor_frontend_action.cpp +2 −2 Original line number Diff line number Diff line Loading @@ -10,7 +10,7 @@ void QCORFrontendAction::ExecuteAction() { auto fuzzyParser = std::make_shared<qcor::compiler::FuzzyParsingExternalSemaSource>(CI); fuzzyParser->initialize(); fuzzyParser->initialize(extraArgs); // fuzzyParser->setASTContext(&CI.getASTContext()); // fuzzyParser->setFileManager(&CI.getFileManager()); CI.getSema().addExternalSource(fuzzyParser.get()); Loading
compiler/qcor_frontend_action.hpp +4 −3 Original line number Diff line number Diff line Loading @@ -35,12 +35,13 @@ namespace qcor { namespace compiler { class QCORFrontendAction : public clang::ASTFrontendAction { public: QCORFrontendAction(Rewriter &rw, const std::string file) : rewriter(rw), fileName(file) {} QCORFrontendAction(Rewriter &rw, const std::string file, std::vector<std::string> args) : rewriter(rw), fileName(file), extraArgs(args) {} protected: Rewriter &rewriter; std::string fileName; std::vector<std::string> extraArgs; std::unique_ptr<clang::ASTConsumer> CreateASTConsumer(clang::CompilerInstance &Compiler, llvm::StringRef /* dummy */) override { Loading