├── .github └── workflows │ └── rust.yml ├── .gitignore ├── Cargo.toml ├── DESIGN.md ├── LICENSE-APACHE ├── LICENSE-MIT ├── README.md ├── example_reginfo ├── aarch64.reginfo └── riscv.reginfo ├── fuzz ├── .gitignore ├── Cargo.toml ├── fuzz_targets │ ├── compile.rs │ ├── compile_reuse.rs │ ├── func_gen.rs │ ├── func_parse.rs │ ├── parallel_moves.rs │ ├── reginfo_gen.rs │ └── reginfo_parse.rs └── src │ └── lib.rs ├── regalloc3-tool ├── Cargo.toml └── src │ ├── example_reginfo │ ├── aarch64.rs │ ├── mod.rs │ └── riscv.rs │ └── main.rs └── src ├── allocation_unit.rs ├── debug_utils ├── checker.rs ├── cost_model.rs ├── display.rs ├── dominator_tree.rs ├── generic_function │ ├── arbitrary.rs │ ├── grammar.pest │ ├── mod.rs │ └── parse.rs ├── generic_reginfo │ ├── arbitrary.rs │ ├── grammar.pest │ ├── mod.rs │ └── parse.rs ├── mod.rs ├── postorder.rs ├── validate_func.rs └── validate_reginfo.rs ├── entity ├── base.rs ├── compact_list.rs ├── iter.rs ├── mod.rs ├── packed_option.rs ├── primary_map.rs ├── secondary_map.rs ├── set.rs ├── small_set.rs └── sparse.rs ├── function.rs ├── internal ├── allocations.rs ├── allocator │ ├── evict.rs │ ├── mod.rs │ ├── order.rs │ ├── queue.rs │ └── split.rs ├── coalescing.rs ├── hints.rs ├── live_range.rs ├── mod.rs ├── move_optimizer.rs ├── move_resolver.rs ├── parallel_moves.rs ├── reg_matrix.rs ├── spill_allocator.rs ├── split_placement.rs ├── uses.rs ├── value_live_ranges.rs └── virt_regs │ ├── builder.rs │ └── mod.rs ├── lib.rs ├── output.rs ├── reginfo.rs └── union_find.rs /.github/workflows/rust.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amanieu/regalloc3/HEAD/.github/workflows/rust.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amanieu/regalloc3/HEAD/Cargo.toml -------------------------------------------------------------------------------- /DESIGN.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amanieu/regalloc3/HEAD/DESIGN.md -------------------------------------------------------------------------------- /LICENSE-APACHE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amanieu/regalloc3/HEAD/LICENSE-APACHE -------------------------------------------------------------------------------- /LICENSE-MIT: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amanieu/regalloc3/HEAD/LICENSE-MIT -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amanieu/regalloc3/HEAD/README.md -------------------------------------------------------------------------------- /example_reginfo/aarch64.reginfo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amanieu/regalloc3/HEAD/example_reginfo/aarch64.reginfo -------------------------------------------------------------------------------- /example_reginfo/riscv.reginfo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amanieu/regalloc3/HEAD/example_reginfo/riscv.reginfo -------------------------------------------------------------------------------- /fuzz/.gitignore: -------------------------------------------------------------------------------- 1 | corpus 2 | artifacts 3 | coverage 4 | -------------------------------------------------------------------------------- /fuzz/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amanieu/regalloc3/HEAD/fuzz/Cargo.toml -------------------------------------------------------------------------------- /fuzz/fuzz_targets/compile.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amanieu/regalloc3/HEAD/fuzz/fuzz_targets/compile.rs -------------------------------------------------------------------------------- /fuzz/fuzz_targets/compile_reuse.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amanieu/regalloc3/HEAD/fuzz/fuzz_targets/compile_reuse.rs -------------------------------------------------------------------------------- /fuzz/fuzz_targets/func_gen.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amanieu/regalloc3/HEAD/fuzz/fuzz_targets/func_gen.rs -------------------------------------------------------------------------------- /fuzz/fuzz_targets/func_parse.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amanieu/regalloc3/HEAD/fuzz/fuzz_targets/func_parse.rs -------------------------------------------------------------------------------- /fuzz/fuzz_targets/parallel_moves.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amanieu/regalloc3/HEAD/fuzz/fuzz_targets/parallel_moves.rs -------------------------------------------------------------------------------- /fuzz/fuzz_targets/reginfo_gen.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amanieu/regalloc3/HEAD/fuzz/fuzz_targets/reginfo_gen.rs -------------------------------------------------------------------------------- /fuzz/fuzz_targets/reginfo_parse.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amanieu/regalloc3/HEAD/fuzz/fuzz_targets/reginfo_parse.rs -------------------------------------------------------------------------------- /fuzz/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amanieu/regalloc3/HEAD/fuzz/src/lib.rs -------------------------------------------------------------------------------- /regalloc3-tool/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amanieu/regalloc3/HEAD/regalloc3-tool/Cargo.toml -------------------------------------------------------------------------------- /regalloc3-tool/src/example_reginfo/aarch64.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amanieu/regalloc3/HEAD/regalloc3-tool/src/example_reginfo/aarch64.rs -------------------------------------------------------------------------------- /regalloc3-tool/src/example_reginfo/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amanieu/regalloc3/HEAD/regalloc3-tool/src/example_reginfo/mod.rs -------------------------------------------------------------------------------- /regalloc3-tool/src/example_reginfo/riscv.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amanieu/regalloc3/HEAD/regalloc3-tool/src/example_reginfo/riscv.rs -------------------------------------------------------------------------------- /regalloc3-tool/src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amanieu/regalloc3/HEAD/regalloc3-tool/src/main.rs -------------------------------------------------------------------------------- /src/allocation_unit.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amanieu/regalloc3/HEAD/src/allocation_unit.rs -------------------------------------------------------------------------------- /src/debug_utils/checker.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amanieu/regalloc3/HEAD/src/debug_utils/checker.rs -------------------------------------------------------------------------------- /src/debug_utils/cost_model.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amanieu/regalloc3/HEAD/src/debug_utils/cost_model.rs -------------------------------------------------------------------------------- /src/debug_utils/display.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amanieu/regalloc3/HEAD/src/debug_utils/display.rs -------------------------------------------------------------------------------- /src/debug_utils/dominator_tree.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amanieu/regalloc3/HEAD/src/debug_utils/dominator_tree.rs -------------------------------------------------------------------------------- /src/debug_utils/generic_function/arbitrary.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amanieu/regalloc3/HEAD/src/debug_utils/generic_function/arbitrary.rs -------------------------------------------------------------------------------- /src/debug_utils/generic_function/grammar.pest: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amanieu/regalloc3/HEAD/src/debug_utils/generic_function/grammar.pest -------------------------------------------------------------------------------- /src/debug_utils/generic_function/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amanieu/regalloc3/HEAD/src/debug_utils/generic_function/mod.rs -------------------------------------------------------------------------------- /src/debug_utils/generic_function/parse.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amanieu/regalloc3/HEAD/src/debug_utils/generic_function/parse.rs -------------------------------------------------------------------------------- /src/debug_utils/generic_reginfo/arbitrary.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amanieu/regalloc3/HEAD/src/debug_utils/generic_reginfo/arbitrary.rs -------------------------------------------------------------------------------- /src/debug_utils/generic_reginfo/grammar.pest: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amanieu/regalloc3/HEAD/src/debug_utils/generic_reginfo/grammar.pest -------------------------------------------------------------------------------- /src/debug_utils/generic_reginfo/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amanieu/regalloc3/HEAD/src/debug_utils/generic_reginfo/mod.rs -------------------------------------------------------------------------------- /src/debug_utils/generic_reginfo/parse.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amanieu/regalloc3/HEAD/src/debug_utils/generic_reginfo/parse.rs -------------------------------------------------------------------------------- /src/debug_utils/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amanieu/regalloc3/HEAD/src/debug_utils/mod.rs -------------------------------------------------------------------------------- /src/debug_utils/postorder.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amanieu/regalloc3/HEAD/src/debug_utils/postorder.rs -------------------------------------------------------------------------------- /src/debug_utils/validate_func.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amanieu/regalloc3/HEAD/src/debug_utils/validate_func.rs -------------------------------------------------------------------------------- /src/debug_utils/validate_reginfo.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amanieu/regalloc3/HEAD/src/debug_utils/validate_reginfo.rs -------------------------------------------------------------------------------- /src/entity/base.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amanieu/regalloc3/HEAD/src/entity/base.rs -------------------------------------------------------------------------------- /src/entity/compact_list.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amanieu/regalloc3/HEAD/src/entity/compact_list.rs -------------------------------------------------------------------------------- /src/entity/iter.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amanieu/regalloc3/HEAD/src/entity/iter.rs -------------------------------------------------------------------------------- /src/entity/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amanieu/regalloc3/HEAD/src/entity/mod.rs -------------------------------------------------------------------------------- /src/entity/packed_option.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amanieu/regalloc3/HEAD/src/entity/packed_option.rs -------------------------------------------------------------------------------- /src/entity/primary_map.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amanieu/regalloc3/HEAD/src/entity/primary_map.rs -------------------------------------------------------------------------------- /src/entity/secondary_map.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amanieu/regalloc3/HEAD/src/entity/secondary_map.rs -------------------------------------------------------------------------------- /src/entity/set.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amanieu/regalloc3/HEAD/src/entity/set.rs -------------------------------------------------------------------------------- /src/entity/small_set.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amanieu/regalloc3/HEAD/src/entity/small_set.rs -------------------------------------------------------------------------------- /src/entity/sparse.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amanieu/regalloc3/HEAD/src/entity/sparse.rs -------------------------------------------------------------------------------- /src/function.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amanieu/regalloc3/HEAD/src/function.rs -------------------------------------------------------------------------------- /src/internal/allocations.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amanieu/regalloc3/HEAD/src/internal/allocations.rs -------------------------------------------------------------------------------- /src/internal/allocator/evict.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amanieu/regalloc3/HEAD/src/internal/allocator/evict.rs -------------------------------------------------------------------------------- /src/internal/allocator/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amanieu/regalloc3/HEAD/src/internal/allocator/mod.rs -------------------------------------------------------------------------------- /src/internal/allocator/order.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amanieu/regalloc3/HEAD/src/internal/allocator/order.rs -------------------------------------------------------------------------------- /src/internal/allocator/queue.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amanieu/regalloc3/HEAD/src/internal/allocator/queue.rs -------------------------------------------------------------------------------- /src/internal/allocator/split.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amanieu/regalloc3/HEAD/src/internal/allocator/split.rs -------------------------------------------------------------------------------- /src/internal/coalescing.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amanieu/regalloc3/HEAD/src/internal/coalescing.rs -------------------------------------------------------------------------------- /src/internal/hints.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amanieu/regalloc3/HEAD/src/internal/hints.rs -------------------------------------------------------------------------------- /src/internal/live_range.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amanieu/regalloc3/HEAD/src/internal/live_range.rs -------------------------------------------------------------------------------- /src/internal/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amanieu/regalloc3/HEAD/src/internal/mod.rs -------------------------------------------------------------------------------- /src/internal/move_optimizer.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amanieu/regalloc3/HEAD/src/internal/move_optimizer.rs -------------------------------------------------------------------------------- /src/internal/move_resolver.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amanieu/regalloc3/HEAD/src/internal/move_resolver.rs -------------------------------------------------------------------------------- /src/internal/parallel_moves.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amanieu/regalloc3/HEAD/src/internal/parallel_moves.rs -------------------------------------------------------------------------------- /src/internal/reg_matrix.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amanieu/regalloc3/HEAD/src/internal/reg_matrix.rs -------------------------------------------------------------------------------- /src/internal/spill_allocator.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amanieu/regalloc3/HEAD/src/internal/spill_allocator.rs -------------------------------------------------------------------------------- /src/internal/split_placement.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amanieu/regalloc3/HEAD/src/internal/split_placement.rs -------------------------------------------------------------------------------- /src/internal/uses.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amanieu/regalloc3/HEAD/src/internal/uses.rs -------------------------------------------------------------------------------- /src/internal/value_live_ranges.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amanieu/regalloc3/HEAD/src/internal/value_live_ranges.rs -------------------------------------------------------------------------------- /src/internal/virt_regs/builder.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amanieu/regalloc3/HEAD/src/internal/virt_regs/builder.rs -------------------------------------------------------------------------------- /src/internal/virt_regs/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amanieu/regalloc3/HEAD/src/internal/virt_regs/mod.rs -------------------------------------------------------------------------------- /src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amanieu/regalloc3/HEAD/src/lib.rs -------------------------------------------------------------------------------- /src/output.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amanieu/regalloc3/HEAD/src/output.rs -------------------------------------------------------------------------------- /src/reginfo.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amanieu/regalloc3/HEAD/src/reginfo.rs -------------------------------------------------------------------------------- /src/union_find.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Amanieu/regalloc3/HEAD/src/union_find.rs --------------------------------------------------------------------------------