Skip to content

Commit b19de67

Browse files
committed
Update Arc-MLIR to support Arc-Lang v1
1 parent aa7f604 commit b19de67

File tree

14 files changed

+264
-328
lines changed

14 files changed

+264
-328
lines changed

arc-mlir/src/CMakeLists.txt

Lines changed: 13 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
set(ARC_MLIR_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR})
1+
set(ARC_MLIR_SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR})
2+
23
include_directories(../llvm-project/mlir/include/)
34
include_directories(include/)
45
include_directories(${CMAKE_CURRENT_BINARY_DIR}/../mlir/include/)
@@ -20,37 +21,33 @@ get_filename_component(ARC_CARGO_BIN "../../bin"
2021
get_filename_component(ARC_TOOLS_BIN_DIR "../../bin"
2122
REALPATH BASE_DIR ${CMAKE_CURRENT_BINARY_DIR} CACHE)
2223

23-
get_filename_component(ARC_LANG_SRC_DIR "../../arc-lang"
24+
get_filename_component(ARC_LANG_DIR "../../arc-lang"
2425
REALPATH BASE_DIR ${CMAKE_CURRENT_SOURCE_DIR} CACHE)
2526

26-
get_filename_component(ARC_LANG_BUILD_DIR "../../arc-lang/build"
27+
get_filename_component(ARC_LANG_TARGET_DIR "../../arc-lang/target"
2728
REALPATH BASE_DIR ${CMAKE_CURRENT_BINARY_DIR} CACHE)
2829

29-
get_filename_component(ARC_RUNTIME_SRC_DIR "../../arc-runtime"
30+
get_filename_component(ARC_RUNTIME_DIR "../../arc-lang/crates/runtime/"
3031
REALPATH BASE_DIR ${CMAKE_CURRENT_SOURCE_DIR} CACHE)
3132

32-
get_filename_component(ARC_MLIR_SRC_DIR "../"
33+
get_filename_component(ARC_MLIR_DIR "../"
3334
REALPATH BASE_DIR ${CMAKE_CURRENT_SOURCE_DIR} CACHE)
3435

35-
add_custom_target(dune-build ALL
36-
WORKING_DIRECTORY ${ARC_LANG_SRC_DIR}
37-
COMMAND mkdir -p ${ARC_LANG_BUILD_DIR}
38-
COMMAND ${ARC_LANG_SRC_DIR}/dune-wrapper build
39-
--root ${ARC_LANG_SRC_DIR}
40-
--build-dir ${ARC_LANG_BUILD_DIR} src/main.exe
41-
COMMAND mv -f ${ARC_LANG_BUILD_DIR}/default/src/main.exe ${ARC_LANG_EXE}
36+
add_custom_target(arc-lang ALL
37+
COMMAND cargo build --manifest-path=${ARC_LANG_DIR}/Cargo.toml --release --target-dir=${ARC_LANG_TARGET_DIR}
38+
COMMAND mv -f ${ARC_LANG_TARGET_DIR}/release/arc-lang ${ARC_LANG_EXE}
4239
)
4340

4441
add_subdirectory(include)
4542
add_subdirectory(lib)
4643
add_subdirectory(tests)
4744
add_subdirectory(tools)
4845

49-
add_custom_target(arc-runtime-check DEPENDS check-arc-mlir
50-
COMMAND cd ${ARC_SCRIPT_SRC_DIR}; ${ARC_CARGO_BIN}/arc-cargo test --package=arc-runtime
46+
add_custom_target(arc-lang-check DEPENDS check-arc-mlir
47+
COMMAND cd ${ARC_LANG_DIR}; ${ARC_CARGO_BIN}/arc-cargo test
5148
)
5249

53-
install(DIRECTORY ${ARC_LANG_SRC_DIR}/stdlib DESTINATION share/arc/)
54-
install(DIRECTORY ${ARC_RUNTIME_SRC_DIR} DESTINATION share/arc/)
50+
install(DIRECTORY ${ARC_LANG_DIR}/stdlib DESTINATION share/arc/)
51+
install(DIRECTORY ${ARC_RUNTIME_DIR} DESTINATION share/arc/)
5552
install(PROGRAMS ${LLVM_TOOLS_BINARY_DIR}/arc DESTINATION bin)
5653
install(PROGRAMS ${LLVM_TOOLS_BINARY_DIR}/arc-lang DESTINATION bin)

arc-mlir/src/include/Arc/CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ set(MLIR_INCLUDE_DIR
33
${CMAKE_CURRENT_SOURCE_DIR}/../../../llvm-project/mlir/include/
44
)
55

6-
set(LLVM_TARGET_DEFINITIONS ${ARC_MLIR_SOURCE_DIR}/include/Arc/Arc.td)
6+
set(LLVM_TARGET_DEFINITIONS ${ARC_MLIR_SRC_DIR}/include/Arc/Arc.td)
77
set(TBLGEN_INCDIRS "-I${CMAKE_CURRENT_SOURCE_DIR}/../../../llvm-project/mlir/include/")
88

99
mlir_tablegen(ArcOps.h.inc -gen-op-decls)
@@ -15,7 +15,7 @@ mlir_tablegen(ArcOpsEnums.cpp.inc -gen-enum-defs)
1515

1616
add_public_tablegen_target(ArcDialectOpsEnumsIncGen)
1717

18-
set(LLVM_TARGET_DEFINITIONS ${ARC_MLIR_SOURCE_DIR}/include/Arc/Opts.td)
18+
set(LLVM_TARGET_DEFINITIONS ${ARC_MLIR_SRC_DIR}/include/Arc/Opts.td)
1919
set(TBLGEN_INCDIRS "-I${CMAKE_CURRENT_SOURCE_DIR}/../../../llvm-project/mlir/include/")
2020
mlir_tablegen(ArcOpts.h.inc -gen-rewriters ${TBLGEN_INCDIRS} "-I${CMAKE_CURRENT_SOURCE_DIR}/include")
2121
add_public_tablegen_target(ArcDialectOptsIncGen)

arc-mlir/src/include/Rust/RustPrinterStream.h

Lines changed: 5 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -84,53 +84,15 @@ class RustPrinterStream {
8484
Includefile(includefile){};
8585

8686
void flush(llvm::raw_ostream &o) {
87-
o << "#![allow(non_snake_case)]\n"
88-
<< "#![allow(unused_must_use)]\n"
89-
<< "#![allow(non_camel_case_types)]"
90-
<< "#![allow(dead_code)]\n"
91-
<< "#![allow(unused_variables)]\n"
92-
<< "#![allow(unused_imports)]\n"
93-
<< "#![allow(unused_braces)]\n"
87+
o << "#![allow(unused)]\n"
88+
<< "#![allow(non_snake_case)]\n"
9489
<< "#![allow(non_camel_case_types)]\n";
9590

9691
o << "pub mod " << ModuleName
9792
<< "{\n"
9893
"use super::*;\n"
99-
"pub use arc_runtime::prelude::*;\n";
100-
101-
o << "pub use hexf::*;\n";
102-
103-
if (!DeclaredFunctions.empty() || !DeclaredTasks.empty()) {
104-
o << "declare!(";
105-
o << "functions: [ ";
106-
for (Operation *t : DeclaredFunctions) {
107-
if (t->hasAttr("arc.rust_name"))
108-
o << t->getAttrOfType<StringAttr>("arc.rust_name").getValue();
109-
else
110-
o << t->getAttrOfType<StringAttr>("sym_name").getValue();
111-
o << ", ";
112-
}
113-
o << "],";
114-
o << "tasks: [ ";
115-
for (RustFuncOp &t : DeclaredTasks) {
116-
if (t->hasAttr("arc.rust_name"))
117-
o << t->getAttrOfType<StringAttr>("arc.rust_name").getValue();
118-
else
119-
o << t->getAttrOfType<StringAttr>("sym_name").getValue();
120-
o << "(";
121-
unsigned numFuncArguments = t.getNumArguments();
122-
for (unsigned i = 0; i < numFuncArguments; i++) {
123-
Value v = t.front().getArgument(i);
124-
if (i != 0)
125-
o << ", ";
126-
o << "v" << std::to_string(Value2ID[v]) << ": ";
127-
printType(o, v.getType());
128-
}
129-
o << "), ";
130-
}
131-
o << "]";
132-
o << ");\n";
133-
}
94+
"pub use runtime::prelude::*;\n"
95+
"pub use hexf::*;\n";
13496

13597
for (auto i : CrateDirectives)
13698
o << i.second << "\n";
@@ -180,7 +142,7 @@ class RustPrinterStream {
180142
if (id < 0)
181143
return "C" + std::to_string(-id);
182144
else
183-
return "val!(v" + std::to_string(id) + ")";
145+
return "v" + std::to_string(id) + ".clone()";
184146
}
185147

186148
std::string getConstant(RustConstantOp v);

0 commit comments

Comments
 (0)