- 23 Jul, 2015 1 commit
-
-
danno authored
Previous to this CL, ICs used a slightly different code idiom to get to C++ code from generated code than runtime intrinsics, using an IC_Utility class that in essence provided exactly the same functionality as Runtime::FunctionForId, but in its own quirky way. This CL unifies the two mechanisms, folding IC_Utility away by making all IC entry points in C++ code, e.g. IC miss handlers, full-fledged runtime intrinsics. This makes it possible to eliminate a bunch of ad-hoc declarations and adapters that the IC system had to needlessly re-invent. As a bonus and the original reason for this yak-shave: IC-related C++ runtime functions are now callable from TurboFan. Review URL: https://codereview.chromium.org/1248303002 Cr-Commit-Position: refs/heads/master@{#29811}
-
- 13 Jul, 2015 3 commits
-
-
verwaest authored
BUG=v8:4296 LOG=n Review URL: https://codereview.chromium.org/1228063004 Cr-Commit-Position: refs/heads/master@{#29618}
-
yangguo authored
- split relocation info for debug break slots for - calls (with call arguments count as data) - construct calls - normal slots - renamed DEBUG_BREAK into DEBUGGER_STATEMENT - removed unused IC state for Debug stubs R=ulan@chromium.org BUG=v8:4269 LOG=N Review URL: https://codereview.chromium.org/1232803002 Cr-Commit-Position: refs/heads/master@{#29603}
-
mstarzinger authored
Note that there are currently no objects that require a pre-allocated properties backing store, all such slots are in-object properties from the begining. Hence {unused + pre_allocated - inobject == 0} holds. R=verwaest@chromium.org Review URL: https://codereview.chromium.org/1226203011 Cr-Commit-Position: refs/heads/master@{#29590}
-
- 17 Jun, 2015 1 commit
-
-
jkummerow authored
- fix truthfulness of comments - use InitializeFieldsWithFiller more consistently - use unsigned comparisons for pointers No change in functionality intended. Bonus: improve JavaScriptFrame::Print() for an enhanced debugging experience: - print PC of each frame - print the function's source also for optimized frames Review URL: https://codereview.chromium.org/1186823003 Cr-Commit-Position: refs/heads/master@{#29082}
-
- 09 Jun, 2015 1 commit
-
-
mbrandy authored
- Introduce Assembler::DataAlign for table alignment in code object - Fix several misuses of r8 (alias of the pool pointer register, pp) - Fix calculation of pp in OSR/handler entry invocation - Enable missing cases in deserializer - Fix references to ool constant pools in comments. R=rmcilroy@chromium.org, michael_dawson@ca.ibm.com BUG=chromium:497180 LOG=N Review URL: https://codereview.chromium.org/1155673005 Cr-Commit-Position: refs/heads/master@{#28873}
-
- 04 Jun, 2015 1 commit
-
-
mbrandy authored
Embed constant pools within their corresponding Code objects. This removes support for out-of-line constant pools in favor of the new approach -- the main advantage being that it eliminates the need to allocate and manage separate constant pool array objects. Currently supported on PPC and ARM. Enabled by default on PPC only. This yields a 6% improvment in Octane on PPC64. R=bmeurer@chromium.org, rmcilroy@chromium.org, michael_dawson@ca.ibm.com BUG=chromium:478811 LOG=Y Review URL: https://codereview.chromium.org/1162993006 Cr-Commit-Position: refs/heads/master@{#28801}
-
- 03 Jun, 2015 1 commit
-
-
bmeurer authored
Revert of Embedded constant pools. (patchset #12 id:220001 of https://codereview.chromium.org/1131783003/) Reason for revert: Breaks Linux nosnap cctest/test-api/FastReturnValuesWithProfiler, see http://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20nosnap%20-%20debug%20-%202/builds/609/steps/Check/logs/FastReturnValuesWithP.. Original issue's description: > Add support for Embedded Constant Pools for PPC and Arm > > Embed constant pools within their corresponding Code > objects. > > This removes support for out-of-line constant pools in favor > of the new approach -- the main advantage being that it > eliminates the need to allocate and manage separate constant > pool array objects. > > Currently supported on PPC and ARM. Enabled by default on > PPC only. > > This yields a 6% improvment in Octane on PPC64. > > R=danno@chromium.org, svenpanne@chromium.org, bmeurer@chromium.org, rmcilroy@chromium.org, dstence@us.ibm.com, michael_dawson@ca.ibm.com > BUG=chromium:478811 > LOG=Y > > Committed: https://crrev.com/a9404029343d65f146e3443f5280c40a97e736af > Cr-Commit-Position: refs/heads/master@{#28770} TBR=rmcilroy@chromium.org,ishell@chromium.org,rodolph.perfetta@arm.com,mbrandy@us.ibm.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=chromium:478811 Review URL: https://codereview.chromium.org/1155703006 Cr-Commit-Position: refs/heads/master@{#28772}
-
- 02 Jun, 2015 1 commit
-
-
mbrandy authored
Embed constant pools within their corresponding Code objects. This removes support for out-of-line constant pools in favor of the new approach -- the main advantage being that it eliminates the need to allocate and manage separate constant pool array objects. Currently supported on PPC and ARM. Enabled by default on PPC only. This yields a 6% improvment in Octane on PPC64. R=danno@chromium.org, svenpanne@chromium.org, bmeurer@chromium.org, rmcilroy@chromium.org, dstence@us.ibm.com, michael_dawson@ca.ibm.com BUG=chromium:478811 LOG=Y Review URL: https://codereview.chromium.org/1131783003 Cr-Commit-Position: refs/heads/master@{#28770}
-
- 26 May, 2015 1 commit
-
-
erikcorry authored
* Hash code is now just done with a private own symbol instead of the hidden string, which predates symbols. * In the long run we should do all hidden properties this way and get rid of the hidden magic 0-length string with the zero hash code. The advantages include less complexity and being able to do things from JS in a natural way. * Initially, the performance of weak set regressed, because it's a little harder to do the lookup in C++. Instead of heroics in C++ to make things faster I moved some functionality into JS and got the performance back. JS is supposed to be good at looking up named properties on objects. * This also changes hash codes of Smis so that they are always Smis. Performance figures are in the comments to the code review. Summary: Most of js-perf-test/Collections is neutral. Set and Map with object keys are 40-50% better. WeakMap is -5% and WeakSet is +9%. After the measurements, I fixed global proxies, which cost 1% on most tests and 5% on the weak ones :-(. In the code review comments is a patch with an example of the heroics we could do in C++ to make lookup faster (I hope we don't have to do this. Instead of checking for the property, then doing a new lookup to insert it, we could do one lookup and handle the addition immediately). With the current benchmarks above this buys us nothing, but if we go back to doing more lookups in C++ instead of in stubs and JS then it's a win. In a similar vein we could give the magic zero hash code to the hash code symbol. Then when we look up the hash code we would sometimes see the table with all the hidden properties. This dual use of the field for either the hash code or the table with all hidden properties and the hash code is rather ugly, and this CL gets rid of it. I'd be loath to bring it back. On the benchmarks quoted above it's slightly slower than moving the hash code lookup to JS like in this CL. One worry is that the benchmark results above are more monomorphic than real world code, so may be overstating the performance benefits of moving to JS. I think this is part of a general issue we have with handling polymorphic code in JS and any solutions there will benefit this solution, which boils down to regular property access. Any improvement there will lift all boats. R=adamk@chromium.org, verwaest@chromium.org BUG= Review URL: https://codereview.chromium.org/1149863005 Cr-Commit-Position: refs/heads/master@{#28622}
-
- 05 May, 2015 2 commits
-
-
danno authored
Revert of Collect type feedback on result of Math.[round|ceil|floor] (patchset #13 id:230001 of https://codereview.chromium.org/1053143005/) Reason for revert: All sorts of performance regressions Original issue's description: > Collect type feedback on result of Math.[round|ceil|floor] > > By recording invocations of these builtins that can return -0, we now learn to not emit Crankshaft code that only handles integer results, avoiding deopt loops. > > Committed: https://crrev.com/f36ecaf3a4d61568ca50a20718acce7dd5da9a5f > Cr-Commit-Position: refs/heads/master@{#28215} TBR=mvstanton@chromium.org,bmeurer@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1115973005 Cr-Commit-Position: refs/heads/master@{#28237}
-
danno authored
By recording invocations of these builtins that can return -0, we now learn to not emit Crankshaft code that only handles integer results, avoiding deopt loops. Review URL: https://codereview.chromium.org/1053143005 Cr-Commit-Position: refs/heads/master@{#28215}
-
- 21 Apr, 2015 1 commit
-
-
svenpanne authored
Baby steps towards saner #includes... Review URL: https://codereview.chromium.org/1051393003 Cr-Commit-Position: refs/heads/master@{#27958}
-
- 07 Apr, 2015 1 commit
-
-
hpayer authored
This reverts commit cbfcee55. BUG= Review URL: https://codereview.chromium.org/1051233002 Cr-Commit-Position: refs/heads/master@{#27623}
-
- 30 Mar, 2015 1 commit
-
-
bmeurer authored
This adds the basics necessary to support float32 operations in TurboFan. The actual functionality required to detect safe float32 operations will be added based on this later. Therefore this does not affect production code except for some cleanup/refactoring. In detail, this patchset contains the following features: - Add support for float32 operations to arm, arm64, ia32 and x64 backends. - Add float32 machine operators. - Add support for float32 constants to simplified lowering. - Handle float32 representation for phis in simplified lowering. In addition, contains the following (related) cleanups: - Fix/unify naming of backend instructions. - Use AVX comparisons when available. - Extend ArchOpcodeField to 9 bits (required for arm64). - Refactor some code duplication in instruction selectors. BUG=v8:3589 LOG=n R=dcarney@chromium.org Review URL: https://codereview.chromium.org/1044793002 Cr-Commit-Position: refs/heads/master@{#27509}
-
- 25 Mar, 2015 1 commit
-
-
mstarzinger authored
This switches full-codegen to no longer push and pop StackHandler markers onto the operand stack, but relies on a range-based handler table instead. We only use StackHandlers in JSEntryStubs to mark the transition from C to JS code. Note that this makes deoptimization and OSR from within any try-block work out of the box, makes the non-exception paths faster and should overall be neutral on the memory footprint (pros). On the other hand it makes the exception paths slower and actually throwing and exception more expensive (cons). R=yangguo@chromium.org TEST=cctest/test-run-jsexceptions/DeoptTry Review URL: https://codereview.chromium.org/1010883002 Cr-Commit-Position: refs/heads/master@{#27440}
-
- 19 Mar, 2015 1 commit
-
-
hpayer authored
TBR=verwaest@chromium.org,ulan@chromium.org,ishell@chromium.org NOTRY=true Review URL: https://codereview.chromium.org/1027463002 Cr-Commit-Position: refs/heads/master@{#27323}
-
- 18 Mar, 2015 2 commits
-
-
mstarzinger authored
This relands commit 96f79568. This makes the Isolate::Throw logic not depend on a prediction of whether an exception is caught or uncaught. Such a prediction is inherently undecidable because a finally block can decide between consuming or re-throwing an exception depending on arbitray control flow. There still is a conservative prediction mechanism in place that components like the debugger or tracing can use for reporting. With this change we can get rid of the StackHandler::kind field, a pre-requisite to do table-based lookups of exception handlers. R=yangguo@chromium.org Review URL: https://codereview.chromium.org/997213003 Cr-Commit-Position: refs/heads/master@{#27263}
-
hpayer authored
BUG= Review URL: https://codereview.chromium.org/1012023002 Cr-Commit-Position: refs/heads/master@{#27259}
-
- 16 Mar, 2015 2 commits
-
-
mstarzinger authored
Revert of Remove kind field from StackHandler. (patchset #4 id:60001 of https://codereview.chromium.org/1002203002/) Reason for revert: Layout test failure in inspector/sources/debugger/debugger-pause-on-promise-rejection.html Original issue's description: > Remove kind field from StackHandler. > > This makes the Isolate::Throw logic not depend on a prediction of > whether an exception is caught or uncaught. Such a prediction is > inherently undecidable because a finally block can decide between > consuming or re-throwing an exception depending on arbitray control > flow. > > There still is a conservative prediction mechanism in place that > components like the debugger or tracing can use for reporting. > > With this change we can get rid of the StackHandler::kind field, a > pre-requisite to do table-based lookups of exception handlers. > > R=yangguo@chromium.org > > Committed: https://crrev.com/96f79568a926966ebcf0685bf9adc947f4e1fbff > Cr-Commit-Position: refs/heads/master@{#27210} TBR=yangguo@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1009903002 Cr-Commit-Position: refs/heads/master@{#27215}
-
mstarzinger authored
This makes the Isolate::Throw logic not depend on a prediction of whether an exception is caught or uncaught. Such a prediction is inherently undecidable because a finally block can decide between consuming or re-throwing an exception depending on arbitray control flow. There still is a conservative prediction mechanism in place that components like the debugger or tracing can use for reporting. With this change we can get rid of the StackHandler::kind field, a pre-requisite to do table-based lookups of exception handlers. R=yangguo@chromium.org Review URL: https://codereview.chromium.org/1002203002 Cr-Commit-Position: refs/heads/master@{#27210}
-
- 10 Mar, 2015 2 commits
-
-
mstarzinger authored
This reduces the size of the StackHandler by yet another word. We no longer need to keep track of the frame pointer, as the stack walk will be able to recalculate it. R=yangguo@chromium.org Review URL: https://codereview.chromium.org/991893003 Cr-Commit-Position: refs/heads/master@{#27115}
-
mstarzinger authored
This reduces the size of the StackHandler by one word. We no longer need to keep track of the code object, as the stack walk finds it. R=yangguo@chromium.org Review URL: https://codereview.chromium.org/985803002 Cr-Commit-Position: refs/heads/master@{#27103}
-
- 05 Mar, 2015 1 commit
-
-
yangguo authored
R=hpayer@chromium.org Review URL: https://codereview.chromium.org/979003003 Cr-Commit-Position: refs/heads/master@{#27031}
-
- 03 Mar, 2015 1 commit
-
-
mstarzinger authored
R=jarin@chromium.org Review URL: https://codereview.chromium.org/960273002 Cr-Commit-Position: refs/heads/master@{#26957}
-
- 24 Feb, 2015 1 commit
-
-
jkummerow authored
Review URL: https://codereview.chromium.org/950283002 Cr-Commit-Position: refs/heads/master@{#26835}
-
- 30 Jan, 2015 1 commit
-
-
ulan authored
BUG=v8:3629 LOG=N Review URL: https://codereview.chromium.org/877243004 Cr-Commit-Position: refs/heads/master@{#26358}
-
- 28 Jan, 2015 1 commit
-
-
ulan authored
BUG= Review URL: https://codereview.chromium.org/886503002 Cr-Commit-Position: refs/heads/master@{#26310}
-
- 20 Jan, 2015 1 commit
-
-
dcarney authored
BUG= Review URL: https://codereview.chromium.org/860013002 Cr-Commit-Position: refs/heads/master@{#26167}
-
- 19 Jan, 2015 1 commit
-
-
ishell authored
PropertyKind: DATA -> kData ACCESSOR -> kAccessor PropertyType: FIELD -> DATA CONSTANT -> DATA_CONSTANT ACCESSOR_FIELD -> ACCESSOR CALLBACKS -> ACCESSOR_CONSTANT PropertyLocation: IN_OBJECT -> kField IN_DESCRIPTOR -> kDescriptor StoreMode: FORCE_IN_OBJECT -> FORCE_FIELD FieldDescriptor -> DataDescriptor ConstantDescriptor -> DataConstantDescriptor CallbacksDescriptor -> AccessorConstantDescriptor Review URL: https://codereview.chromium.org/856503002 Cr-Commit-Position: refs/heads/master@{#26146}
-
- 16 Jan, 2015 1 commit
-
-
dcarney authored
BUG= Review URL: https://codereview.chromium.org/836093007 Cr-Commit-Position: refs/heads/master@{#26097}
-
- 22 Dec, 2014 1 commit
-
-
ulan authored
BUG=v8:3629 LOG=N Review URL: https://codereview.chromium.org/817873003 Cr-Commit-Position: refs/heads/master@{#25923}
-
- 03 Dec, 2014 1 commit
-
-
ulan authored
BUG=v8:3629 LOG=N Review URL: https://codereview.chromium.org/774473004 Cr-Commit-Position: refs/heads/master@{#25639}
-
- 02 Dec, 2014 2 commits
-
-
ulan authored
This relands macroassembler instructions and weak cell caching and does not include parts that caused "Linux ASan LSan" test failures. BUG=v8:3663 LOG=N Review URL: https://codereview.chromium.org/764003003 Cr-Commit-Position: refs/heads/master@{#25615}
-
machenbach authored
Revert of Use weak cells in map checks in polymorphic ICs. (patchset #8 id:140001 of https://codereview.chromium.org/753993003/) Reason for revert: [Sheriff] Speculative revert for breaking chromium asan (roll blocker): http://build.chromium.org/p/client.v8/builders/Linux%20ASan%20LSan%20Tests%20%281%29/builds/1683 Original issue's description: > Use weak cells in map checks in polymorphic ICs. > > BUG=v8:3663 > LOG=N TBR=mvstanton@chromium.org,akos.palfi@imgtec.com,weiliang.lin@intel.com,ulan@chromium.org NOTREECHECKS=true NOTRY=true BUG=v8:3663 Review URL: https://codereview.chromium.org/771033003 Cr-Commit-Position: refs/heads/master@{#25597}
-
- 01 Dec, 2014 1 commit
-
-
ulan authored
BUG=v8:3663 LOG=N Review URL: https://codereview.chromium.org/753993003 Cr-Commit-Position: refs/heads/master@{#25581}
-
- 19 Nov, 2014 1 commit
-
-
ishell authored
First step towards replacing PropertyType with two enums: {DATA,ACCESSOR} x {CONST,WRITABLE}. Review URL: https://codereview.chromium.org/733253004 Cr-Commit-Position: refs/heads/master@{#25417}
-
- 14 Oct, 2014 1 commit
-
-
bmeurer@chromium.org authored
TEST=cctest,unittests R=hpayer@chromium.org Review URL: https://codereview.chromium.org/648283002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24575 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 13 Oct, 2014 1 commit
-
-
rmcilroy@chromium.org authored
Move the FrameAndConstantPoolScope and ConstantPoolUnavailableScope out of the arm architecture directory to enable them to be used on all architectures. R=rmcilroy@chromium.org Review URL: https://codereview.chromium.org/609843002 Patch from André Baixo <baixo@google.com>. git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24565 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 25 Sep, 2014 1 commit
-
-
yangguo@chromium.org authored
R=bmeurer@chromium.org Review URL: https://codereview.chromium.org/597943003 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24202 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-