v8/src
fschneider@chromium.org 5820f951c1 Improve the allocation and initialization of locals on IA32 in the top-level compiler.
This optimization is already done on x64 and ARM. 

Until now we used a push immediate for each local variable on IA32:

  push $undefined
  push $undefined
  ...

to initialize each local variable. This change does:

  mov eax, $undefined
  push eax
  push eax
  ...



Review URL: http://codereview.chromium.org/393009

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3304 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-13 13:59:07 +00:00
..
arm Allow a platform to indicate that some CPU features are always 2009-11-13 12:32:57 +00:00
ia32 Improve the allocation and initialization of locals on IA32 in the top-level compiler. 2009-11-13 13:59:07 +00:00
third_party Apply patch by Timur Iskhodzhanov to add valgrind notifications on 2009-10-26 17:53:34 +00:00
x64 Allow a platform to indicate that some CPU features are always 2009-11-13 12:32:57 +00:00
accessors.cc Restore info needed to register profile ticks in functions from 2009-11-11 09:19:39 +00:00
accessors.h Add more debugging information to scripts compiled through eval. 2009-06-08 10:47:49 +00:00
allocation.cc Fix warnings on Win64. 2009-11-11 09:50:06 +00:00
allocation.h Split nested namespaces declaration in two lines in accordance with C++ Style Guide. 2009-05-25 10:05:56 +00:00
api.cc Fix warnings on Win64. 2009-11-11 09:50:06 +00:00
api.h Reverting 3174. Aka reapplying 3150, 3151 and 3159. Aka api accessor 2009-11-04 08:51:48 +00:00
apinatives.js Convert object to fast mode after creation. That enables more optimizations. 2009-07-13 10:10:28 +00:00
apiutils.h Api inlining. Made some core functionality available in the api and 2009-08-26 10:33:11 +00:00
arguments.h Fix some style issues in the ARM code. 2009-11-12 13:55:21 +00:00
array.js Implement ES5 Array.isArray 2009-10-14 09:42:13 +00:00
assembler.cc Fix warnings on Win64. 2009-11-11 09:50:06 +00:00
assembler.h Fix issue 493: Infinite loop when debug break is set when entering function.apply. 2009-11-05 13:59:40 +00:00
ast.cc In the toplevel compiler, shift the responsibility of assigning a 2009-10-28 13:25:40 +00:00
ast.h Fix inline constructor code bailout. 2009-11-11 09:00:09 +00:00
bootstrapper.cc Fix warnings on Win64. 2009-11-11 09:50:06 +00:00
bootstrapper.h Fix small memory leak in new serialization code. 2009-11-09 13:30:50 +00:00
builtins.cc Added infrastructure for optimizing new CanvasArray types in WebGL 2009-10-20 15:26:17 +00:00
builtins.h Added infrastructure for optimizing new CanvasArray types in WebGL 2009-10-20 15:26:17 +00:00
bytecodes-irregexp.h Split nested namespaces declaration in two lines in accordance with C++ Style Guide. 2009-05-25 10:05:56 +00:00
char-predicates-inl.h Split nested namespaces declaration in two lines in accordance with C++ Style Guide. 2009-05-25 10:05:56 +00:00
char-predicates.h Split nested namespaces declaration in two lines in accordance with C++ Style Guide. 2009-05-25 10:05:56 +00:00
checks.cc all-in-one 2009-03-02 09:09:07 +00:00
checks.h Introduce v8::Integer::NewFromUnsigned method. 2009-10-08 12:54:29 +00:00
code-stubs.cc Fix thinko in fix for issue 484. 2009-11-11 14:32:14 +00:00
code-stubs.h Fix thinko in fix for issue 484. 2009-11-11 14:32:14 +00:00
code.h Split nested namespaces declaration in two lines in accordance with C++ Style Guide. 2009-05-25 10:05:56 +00:00
codegen-inl.h Simplify the processing of deferred code in the code generator. Our 2009-06-05 14:16:32 +00:00
codegen.cc Obey the flag --lazy in the toplevel code generator. 2009-11-04 17:59:24 +00:00
codegen.h Obey the flag --lazy in the toplevel code generator. 2009-11-04 17:59:24 +00:00
compilation-cache.cc Add comment to compilation-cache.cc explaining choice of 5 generations. 2009-10-14 15:01:25 +00:00
compilation-cache.h Refactor the handling of generations in the compilation cache. 2009-06-22 11:12:51 +00:00
compiler.cc Disable "arguments" implementation. It was too optimistic in its assumptions. 2009-11-13 13:12:57 +00:00
compiler.h Obey the flag --lazy in the toplevel code generator. 2009-11-04 17:59:24 +00:00
contexts.cc Implemented a ContextSlotCache for compiled code. 2009-06-22 08:09:57 +00:00
contexts.h Split nested namespaces declaration in two lines in accordance with C++ Style Guide. 2009-05-25 10:05:56 +00:00
conversions-inl.h X64/Win64: Alternative implementation of fmod in general. 2009-10-23 09:18:19 +00:00
conversions.cc Fix warnings on Win64. 2009-11-11 09:50:06 +00:00
conversions.h X64/Win64: Alternative implementation of fmod in general. 2009-10-23 09:18:19 +00:00
counters.cc Split nested namespaces declaration in two lines in accordance with C++ Style Guide. 2009-05-25 10:05:56 +00:00
counters.h - Record cache hit rates at different levels in the compilation cache 2009-05-26 08:10:04 +00:00
cpu.h Split nested namespaces declaration in two lines in accordance with C++ Style Guide. 2009-05-25 10:05:56 +00:00
d8-debug.cc Extend debugger agent protocol with a connect message.Added a name of the embedding application when enabeling the debugger agent.Send a connection message from the debugger agent to the remote debugger when connecting. This message contains the V8 version, the protcol version (currently 1) and the name of the embedding application. Currently this information is just printed raw as received. 2009-03-23 22:23:39 +00:00
d8-debug.h Add remote debugging front end to developer shell. 2009-03-04 09:42:51 +00:00
d8-posix.cc A follow-up to r3009: add parentheses around one more anonymous function. 2009-10-13 15:17:24 +00:00
d8-readline.cc Introducing a new StrNDup function that uses new[] for when we dispose the result using delete[]. 2009-03-18 12:27:37 +00:00
d8-windows.cc * Add rmdir, mkdir -p and umask to d8 on Unix. 2009-03-31 12:45:33 +00:00
d8.cc Modifies readline() to behave in the same way as it does in TraceMonkey. 2009-09-07 12:37:56 +00:00
d8.h Add a readline() command to d8. This reads a single line, stripping 2009-08-13 07:07:41 +00:00
d8.js Added new scope type ScopeIterator::ScopeTypeCatch for with generated from catch blocks. 2009-09-08 10:20:28 +00:00
date-delay.js Add safe handling of NaN to Posix platform-dependent time functions. 2009-08-04 09:41:18 +00:00
dateparser-inl.h Untangle some #include dependencies. 2009-10-15 15:01:36 +00:00
dateparser.cc Split nested namespaces declaration in two lines in accordance with C++ Style Guide. 2009-05-25 10:05:56 +00:00
dateparser.h Split nested namespaces declaration in two lines in accordance with C++ Style Guide. 2009-05-25 10:05:56 +00:00
debug-agent.cc Fix warnings on Win64. 2009-11-11 09:50:06 +00:00
debug-agent.h Fixed some cctest flakiness on mac. 2009-09-25 10:36:00 +00:00
debug-delay.js Add "Version" command 2009-10-21 17:07:43 +00:00
debug.cc Fix warnings on Win64. 2009-11-11 09:50:06 +00:00
debug.h Fix warnings on Win64. 2009-11-11 09:50:06 +00:00
disasm.h Merge from experimental code generator branch to bleeding edge. 2009-02-27 13:00:32 +00:00
disassembler.cc Fix warnings on Win64. 2009-11-11 09:50:06 +00:00
disassembler.h Split nested namespaces declaration in two lines in accordance with C++ Style Guide. 2009-05-25 10:05:56 +00:00
dtoa-config.c X64 implementation: VisitUnaryOperation, configure dtoa for X64 platform. 2009-06-25 10:15:50 +00:00
execution.cc Fix issue 493: Infinite loop when debug break is set when entering function.apply. 2009-11-05 13:59:40 +00:00
execution.h Fix issue 493: Infinite loop when debug break is set when entering function.apply. 2009-11-05 13:59:40 +00:00
factory.cc Restore info needed to register profile ticks in functions from 2009-11-11 09:19:39 +00:00
factory.h Remove sliced string string type 2009-11-10 13:23:05 +00:00
fast-codegen.cc Cleanup and fix generated comments in the top-level compiler. 2009-11-13 09:42:18 +00:00
fast-codegen.h Obey the flag --lazy in the toplevel code generator. 2009-11-04 17:59:24 +00:00
flag-definitions.h Fix some style issues in the ARM code. 2009-11-12 13:55:21 +00:00
flags.cc Fix warnings on Win64. 2009-11-11 09:50:06 +00:00
flags.h Split nested namespaces declaration in two lines in accordance with C++ Style Guide. 2009-05-25 10:05:56 +00:00
frame-element.cc Patch by Mark Mentovai. Don't put static variables inline. 2009-07-17 05:37:09 +00:00
frame-element.h Patch by Mark Mentovai. Don't put static variables inline. 2009-07-17 05:37:09 +00:00
frames-inl.h Use stack frame marker constants to mark arguments adaptor frame. 2009-08-27 07:44:37 +00:00
frames.cc Fix warnings on Win64. 2009-11-11 09:50:06 +00:00
frames.h Reverting 3174. Aka reapplying 3150, 3151 and 3159. Aka api accessor 2009-11-04 08:51:48 +00:00
func-name-inferrer.cc Split nested namespaces declaration in two lines in accordance with C++ Style Guide. 2009-05-25 10:05:56 +00:00
func-name-inferrer.h Split nested namespaces declaration in two lines in accordance with C++ Style Guide. 2009-05-25 10:05:56 +00:00
global-handles.cc Made iteration of global handles more efficient on scavenges. 2009-11-05 15:12:36 +00:00
global-handles.h Fix warnings on Win64. 2009-11-11 09:50:06 +00:00
globals.h Allow a platform to indicate that some CPU features are always 2009-11-13 12:32:57 +00:00
handles-inl.h Fix strict aliasing crash on x64. 2009-08-14 17:19:51 +00:00
handles.cc Make accessors for hidden properties object not touch interceptors. 2009-11-12 16:34:52 +00:00
handles.h Obey the flag --lazy in the toplevel code generator. 2009-11-04 17:59:24 +00:00
hashmap.cc Fix some defects identifies by Coverity Prevent. All are false 2009-07-22 11:29:38 +00:00
hashmap.h Split nested namespaces declaration in two lines in accordance with C++ Style Guide. 2009-05-25 10:05:56 +00:00
heap-inl.h Update the Idle collector to do a full GC 2009-08-25 02:54:39 +00:00
heap-profiler.cc Made iteration of global handles more efficient on scavenges. 2009-11-05 15:12:36 +00:00
heap-profiler.h Heap profiler improvements. 2009-10-26 10:51:30 +00:00
heap.cc Fixed a few cases where allocators did not respect always_allocate, 2009-11-11 15:25:51 +00:00
heap.h Remove sliced string string type 2009-11-10 13:23:05 +00:00
ic-inl.h Rename a constant to kCallTargetAddressOffset 2009-09-11 12:41:27 +00:00
ic.cc Fix warnings on Win64. 2009-11-11 09:50:06 +00:00
ic.h Added infrastructure for optimizing new CanvasArray types in WebGL 2009-10-20 15:26:17 +00:00
interpreter-irregexp.cc Fix warnings on Win64. 2009-11-11 09:50:06 +00:00
interpreter-irregexp.h Split nested namespaces declaration in two lines in accordance with C++ Style Guide. 2009-05-25 10:05:56 +00:00
json-delay.js Remove unused parameter. 2009-05-18 13:16:48 +00:00
jsregexp.cc http://codereview.chromium.org/371067 thanks to Jan de Mooij 2009-11-09 13:21:14 +00:00
jsregexp.h * Fix regexp benchmark regression where we were doing work to 2009-11-09 10:01:23 +00:00
jump-target-inl.h Change the register allocator so that it no longer tracks references 2009-05-27 07:53:47 +00:00
jump-target.cc Eliminate most of the jump target jumping, branching, and binding 2009-08-10 11:13:34 +00:00
jump-target.h Untangle some #include dependencies. 2009-10-15 15:01:36 +00:00
list-inl.h Split nested namespaces declaration in two lines in accordance with C++ Style Guide. 2009-05-25 10:05:56 +00:00
list.h Fix warnings on Win64. 2009-11-11 09:50:06 +00:00
log-inl.h Attempt to reduce performance penalty for logging and profiling 2009-06-24 13:09:34 +00:00
log-utils.cc Fix warnings on Win64. 2009-11-11 09:50:06 +00:00
log-utils.h Fix warnings on Win64. 2009-11-11 09:50:06 +00:00
log.cc Log the stubs found in the snapshot so the profiler can give 2009-11-11 12:35:50 +00:00
log.h Log the stubs found in the snapshot so the profiler can give 2009-11-11 12:35:50 +00:00
macro-assembler.h Change the functions named AllocateObjectInNewSpace to AllocateInNewSpace. 2009-09-30 09:24:46 +00:00
macros.py Change the special handling of typeof comparisons to strings for 2009-11-05 16:08:48 +00:00
mark-compact.cc Fix warnings on Win64. 2009-11-11 09:50:06 +00:00
mark-compact.h Change to limit the amount of space we waste due to fragmentation 2009-09-08 07:35:23 +00:00
math.js erikcorry: Remember to put objects back in fast case after adding functions. 2009-08-13 14:04:49 +00:00
memory.h Add near calls (32-bit displacement) to Code objects on X64 platform. 2009-10-06 13:11:05 +00:00
messages.cc Add support for forceful termination of JavaScript execution. 2009-08-19 15:14:11 +00:00
messages.h Split nested namespaces declaration in two lines in accordance with C++ Style Guide. 2009-05-25 10:05:56 +00:00
messages.js Stop throwing exceptions for out-of-range accesses to CanvasArrays. 2009-10-23 09:19:17 +00:00
mirror-delay.js Report function source position via JSON protocol 2009-10-30 16:38:37 +00:00
mksnapshot.cc * Do a GC in mksnapshot to get rid of some extraneous junk. 2009-11-03 21:00:43 +00:00
natives.h Split nested namespaces declaration in two lines in accordance with C++ Style Guide. 2009-05-25 10:05:56 +00:00
objects-debug.cc Restore info needed to register profile ticks in functions from 2009-11-11 09:19:39 +00:00
objects-inl.h Make accessors for hidden properties object not touch interceptors. 2009-11-12 16:34:52 +00:00
objects.cc Make accessors for hidden properties object not touch interceptors. 2009-11-12 16:34:52 +00:00
objects.h Remove trailing whitespace from objects.h 2009-11-12 16:52:48 +00:00
oprofile-agent.cc Added utility scripts for running oprofile in tools/oprofile. 2009-06-16 12:08:59 +00:00
oprofile-agent.h Split nested namespaces declaration in two lines in accordance with C++ Style Guide. 2009-05-25 10:05:56 +00:00
parser.cc Fix inline constructor code bailout. 2009-11-11 09:00:09 +00:00
parser.h Remove a redundant field in the FunctionLiteral class. The boolean 2009-10-13 09:37:17 +00:00
platform-freebsd.cc Allow a platform to indicate that some CPU features are always 2009-11-13 12:32:57 +00:00
platform-linux.cc Allow a platform to indicate that some CPU features are always 2009-11-13 12:32:57 +00:00
platform-macos.cc Allow a platform to indicate that some CPU features are always 2009-11-13 12:32:57 +00:00
platform-nullos.cc Allow a platform to indicate that some CPU features are always 2009-11-13 12:32:57 +00:00
platform-posix.cc X64/Win64: Alternative implementation of fmod in general. 2009-10-23 09:18:19 +00:00
platform-win32.cc Allow a platform to indicate that some CPU features are always 2009-11-13 12:32:57 +00:00
platform.h Allow a platform to indicate that some CPU features are always 2009-11-13 12:32:57 +00:00
prettyprinter.cc Remove an unused enumeration value. 2009-11-05 17:25:50 +00:00
prettyprinter.h Initial implementation of printing the AST as a JSON string. This 2009-10-12 15:06:28 +00:00
property.cc Remove the descriptor stream abstractions. 2009-07-10 19:25:18 +00:00
property.h Remove the descriptor stream abstractions. 2009-07-10 19:25:18 +00:00
regexp-delay.js Optimize %IsConstructCall() on IA-32. 2009-06-29 08:14:06 +00:00
regexp-macro-assembler-irregexp-inl.h ARM native regexps. 2009-08-31 12:40:37 +00:00
regexp-macro-assembler-irregexp.cc ARM native regexps. 2009-08-31 12:40:37 +00:00
regexp-macro-assembler-irregexp.h ARM native regexps. 2009-08-31 12:40:37 +00:00
regexp-macro-assembler-tracer.cc X64: Implement RegExp natively. 2009-08-14 11:24:32 +00:00
regexp-macro-assembler-tracer.h ARM native regexps. 2009-08-31 12:40:37 +00:00
regexp-macro-assembler.cc Remove sliced string string type 2009-11-10 13:23:05 +00:00
regexp-macro-assembler.h Handle the list of code-stub types using macro expansion. 2009-10-26 12:26:42 +00:00
regexp-stack.cc Fix warnings on Win64. 2009-11-11 09:50:06 +00:00
regexp-stack.h Fix warnings on Win64. 2009-11-11 09:50:06 +00:00
register-allocator-inl.h Change the register allocator so that it no longer tracks references 2009-05-27 07:53:47 +00:00
register-allocator.cc Patch by Mark Mentovai. Don't put static variables inline. 2009-07-17 05:37:09 +00:00
register-allocator.h Patch by Mark Mentovai. Don't put static variables inline. 2009-07-17 05:37:09 +00:00
rewriter.cc Split the AST LoopStatement type into separate types for do/while, 2009-10-12 13:14:06 +00:00
rewriter.h Split nested namespaces declaration in two lines in accordance with C++ Style Guide. 2009-05-25 10:05:56 +00:00
runtime.cc Fixed a few cases where allocators did not respect always_allocate, 2009-11-11 15:25:51 +00:00
runtime.h Remove sliced string string type 2009-11-10 13:23:05 +00:00
runtime.js Add fast check for NaN in NumberCompare slow case. 2009-10-28 10:19:56 +00:00
scanner.cc Reapply 3246 and 3247 after fixing valgrind warning. 2009-11-10 10:23:23 +00:00
scanner.h Fix warnings on Win64. 2009-11-11 09:50:06 +00:00
SConscript Keep natives source code in external strings instead of putting 2009-11-06 13:48:33 +00:00
scopeinfo.cc Fix warnings on Win64. 2009-11-11 09:50:06 +00:00
scopeinfo.h Implemented a ContextSlotCache for compiled code. 2009-06-22 08:09:57 +00:00
scopes.cc Fix warnings on Win64. 2009-11-11 09:50:06 +00:00
scopes.h Fix lint error. 2009-08-19 12:44:45 +00:00
serialize.cc Allow a platform to indicate that some CPU features are always 2009-11-13 12:32:57 +00:00
serialize.h Allow a platform to indicate that some CPU features are always 2009-11-13 12:32:57 +00:00
shell.h Split nested namespaces declaration in two lines in accordance with C++ Style Guide. 2009-05-25 10:05:56 +00:00
simulator.h Rework the way we handle the fact that the ARM simulator uses a 2009-11-05 13:27:21 +00:00
smart-pointer.h Split nested namespaces declaration in two lines in accordance with C++ Style Guide. 2009-05-25 10:05:56 +00:00
snapshot-common.cc Introduce a switch for the new snapshot code and switch 2009-10-30 10:23:12 +00:00
snapshot-empty.cc Split nested namespaces declaration in two lines in accordance with C++ Style Guide. 2009-05-25 10:05:56 +00:00
snapshot.h New snapshot framework. Doesn't work on ARM yet (code targets 2009-10-27 11:54:01 +00:00
spaces-inl.h applied patch 2009-10-20 23:25:05 +00:00
spaces.cc Fix warnings on Win64. 2009-11-11 09:50:06 +00:00
spaces.h Fix warnings on Win64. 2009-11-11 09:50:06 +00:00
string-stream.cc Derive string size constants 2009-10-28 13:10:36 +00:00
string-stream.h Add initial version of retainers heap profile. 2009-09-16 13:41:24 +00:00
string.js Remove sliced string string type 2009-11-10 13:23:05 +00:00
stub-cache.cc Reverting 3174. Aka reapplying 3150, 3151 and 3159. Aka api accessor 2009-11-04 08:51:48 +00:00
stub-cache.h Generate specialized constructor code for constructing simple objects. 2009-08-26 12:22:44 +00:00
token.cc Removed (now) unused Token-lookup code. 2009-11-05 10:24:20 +00:00
token.h Removed (now) unused Token-lookup code. 2009-11-05 10:24:20 +00:00
top.cc Rework the way we handle the fact that the ARM simulator uses a 2009-11-05 13:27:21 +00:00
top.h Rework the way we handle the fact that the ARM simulator uses a 2009-11-05 13:27:21 +00:00
unicode-inl.h Cleanup include guards: 2009-05-04 13:36:43 +00:00
unicode.cc Small cleanup to Utf8::CalculateValue: 2009-07-13 11:17:51 +00:00
unicode.h Cleanup include guards: 2009-05-04 13:36:43 +00:00
uri.js * Remove non-Open Source code from Douglas Crockford. 2009-09-23 12:32:24 +00:00
usage-analyzer.cc Split the AST LoopStatement type into separate types for do/while, 2009-10-12 13:14:06 +00:00
usage-analyzer.h Split nested namespaces declaration in two lines in accordance with C++ Style Guide. 2009-05-25 10:05:56 +00:00
utils.cc Fix warnings on Win64. 2009-11-11 09:50:06 +00:00
utils.h Fix warnings on Win64. 2009-11-11 09:50:06 +00:00
v8-counters.cc Split nested namespaces declaration in two lines in accordance with C++ Style Guide. 2009-05-25 10:05:56 +00:00
v8-counters.h Added infrastructure for optimizing new CanvasArray types in WebGL 2009-10-20 15:26:17 +00:00
v8.cc Restore info needed to register profile ticks in functions from 2009-11-11 09:19:39 +00:00
v8.h New snapshot framework. Doesn't work on ARM yet (code targets 2009-10-27 11:54:01 +00:00
v8natives.js Remove special-case for arguments.toString to match ES5 2009-11-11 11:28:37 +00:00
v8threads.cc Ensure V8 is initialized before locking and unlocking threads. 2009-10-02 11:39:56 +00:00
v8threads.h * Fix memory leaks caused by thread local data being lost. 2009-09-28 12:25:21 +00:00
variables.cc Allocate arguments object on-demand instead of at function entry. 2009-06-24 08:01:38 +00:00
variables.h Remove CallEval as a subclass of the Call AST node type. We were not 2009-09-29 13:28:30 +00:00
version.cc Prepare to push to trunk. We are now working on 1.3.19 2009-10-29 14:33:51 +00:00
version.h Split nested namespaces declaration in two lines in accordance with C++ Style Guide. 2009-05-25 10:05:56 +00:00
virtual-frame.cc Removed static type inference and add a dynamic test for string addition. 2009-06-24 12:46:00 +00:00
virtual-frame.h - Add a "#error Unsupported target architecture." where needed. A chain of 2009-06-29 17:07:30 +00:00
zone-inl.h Eliminate recursion in ZoneSplayTree traversal. 2009-09-21 07:12:38 +00:00
zone.cc Fix some defects identifies by Coverity Prevent. All are false 2009-07-22 11:29:38 +00:00
zone.h Fix warnings on Win64. 2009-11-11 09:50:06 +00:00