├── .github └── workflows │ └── build-test.yml ├── .gitignore ├── .rustfmt.toml ├── CHANGELOG.md ├── Cargo.lock ├── Cargo.toml ├── LICENSE ├── README.md ├── koopa ├── Cargo.toml ├── README.md ├── examples │ ├── README.md │ ├── brainfuck │ │ ├── README.md │ │ ├── main.rs │ │ └── pi.bf │ ├── interpreter │ │ ├── README.md │ │ ├── ext_funcs.rs │ │ ├── interpreter.rs │ │ ├── ir │ │ │ ├── 42.koopa │ │ │ └── hello.koopa │ │ └── main.rs │ └── opt │ │ ├── README.md │ │ ├── const_fold.rs │ │ ├── dce.rs │ │ ├── ir │ │ ├── bb_params.koopa │ │ └── local_opt.koopa │ │ └── main.rs └── src │ ├── back │ ├── generator.rs │ ├── koopa.rs │ ├── llvm.rs │ └── mod.rs │ ├── front │ ├── ast.rs │ ├── builder.rs │ ├── driver.rs │ ├── lexer.rs │ ├── mod.rs │ ├── parser.rs │ ├── span.rs │ └── token.rs │ ├── ir │ ├── builder.rs │ ├── dfg.rs │ ├── entities.rs │ ├── idman.rs │ ├── layout.rs │ ├── mod.rs │ ├── types.rs │ └── values.rs │ ├── lib.rs │ └── opt │ ├── mod.rs │ ├── pass.rs │ └── passman.rs └── libkoopa ├── .clang-format ├── Cargo.toml ├── README.md ├── include └── koopa.h └── src ├── back.rs ├── driver.rs ├── errors.rs ├── io.rs ├── lib.rs ├── raw ├── builder.rs ├── entities.rs ├── ffi.rs ├── generator.rs └── mod.rs └── utils.rs /.github/workflows/build-test.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pku-minic/koopa/HEAD/.github/workflows/build-test.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pku-minic/koopa/HEAD/.gitignore -------------------------------------------------------------------------------- /.rustfmt.toml: -------------------------------------------------------------------------------- 1 | tab_spaces = 2 2 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pku-minic/koopa/HEAD/CHANGELOG.md -------------------------------------------------------------------------------- /Cargo.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pku-minic/koopa/HEAD/Cargo.lock -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pku-minic/koopa/HEAD/Cargo.toml -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pku-minic/koopa/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pku-minic/koopa/HEAD/README.md -------------------------------------------------------------------------------- /koopa/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pku-minic/koopa/HEAD/koopa/Cargo.toml -------------------------------------------------------------------------------- /koopa/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pku-minic/koopa/HEAD/koopa/README.md -------------------------------------------------------------------------------- /koopa/examples/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pku-minic/koopa/HEAD/koopa/examples/README.md -------------------------------------------------------------------------------- /koopa/examples/brainfuck/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pku-minic/koopa/HEAD/koopa/examples/brainfuck/README.md -------------------------------------------------------------------------------- /koopa/examples/brainfuck/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pku-minic/koopa/HEAD/koopa/examples/brainfuck/main.rs -------------------------------------------------------------------------------- /koopa/examples/brainfuck/pi.bf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pku-minic/koopa/HEAD/koopa/examples/brainfuck/pi.bf -------------------------------------------------------------------------------- /koopa/examples/interpreter/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pku-minic/koopa/HEAD/koopa/examples/interpreter/README.md -------------------------------------------------------------------------------- /koopa/examples/interpreter/ext_funcs.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pku-minic/koopa/HEAD/koopa/examples/interpreter/ext_funcs.rs -------------------------------------------------------------------------------- /koopa/examples/interpreter/interpreter.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pku-minic/koopa/HEAD/koopa/examples/interpreter/interpreter.rs -------------------------------------------------------------------------------- /koopa/examples/interpreter/ir/42.koopa: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pku-minic/koopa/HEAD/koopa/examples/interpreter/ir/42.koopa -------------------------------------------------------------------------------- /koopa/examples/interpreter/ir/hello.koopa: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pku-minic/koopa/HEAD/koopa/examples/interpreter/ir/hello.koopa -------------------------------------------------------------------------------- /koopa/examples/interpreter/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pku-minic/koopa/HEAD/koopa/examples/interpreter/main.rs -------------------------------------------------------------------------------- /koopa/examples/opt/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pku-minic/koopa/HEAD/koopa/examples/opt/README.md -------------------------------------------------------------------------------- /koopa/examples/opt/const_fold.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pku-minic/koopa/HEAD/koopa/examples/opt/const_fold.rs -------------------------------------------------------------------------------- /koopa/examples/opt/dce.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pku-minic/koopa/HEAD/koopa/examples/opt/dce.rs -------------------------------------------------------------------------------- /koopa/examples/opt/ir/bb_params.koopa: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pku-minic/koopa/HEAD/koopa/examples/opt/ir/bb_params.koopa -------------------------------------------------------------------------------- /koopa/examples/opt/ir/local_opt.koopa: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pku-minic/koopa/HEAD/koopa/examples/opt/ir/local_opt.koopa -------------------------------------------------------------------------------- /koopa/examples/opt/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pku-minic/koopa/HEAD/koopa/examples/opt/main.rs -------------------------------------------------------------------------------- /koopa/src/back/generator.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pku-minic/koopa/HEAD/koopa/src/back/generator.rs -------------------------------------------------------------------------------- /koopa/src/back/koopa.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pku-minic/koopa/HEAD/koopa/src/back/koopa.rs -------------------------------------------------------------------------------- /koopa/src/back/llvm.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pku-minic/koopa/HEAD/koopa/src/back/llvm.rs -------------------------------------------------------------------------------- /koopa/src/back/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pku-minic/koopa/HEAD/koopa/src/back/mod.rs -------------------------------------------------------------------------------- /koopa/src/front/ast.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pku-minic/koopa/HEAD/koopa/src/front/ast.rs -------------------------------------------------------------------------------- /koopa/src/front/builder.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pku-minic/koopa/HEAD/koopa/src/front/builder.rs -------------------------------------------------------------------------------- /koopa/src/front/driver.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pku-minic/koopa/HEAD/koopa/src/front/driver.rs -------------------------------------------------------------------------------- /koopa/src/front/lexer.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pku-minic/koopa/HEAD/koopa/src/front/lexer.rs -------------------------------------------------------------------------------- /koopa/src/front/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pku-minic/koopa/HEAD/koopa/src/front/mod.rs -------------------------------------------------------------------------------- /koopa/src/front/parser.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pku-minic/koopa/HEAD/koopa/src/front/parser.rs -------------------------------------------------------------------------------- /koopa/src/front/span.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pku-minic/koopa/HEAD/koopa/src/front/span.rs -------------------------------------------------------------------------------- /koopa/src/front/token.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pku-minic/koopa/HEAD/koopa/src/front/token.rs -------------------------------------------------------------------------------- /koopa/src/ir/builder.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pku-minic/koopa/HEAD/koopa/src/ir/builder.rs -------------------------------------------------------------------------------- /koopa/src/ir/dfg.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pku-minic/koopa/HEAD/koopa/src/ir/dfg.rs -------------------------------------------------------------------------------- /koopa/src/ir/entities.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pku-minic/koopa/HEAD/koopa/src/ir/entities.rs -------------------------------------------------------------------------------- /koopa/src/ir/idman.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pku-minic/koopa/HEAD/koopa/src/ir/idman.rs -------------------------------------------------------------------------------- /koopa/src/ir/layout.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pku-minic/koopa/HEAD/koopa/src/ir/layout.rs -------------------------------------------------------------------------------- /koopa/src/ir/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pku-minic/koopa/HEAD/koopa/src/ir/mod.rs -------------------------------------------------------------------------------- /koopa/src/ir/types.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pku-minic/koopa/HEAD/koopa/src/ir/types.rs -------------------------------------------------------------------------------- /koopa/src/ir/values.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pku-minic/koopa/HEAD/koopa/src/ir/values.rs -------------------------------------------------------------------------------- /koopa/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pku-minic/koopa/HEAD/koopa/src/lib.rs -------------------------------------------------------------------------------- /koopa/src/opt/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pku-minic/koopa/HEAD/koopa/src/opt/mod.rs -------------------------------------------------------------------------------- /koopa/src/opt/pass.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pku-minic/koopa/HEAD/koopa/src/opt/pass.rs -------------------------------------------------------------------------------- /koopa/src/opt/passman.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pku-minic/koopa/HEAD/koopa/src/opt/passman.rs -------------------------------------------------------------------------------- /libkoopa/.clang-format: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pku-minic/koopa/HEAD/libkoopa/.clang-format -------------------------------------------------------------------------------- /libkoopa/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pku-minic/koopa/HEAD/libkoopa/Cargo.toml -------------------------------------------------------------------------------- /libkoopa/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pku-minic/koopa/HEAD/libkoopa/README.md -------------------------------------------------------------------------------- /libkoopa/include/koopa.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pku-minic/koopa/HEAD/libkoopa/include/koopa.h -------------------------------------------------------------------------------- /libkoopa/src/back.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pku-minic/koopa/HEAD/libkoopa/src/back.rs -------------------------------------------------------------------------------- /libkoopa/src/driver.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pku-minic/koopa/HEAD/libkoopa/src/driver.rs -------------------------------------------------------------------------------- /libkoopa/src/errors.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pku-minic/koopa/HEAD/libkoopa/src/errors.rs -------------------------------------------------------------------------------- /libkoopa/src/io.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pku-minic/koopa/HEAD/libkoopa/src/io.rs -------------------------------------------------------------------------------- /libkoopa/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pku-minic/koopa/HEAD/libkoopa/src/lib.rs -------------------------------------------------------------------------------- /libkoopa/src/raw/builder.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pku-minic/koopa/HEAD/libkoopa/src/raw/builder.rs -------------------------------------------------------------------------------- /libkoopa/src/raw/entities.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pku-minic/koopa/HEAD/libkoopa/src/raw/entities.rs -------------------------------------------------------------------------------- /libkoopa/src/raw/ffi.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pku-minic/koopa/HEAD/libkoopa/src/raw/ffi.rs -------------------------------------------------------------------------------- /libkoopa/src/raw/generator.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pku-minic/koopa/HEAD/libkoopa/src/raw/generator.rs -------------------------------------------------------------------------------- /libkoopa/src/raw/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pku-minic/koopa/HEAD/libkoopa/src/raw/mod.rs -------------------------------------------------------------------------------- /libkoopa/src/utils.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pku-minic/koopa/HEAD/libkoopa/src/utils.rs --------------------------------------------------------------------------------