1. 03 May, 2019 1 commit
  2. 01 May, 2019 3 commits
    • Iain Ireland's avatar
      Bug 1533890: Minor cleanups r=mgaudet · 0512ebbb
      Iain Ireland authored
      1. In bug 1545278, Ted is making our story about guarding on object pointer identity more robust. Since I am adding a new guardSpecificObject call in the ConstStringSplit patch, it seemed reasonable to add guardSpecificFunction now instead of later.
      2. It's not directly relevant in the current patch, but in a previous version of the StringSplit patch (before I realized we could delete the whole thing) it turned out that calling isSelfHostedFunctionWithName on an arbitrary function can trigger assertions, because GetSelfHostedFunctionName assumes isExtended, but isSelfHostedBuiltin does not necessarily imply isExtended (in the case of nested anonymous functions).
      3. Fixing the format string in a JitSpew message I added in a previous stack.
      
      Depends on D29535
      
      Differential Revision: https://phabricator.services.mozilla.com/D29536
      
      --HG--
      extra : moz-landing-system : lando
      0512ebbb
    • Iain Ireland's avatar
      Bug 1533890: Remove StringSplit call IC r=mgaudet · 3604082d
      Iain Ireland authored
      I started changing StringSplit to attach outside of self-hosted code, to match ConstStringSplit. Upon closer examination, the StringSplit IC doesn't actually add any value, and we're better off deleting it. The generated code calls StringSplitHelper, which ends up doing almost exactly the same thing as the call to intrinsic_StringSplitString it replaces. When we first wrote the patch (bug 1366377), the advantage was that we got to skip a lookup to determine the group of the resulting object. However, a subsequent patch created a single group for every StringSplitString result, which is basically free to look up.
      
      I couldn't write a microbenchmark where the StringSplit IC made any difference, so let's just delete it and simplify our codebase.
      
      Depends on D29534
      
      Differential Revision: https://phabricator.services.mozilla.com/D29535
      
      --HG--
      extra : moz-landing-system : lando
      3604082d
    • Iain Ireland's avatar
      Bug 1533890: Create template objects for native constructors called without "new" r=mgaudet · 906d1e50
      Iain Ireland authored
      Some native functions (for example, the Array constructor) have constructor-like behaviour even when called in a non-constructing context. We still want to create template objects for these cases. This fixes a noticeable regression in Speedometer (particularly in EmberJS-debug).
      
      Depends on D29533
      
      Differential Revision: https://phabricator.services.mozilla.com/D29534
      
      --HG--
      extra : moz-landing-system : lando
      906d1e50
  3. 02 May, 2019 1 commit
    • Iain Ireland's avatar
      Bug 1533890: Rewrite ConstStringSplit to work outside of microbenchmarks r=mgaudet · 085f3998
      Iain Ireland authored
      While trying to pin down a performance regression, I realized that both the new and the old implementations of ConstStringSplit are broken. Three years ago, as part of some ES6 work, we changed String.prototype.split to call a self-hosted String_split function instead of native str_split. In turn, String_split calls intrinsic_StringSplitString in the case we care about. However, because the call to intrinsic_StringSplitString is in self-hosted code, we would only get value out of this stub if there was only one caller of String_split in the entire program.
      
      This patch changes ConstStringSplit to look for the self-hosted String_Split function, which means we can attach a stub to the user script instead of self-hosted code. It also adds support in BaselineInspector for extracting metadata about the string split from the stub, which enables the Ion version of this optimization.
      
      Depends on D29532
      
      Differential Revision: https://phabricator.services.mozilla.com/D29533
      
      --HG--
      extra : moz-landing-system : lando
      085f3998
  4. 01 May, 2019 1 commit
  5. 03 May, 2019 8 commits
  6. 02 May, 2019 2 commits
  7. 03 May, 2019 7 commits
  8. 02 May, 2019 1 commit
  9. 03 May, 2019 16 commits