- 20 Aug, 2015 1 commit
-
-
mstarzinger authored
R=bmeurer@chromium.org Review URL: https://codereview.chromium.org/1285183010 Cr-Commit-Position: refs/heads/master@{#30263}
-
- 18 Aug, 2015 1 commit
-
-
danno authored
Previously, it was not possible to specify StackSlotOperands for all slots in both the caller and callee stacks. Specifically, the region of the callee's stack including the saved return address, frame pointer, function pointer and context pointer could not be addressed by the register allocator/gap resolver. In preparation for better tail call support, which will use the gap resolver to reconcile outgoing parameters, this change makes it possible to address all slots on the stack, because slots in the previously inaccessible dead zone may become parameter slots for outgoing tail calls. All caller stack slots are accessible as they were before, with slot -1 corresponding to the last stack parameter. Stack slot indices >= 0 access the callee stack, with slot 0 corresponding to the callee's saved return address, 1 corresponding to the saved frame pointer, 2 corresponding to the current function context, 3 corresponding to the frame marker/JSFunction, and slots 4 and above corresponding to spill slots. The following changes were specifically needed: * Frame has been changed to explicitly manage three areas of the callee frame, the fixed header, the spill slot area, and the callee-saved register area. * Conversions from stack slot indices to fp offsets all now go through a common bottleneck: OptimizedFrame::StackSlotOffsetRelativeToFp * The generation of deoptimization translation tables has been changed to support the new stack slot indexing scheme. Crankshaft, which doesn't support the new slot numbering in its register allocator, must adapt the indexes when creating translation tables. * Callee-saved parameters are now kept below spill slots, not above, to support saving only the optimal set of used registers, which is only known after register allocation is finished and spill slots have been allocated. Review URL: https://codereview.chromium.org/1261923007 Cr-Commit-Position: refs/heads/master@{#30224}
-
- 12 Aug, 2015 1 commit
-
-
mstarzinger authored
R=bmeurer@chromium.org Review URL: https://codereview.chromium.org/1283183002 Cr-Commit-Position: refs/heads/master@{#30127}
-
- 03 Aug, 2015 2 commits
-
-
jarin authored
The calculation now takes into account the size of the arguments object if it is present in the optimized frame. (Yang, many thanks for the awesome repro!) BUG=chromium:514362 LOG=N R=yangguo@chromium.org Review URL: https://codereview.chromium.org/1264483008 Cr-Commit-Position: refs/heads/master@{#29973}
-
jarin authored
This fixes a bug introduced by r28826 (Unify decoding of deoptimization translations, https://codereview.chromium.org/1136223004), where we started leaking arguments marker sentinel to the debugger, which would then cause crashes. This change replaces the sentinel with the undefined value in the debugger-inspectable frame. BUG=chromium:514362 LOG=n R=yangguo@chromium.org Review URL: https://codereview.chromium.org/1263333002 Cr-Commit-Position: refs/heads/master@{#29971}
-
- 24 Jul, 2015 1 commit
-
-
yangguo authored
R=jkummerow@chromium.org Review URL: https://codereview.chromium.org/1248443003 Cr-Commit-Position: refs/heads/master@{#29840}
-
- 23 Jul, 2015 1 commit
-
-
mvstanton authored
All of this is controlled by the CallDescriptor. It's simply the case that if you specify less registers than the function arity calls for, the rest are assumed to be on the stack. Bailout handlers accept these constant stack arguments too. BUG= Review URL: https://codereview.chromium.org/1250563004 Cr-Commit-Position: refs/heads/master@{#29813}
-
- 21 Jul, 2015 1 commit
-
-
hpayer authored
This reverts commit 80b3f169. Revert "Record code slots that may point to evacuation candidate objects after deoptimizing them." This reverts commit 4621210c. BUG=chromium:507840 LOG=n Review URL: https://codereview.chromium.org/1239383004 Cr-Commit-Position: refs/heads/master@{#29778}
-
- 17 Jul, 2015 1 commit
-
-
mlippautz authored
Additionally, push the allocation site or undefined independently of creating a memento to preserve a fixed size for the construct frames. BUG= Review URL: https://codereview.chromium.org/1239593003 Cr-Commit-Position: refs/heads/master@{#29719}
-
- 13 Jul, 2015 2 commits
-
-
rmcilroy authored
Review URL: https://codereview.chromium.org/1221433021 Cr-Commit-Position: refs/heads/master@{#29604}
-
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}
-
- 10 Jul, 2015 1 commit
-
-
mstarzinger authored
R=bmeurer@chromium.org Review URL: https://codereview.chromium.org/1213623020 Cr-Commit-Position: refs/heads/master@{#29562}
-
- 03 Jul, 2015 1 commit
-
-
hpayer authored
BUG=chromium:506811 LOG=n Review URL: https://codereview.chromium.org/1225573002 Cr-Commit-Position: refs/heads/master@{#29466}
-
- 02 Jul, 2015 1 commit
-
-
ishell authored
The only right way to enable access checks is to install access check callbacks on an object template via v8::ObjectTemplate::SetAccessCheckCallbacks(). It does not make sense to enable access checks on an arbitrary object. Review URL: https://codereview.chromium.org/1217893012 Cr-Commit-Position: refs/heads/master@{#29439}
-
- 01 Jul, 2015 1 commit
-
-
danno authored
Up until now the context register was listed explicitly in each stub's CallInterfaceDescriptor. This was problematic, because it was listed first in the list of register parameters--which is fine for Crankshaft, which is more or less built to handle the context as the first parameter-- but not ideal for TurboFan, which adds the context at the end of all function parameters. Now the context register is no longer in the register list and can be handled appropriately by both compilers. Specifically, this allows the FunctionType specified for each CallInterfaceDescriptor to exactly match the parameter register list. Review URL: https://codereview.chromium.org/1211333003 Cr-Commit-Position: refs/heads/master@{#29402}
-
- 30 Jun, 2015 1 commit
-
-
hpayer authored
BUG= Review URL: https://codereview.chromium.org/1221643004 Cr-Commit-Position: refs/heads/master@{#29379}
-
- 25 Jun, 2015 1 commit
-
-
arv authored
The stack layout was different for different ports. BUG=v8:3887 LOG=N R=dslomov@chromium.org, adamk@chromium.org Review URL: https://codereview.chromium.org/1203103003 Cr-Commit-Position: refs/heads/master@{#29292}
-
- 18 Jun, 2015 1 commit
-
-
balazs.kilvady authored
On MIPS32 we can't read a 8 bytes long data from a not 8 bytes aligned memory address. BUG= TEST=mjsunit/debug-backtrace Review URL: https://codereview.chromium.org/1193433002 Cr-Commit-Position: refs/heads/master@{#29100}
-
- 15 Jun, 2015 1 commit
-
-
jarin authored
Also fixed the duplicated output of context deopt. BUG= Review URL: https://codereview.chromium.org/1187533002 Cr-Commit-Position: refs/heads/master@{#29019}
-
- 10 Jun, 2015 1 commit
-
-
bmeurer authored
Up until now we can only inline based on JSFunction, because of the way the deoptimization works. With this change we will be able to inline based on the SharedFunctionInfo and materialize the JSFunction from a literal or a stack slot when necessary. R=jarin@chromium.org Review URL: https://codereview.chromium.org/1169103004 Cr-Commit-Position: refs/heads/master@{#28906}
-
- 09 Jun, 2015 2 commits
-
-
bmeurer authored
Use the new TranslatedState and friends, which work at a higher level than the TranslationIterator, which will make it easier to change the deoptimization commands in subsequent CLs. R=jarin@chromium.org Review URL: https://codereview.chromium.org/1166353004 Cr-Commit-Position: refs/heads/master@{#28862}
-
paul.lind authored
BUG= Review URL: https://codereview.chromium.org/1151523014 Cr-Commit-Position: refs/heads/master@{#28853}
-
- 08 Jun, 2015 1 commit
-
-
jarin authored
This unifies methods Deoptimizer::DoTranslateCommand, Deotpimizer::DoTranslateObject and the arguments object materializer. To unify these, we have to separate reading of the input frame from writing to the output frame because the argument materializer does not write to output frames. Instead, we now deoptimize in following stages: 1. Read out the input frame/registers, decode them using the translations from the deoptimizer and store them in the deoptimizer (Deoptimizer::translated_state_). This is done in TranslatedState::Init. 2. Write out into the output frame buffer all the values that do not require allocation. We also remember references to the values that require materialization. As before, this is done in Deoptimizer::DoCompute*Frame method, but instead calling to DoTranslateCommand, we use the translated frame to obtain the values and write them to the output frames. 3. The platform specific code then sets up the output frames and calls into the deoptimization notification. This has not been changed at all. 4. Once the stack is setup, we handlify all the references in the saved translated values (TranslatedState::Prepare). 5. Finally, we materialize all the values we remembered in step (1) and write them to their frames on the stack (using the TranslatedValue::GetValue method). BUG= Review URL: https://codereview.chromium.org/1136223004 Cr-Commit-Position: refs/heads/master@{#28826}
-
- 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}
-
- 01 Jun, 2015 1 commit
-
-
erikcorry authored
When compiling on a laptop I like to concatenate the small test files. This makes a big difference to compile times. These changes make that easier. R=ulan@chromium.org BUG= Review URL: https://codereview.chromium.org/1163803002 Cr-Commit-Position: refs/heads/master@{#28742}
-
- 29 May, 2015 1 commit
-
-
hpayer authored
BUG= Review URL: https://codereview.chromium.org/1158423002 Cr-Commit-Position: refs/heads/master@{#28693}
-
- 28 May, 2015 1 commit
-
-
bmeurer authored
R=jarin@chromium.org Review URL: https://codereview.chromium.org/1156393002 Cr-Commit-Position: refs/heads/master@{#28675}
-
- 21 May, 2015 1 commit
-
-
bmeurer authored
Replace the --turbo-deoptimization flag with --turbo-asm-deoptimization and enable deoptimization for non-asm.js TurboFan code unconditionally. R=jarin@chromium.org Review URL: https://codereview.chromium.org/1153483002 Cr-Commit-Position: refs/heads/master@{#28543}
-
- 12 May, 2015 1 commit
-
-
hpayer authored
BUG= Review URL: https://codereview.chromium.org/1138493004 Cr-Commit-Position: refs/heads/master@{#28373}
-
- 08 May, 2015 1 commit
-
-
mvstanton authored
TurboFan compilation was committing dependencies long before the optimized function made it's way into the optimized code list for the native context. The problem is that once the code pointer is out there in dependency arrays, it is eligible for deopt. But the deopt logic needs the code to be in the optimized code list to fully do it's job. BUG= R=jarin@chromium.org Review URL: https://codereview.chromium.org/1136693003 Cr-Commit-Position: refs/heads/master@{#28312}
-
- 04 May, 2015 1 commit
-
-
jarin authored
BUG=v8:3985 LOG=n R=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/1122083002 Cr-Commit-Position: refs/heads/master@{#28206}
-
- 24 Apr, 2015 1 commit
-
-
wingo authored
R=svenpanne@chromium.org LOG=N BUG= Review URL: https://codereview.chromium.org/1105653002 Cr-Commit-Position: refs/heads/master@{#28039}
-
- 23 Apr, 2015 1 commit
-
-
jarin authored
BUG= R=titzer@chromium.org Review URL: https://codereview.chromium.org/1055453006 Cr-Commit-Position: refs/heads/master@{#28022}
-
- 16 Apr, 2015 1 commit
-
-
erikcorry authored
R=mstarzinger@chromium.org BUG= Review URL: https://codereview.chromium.org/1052823003 Cr-Commit-Position: refs/heads/master@{#27900}
-
- 15 Apr, 2015 1 commit
-
-
jkummerow authored
AFAICT none of these can actually be triggered currently; but it's still good to harden the code a little. Review URL: https://codereview.chromium.org/1058533007 Cr-Commit-Position: refs/heads/master@{#27848}
-
- 13 Apr, 2015 1 commit
-
-
vegorov authored
Deoptimization infrastructure already handles it correctly. This change fixes repetitive deoptimizations in the code like this: var u32 = new Uint32Array(1); u32[0] = -1; function tr(x) { return x|0; } function ld() { return tr(u32[0]); } while (true) ld(); Currently inlined tr will contain HArgumentsObject that is considered uint32-unsafe use and prevents u32[0] from becoming uint32 load - instead a speculative int32 load is generated which just deopts. BUG= Review URL: https://codereview.chromium.org/1077113002 Cr-Commit-Position: refs/heads/master@{#27781}
-
- 09 Mar, 2015 1 commit
-
-
loislo authored
The original code always returned the first entry from RelocInfo that matched with bailout_id. But we may have a few different deopt reasons for one bailout_id. So we need to get the one which matches with a particular call from JumpTable. We can do this by checking not 'target_address' (it maps to bailout_id) but 'from' address which maps to a particular JumpTable entry. The test was reworked so it tests identical functions against different reasons. BUG=chromium:452067 LOG=n Review URL: https://codereview.chromium.org/984773003 Cr-Commit-Position: refs/heads/master@{#27076}
-
- 27 Feb, 2015 1 commit
-
-
loislo authored
Save Unknown position as zero in RelocInfo. Remove copy constructor of SourcePosition because it is trivial. Mechanical replace int raw_position with SourcePosition position. BUG=452067 LOG=n Review URL: https://codereview.chromium.org/959203002 Cr-Commit-Position: refs/heads/master@{#26916}
-