2008-06-05 Maciej Stachowiak <mjs@apple.com>
authormjs@apple.com <mjs@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 5 Jun 2008 17:54:59 +0000 (17:54 +0000)
committermjs@apple.com <mjs@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 5 Jun 2008 17:54:59 +0000 (17:54 +0000)
        Reviewed by Hyatt.

        - force inlining of a template function that only has one call site per specialization
        1.3% speedup on SunSpider

        * kjs/collector.cpp:
        (KJS::Collector::heapAllocate): This template function is only
        called from allocate() and allocateNumber() (once per
        specialization) and the extra call overhead for GC allocation
        shows up, so force inlining.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@34378 268f45cc-cd09-0410-ab3c-d52691b4dbfc

JavaScriptCore/ChangeLog
JavaScriptCore/kjs/collector.cpp

index 15aa162b2174a79ea7f18508a88f44c1f9b33c44..03bf96bd849826c9f24e1a0f8cf364f6b95dcb79 100644 (file)
@@ -1,3 +1,16 @@
+2008-06-05  Maciej Stachowiak  <mjs@apple.com>
+
+        Reviewed by Hyatt.
+        
+        - force inlining of a template function that only has one call site per specialization
+        1.3% speedup on SunSpider
+
+        * kjs/collector.cpp:
+        (KJS::Collector::heapAllocate): This template function is only
+        called from allocate() and allocateNumber() (once per
+        specialization) and the extra call overhead for GC allocation
+        shows up, so force inlining.
+
 2008-06-05  Maciej Stachowiak  <mjs@apple.com>
 
         Reviewed by Alexey and Oliver.
index 8a1c2e8bdc8580d8c38812c98d0d314763ce5a50..1522bede9264f93a4d5b5419bcfb2175e1d20472 100644 (file)
@@ -178,7 +178,7 @@ template <> struct HeapConstants<Collector::NumberHeap> {
     typedef SmallCellCollectorBlock Block;
 };
 
-template <Collector::HeapType heapType> void* Collector::heapAllocate(size_t s)
+template <Collector::HeapType heapType> ALWAYS_INLINE void* Collector::heapAllocate(size_t s)
 {
     typedef typename HeapConstants<heapType>::Block Block;
     typedef typename HeapConstants<heapType>::Cell Cell;