tree bf90bdcf1fa96838e44f84dcfd2b818111263bdd
parent 82e5c6ee6597e7d8926b4f2fea89d02d77f978d4
author Nicholas Nethercote <nnethercote@mozilla.com> 1568707557 +1000
committer Nicholas Nethercote <nnethercote@mozilla.com> 1568838966 +1000

Add a specialized version of `shallow_resolve()`.

The super-hot call site of `inlined_shallow_resolve()` basically does
`r.inlined_shallow_resolve(ty) != ty`. This commit introduces a
version of that function specialized for that particular call pattern,
`shallow_resolve_changed()`. Incredibly, this reduces the instruction
count for `keccak` by 5%.

The commit also renames `inlined_shallow_resolve()` as
`shallow_resolve()` and removes the `inline(always)` annotation, as it's
no longer nearly so hot.
