├── .github └── workflows │ └── ci.yml ├── .gitignore ├── Cargo.toml ├── LICENSE.md ├── README.md ├── pliron-derive ├── Cargo.toml ├── src │ ├── derive_attr.rs │ ├── derive_format.rs │ ├── derive_op.rs │ ├── derive_type.rs │ ├── interfaces.rs │ ├── irfmt │ │ ├── mod.rs │ │ └── parser.rs │ └── lib.rs └── tests │ ├── common │ └── mod.rs │ ├── format_base.rs │ └── format_op.rs ├── pliron-llvm ├── Cargo.toml ├── README.md ├── llvm-opt │ ├── Cargo.toml │ ├── README.md │ ├── src │ │ └── main.rs │ └── tests │ │ ├── resources │ │ ├── fib.c │ │ └── va_arg.c │ │ └── run_tool.rs ├── src │ ├── attributes.rs │ ├── from_llvm_ir.rs │ ├── lib.rs │ ├── llvm_sys │ │ ├── core.rs │ │ └── mod.rs │ ├── op_interfaces.rs │ ├── ops.rs │ ├── to_llvm_ir.rs │ └── types.rs └── tests │ ├── common │ └── mod.rs │ ├── compile_run.rs │ └── resources │ ├── casts.ll │ ├── consts.ll │ ├── fib.ll │ ├── fib.mem2reg.ll │ ├── fpops.ll │ ├── globals.ll │ ├── indirect_call.ll │ ├── insert_extract_value.ll │ ├── intrinsics.ll │ ├── select.ll │ ├── simple-loop.c │ ├── simple-loop.ll │ ├── switch.ll │ ├── va_arg.ll │ └── vector_ops.ll ├── run_ci.sh ├── src ├── attribute.rs ├── basic_block.rs ├── builtin │ ├── attr_interfaces.rs │ ├── attributes.rs │ ├── mod.rs │ ├── op_interfaces.rs │ ├── ops.rs │ ├── type_interfaces.rs │ └── types.rs ├── common_traits.rs ├── context.rs ├── debug_info.rs ├── dialect.rs ├── graph │ ├── mod.rs │ ├── traversals.rs │ └── walkers.rs ├── identifier.rs ├── irfmt │ ├── mod.rs │ ├── outlined.rs │ ├── parsers.rs │ └── printers │ │ ├── mod.rs │ │ └── op.rs ├── lib.rs ├── linked_list.rs ├── location.rs ├── op.rs ├── operation.rs ├── parsable.rs ├── printable.rs ├── region.rs ├── result.rs ├── storage_uniquer.rs ├── symbol_table.rs ├── type.rs ├── uniqued_any.rs ├── utils │ ├── apfloat.rs │ ├── apint.rs │ ├── mod.rs │ ├── trait_cast.rs │ └── vec_exns.rs └── value.rs └── tests ├── common └── mod.rs ├── dict_key_duplicate.rs ├── interfaces.rs └── ir_construct.rs /.github/workflows/ci.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/.github/workflows/ci.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | Cargo.lock 3 | -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/Cargo.toml -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/LICENSE.md -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/README.md -------------------------------------------------------------------------------- /pliron-derive/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/pliron-derive/Cargo.toml -------------------------------------------------------------------------------- /pliron-derive/src/derive_attr.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/pliron-derive/src/derive_attr.rs -------------------------------------------------------------------------------- /pliron-derive/src/derive_format.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/pliron-derive/src/derive_format.rs -------------------------------------------------------------------------------- /pliron-derive/src/derive_op.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/pliron-derive/src/derive_op.rs -------------------------------------------------------------------------------- /pliron-derive/src/derive_type.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/pliron-derive/src/derive_type.rs -------------------------------------------------------------------------------- /pliron-derive/src/interfaces.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/pliron-derive/src/interfaces.rs -------------------------------------------------------------------------------- /pliron-derive/src/irfmt/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/pliron-derive/src/irfmt/mod.rs -------------------------------------------------------------------------------- /pliron-derive/src/irfmt/parser.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/pliron-derive/src/irfmt/parser.rs -------------------------------------------------------------------------------- /pliron-derive/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/pliron-derive/src/lib.rs -------------------------------------------------------------------------------- /pliron-derive/tests/common/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/pliron-derive/tests/common/mod.rs -------------------------------------------------------------------------------- /pliron-derive/tests/format_base.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/pliron-derive/tests/format_base.rs -------------------------------------------------------------------------------- /pliron-derive/tests/format_op.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/pliron-derive/tests/format_op.rs -------------------------------------------------------------------------------- /pliron-llvm/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/pliron-llvm/Cargo.toml -------------------------------------------------------------------------------- /pliron-llvm/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/pliron-llvm/README.md -------------------------------------------------------------------------------- /pliron-llvm/llvm-opt/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/pliron-llvm/llvm-opt/Cargo.toml -------------------------------------------------------------------------------- /pliron-llvm/llvm-opt/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/pliron-llvm/llvm-opt/README.md -------------------------------------------------------------------------------- /pliron-llvm/llvm-opt/src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/pliron-llvm/llvm-opt/src/main.rs -------------------------------------------------------------------------------- /pliron-llvm/llvm-opt/tests/resources/fib.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/pliron-llvm/llvm-opt/tests/resources/fib.c -------------------------------------------------------------------------------- /pliron-llvm/llvm-opt/tests/resources/va_arg.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/pliron-llvm/llvm-opt/tests/resources/va_arg.c -------------------------------------------------------------------------------- /pliron-llvm/llvm-opt/tests/run_tool.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/pliron-llvm/llvm-opt/tests/run_tool.rs -------------------------------------------------------------------------------- /pliron-llvm/src/attributes.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/pliron-llvm/src/attributes.rs -------------------------------------------------------------------------------- /pliron-llvm/src/from_llvm_ir.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/pliron-llvm/src/from_llvm_ir.rs -------------------------------------------------------------------------------- /pliron-llvm/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/pliron-llvm/src/lib.rs -------------------------------------------------------------------------------- /pliron-llvm/src/llvm_sys/core.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/pliron-llvm/src/llvm_sys/core.rs -------------------------------------------------------------------------------- /pliron-llvm/src/llvm_sys/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/pliron-llvm/src/llvm_sys/mod.rs -------------------------------------------------------------------------------- /pliron-llvm/src/op_interfaces.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/pliron-llvm/src/op_interfaces.rs -------------------------------------------------------------------------------- /pliron-llvm/src/ops.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/pliron-llvm/src/ops.rs -------------------------------------------------------------------------------- /pliron-llvm/src/to_llvm_ir.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/pliron-llvm/src/to_llvm_ir.rs -------------------------------------------------------------------------------- /pliron-llvm/src/types.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/pliron-llvm/src/types.rs -------------------------------------------------------------------------------- /pliron-llvm/tests/common/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/pliron-llvm/tests/common/mod.rs -------------------------------------------------------------------------------- /pliron-llvm/tests/compile_run.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/pliron-llvm/tests/compile_run.rs -------------------------------------------------------------------------------- /pliron-llvm/tests/resources/casts.ll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/pliron-llvm/tests/resources/casts.ll -------------------------------------------------------------------------------- /pliron-llvm/tests/resources/consts.ll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/pliron-llvm/tests/resources/consts.ll -------------------------------------------------------------------------------- /pliron-llvm/tests/resources/fib.ll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/pliron-llvm/tests/resources/fib.ll -------------------------------------------------------------------------------- /pliron-llvm/tests/resources/fib.mem2reg.ll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/pliron-llvm/tests/resources/fib.mem2reg.ll -------------------------------------------------------------------------------- /pliron-llvm/tests/resources/fpops.ll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/pliron-llvm/tests/resources/fpops.ll -------------------------------------------------------------------------------- /pliron-llvm/tests/resources/globals.ll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/pliron-llvm/tests/resources/globals.ll -------------------------------------------------------------------------------- /pliron-llvm/tests/resources/indirect_call.ll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/pliron-llvm/tests/resources/indirect_call.ll -------------------------------------------------------------------------------- /pliron-llvm/tests/resources/insert_extract_value.ll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/pliron-llvm/tests/resources/insert_extract_value.ll -------------------------------------------------------------------------------- /pliron-llvm/tests/resources/intrinsics.ll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/pliron-llvm/tests/resources/intrinsics.ll -------------------------------------------------------------------------------- /pliron-llvm/tests/resources/select.ll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/pliron-llvm/tests/resources/select.ll -------------------------------------------------------------------------------- /pliron-llvm/tests/resources/simple-loop.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/pliron-llvm/tests/resources/simple-loop.c -------------------------------------------------------------------------------- /pliron-llvm/tests/resources/simple-loop.ll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/pliron-llvm/tests/resources/simple-loop.ll -------------------------------------------------------------------------------- /pliron-llvm/tests/resources/switch.ll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/pliron-llvm/tests/resources/switch.ll -------------------------------------------------------------------------------- /pliron-llvm/tests/resources/va_arg.ll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/pliron-llvm/tests/resources/va_arg.ll -------------------------------------------------------------------------------- /pliron-llvm/tests/resources/vector_ops.ll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/pliron-llvm/tests/resources/vector_ops.ll -------------------------------------------------------------------------------- /run_ci.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/run_ci.sh -------------------------------------------------------------------------------- /src/attribute.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/src/attribute.rs -------------------------------------------------------------------------------- /src/basic_block.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/src/basic_block.rs -------------------------------------------------------------------------------- /src/builtin/attr_interfaces.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/src/builtin/attr_interfaces.rs -------------------------------------------------------------------------------- /src/builtin/attributes.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/src/builtin/attributes.rs -------------------------------------------------------------------------------- /src/builtin/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/src/builtin/mod.rs -------------------------------------------------------------------------------- /src/builtin/op_interfaces.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/src/builtin/op_interfaces.rs -------------------------------------------------------------------------------- /src/builtin/ops.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/src/builtin/ops.rs -------------------------------------------------------------------------------- /src/builtin/type_interfaces.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/src/builtin/type_interfaces.rs -------------------------------------------------------------------------------- /src/builtin/types.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/src/builtin/types.rs -------------------------------------------------------------------------------- /src/common_traits.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/src/common_traits.rs -------------------------------------------------------------------------------- /src/context.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/src/context.rs -------------------------------------------------------------------------------- /src/debug_info.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/src/debug_info.rs -------------------------------------------------------------------------------- /src/dialect.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/src/dialect.rs -------------------------------------------------------------------------------- /src/graph/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/src/graph/mod.rs -------------------------------------------------------------------------------- /src/graph/traversals.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/src/graph/traversals.rs -------------------------------------------------------------------------------- /src/graph/walkers.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/src/graph/walkers.rs -------------------------------------------------------------------------------- /src/identifier.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/src/identifier.rs -------------------------------------------------------------------------------- /src/irfmt/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/src/irfmt/mod.rs -------------------------------------------------------------------------------- /src/irfmt/outlined.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/src/irfmt/outlined.rs -------------------------------------------------------------------------------- /src/irfmt/parsers.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/src/irfmt/parsers.rs -------------------------------------------------------------------------------- /src/irfmt/printers/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/src/irfmt/printers/mod.rs -------------------------------------------------------------------------------- /src/irfmt/printers/op.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/src/irfmt/printers/op.rs -------------------------------------------------------------------------------- /src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/src/lib.rs -------------------------------------------------------------------------------- /src/linked_list.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/src/linked_list.rs -------------------------------------------------------------------------------- /src/location.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/src/location.rs -------------------------------------------------------------------------------- /src/op.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/src/op.rs -------------------------------------------------------------------------------- /src/operation.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/src/operation.rs -------------------------------------------------------------------------------- /src/parsable.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/src/parsable.rs -------------------------------------------------------------------------------- /src/printable.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/src/printable.rs -------------------------------------------------------------------------------- /src/region.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/src/region.rs -------------------------------------------------------------------------------- /src/result.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/src/result.rs -------------------------------------------------------------------------------- /src/storage_uniquer.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/src/storage_uniquer.rs -------------------------------------------------------------------------------- /src/symbol_table.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/src/symbol_table.rs -------------------------------------------------------------------------------- /src/type.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/src/type.rs -------------------------------------------------------------------------------- /src/uniqued_any.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/src/uniqued_any.rs -------------------------------------------------------------------------------- /src/utils/apfloat.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/src/utils/apfloat.rs -------------------------------------------------------------------------------- /src/utils/apint.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/src/utils/apint.rs -------------------------------------------------------------------------------- /src/utils/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/src/utils/mod.rs -------------------------------------------------------------------------------- /src/utils/trait_cast.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/src/utils/trait_cast.rs -------------------------------------------------------------------------------- /src/utils/vec_exns.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/src/utils/vec_exns.rs -------------------------------------------------------------------------------- /src/value.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/src/value.rs -------------------------------------------------------------------------------- /tests/common/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/tests/common/mod.rs -------------------------------------------------------------------------------- /tests/dict_key_duplicate.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/tests/dict_key_duplicate.rs -------------------------------------------------------------------------------- /tests/interfaces.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/tests/interfaces.rs -------------------------------------------------------------------------------- /tests/ir_construct.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaivaswatha/pliron/HEAD/tests/ir_construct.rs --------------------------------------------------------------------------------