- 22 Aug, 2013 2 commits
-
-
yangguo@chromium.org authored
Also introduced macros for flag aliases for temporary backwards compatibility. R=hpayer@chromium.org BUG= Review URL: https://codereview.chromium.org/23014007 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16280 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
titzer@chromium.org authored
Fix deoptimization bug, where recursive call can frighten and confuse the unwitting, simple, poor caveman that is Runtime_NotifyDeoptimized. BUG=274164 R=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/23201016 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16273 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 07 Aug, 2013 1 commit
-
-
mstarzinger@chromium.org authored
This change implements a simple data-flow analysis pass over captured objects to the existing escape analysis. It tracks the state of values in the Hydrogen graph through CapturedObject marker instructions that are used to construct an appropriate translation for the deoptimizer to be able to materialize these objects again. This can be considered a combination of scalar replacement of loads and stores on captured objects and sinking of unused allocations. R=titzer@chromium.org TEST=mjsunit/compiler/escape-analysis Review URL: https://codereview.chromium.org/21055011 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16098 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 29 Jul, 2013 1 commit
-
-
titzer@chromium.org authored
BUG= R=mstarzinger@chromium.org, svenpanne@chromium.org Review URL: https://codereview.chromium.org/20241005 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15934 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 22 Jul, 2013 1 commit
-
-
yangguo@chromium.org authored
R=mvstanton@chromium.org BUG= Review URL: https://codereview.chromium.org/19807002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15793 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 19 Jul, 2013 1 commit
-
-
mstarzinger@chromium.org authored
The current usage of this runtime function is broken as it does not prevent inlining of the affected function but rather bails out from the whole unit of compilation after trying to inline affected functions. This simplifies said runtime function to avoid accidental misuse. R=titzer@chromium.org TEST=mjsunit/never-optimize Review URL: https://codereview.chromium.org/19776006 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15762 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 11 Jul, 2013 1 commit
-
-
titzer@chromium.org authored
BUG= Review URL: https://codereview.chromium.org/18214005 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15632 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 08 Jul, 2013 2 commits
-
-
jkummerow@chromium.org authored
BUG=chromium:167394 R=verwaest@chromium.org Review URL: https://codereview.chromium.org/18838002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15553 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
jkummerow@chromium.org authored
R=rossberg@chromium.org Review URL: https://codereview.chromium.org/18434004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15546 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 26 Jun, 2013 1 commit
-
-
titzer@chromium.org authored
Change PC for OSR entries to point to something more sensible (i.e. the first UnknownOsrValue), removing the need to record spilled OSR values and the need for duplicate deopt entries. Review URL: https://codereview.chromium.org/16381006 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15331 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 20 Jun, 2013 1 commit
-
-
yangguo@chromium.org authored
Parallel recompilation is usually disabled on single-core systems. R=jkummerow@chromium.org BUG=v8:2733 Review URL: https://codereview.chromium.org/17261021 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15231 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 12 Jun, 2013 2 commits
-
-
mstarzinger@chromium.org authored
This allows the deoptimizer to materialize objects (e.g. the arguments object) while deopting without having a consective stack area holding the object values. The LEnvironment explicitly tracks locations for these values and preserves them in the translation. R=svenpanne@chromium.org TEST=mjsunit/compiler/inline-arguments Review URL: https://codereview.chromium.org/16779004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15087 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
yangguo@chromium.org authored
BUG=248076 R=ulan@chromium.org Review URL: https://chromiumcodereview.appspot.com/16782004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15077 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 11 Jun, 2013 1 commit
-
-
yangguo@chromium.org authored
This includes r15032, r15030 and r15005. R=ulan@chromium.org BUG=248076 Review URL: https://chromiumcodereview.appspot.com/16482004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15061 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 07 Jun, 2013 1 commit
-
-
yangguo@chromium.org authored
R=ulan@chromium.org BUG= Review URL: https://chromiumcodereview.appspot.com/16542003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15005 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 22 May, 2013 1 commit
-
-
mstarzinger@chromium.org authored
R=jkummerow@chromium.org Review URL: https://codereview.chromium.org/15711004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14744 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 14 May, 2013 1 commit
-
-
titzer@chromium.org authored
Improve dead code elimination by transitively marking live code and removing all dead code. Replace unreachable phi removal algorithm with the new dead code elimination pass, which is more thorough. Review URL: https://codereview.chromium.org/14676011 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14661 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 14 Mar, 2013 1 commit
-
-
mstarzinger@chromium.org authored
R=yangguo@chromium.org BUG=v8:1322 TEST=mjsunit/compiler/inline-literals Review URL: https://codereview.chromium.org/10702036 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13945 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 12 Mar, 2013 1 commit
-
-
yangguo@chromium.org authored
R=jkummerow@chromium.org BUG= Review URL: https://chromiumcodereview.appspot.com/12488006 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13917 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 11 Mar, 2013 1 commit
-
-
svenpanne@chromium.org authored
The predicate CanBeSpilled had a bug, prohibiting the necessary spilling and correct splitting of live ranges. Removed a redundant assertion immediately done by the callee anyway. Thanks to Slava for help with that issue and the entertaining historical background of the whole story... ;-) BUG=177883 Review URL: https://codereview.chromium.org/12631012 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13891 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 27 Feb, 2013 1 commit
-
-
ulan@chromium.org authored
BUG=none Review URL: https://chromiumcodereview.appspot.com/12319113 Patch from Hans Wennborg <hans@chromium.org>. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13748 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 14 Feb, 2013 2 commits
-
-
mstarzinger@chromium.org authored
R=verwaest@chromium.org BUG=v8:2539 TEST=mjsunit/regress/regress-2539 Review URL: https://codereview.chromium.org/12255033 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13673 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
mstarzinger@chromium.org authored
This allows Crankshaft to completely inline a f.apply() dispatch if the exact number of arguments is known and the function is constant. The deoptimizer doesn't generate the f.apply() frame during deoptimization, so the materialized frames look like f.apply() did a tailcall. R=jkummerow@chromium.org TEST=mjsunit/compiler/inline-function-apply Review URL: https://codereview.chromium.org/12263004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13665 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 25 Jan, 2013 1 commit
-
-
mstarzinger@chromium.org authored
This allows Crankshaft to allow inlining of multiple different closures that were all derived from the same shared function info. This pattern appears when libraries provide generic closures that are used over and over again at different call-sites. R=jkummerow@chromium.org TEST=mjsunit/compiler/inline-closures Review URL: https://codereview.chromium.org/12071002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13522 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 24 Jan, 2013 1 commit
-
-
mstarzinger@chromium.org authored
This allows Crankshaft to generate monomorphic loads when the receiver type is statically known even though the load site has polymorphic type feedback. This applies to inlined constructor calls and literals. R=jkummerow@chromium.org TEST=mjsunit/compiler/property-static Review URL: https://codereview.chromium.org/12051058 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13500 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 22 Jan, 2013 1 commit
-
-
mstarzinger@chromium.org authored
This enables Crankshaft to use HConstant for loading constant functions on the prototype chain when building a monomorphic load. This pattern appears in several JavaScript frameworks. R=svenpanne@chromium.org TEST=mjsunit/compiler/proto-chain-constant Review URL: https://codereview.chromium.org/12052008 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13463 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 21 Jan, 2013 1 commit
-
-
yangguo@chromium.org authored
HCheckPrototypeMaps currently records the prototype and the holder of the prototype chain (both ends of the chain) and assumes that the chain elements and their maps did not change in during the entirety of Crankshaft. The actual traversal of the prototype chain happens in Lithium at code generation. With parallel compilation, this assumption is not longer correct. R=mstarzinger@chromium.org BUG= Review URL: https://chromiumcodereview.appspot.com/11864013 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13454 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 14 Nov, 2012 1 commit
-
-
ulan@chromium.org authored
Review URL: https://chromiumcodereview.appspot.com/11293061 Patch from Hans Wennborg <hans@chromium.org>. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12958 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 05 Nov, 2012 2 commits
-
-
ulan@chromium.org authored
of the form ((x >>> i) | (x << (32 - i))). This CL is based on https://chromiumcodereview.appspot.com/10984057/ by Jay Conrod <dconrod@codeaurora.org>. R=danno@chromium.org,mstarzinger@chromium.org,dconrod@codeaurora.org Review URL: https://chromiumcodereview.appspot.com/11033005 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12855 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
svenpanne@chromium.org authored
Previously Crankshaft emitted a generic load for these, now we emit a load of a named field, guarded by a proto chain check. LCheckPrototypeMaps now returns the holder, which is for free, because it already had to check its map as the last step, anyway. This is in sync with what StubCompiler::CheckPrototype does. Review URL: https://codereview.chromium.org/11338030 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12847 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 24 Sep, 2012 2 commits
-
-
jkummerow@chromium.org authored
Review URL: https://codereview.chromium.org/10969063 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12593 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
jkummerow@chromium.org authored
Review URL: https://codereview.chromium.org/10956059 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12592 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 12 Sep, 2012 1 commit
-
-
mstarzinger@chromium.org authored
This fixes materialization of arguments objects for strict mode functions during deoptimization. We materialize arguments from the stack area where optimized code pushes the arguments when entering the inlined environment. For adapted invocations we use the arguments adaptor frame for materialization. R=svenpanne@chromium.org BUG=v8:2261 TEST=mjsunit/regress/regress-2261,mjsunit/compiler/inline-arguments Review URL: https://chromiumcodereview.appspot.com/10908194 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12489 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 28 Aug, 2012 1 commit
-
-
rossberg@chromium.org authored
R=verwaest@chromium.org BUG=v8:2261 Review URL: https://chromiumcodereview.appspot.com/10896005 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12399 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 23 Aug, 2012 1 commit
-
-
vegorov@chromium.org authored
xmm0 is not saved across runtime call on x64 because MacroAssembler::EnterExitFrameEpilogue preserves only allocatable XMM registers unlike on ia32 where it preserves all registers. Cleanup handling of shifts: SHR can deoptimize only when its a shift by 0, all other shift never deoptimize. Fix type inference for i-to-t change instruction. On X64 this ensures that write-barrier is generated correctly. R=danno@chromium.org Review URL: https://chromiumcodereview.appspot.com/10868032 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12373 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 22 Aug, 2012 1 commit
-
-
vegorov@chromium.org authored
Safe operations are those that either do not observe unsignedness or have special support for uint32 values: - all binary bitwise operations: they perform ToInt32 on inputs; - >> and << shifts: they perform ToInt32 on left hand side and ToUint32 on right hand side; - >>> shift: it performs ToUint32 on both inputs; - stores to integer external arrays (not pixel, float or double ones): these stores are "bitwise"; - HChange: special support added for conversions of uint32 values to double and tagged values; - HSimulate: special support added for deoptimization with uint32 values in registers and stack slots; - HPhi: phis that have only safe uses and only uint32 operands are uint32 themselves. BUG=v8:2097 TEST=test/mjsunit/compiler/uint32.js Review URL: https://chromiumcodereview.appspot.com/10778029 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12367 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 17 Aug, 2012 1 commit
-
-
svenpanne@chromium.org authored
Highlights of this CL: * Introduced a new opcode in the deoptimizer for a setter stub frame. * Added a global setter stub for returning after deoptimizing a setter. * We do not need special deopt support for getters, although the getter stub creates an internal frame. The normal machinery works just right for this case, although we generate a stack that can never occur during normal fullcode execution. If this hurts us one day, we can parameterize and reuse the setter deopt machinery. Review URL: https://chromiumcodereview.appspot.com/10855098 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12328 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 16 Aug, 2012 1 commit
-
-
mstarzinger@chromium.org authored
This makes sure that deoptimization really happens in each hydrogen context by not using binary operations but loads instead. This is needed because we cannot clear BinaryOpICs explicitly. R=svenpanne@chromium.org TEST=mjsunit/compiler/inline-construct Review URL: https://chromiumcodereview.appspot.com/10825382 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12315 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 15 Aug, 2012 1 commit
-
-
svenpanne@chromium.org authored
Currently we inline functions with different contexts only on ia32, so we have to move the helper functions for the various contexts to the top level. Further more, "new Object()" seems to prevent inlining, too, so we us a simple object literal. Although things get consistently inlined now, something strange seems to happen in test/effect contexts: The DEOPT output seems to contain too few frames, and we don't get any DEOPT ouput after the first time for those contexts. This has to be investigated... TBR=mstarzinger@chromium.org Review URL: https://chromiumcodereview.appspot.com/10836258 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12312 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 10 Aug, 2012 1 commit
-
-
yangguo@chromium.org authored
R=ulan@chromium.org BUG= Review URL: https://chromiumcodereview.appspot.com/10855099 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12289 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-