Skip to content
This repository has been archived by the owner on Mar 20, 2024. It is now read-only.

Wrap rttydesc module in a RttyContext; simplify; clean-up. #239

Merged
merged 1 commit into from Jul 17, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
8 changes: 5 additions & 3 deletions language/tools/move-mv-llvm-compiler/src/main.rs
Expand Up @@ -155,7 +155,7 @@ fn main() -> anyhow::Result<()> {
};

{
use move_mv_llvm_compiler::stackless::{Target, *};
use move_mv_llvm_compiler::stackless::{extensions::ModuleEnvExt, Target, *};

let tgt_platform = TargetPlatform::Solana;
tgt_platform.initialize_llvm();
Expand All @@ -171,8 +171,10 @@ fn main() -> anyhow::Result<()> {
.map(|m| m.get_id())
.expect(".");
let global_cx = GlobalContext::new(&global_env, tgt_platform, &llmachine);
let mod_cx = global_cx.create_module_context(mod_id, &args);
let mut llmod = mod_cx.translate();
let modname = global_env.get_module(mod_id).llvm_module_name();
let mut llmod = global_cx.llvm_cx.create_module(&modname);
let mod_cx = global_cx.create_module_context(mod_id, &llmod, &args);
mod_cx.translate();
if !args.obj {
llvm_write_to_file(llmod.as_mut(), args.llvm_ir, &args.output_file_path)?;
drop(llmod);
Expand Down
15 changes: 15 additions & 0 deletions language/tools/move-mv-llvm-compiler/src/stackless/extensions.rs
Expand Up @@ -85,3 +85,18 @@ pub impl TypeExt for mty::Type {
}
}
}

#[extension_trait]
pub impl<'a> StructEnvExt for mm::StructEnv<'a> {
fn ll_struct_name_from_raw_name(&self, tys: &[mty::Type]) -> String {
let raw_name = self.struct_raw_type_name(tys);
let xs = raw_name.replace([':', '<', '>'], "_").replace(", ", ".");
format!("struct.{}", xs)
}

fn struct_raw_type_name(&self, tys: &[mty::Type]) -> String {
let qid = self.get_qualified_id();
let s = mty::Type::Struct(qid.module_id, qid.id, tys.to_vec());
format!("{}", s.display(&self.module_env.env.get_type_display_ctx()))
}
}
2 changes: 1 addition & 1 deletion language/tools/move-mv-llvm-compiler/src/stackless/mod.rs
Expand Up @@ -2,7 +2,7 @@
// Copyright (c) The Move Contributors
// SPDX-License-Identifier: Apache-2.0

mod extensions;
pub mod extensions;
mod llvm;
mod rttydesc;
mod translate;
Expand Down