Title: [199758] trunk/Source/_javascript_Core
- Revision
- 199758
- Author
- commit-qu...@webkit.org
- Date
- 2016-04-19 21:03:25 -0700 (Tue, 19 Apr 2016)
Log Message
[JSC] Small cleanup of RegisterAtOffsetList
https://bugs.webkit.org/show_bug.cgi?id=156779
Patch by Benjamin Poulain <bpoul...@webkit.org> on 2016-04-19
Reviewed by Mark Lam.
I was wondering why RegisterAtOffsetList always cache-miss.
It looks like it is doing more than it needs to.
We do not need to sort the values. The total order of
RegisterAtOffset is:
1) Order of Reg.
2) Order of offsets.
We already generate the list in order.
Also allocate the right array size ahead of filling the array.
* jit/RegisterAtOffsetList.cpp:
(JSC::RegisterAtOffsetList::RegisterAtOffsetList):
(JSC::RegisterAtOffsetList::sort): Deleted.
* jit/RegisterAtOffsetList.h:
(JSC::RegisterAtOffsetList::append): Deleted.
Modified Paths
Diff
Modified: trunk/Source/_javascript_Core/ChangeLog (199757 => 199758)
--- trunk/Source/_javascript_Core/ChangeLog 2016-04-20 03:52:42 UTC (rev 199757)
+++ trunk/Source/_javascript_Core/ChangeLog 2016-04-20 04:03:25 UTC (rev 199758)
@@ -1,3 +1,27 @@
+2016-04-19 Benjamin Poulain <bpoul...@webkit.org>
+
+ [JSC] Small cleanup of RegisterAtOffsetList
+ https://bugs.webkit.org/show_bug.cgi?id=156779
+
+ Reviewed by Mark Lam.
+
+ I was wondering why RegisterAtOffsetList always cache-miss.
+ It looks like it is doing more than it needs to.
+
+ We do not need to sort the values. The total order of
+ RegisterAtOffset is:
+ 1) Order of Reg.
+ 2) Order of offsets.
+ We already generate the list in order.
+
+ Also allocate the right array size ahead of filling the array.
+
+ * jit/RegisterAtOffsetList.cpp:
+ (JSC::RegisterAtOffsetList::RegisterAtOffsetList):
+ (JSC::RegisterAtOffsetList::sort): Deleted.
+ * jit/RegisterAtOffsetList.h:
+ (JSC::RegisterAtOffsetList::append): Deleted.
+
2016-04-19 Saam barati <sbar...@apple.com>
Add a couple UNLIKELY macros in parseMemberExpression
Modified: trunk/Source/_javascript_Core/jit/RegisterAtOffsetList.cpp (199757 => 199758)
--- trunk/Source/_javascript_Core/jit/RegisterAtOffsetList.cpp 2016-04-20 03:52:42 UTC (rev 199757)
+++ trunk/Source/_javascript_Core/jit/RegisterAtOffsetList.cpp 2016-04-20 04:03:25 UTC (rev 199758)
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2015 Apple Inc. All rights reserved.
+ * Copyright (C) 2015-2016 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -42,21 +42,13 @@
if (offsetBaseType == FramePointerBased)
offset = -(static_cast<ptrdiff_t>(numberOfRegisters) * sizeof(void*));
- for (Reg reg = Reg::first(); reg <= Reg::last(); reg = reg.next()) {
- if (registerSet.get(reg)) {
- append(RegisterAtOffset(reg, offset));
- offset += sizeof(void*);
- }
- }
-
- sort();
+ m_registers.reserveInitialCapacity(numberOfRegisters);
+ registerSet.forEach([&] (Reg reg) {
+ m_registers.append(RegisterAtOffset(reg, offset));
+ offset += sizeof(void*);
+ });
}
-void RegisterAtOffsetList::sort()
-{
- std::sort(m_registers.begin(), m_registers.end());
-}
-
void RegisterAtOffsetList::dump(PrintStream& out) const
{
out.print(listDump(m_registers));
Modified: trunk/Source/_javascript_Core/jit/RegisterAtOffsetList.h (199757 => 199758)
--- trunk/Source/_javascript_Core/jit/RegisterAtOffsetList.h 2016-04-20 03:52:42 UTC (rev 199757)
+++ trunk/Source/_javascript_Core/jit/RegisterAtOffsetList.h 2016-04-20 04:03:25 UTC (rev 199758)
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2015 Apple Inc. All rights reserved.
+ * Copyright (C) 2015-2016 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -58,12 +58,6 @@
return m_registers.at(index);
}
- void append(RegisterAtOffset registerAtOffset)
- {
- m_registers.append(registerAtOffset);
- }
-
- void sort();
RegisterAtOffset* find(Reg) const;
unsigned indexOf(Reg) const; // Returns UINT_MAX if not found.
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes