just put smallvec lengths in the signature

This commit is contained in:
Erik Desjardins 2022-02-26 16:58:17 -05:00
parent 30d3ce0674
commit 91e7e8ddcb
2 changed files with 8 additions and 11 deletions

View file

@ -51,13 +51,10 @@ const OPTIMIZATION_ATTRIBUTES: [(ArgAttribute, llvm::AttributeKind); 5] = [
(ArgAttribute::NoUndef, llvm::AttributeKind::NoUndef), (ArgAttribute::NoUndef, llvm::AttributeKind::NoUndef),
]; ];
fn get_attrs<'ll>( fn get_attrs<'ll>(this: &ArgAttributes, cx: &CodegenCx<'ll, '_>) -> SmallVec<[&'ll Attribute; 8]> {
this: &ArgAttributes,
cx: &CodegenCx<'ll, '_>,
) -> SmallVec<impl smallvec::Array<Item = &'ll Attribute>> {
let mut regular = this.regular; let mut regular = this.regular;
let mut attrs = SmallVec::<[_; 8]>::new(); let mut attrs = SmallVec::new();
// ABI-affecting attributes must always be applied // ABI-affecting attributes must always be applied
for (attr, llattr) in ABI_AFFECTING_ATTRIBUTES { for (attr, llattr) in ABI_AFFECTING_ATTRIBUTES {

View file

@ -62,8 +62,8 @@ fn inline_attr<'ll>(cx: &CodegenCx<'ll, '_>, inline: InlineAttr) -> Option<&'ll
pub fn sanitize_attrs<'ll>( pub fn sanitize_attrs<'ll>(
cx: &CodegenCx<'ll, '_>, cx: &CodegenCx<'ll, '_>,
no_sanitize: SanitizerSet, no_sanitize: SanitizerSet,
) -> SmallVec<impl smallvec::Array<Item = &'ll Attribute>> { ) -> SmallVec<[&'ll Attribute; 4]> {
let mut attrs = SmallVec::<[_; 4]>::new(); let mut attrs = SmallVec::new();
let enabled = cx.tcx.sess.opts.debugging_opts.sanitizer - no_sanitize; let enabled = cx.tcx.sess.opts.debugging_opts.sanitizer - no_sanitize;
if enabled.contains(SanitizerSet::ADDRESS) { if enabled.contains(SanitizerSet::ADDRESS) {
attrs.push(llvm::AttributeKind::SanitizeAddress.create_attr(cx.llcx)); attrs.push(llvm::AttributeKind::SanitizeAddress.create_attr(cx.llcx));
@ -224,12 +224,12 @@ pub(crate) fn default_optimisation_attrs<'ll>(
cx: &CodegenCx<'ll, '_>, cx: &CodegenCx<'ll, '_>,
) -> ( ) -> (
// Attributes to remove // Attributes to remove
SmallVec<impl smallvec::Array<Item = AttributeKind>>, SmallVec<[AttributeKind; 3]>,
// Attributes to add // Attributes to add
SmallVec<impl smallvec::Array<Item = &'ll Attribute>>, SmallVec<[&'ll Attribute; 2]>,
) { ) {
let mut to_remove = SmallVec::<[_; 3]>::new(); let mut to_remove = SmallVec::new();
let mut to_add = SmallVec::<[_; 2]>::new(); let mut to_add = SmallVec::new();
match cx.sess().opts.optimize { match cx.sess().opts.optimize {
OptLevel::Size => { OptLevel::Size => {
to_remove.push(llvm::AttributeKind::MinSize); to_remove.push(llvm::AttributeKind::MinSize);