- 06 Oct, 2016 8 commits
-
-
mvstanton authored
With this CL, we devolve all Constants introduced as they are with an object handle into * Range - for integers * Nan * MinusZero * OtherNumberConstant - for doubles * HeapConstant We reduce the amount we have to inspect an object handle during optimization. Also, simplifications result. For example, you never have to check if a Range contains a HeapConstant. BUG= Review-Url: https://codereview.chromium.org/2381523002 Cr-Commit-Position: refs/heads/master@{#40041}
-
hablich authored
Revert of [wasm] Refactor import handling for 0xC. (patchset #10 id:180001 of https://codereview.chromium.org/2390113003/ ) Reason for revert: Failes a few GC stress tests.https://chromegw.corp.google.com/i/client.v8/builders/V8%20Linux%20-%20gc%20stress/builds/6253 Original issue's description: > [wasm] Refactor import handling for 0xC. > > Imports and exports in 0xC can be much more than functions, including > tables, memories, and globals. This CL refactors the underlying > organization of imports and exports to support these new import types. > > BUG= > > Committed: https://crrev.com/599f8a83420346d9cba5ff97bd2a7520468207b6 > Cr-Commit-Position: refs/heads/master@{#40033} TBR=mtrofin@chromium.org,ahaas@chromium.org,bradnelson@chromium.org,titzer@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG= Review-Url: https://codereview.chromium.org/2395133002 Cr-Commit-Position: refs/heads/master@{#40038}
-
epertoso authored
R=jarin@chromium.org BUG= Review-Url: https://codereview.chromium.org/2401553002 Cr-Commit-Position: refs/heads/master@{#40035}
-
titzer authored
Imports and exports in 0xC can be much more than functions, including tables, memories, and globals. This CL refactors the underlying organization of imports and exports to support these new import types. BUG= Review-Url: https://codereview.chromium.org/2390113003 Cr-Commit-Position: refs/heads/master@{#40033}
-
mvstanton authored
BUG= R=jarin@chromium.org Review-Url: https://codereview.chromium.org/2393923003 Cr-Commit-Position: refs/heads/master@{#40029}
-
bmeurer authored
The generic implementations for typeof, strict equality and ToBoolean don't need a context, so we can just pass the NoContextConstant (which is Smi zero) instead, to reduce the live ranges for the context. R=mvstanton@chromium.org Review-Url: https://codereview.chromium.org/2400633002 Cr-Commit-Position: refs/heads/master@{#40027}
-
bmeurer authored
Emit code like this cmpq reg, [kRootRegister + offset] when selecting instructions for comparisons with immortal, immovable roots. This reduces register pressure as we don't need to load those roots into registers first. R=jarin@chromium.org TBR=hpayer@chromium.org Review-Url: https://codereview.chromium.org/2396923003 Cr-Commit-Position: refs/heads/master@{#40022}
-
jarin authored
Reland of "[turbofan] Osr value typing + dynamic type checks on entry. (patchset #5 id:80001 of https://codereview.chromium.org/2384113002/ )" Fixes: - Remove OsrGuards on frame specialization (for asm.js). - Handle the rename in the walk for native context. - Fix LoadContext effect wiring for Osr context chains. Review-Url: https://codereview.chromium.org/2388303006 Cr-Commit-Position: refs/heads/master@{#40021}
-
- 05 Oct, 2016 12 commits
-
-
caitp authored
Reland https://codereview.chromium.org/2373983004/, reverted in 4e5a4d93. Reason: CL is not responsible for Win32 Debug failures (see https://build.chromium.org/p/client.v8/builders/V8%20Win32%20-%20debug/builds/5031) ------------------------------------------------------------------------------ Implement the logic for StringIterator.prototype.next in the JSBuiltinReducer in order to allow inlining when the receiver is a JS_STRING_ITERATOR_TYPE map, built ontop of the SimplifiedOperators StringCharCodeAt and the newly added StringFromCodePoint. Also introduces a new StringFromCodePoint simplified op which may be useful for other String builtins, such as String.fromCodePoint() BUG=v8:5388 TBR=bmeurer@chromium.org, mstarzinger@chromium.org Review-Url: https://codereview.chromium.org/2394823003 Cr-Commit-Position: refs/heads/master@{#40008}
-
machenbach authored
Revert of [turbofan] inline %StringIteratorPrototype%.next in JSBuiltinReducer. (patchset #12 id:210001 of https://codereview.chromium.org/2373983004/ ) Reason for revert: [Sheriff] Speculative revert for win dbg: https://build.chromium.org/p/client.v8/builders/V8%20Win32%20-%20debug/builds/5029 Or we have an infra problem. Manual build before seems fine: https://build.chromium.org/p/client.v8/builders/V8%20Win32%20-%20debug/builds/5030 Original issue's description: > [turbofan] inline %StringIteratorPrototype%.next in JSBuiltinReducer. > > Implement the logic for StringIterator.prototype.next in the JSBuiltinReducer in order to allow inlining when the receiver is a JS_STRING_ITERATOR_TYPE map, built ontop of the SimplifiedOperators StringCharCodeAt and the newly added StringFromCodePoint. > > Also introduces a new StringFromCodePoint simplified op which may be useful for other String builtins, such as String.fromCodePoint() > > BUG=v8:5388 > R=bmeurer@chromium.org, mstarzinger@chromium.org > > Committed: https://crrev.com/aed32e0f22353527993de8bceaf246fc744558f5 > Cr-Commit-Position: refs/heads/master@{#39994} TBR=bmeurer@chromium.org,mvstanton@chromium.org,caitp@igalia.com # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:5388 Review-Url: https://codereview.chromium.org/2397753003 Cr-Commit-Position: refs/heads/master@{#39995}
-
caitp authored
Implement the logic for StringIterator.prototype.next in the JSBuiltinReducer in order to allow inlining when the receiver is a JS_STRING_ITERATOR_TYPE map, built ontop of the SimplifiedOperators StringCharCodeAt and the newly added StringFromCodePoint. Also introduces a new StringFromCodePoint simplified op which may be useful for other String builtins, such as String.fromCodePoint() BUG=v8:5388 R=bmeurer@chromium.org, mstarzinger@chromium.org Review-Url: https://codereview.chromium.org/2373983004 Cr-Commit-Position: refs/heads/master@{#39994}
-
bmeurer authored
Properly fold external reference access into memory operands whenever possible, i.e. for accessing the allocation top/limit, similar to what we do in Crankshaft and hand-written native code. This only works when the serializer is disabled, i.e. doesn't apply to the stubs in the snapshot (for now). This reduces register pressure especially around allocations where we'd currently need two registers to hold both the allocation top and limit pointers in registers (on x64). R=epertoso@chromium.org Review-Url: https://codereview.chromium.org/2398603002 Cr-Commit-Position: refs/heads/master@{#39993}
-
jarin authored
Revert of [turbofan] Osr value typing + dynamic type checks on entry. (patchset #5 id:80001 of https://codereview.chromium.org/2384113002/ ) Reason for revert: Tanks the world. Original issue's description: > [turbofan] Osr value typing + dynamic type checks on entry. > > This introduces a new OsrGuard node that is inserted during graph building > to guard the inferred type of the OSR value. > > The type of the OSR value is inferred by running the typer before OSR > deconstruction, and then taking the type from the phi that takes the > OSR value. After the deconstruction, we throw the types away. > > At the moment we only support the SignedSmall OSR type and we always > pick the tagged representation. Later, we might want to support more > types (such as Number) and pick better representations (int32/float64). > > This CL also removes the OSR deconstruction tests because they build > unrealistic graph (no effect chain, no loop termination). I considered > adding the effect chains to the tests, but this would make the tests > even more brittle. > > Committed: https://crrev.com/1f5dc90a900d222da44bee3eff171a2ba1e3c076 > Cr-Commit-Position: refs/heads/master@{#39971} TBR=bmeurer@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review-Url: https://codereview.chromium.org/2395783002 Cr-Commit-Position: refs/heads/master@{#39985}
-
ahaas authored
The implementation of MemorySize with RelocatableInt32Constants is problematic if MemorySize is placed close to a GrowMemory instruction in the code. The use of a runtime function guarantees that the order in which MemorySize and GrowMemory is executed is correct. R=titzer@chromium.org BUG=chromium:651961 TEST=mjsunit/regress/wasm/regression-651961 Committed: https://crrev.com/2c12a9a42d454a36fcd2931fa458d72832eeb689 Review-Url: https://codereview.chromium.org/2386183004 Cr-Original-Commit-Position: refs/heads/master@{#39972} Cr-Commit-Position: refs/heads/master@{#39980}
-
epertoso authored
It is currently being rolled behind the --turbo_verify_machine_graph flag. BUG= Review-Url: https://codereview.chromium.org/2388313003 Cr-Commit-Position: refs/heads/master@{#39976}
-
bmeurer authored
If possible, take the constant map from the (known) native context for JSCreateIterResultObject, so that subsequent map checks can be eliminated in case of iterator inlining. R=jarin@chromium.org BUG=v8:3822 Review-Url: https://codereview.chromium.org/2394783002 Cr-Commit-Position: refs/heads/master@{#39974}
-
ahaas authored
Revert of [wasm] Call a runtime function for a MemorySize instruction. (patchset #2 id:20001 of https://codereview.chromium.org/2386183004/ ) Reason for revert: Patch problem Original issue's description: > [wasm] Call a runtime function for a MemorySize instruction. > > The implementation of MemorySize with RelocatableInt32Constants is > problematic if MemorySize is placed close to a GrowMemory instruction in > the code. The use of a runtime function guarantees that the order in > which MemorySize and GrowMemory is executed is correct. > > R=titzer@chromium.org > BUG=chromium:651961 > TEST=mjsunit/regress/wasm/regression-651961 > > Committed: https://crrev.com/2c12a9a42d454a36fcd2931fa458d72832eeb689 > Cr-Commit-Position: refs/heads/master@{#39972} TBR=titzer@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=chromium:651961 Review-Url: https://codereview.chromium.org/2391223002 Cr-Commit-Position: refs/heads/master@{#39973}
-
ahaas authored
The implementation of MemorySize with RelocatableInt32Constants is problematic if MemorySize is placed close to a GrowMemory instruction in the code. The use of a runtime function guarantees that the order in which MemorySize and GrowMemory is executed is correct. R=titzer@chromium.org BUG=chromium:651961 TEST=mjsunit/regress/wasm/regression-651961 Review-Url: https://codereview.chromium.org/2386183004 Cr-Commit-Position: refs/heads/master@{#39972}
-
jarin authored
This introduces a new OsrGuard node that is inserted during graph building to guard the inferred type of the OSR value. The type of the OSR value is inferred by running the typer before OSR deconstruction, and then taking the type from the phi that takes the OSR value. After the deconstruction, we throw the types away. At the moment we only support the SignedSmall OSR type and we always pick the tagged representation. Later, we might want to support more types (such as Number) and pick better representations (int32/float64). This CL also removes the OSR deconstruction tests because they build unrealistic graph (no effect chain, no loop termination). I considered adding the effect chains to the tests, but this would make the tests even more brittle. Review-Url: https://codereview.chromium.org/2384113002 Cr-Commit-Position: refs/heads/master@{#39971}
-
jarin authored
BUG=chromium:625966 Review-Url: https://codereview.chromium.org/2390303002 Cr-Commit-Position: refs/heads/master@{#39970}
-
- 04 Oct, 2016 1 commit
-
-
leszeks authored
In some (rare) cases, the context depth passed to a dynamic variable lookup can be zero. In these cases, the fast path for the lookup (i.e. load from context or global) can always be taken, as there is no need to search the current context. However, with no slow path checks, the bytecode graph builder had a null environment for the slow path, causing segfaults when this graph was built. This patch adds a null check for the slow path environment, and skips building the slow path if the environment is null. BUG=chromium:652186 Review-Url: https://codereview.chromium.org/2385123002 Cr-Commit-Position: refs/heads/master@{#39949}
-
- 03 Oct, 2016 1 commit
-
-
bbudge authored
- Orders machine representations so it's easier to check for floating point. - Orders operand types so it's easier to check for LocationOperands. - Adds IsLocation, IsFPLocation predicates. LOG=N BUG=v8:4124 Review-Url: https://codereview.chromium.org/2382013003 Cr-Commit-Position: refs/heads/master@{#39941}
-
- 30 Sep, 2016 4 commits
-
-
leszeks authored
matching function, creates a hashmap the specialises the case of keys that simply check pointer equality. I measure an average ~1% improvement on Octane code-load. Review-Url: https://codereview.chromium.org/2369963002 Cr-Commit-Position: refs/heads/master@{#39920}
-
jpp authored
This is essentially CL/2275293002, with the difference that the effect dependencies are now updated correctly. BUG= Review-Url: https://codereview.chromium.org/2378773013 Cr-Commit-Position: refs/heads/master@{#39919}
-
ivica.bogosavljevic authored
Port f84f45f9 Original commit message: When zeroing a floating point stack slot, store the zero register directly, rather than storing zero moved to an FP register. BUG= Review-Url: https://codereview.chromium.org/2364903002 Cr-Commit-Position: refs/heads/master@{#39906}
-
jgruber authored
This ports RegExp.prototype.exec to a TurboFan builtin. LastMatchInfo is now stored on the context in order to be able to access it from the stub. Unmodified RegExp instances go through a fast path of accessing the lastIndex property as an in-object field, while modified instances call into runtime for lastIndex loads and stores. Octane/regexp shows slight improvements (between 0 and 5%) with this CL. BUG=v8:5339 Review-Url: https://codereview.chromium.org/2375953002 Cr-Commit-Position: refs/heads/master@{#39899}
-
- 29 Sep, 2016 8 commits
-
-
machenbach authored
Revert of [WASM] Implements catch for the wasm low level exception mechanism. (patchset #16 id:300001 of https://codereview.chromium.org/2275293002/ ) Reason for revert: nosse4 errors: https://build.chromium.org/p/client.v8/builders/V8%20Linux/builds/13524 https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20debug/builds/11215 Original issue's description: > [WASM] Implements catch for the wasm low level exception mechanism. > > BUG= > > Committed: https://crrev.com/93e5425c46453764779bd557628d61fae670027a > Cr-Commit-Position: refs/heads/master@{#39881} TBR=titzer@chromium.org,bradnelson@chromium.org,jpp@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG= Review-Url: https://codereview.chromium.org/2383613002 Cr-Commit-Position: refs/heads/master@{#39884}
-
leszeks authored
Adds a fast-path test and branch for the turbofan graph generated by BytecodeGraphBuilder for dynamic global lookups. BUG=v8:5263 Review-Url: https://codereview.chromium.org/2374983003 Cr-Commit-Position: refs/heads/master@{#39882}
-
jpp authored
BUG= Review-Url: https://codereview.chromium.org/2275293002 Cr-Commit-Position: refs/heads/master@{#39881}
-
leszeks authored
Making new nodes inside of exception-handled blocks fiddles around with the current environment to merge the exception paths. In particular, the current environment pointer is mutated. This patch ensures that when we merge the fast and slow paths of the LdaContextLookup, we actually merge the correct environment and do not accidentally merge the exceptional environment. BUG=chromium:651394 Review-Url: https://codereview.chromium.org/2379043002 Cr-Commit-Position: refs/heads/master@{#39878}
-
jarin authored
Review-Url: https://codereview.chromium.org/2377343002 Cr-Commit-Position: refs/heads/master@{#39875}
-
jarin authored
This is useful for my upcoming work on OSR typing, which needs to create checkpoints (which in turn require environments). Review-Url: https://codereview.chromium.org/2379643003 Cr-Commit-Position: refs/heads/master@{#39869}
-
bmeurer authored
Add simplified operator reduction rule that reduces CheckedTaggedSignedToInt32(ConvertTaggedHoleToUndefined(x)) to CheckedTaggedSignedToInt32(x) which avoids the unnecessary hole to undefined conversion, as the check operation will fail equally on either hole or undefined. BUG=v8:5267 R=jarin@chromium.org Review-Url: https://codereview.chromium.org/2384453002 Cr-Commit-Position: refs/heads/master@{#39863}
-
bmeurer authored
When lowering a JSLoadNamed with an immutable own property of a known constant JSObject, we can just constant fold the load during native context specialization, similar to what Crankshaft does in HOptimizedGraphBuilder::BuildLoadNamedField. This way we can also constant-fold stuff like Math.LN2 and friends. R=jarin@chromium.org BUG=v8:5267 Review-Url: https://codereview.chromium.org/2376033002 Cr-Commit-Position: refs/heads/master@{#39849}
-
- 28 Sep, 2016 5 commits
-
-
gdeepti authored
- Store instruction with an offset bigger than GrowMemory offset should handle out of bounds correctly - Refactor to separate runnning from compile so arguments can be passed in to module builder tests. BUG=chromium:644670 R=ahaas@chromium.org, titzer@chromium.org Review-Url: https://codereview.chromium.org/2373613004 Cr-Commit-Position: refs/heads/master@{#39840}
-
leszeks authored
Adds a fast-path test and branch for the turbofan graph generated by BytecodeGraphBuilder for dynamic local lookups. BUG=v8:5263 Review-Url: https://codereview.chromium.org/2378653003 Cr-Commit-Position: refs/heads/master@{#39832}
-
mvstanton authored
Cleanup. BUG= Review-Url: https://codereview.chromium.org/2379573002 Cr-Commit-Position: refs/heads/master@{#39830}
-
baptiste.afsa authored
R=jarin@chromium.org Review-Url: https://codereview.chromium.org/2376963002 Cr-Commit-Position: refs/heads/master@{#39819}
-
bmeurer authored
This matches current Crankshaft/fullcodegen behavior more closely and thus reduces the chances that we run into unnecessary polymorphism due to the field representation tracking in our object model. Drive-by-fixes: Make sure the JSRegExp::lastIndex field stays Smi if possible (otherwise we tank the regexp benchmark in Octane). CQ_INCLUDE_TRYBOTS=master.tryserver.v8:v8_mac64_rel,v8_mac64_dbg R=jarin@chromium.org BUG=v8:5267 Committed: https://chromium.googlesource.com/v8/v8/+/6a939714e991ebf10d56ddbd2869325cca99c0ef Committed: https://crrev.com/ee158e6c4cc896479a32245432a3c2fdd31bcb73 Committed: https://crrev.com/ddf792beb3a72f6dba83e94fc8ada03ebf1630bd Review-Url: https://codereview.chromium.org/2367593003 Cr-Original-Original-Commit-Position: refs/heads/master@{#39692} Cr-Original-Commit-Position: refs/heads/master@{#39748} Cr-Commit-Position: refs/heads/master@{#39803}
-
- 27 Sep, 2016 1 commit
-
-
titzer authored
[0xC] Convert to stack machine semantics. [0xC] Use section codes instead of names. [0xC] Add elements section decoding. [0xC] Decoding of globals section. [0xC] Decoding of memory section. [0xC] Decoding of imports section. [0xC] Decoding of exports section. [0xC] Decoding of data section. [0xC] Remove CallImport bytecode. [0xC] Function bodies have an implicit block. [0xC] Remove the bottom label from loops. [0xC] Add signatures to blocks. [0xC] Remove arities from branches. Add tests for init expression decoding. Rework compilation of import wrappers and how they are patched. Rework function indices in debugging. Fix ASM->WASM builder for stack machine. Reorganize asm.js foreign functions due to import indices change. R=ahaas@chromium.org,rossberg@chromium.org,bradnelson@chromium.org BUG=chromium:575167 LOG=Y Committed: https://crrev.com/76eb976a67273b8c03c744f64ad850b0432554b9 Review-Url: https://codereview.chromium.org/2345593003 Cr-Original-Commit-Position: refs/heads/master@{#39678} Cr-Commit-Position: refs/heads/master@{#39795}
-