Skip to content

Commit

Permalink
Convert inline(always) to inline in CodegenRust and jstraceable.
Browse files Browse the repository at this point in the history
This results in a 14% compile time improvement.

See https://gist.github.com/brson/b48dd03b06c406be68e6
  • Loading branch information
brson committed Jun 5, 2015
1 parent 68d977c commit 172fbca
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 11 deletions.
2 changes: 1 addition & 1 deletion components/plugins/jstraceable.rs
Expand Up @@ -50,7 +50,7 @@ pub fn expand_jstraceable(cx: &mut ExtCtxt, span: Span, mitem: &MetaItem, item:
args: vec!(ty::Ptr(box ty::Literal(ty::Path::new(vec!("js","jsapi","JSTracer"))),
ty::Raw(ast::MutMutable))),
ret_ty: ty::nil_ty(),
attributes: vec![quote_attr!(cx, #[inline(always)])],
attributes: vec![quote_attr!(cx, #[inline])],
is_unsafe: false,
combine_substructure: combine_substructure(box jstraceable_substructure)
}
Expand Down
20 changes: 10 additions & 10 deletions components/script/dom/bindings/codegen/CodegenRust.py
Expand Up @@ -1887,7 +1887,7 @@ def _template(self):
def _decorators(self):
decorators = []
if self.alwaysInline:
decorators.append('#[inline(always)]')
decorators.append('#[inline]')

if self.extern:
decorators.append('unsafe')
Expand Down Expand Up @@ -5478,23 +5478,23 @@ def InheritTypes(config):
cast = [CGGeneric(string.Template("""\
pub struct ${name}Cast;
impl ${name}Cast {
#[inline(always)]
#[inline]
pub fn to_ref<'a, T: ${toBound}+Reflectable>(base: JSRef<'a, T>) -> Option<JSRef<'a, ${name}>> {
match base.${checkFn}() {
true => Some(unsafe { mem::transmute(base) }),
false => None
}
}
#[inline(always)]
#[inline]
pub fn to_borrowed_ref<'a, 'b, T: ${toBound}+Reflectable>(base: &'a JSRef<'b, T>) -> Option<&'a JSRef<'b, ${name}>> {
match base.${checkFn}() {
true => Some(unsafe { mem::transmute(base) }),
false => None
}
}
#[inline(always)]
#[inline]
#[allow(unrooted_must_root)]
pub fn to_layout_js<T: ${toBound}+Reflectable>(base: &LayoutJS<T>) -> Option<LayoutJS<${name}>> {
unsafe {
Expand All @@ -5505,36 +5505,36 @@ def InheritTypes(config):
}
}
#[inline(always)]
#[inline]
pub fn to_temporary<T: ${toBound}+Reflectable>(base: Temporary<T>) -> Option<Temporary<${name}>> {
match base.root().r().${checkFn}() {
true => Some(unsafe { mem::transmute(base) }),
false => None
}
}
#[inline(always)]
#[inline]
pub fn from_ref<'a, T: ${fromBound}+Reflectable>(derived: JSRef<'a, T>) -> JSRef<'a, ${name}> {
unsafe { mem::transmute(derived) }
}
#[inline(always)]
#[inline]
pub fn from_borrowed_ref<'a, 'b, T: ${fromBound}+Reflectable>(derived: &'a JSRef<'b, T>) -> &'a JSRef<'b, ${name}> {
unsafe { mem::transmute(derived) }
}
#[inline(always)]
#[inline]
#[allow(unrooted_must_root)]
pub fn from_layout_js<T: ${fromBound}+Reflectable>(derived: &LayoutJS<T>) -> LayoutJS<${name}> {
unsafe { mem::transmute_copy(derived) }
}
#[inline(always)]
#[inline]
pub fn from_temporary<T: ${fromBound}+Reflectable>(derived: Temporary<T>) -> Temporary<${name}> {
unsafe { mem::transmute(derived) }
}
#[inline(always)]
#[inline]
pub fn from_actual<'a, T: ${fromBound}+Reflectable>(derived: &'a T) -> &'a ${name} {
unsafe { mem::transmute(derived) }
}
Expand Down

0 comments on commit 172fbca

Please sign in to comment.