source: webkit/trunk/Source/JavaScriptCore/DerivedSources.make@ 154032

Last change on this file since 154032 was 153223, checked in by [email protected], 12 years ago

fourthTier: The Math object should not be polymorphic
https://bugs.webkit.org/show_bug.cgi?id=117576

Reviewed by Oliver Hunt.

Fill in the Math object eagerly, to avoid its structure changing during
execution. There are lots of ways to skin this cat; this one seemed
easiest, and justified given the relative hotness of math operations.

20% speedup on DSP-filtrr tests, small speedups on a few Kraken tests.

  • DerivedSources.make:
  • JavaScriptCore.order:
  • create_hash_table:
  • interpreter/CallFrame.h:

(JSC::ExecState::jsonTable): Removed the Math object's static table.

  • runtime/JSObject.cpp:

(JSC::JSObject::putDirectNativeFunctionWithoutTransition):

  • runtime/JSObject.h:
  • runtime/MathObject.cpp:

(JSC::MathObject::finishCreation):

  • runtime/MathObject.h:

(JSC::MathObject::create): Set up the Math object at construction time.

  • runtime/VM.cpp:

(JSC::VM::VM):
(JSC::VM::~VM):

  • runtime/VM.h: Removed the Math object's static table.
  • Property svn:eol-style set to native
File size: 2.9 KB
Line 
1# Copyright (C) 2006, 2007, 2008, 2009, 2011, 2013 Apple Inc. All rights reserved.
2#
3# Redistribution and use in source and binary forms, with or without
4# modification, are permitted provided that the following conditions
5# are met:
6#
7# 1. Redistributions of source code must retain the above copyright
8# notice, this list of conditions and the following disclaimer.
9# 2. Redistributions in binary form must reproduce the above copyright
10# notice, this list of conditions and the following disclaimer in the
11# documentation and/or other materials provided with the distribution.
12# 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
13# its contributors may be used to endorse or promote products derived
14# from this software without specific prior written permission.
15#
16# THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
17# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19# DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
20# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
25# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26
27VPATH = \
28 $(JavaScriptCore) \
29 $(JavaScriptCore)/parser \
30 $(JavaScriptCore)/docs \
31 $(JavaScriptCore)/runtime \
32 $(JavaScriptCore)/interpreter \
33 $(JavaScriptCore)/jit \
34#
35
36.PHONY : all
37all : \
38 ArrayConstructor.lut.h \
39 ArrayPrototype.lut.h \
40 BooleanPrototype.lut.h \
41 DateConstructor.lut.h \
42 DatePrototype.lut.h \
43 ErrorPrototype.lut.h \
44 JSONObject.lut.h \
45 JSGlobalObject.lut.h \
46 KeywordLookup.h \
47 Lexer.lut.h \
48 NamePrototype.lut.h \
49 NumberConstructor.lut.h \
50 NumberPrototype.lut.h \
51 ObjectConstructor.lut.h \
52 RegExpConstructor.lut.h \
53 RegExpPrototype.lut.h \
54 RegExpJitTables.h \
55 RegExpObject.lut.h \
56 StringConstructor.lut.h \
57 docs/bytecode.html \
58 udis86_itab.h \
59#
60
61# lookup tables for classes
62
63%.lut.h: create_hash_table %.cpp
64 $^ -i > $@
65Lexer.lut.h: create_hash_table Keywords.table
66 $^ > $@
67
68docs/bytecode.html: make-bytecode-docs.pl Interpreter.cpp
69 perl $^ $@
70
71# character tables for Yarr
72
73RegExpJitTables.h: create_regex_tables
74 python $^ > $@
75
76KeywordLookup.h: KeywordLookupGenerator.py Keywords.table
77 python $^ > $@
78
79# udis86 instruction tables
80
81udis86_itab.h: $(JavaScriptCore)/disassembler/udis86/itab.py $(JavaScriptCore)/disassembler/udis86/optable.xml
82 (PYTHONPATH=$(JavaScriptCore)/disassembler/udis86 python $(JavaScriptCore)/disassembler/udis86/itab.py $(JavaScriptCore)/disassembler/udis86/optable.xml || exit 1)
Note: See TracBrowser for help on using the repository browser.