Skip to content

Commit

Permalink
Only set AlwaysInline if OptimizeNone is unset
Browse files Browse the repository at this point in the history
  • Loading branch information
hedgar2017 committed Jan 20, 2024
1 parent 5d0f025 commit fc39144
Showing 1 changed file with 13 additions and 1 deletion.
14 changes: 13 additions & 1 deletion src/eravm/context/function/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -145,11 +145,23 @@ impl<'ctx> Function<'ctx> {
force: bool,
) {
for attribute_kind in attributes.into_iter() {
if attribute_kind == Attribute::AlwaysInline && force {
let is_optimize_none_set = declaration
.value
.get_enum_attribute(
inkwell::attributes::AttributeLoc::Function,
Attribute::OptimizeNone as u32,
)
.is_some();
if !is_optimize_none_set && attribute_kind == Attribute::AlwaysInline && force {
declaration.value.remove_enum_attribute(
inkwell::attributes::AttributeLoc::Function,
Attribute::NoInline as u32,
);
declaration.value.add_attribute(
inkwell::attributes::AttributeLoc::Function,
llvm.create_enum_attribute(Attribute::AlwaysInline as u32, 0),
);
continue;
}

declaration.value.add_attribute(
Expand Down

0 comments on commit fc39144

Please sign in to comment.