Skip to content

Commit cd7abb4

Browse files
committed
Store optimize attribute in Option
1 parent f6cb952 commit cd7abb4

File tree

5 files changed

+13
-13
lines changed

5 files changed

+13
-13
lines changed

compiler/rustc_attr/src/builtin.rs

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

5858
#[derive(Clone, Encodable, Decodable, Debug, HashStable_Generic)]
5959
pub enum OptimizeAttr {
60-
None,
6160
Speed,
6261
Size,
6362
}

compiler/rustc_codegen_llvm/src/attributes.rs

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

333333
match codegen_fn_attrs.optimize {
334-
OptimizeAttr::None => {
334+
None => {
335335
to_add.extend(default_optimisation_attrs(cx));
336336
}
337-
OptimizeAttr::Size => {
337+
Some(OptimizeAttr::Size) => {
338338
to_add.push(llvm::AttributeKind::MinSize.create_attr(cx.llcx));
339339
to_add.push(llvm::AttributeKind::OptimizeForSize.create_attr(cx.llcx));
340340
}
341-
OptimizeAttr::Speed => {}
341+
Some(OptimizeAttr::Speed) => {}
342342
}
343343

344344
let inline =

compiler/rustc_codegen_ssa/src/base.rs

+3-2
Original file line numberDiff line numberDiff line change
@@ -1056,8 +1056,9 @@ pub(crate) fn provide(providers: &mut Providers) {
10561056
let any_for_speed = defids.items().any(|id| {
10571057
let CodegenFnAttrs { optimize, .. } = tcx.codegen_fn_attrs(*id);
10581058
match optimize {
1059-
attr::OptimizeAttr::None | attr::OptimizeAttr::Size => false,
1060-
attr::OptimizeAttr::Speed => true,
1059+
None => false,
1060+
Some(attr::OptimizeAttr::Size) => false,
1061+
Some(attr::OptimizeAttr::Speed) => true,
10611062
}
10621063
});
10631064

compiler/rustc_codegen_ssa/src/codegen_attrs.rs

+5-5
Original file line numberDiff line numberDiff line change
@@ -542,7 +542,7 @@ fn codegen_fn_attrs(tcx: TyCtxt<'_>, did: LocalDefId) -> CodegenFnAttrs {
542542
}
543543
});
544544

545-
codegen_fn_attrs.optimize = attrs.iter().fold(OptimizeAttr::None, |ia, attr| {
545+
codegen_fn_attrs.optimize = attrs.iter().fold(None, |ia, attr| {
546546
if !attr.has_name(sym::optimize) {
547547
return ia;
548548
}
@@ -556,14 +556,14 @@ fn codegen_fn_attrs(tcx: TyCtxt<'_>, did: LocalDefId) -> CodegenFnAttrs {
556556
inline_span = Some(attr.span);
557557
if items.len() != 1 {
558558
err(attr.span, "expected one argument");
559-
OptimizeAttr::None
559+
None
560560
} else if list_contains_name(items, sym::size) {
561-
OptimizeAttr::Size
561+
Some(OptimizeAttr::Size)
562562
} else if list_contains_name(items, sym::speed) {
563-
OptimizeAttr::Speed
563+
Some(OptimizeAttr::Speed)
564564
} else {
565565
err(items[0].span(), "invalid argument");
566-
OptimizeAttr::None
566+
None
567567
}
568568
}
569569
Some(MetaItemKind::NameValue(_)) => ia,

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>,
@@ -144,7 +144,7 @@ impl CodegenFnAttrs {
144144
CodegenFnAttrs {
145145
flags: CodegenFnAttrFlags::empty(),
146146
inline: InlineAttr::None,
147-
optimize: OptimizeAttr::None,
147+
optimize: None,
148148
export_name: None,
149149
link_name: None,
150150
link_ordinal: None,

0 commit comments

Comments
 (0)