- 28 Jun, 2011 1 commit
-
-
ager@chromium.org authored
* src/hydrogen.cc (HEnvironment::CopyForInlining): As the code for both the ::HYDROGEN and ::LITHIUM compilation phases is the same, just use one code path and remove the arg. * src/hydrogen.h (HEnvironment): Remove now-unused CompilationPhase enum type and arg to CopyForInlining. * src/arm/lithium-arm.cc (LChunkBuilder::DoEnterInlined): * src/ia32/lithium-ia32.cc (LChunkBuilder::DoEnterInlined): * src/x64/lithium-x64.cc (LChunkBuilder::DoEnterInlined): Adapt callers. * AUTHORS: Add Igalia. BUG= TEST=I ran tools/test.py. Review URL: http://codereview.chromium.org/7272002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8442 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 27 Jun, 2011 1 commit
-
-
sgjesse@chromium.org authored
The hydrogen stack check instruction is now added to each loop and the stack check handling on the back edge has been removed. This change causes regression on small tight loops as the stack check is now at the top of the loop instead of at the bottom, and that requires one additional unconditional jump per loop iteration. However the reason for this change is to avoid worse regressions for upcoming changes to correctly support debugger break in optimized code. R=fschneider@chromium.org BUG=none TEST=none Review URL: http://codereview.chromium.org//7216009 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8428 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 22 Jun, 2011 2 commits
-
-
whesse@chromium.org authored
The improvement is included in the port of r8367 to earlier versions of V8. Review URL: http://codereview.chromium.org/7229011 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8370 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
whesse@chromium.org authored
BUG=v8:1407 TEST= Review URL: http://codereview.chromium.org/7231008 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8367 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 21 Jun, 2011 1 commit
-
-
fschneider@chromium.org authored
We had two instructions HCompareJsObjectEq and HCompareSymbolEq that behave exactly the same. I removed one and renamed the remaining instruction into HCompareObjectEq. Review URL: http://codereview.chromium.org/7206040 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8349 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 20 Jun, 2011 1 commit
-
-
jkummerow@chromium.org authored
Review URL: http://codereview.chromium.org/7170012 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8325 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 10 Jun, 2011 1 commit
-
-
fschneider@chromium.org authored
This change makes the number of successors of a control instruction configurable with a template parameter and changes the existing instructions to use it. To iterate over all successors I added an iterator instead of always calling First- and SecondSuccessor. Review URL: http://codereview.chromium.org/7114004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8262 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 09 Jun, 2011 1 commit
-
-
danno@chromium.org authored
Dispatch on ElementsKind rather than ExternalArrayType when generating ICs and Crankshaft code for many element operations. This is preparation to be able to share more code in the various element accessor implementations. Merge logic to maintain external array and fast element stub caches. BUG=none TEST=none Review URL: http://codereview.chromium.org/7112010 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8244 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 08 Jun, 2011 1 commit
-
-
fschneider@chromium.org authored
Instructions that have side effects can never have EmitAtUses() true. These instructions (CmpTAndBranch, InstanceOfAndBranch) are therefore never generated and can therefor be safely removed. Review URL: http://codereview.chromium.org/7031074 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8220 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 06 Jun, 2011 2 commits
-
-
fschneider@chromium.org authored
Original cl: http://codereview.chromium.org/7105015 I'm removing the test GlobalLoadICGC test that was introduced for testing inlined global cell loads (in the classic backend) and has an invalid assumption about the number of global objects referenced from a v8 context. We don't have this feature with Crankshaft anymore. Review URL: http://codereview.chromium.org/7112032 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8185 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kmillikin@chromium.org authored
The Advance() function of the class responsible for iterating environment uses didn't always advance as far as it could (relying on the HasNext predicate to finish advancing). This is brittle. The HasNext predicate also didn't advance as far as it could when it was at the end of an environment level. This is a bug. R=jkummerow@chromium.org BUG= TEST= Review URL: http://codereview.chromium.org/6993023 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8181 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 01 Jun, 2011 2 commits
-
-
fschneider@chromium.org authored
It breaks test when running with nosnapshot. TBR=ager@chromium.org Review URL: http://codereview.chromium.org/7027029 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8145 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
fschneider@chromium.org authored
If type-feedback indicates that an expression was never executed in the non-optimized code, we insert a forced deoptimization right away to enable re-optimization if we ever hit this path. With this change we still continue to build the graph. As a next step, we should remove the dead code after the deoptimize. I had to remove one assert about the optimization status in a test since we now immediately deoptimize after exiting the loop that triggers OSR. Also remove a restriction that control-flow from an inlined function in a test context always reaches both true- and false-target. Review URL: http://codereview.chromium.org/7105015 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8140 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 31 May, 2011 1 commit
-
-
kmillikin@chromium.org authored
Introduce a Hydrogen value for the value denoted by the function name. R=fschneider@chromium.org,mnaganov@chromium.org BUG= TEST= Review URL: http://codereview.chromium.org/7083024 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8121 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 30 May, 2011 1 commit
-
-
fschneider@chromium.org authored
The approach is to handle the common case in the optimizing compiler and to bailout for the rare corner cases. This is done by initializing all local const-variables with the hole value and disallowing any use of the hole value statically. Review URL: http://codereview.chromium.org/6026006 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8104 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 26 May, 2011 1 commit
-
-
danno@chromium.org authored
Implement truncation of double and tagged values when assigning to an element of a typed arrays in order to avoid depots. BUG=1313 TEST=test/mjsunit/external-array.js Review URL: http://codereview.chromium.org/6961019 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8077 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 24 May, 2011 1 commit
-
-
ager@chromium.org authored
Only IA32 version for now. I'll start porting. Strict mode functions are to get 'undefined' as the receiver when called with an implicit receiver. Modes are bad! It forces us to have checks on all function calls. This change attempts to limit the cost by passing information about whether or not a call is with an implicit or explicit receiver in ecx as part of the calling convention. The cost is setting ecx on all calls and checking ecx on entry to strict mode functions. Implicit/explicit receiver state has to be maintained by ICs. Various stubs have to not clobber ecx or save and restore it. CallFunction stub needs to check if the receiver is implicit when it doesn't know from the context. Review URL: http://codereview.chromium.org/7039036 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8040 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 20 May, 2011 1 commit
-
-
svenpanne@chromium.org authored
Review URL: http://codereview.chromium.org/7055006 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7968 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 17 May, 2011 2 commits
-
-
whesse@chromium.org authored
Add HForceRepresentation, to represent the implicit ToNumber applied to the input of a count operation. BUG=v8:1389 TEST= Review URL: http://codereview.chromium.org/7033008 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7913 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
danno@chromium.org authored
TBR=kmillikin@chromium.org BUG=none TEST=none Review URL: http://codereview.chromium.org/7019008 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7903 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 16 May, 2011 1 commit
-
-
danno@chromium.org authored
BUG=1313 TEST=test/mjsunit/external-array.js Review URL: http://codereview.chromium.org/7014033 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7901 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 11 May, 2011 4 commits
-
-
vitalyr@chromium.org authored
Review URL: http://codereview.chromium.org/7000021 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7865 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
whesse@chromium.org authored
BUG= TEST= Review URL: http://codereview.chromium.org/6982023 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7860 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
vitalyr@chromium.org authored
Review URL: http://codereview.chromium.org/6995046 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7856 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
whesse@chromium.org authored
This reverts r7810, thus recommitting 7807. BUG= TEST= Review URL: http://codereview.chromium.org/6963009 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7851 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 10 May, 2011 1 commit
-
-
jkummerow@chromium.org authored
This CL is based on and obsoletes CL 6879037. TEST=mjsunit/external-array.js Review URL: http://codereview.chromium.org/6902112 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7844 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 06 May, 2011 2 commits
-
-
whesse@chromium.org authored
This reverts commit r7807. TBR=kmillikin@chromium.org. BUG= TEST= Review URL: http://codereview.chromium.org/6928061 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7810 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
whesse@chromium.org authored
Use a special slot for HContext, and fetch the value from there each time it is used. Allocate space for special slots in every HEnvironment. Fill them with constant undefined. Do not copy them to LEnvironment. BUG= TEST= Review URL: http://codereview.chromium.org/6929066 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7807 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 04 May, 2011 1 commit
-
-
whesse@chromium.org authored
Tiny refactoring - change compilation phase parameter for CopyForInlining from a boolean to an enum. BUG= TEST= Review URL: http://codereview.chromium.org/6913021 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7782 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 27 Apr, 2011 1 commit
-
-
fschneider@chromium.org authored
This reduces the binary size by making the Is* type-test functions non-virtual. I had to change Gap and Label instructions to have a common abstract superclass because both act as gap-instructions for the register allocator. Review URL: http://codereview.chromium.org/6880204 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7691 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 26 Apr, 2011 1 commit
-
-
vegorov@chromium.org authored
In JavaScriptFrame::Print avoid printing optimized frame as if it is unoptimized. Review URL: http://codereview.chromium.org/6894043 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7682 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 21 Apr, 2011 1 commit
-
-
jkummerow@chromium.org authored
BUG=None TEST=mjsunit/external-arrays.js; updated cctest; existing unit tests Review URL: http://codereview.chromium.org/6879009 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7675 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 20 Apr, 2011 2 commits
-
-
kmillikin@chromium.org authored
Rather than representing a use as a pointer to an HValue and then searching for the specific (ambiguous) operand, we now represent a use as a pair of an HValue and the input operand index. Additionally, use a linked list instead of a growable array list since we never use random access. This allows us to remove a bunch of similarly named and subtly different functions from the HValue API. The cost in extra zone allocation per use is partially offset by reusing use list nodes when replacing a use of one value with another. R=danno@chromium.org,fschneider@chromium.org Review URL: http://codereview.chromium.org/6881044 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7674 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
fschneider@chromium.org authored
Review URL: http://codereview.chromium.org/6873106 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7670 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 19 Apr, 2011 1 commit
-
-
fschneider@chromium.org authored
Instead we use the first part of the first gap after the label to insert gap-moves for resolving control-flow and phis. Review URL: http://codereview.chromium.org/6873075 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7665 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 15 Apr, 2011 2 commits
-
-
fschneider@chromium.org authored
Original code review: http://codereview.chromium.org/6838018/ TBR=ager@chromium.org Review URL: http://codereview.chromium.org/6869005 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7624 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
vitalyr@chromium.org authored
o The type recording binary stub got a new type for string + string. o Added HStringAdd and LStringAdd based on the new type info. o Started using HValue types to avoid unneccesary checks. Review URL: http://codereview.chromium.org/6852015 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7622 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 14 Apr, 2011 1 commit
-
-
fschneider@chromium.org authored
For instructions that are marked as calls we can use: 1. Fixed input registers 2. Use-at-start policy (register, memory or constant). (Memory or constant would not need the use-at-start policy, but not specifying use-at-start prevents the allocator from using a register even if there is one available. That's why use-at-start is required and guarded by assertion) Review URL: http://codereview.chromium.org/6853010 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7616 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 08 Apr, 2011 1 commit
-
-
fschneider@chromium.org authored
Add ToBoolean-conversion of constants in Crankshaft and use it when generating a branch based on a constant. Review URL: http://codereview.chromium.org/6801050 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7552 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 06 Apr, 2011 1 commit
-
-
lrn@chromium.org authored
Remove unneeded checks for SSE2 in X64 code. Remove an unneeded check for SSE3 where the X64 code doesn't use SSE3 features. Review URL: http://codereview.chromium.org/6793040 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7508 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-