Commit 5b610b82 authored by Mccaskey, Alex's avatar Mccaskey, Alex
Browse files

general cleanup

parent 6620ec46
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -15,13 +15,15 @@ include(TableGen)
include(AddLLVM)
include(AddMLIR)
include(HandleLLVMOptions)
message(STATUS "MLIR HELLO ${LLVM_INCLUDE_DIRS}")

include_directories(${LLVM_INCLUDE_DIRS})
include_directories(${MLIR_INCLUDE_DIRS})
include_directories(${PROJECT_SOURCE_DIR}/include)
include_directories(${PROJECT_BINARY_DIR}/include)
link_directories(${LLVM_BUILD_LIBRARY_DIR})

get_filename_component(MLIR_INSTALL_DIR "${MLIR_DIR}/../../.." ABSOLUTE)

add_subdirectory(dialect)
add_subdirectory(parsers)
add_subdirectory(transforms)
+234 −146

File changed.

Preview size limit exceeded, changes collapsed.

+9 −27
Original line number Diff line number Diff line

#include "staq_parser.hpp"

#include "mlir/Dialect/LLVMIR/LLVMDialect.h"
@@ -7,6 +6,10 @@

namespace qasm_parser {

void StaqToMLIR::visit(Program &prog) {
  prog.foreach_stmt([this](auto &stmt) { stmt.accept(*this); });
}

StaqToMLIR::StaqToMLIR(mlir::MLIRContext &context) : builder(&context) {
  theModule = mlir::ModuleOp::create(builder.getUnknownLoc());

@@ -25,22 +28,11 @@ void StaqToMLIR::addReturn() {
  builder.create<mlir::ReturnOp>(builder.getUnknownLoc());
}

void StaqToMLIR::visit(VarAccess &) {}
// Expressions
void StaqToMLIR::visit(BExpr &) {}
void StaqToMLIR::visit(UExpr &) {}
void StaqToMLIR::visit(PiExpr &) {}
void StaqToMLIR::visit(IntExpr &) {}
void StaqToMLIR::visit(RealExpr &r) {}
void StaqToMLIR::visit(VarExpr &v) {}
void StaqToMLIR::visit(ResetStmt &) {}
void StaqToMLIR::visit(IfStmt &) {}
void StaqToMLIR::visit(BarrierGate &) {}
void StaqToMLIR::visit(GateDecl &) {}
void StaqToMLIR::visit(OracleDecl &) {}

void StaqToMLIR::visit(RegisterDecl &d) {
  if (d.is_quantum()) {
    std::uint64_t size = d.size();
    std::int64_t size = d.size();
    auto name = d.id();

    auto pos = d.pos();
@@ -64,11 +56,6 @@ void StaqToMLIR::visit(RegisterDecl &d) {
  }
}

void StaqToMLIR::visit(AncillaDecl &) {}
void StaqToMLIR::visit(Program &prog) {
  // Program body
  prog.foreach_stmt([this](auto &stmt) { stmt.accept(*this); });
}
void StaqToMLIR::visit(MeasureStmt &m) {
  auto pos = m.pos();
  auto line = pos.get_linenum();
@@ -79,10 +66,8 @@ void StaqToMLIR::visit(MeasureStmt &m) {
      builder.getFileLineColLoc(builder.getIdentifier(fname), line, col);

  auto str_attr = builder.getStringAttr("mz");

  // params
  auto dataType = mlir::VectorType::get({1}, builder.getF64Type());
  std::vector<double> v{0.0};
  auto params_arr_ref = llvm::makeArrayRef(v);
  mlir::DenseElementsAttr params_dataAttribute;

  std::vector<mlir::Value> qubits_for_inst;
@@ -154,9 +139,6 @@ void StaqToMLIR::visit(CNOTGate &g) {
  auto str_attr = builder.getStringAttr("cx");

  // params
  // auto dataType = mlir::VectorType::get({1}, builder.getF64Type());
  // std::vector<double> v{0.0};
  // auto params_arr_ref = llvm::makeArrayRef(v);
  mlir::DenseElementsAttr params_dataAttribute;

  // ctrl qbits
+18 −14
Original line number Diff line number Diff line
#pragma once
#pragma GCC diagnostic ignored "-Wsuggest-override"
#pragma GCC diagnostic ignored "-Wdeprecated-copy"
#pragma GCC diagnostic ignored "-Wunused-function"

#include "ast/ast.hpp"
#include "ast/traversal.hpp"
@@ -10,6 +13,9 @@
#include "mlir/IR/Verifier.h"
#include "parser/parser.hpp"
#include "quantum_dialect.hpp"
#include "optimization/simplify.hpp"
#include "transformations/desugar.hpp"
#include "transformations/inline.hpp"

using namespace staq::ast;

@@ -24,27 +30,25 @@ class StaqToMLIR : public staq::ast::Visitor {
 public:
  StaqToMLIR(mlir::MLIRContext &context);
  mlir::ModuleOp module() {return theModule;}
  void visit(VarAccess &) override;
  // Expressions
  void visit(BExpr &) override;
  void visit(UExpr &) override;
  void visit(PiExpr &) override;
  void visit(IntExpr &) override;
  void visit(RealExpr &r) override;
  void visit(VarExpr &v) override;
  void visit(ResetStmt &) override;
  void visit(IfStmt &) override;
  void visit(BarrierGate &) override;
  void visit(VarAccess &) override {}
  void visit(BExpr &) override {}
  void visit(UExpr &) override {}
  void visit(PiExpr &) override {}
  void visit(IntExpr &) override {}
  void visit(RealExpr &r) override {}
  void visit(VarExpr &v) override {}
  void visit(ResetStmt &) override {}
  void visit(IfStmt &) override {}
  void visit(BarrierGate &) override {}
  void visit(GateDecl &) override;
  void visit(OracleDecl &) override;
  void visit(OracleDecl &) override {}
  void visit(RegisterDecl &) override;
  void visit(AncillaDecl &) override;
  void visit(AncillaDecl &) override {}
  void visit(Program &prog) override;
  void visit(MeasureStmt &m) override;
  void visit(UGate &u) override;
  void visit(CNOTGate &cx) override;
  void visit(DeclaredGate &g) override;

  void addReturn();
};
}  // namespace qasm_parser
 No newline at end of file
+1 −1
Original line number Diff line number Diff line
@@ -25,5 +25,5 @@ llvm_update_compile_flags(QasmTester)
target_link_libraries(QasmTester PUBLIC quantum-to-llvm-lowering staq-mlir-visitor )

set_target_properties(QasmTester
                        PROPERTIES INSTALL_RPATH "/home/cades/.mlir/lib:${CMAKE_BINARY_DIR}/mlir/parsers/openqasm:${CMAKE_BINARY_DIR}/lib")
                        PROPERTIES INSTALL_RPATH "${MLIR_INSTALL_DIR}/lib:${CMAKE_BINARY_DIR}/mlir/parsers/openqasm:${CMAKE_BINARY_DIR}/lib")
mlir_check_all_link_libraries(QasmTester)
Loading