Skip to content

Commit cde1aab

Browse files
committed
Store optimize attribute in Option
1 parent dee7d0e commit cde1aab

File tree

5 files changed

+14
-14
lines changed

5 files changed

+14
-14
lines changed

compiler/rustc_attr_data_structures/src/attributes.rs

-1
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@ pub enum InstructionSetAttr {
3737

3838
#[derive(Clone, Encodable, Decodable, Debug, HashStable_Generic)]
3939
pub enum OptimizeAttr {
40-
None,
4140
Speed,
4241
Size,
4342
}

compiler/rustc_codegen_llvm/src/attributes.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -333,14 +333,14 @@ pub(crate) fn llfn_attrs_from_instance<'ll, 'tcx>(
333333
let mut to_add = SmallVec::<[_; 16]>::new();
334334

335335
match codegen_fn_attrs.optimize {
336-
OptimizeAttr::None => {
336+
None => {
337337
to_add.extend(default_optimisation_attrs(cx));
338338
}
339-
OptimizeAttr::Size => {
339+
Some(OptimizeAttr::Size) => {
340340
to_add.push(llvm::AttributeKind::MinSize.create_attr(cx.llcx));
341341
to_add.push(llvm::AttributeKind::OptimizeForSize.create_attr(cx.llcx));
342342
}
343-
OptimizeAttr::Speed => {}
343+
Some(OptimizeAttr::Speed) => {}
344344
}
345345

346346
let inline =

compiler/rustc_codegen_ssa/src/base.rs

+3-2
Original file line numberDiff line numberDiff line change
@@ -1054,8 +1054,9 @@ pub(crate) fn provide(providers: &mut Providers) {
10541054
let any_for_speed = defids.items().any(|id| {
10551055
let CodegenFnAttrs { optimize, .. } = tcx.codegen_fn_attrs(*id);
10561056
match optimize {
1057-
attr::OptimizeAttr::None | attr::OptimizeAttr::Size => false,
1058-
attr::OptimizeAttr::Speed => true,
1057+
None => false,
1058+
Some(attr::OptimizeAttr::Size) => false,
1059+
Some(attr::OptimizeAttr::Speed) => true,
10591060
}
10601061
});
10611062

compiler/rustc_codegen_ssa/src/codegen_attrs.rs

+6-6
Original file line numberDiff line numberDiff line change
@@ -575,7 +575,7 @@ fn codegen_fn_attrs(tcx: TyCtxt<'_>, did: LocalDefId) -> CodegenFnAttrs {
575575
codegen_fn_attrs.inline = InlineAttr::Never;
576576
}
577577

578-
codegen_fn_attrs.optimize = attrs.iter().fold(OptimizeAttr::None, |ia, attr| {
578+
codegen_fn_attrs.optimize = attrs.iter().fold(None, |ia, attr| {
579579
if !attr.has_name(sym::optimize) {
580580
return ia;
581581
}
@@ -587,17 +587,17 @@ fn codegen_fn_attrs(tcx: TyCtxt<'_>, did: LocalDefId) -> CodegenFnAttrs {
587587
inline_span = Some(attr.span);
588588
if items.len() != 1 {
589589
err(attr.span, "expected one argument");
590-
OptimizeAttr::None
590+
None
591591
} else if list_contains_name(items, sym::size) {
592-
OptimizeAttr::Size
592+
Some(OptimizeAttr::Size)
593593
} else if list_contains_name(items, sym::speed) {
594-
OptimizeAttr::Speed
594+
Some(OptimizeAttr::Speed)
595595
} else {
596596
err(items[0].span(), "invalid argument");
597-
OptimizeAttr::None
597+
None
598598
}
599599
} else {
600-
OptimizeAttr::None
600+
None
601601
}
602602
});
603603

compiler/rustc_middle/src/middle/codegen_fn_attrs.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ pub struct CodegenFnAttrs {
1212
/// Parsed representation of the `#[inline]` attribute
1313
pub inline: InlineAttr,
1414
/// Parsed representation of the `#[optimize]` attribute
15-
pub optimize: OptimizeAttr,
15+
pub optimize: Option<OptimizeAttr>,
1616
/// The `#[export_name = "..."]` attribute, indicating a custom symbol a
1717
/// function should be exported under
1818
pub export_name: Option<Symbol>,
@@ -147,7 +147,7 @@ impl CodegenFnAttrs {
147147
CodegenFnAttrs {
148148
flags: CodegenFnAttrFlags::empty(),
149149
inline: InlineAttr::None,
150-
optimize: OptimizeAttr::None,
150+
optimize: None,
151151
export_name: None,
152152
link_name: None,
153153
link_ordinal: None,

0 commit comments

Comments
 (0)