- 21 Mar, 2016 1 commit
-
-
ishell authored
In case when F inlined normal call to G which tail calls H we should not write translation for G for the tail call site. Otherwise we will see G in a stack trace inside H. This CL also enables all existing tests related to ES6 tail call elimination and adds more combinations. TBR=bmeurer@chromium.org BUG=v8:4698 LOG=N Committed: https://crrev.com/689980f7d4dfd4c29492f616d7b616b86ec9af91 Cr-Commit-Position: refs/heads/master@{#34830} Review URL: https://codereview.chromium.org/1780043004 Cr-Commit-Position: refs/heads/master@{#34920}
-
- 16 Mar, 2016 2 commits
-
-
machenbach authored
Revert of [crankshaft] Fixing ES6 tail call elimination. (patchset #7 id:200001 of https://codereview.chromium.org/1780043004/ ) Reason for revert: [Sheriff] Leads to mac gc stress crashes: https://build.chromium.org/p/client.v8/builders/V8%20Mac%20GC%20Stress/builds/4975 Original issue's description: > [crankshaft] Fixing ES6 tail call elimination. > > In case when F inlined normal call to G which tail calls H we should not write translation for G for the tail call site. > Otherwise we will see G in a stack trace inside H. > > This CL also enables all existing tests related to ES6 tail call elimination. > > TBR=bmeurer@chromium.org > BUG=v8:4698 > LOG=N > > Committed: https://crrev.com/689980f7d4dfd4c29492f616d7b616b86ec9af91 > Cr-Commit-Position: refs/heads/master@{#34830} TBR=mstarzinger@chromium.org,ishell@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:4698 Review URL: https://codereview.chromium.org/1814433002 Cr-Commit-Position: refs/heads/master@{#34835}
-
ishell authored
In case when F inlined normal call to G which tail calls H we should not write translation for G for the tail call site. Otherwise we will see G in a stack trace inside H. This CL also enables all existing tests related to ES6 tail call elimination. TBR=bmeurer@chromium.org BUG=v8:4698 LOG=N Review URL: https://codereview.chromium.org/1780043004 Cr-Commit-Position: refs/heads/master@{#34830}
-
- 08 Mar, 2016 1 commit
-
-
danno authored
Before this CL, various code stubs used different techniques for marking their frames to enable stack-crawling and other access to data in the frame. All of them were based on a abuse of the "standard" frame representation, e.g. storing the a context pointer immediately below the frame's fp, and a function pointer after that. Although functional, this approach tends to make stubs and builtins do an awkward, unnecessary dance to appear like standard frames, even if they have nothing to do with JavaScript execution. This CL attempts to improve this by: * Ensuring that there are only two fundamentally different types of frames, a "standard" frame and a "typed" frame. Standard frames, as before, contain both a context and function pointer. Typed frames contain only a minimum of a smi marker in the position immediately below the fp where the context is in standard frames. * Only interpreted, full codegen, and optimized Crankshaft and TurboFan JavaScript frames use the "standard" format. All other frames use the type frame format with an explicit marker. * Typed frames can contain one or more values below the type marker. There is new magic macro machinery in frames.h that simplifies defining the offsets of these fields in typed frames. * A new flag in the CallDescriptor enables specifying whether a frame is a standard frame or a typed frame. Secondary register location spilling is now only enabled for standard frames. * A zillion places in the code have been updated to deal with the fact that most code stubs and internal frames use the typed frame format. This includes changes in the deoptimizer, debugger, and liveedit. * StandardFrameConstants::kMarkerOffset is deprecated, (CommonFrameConstants::kContextOrFrameTypeOffset and StandardFrameConstants::kFrameOffset are now used in its stead). LOG=N Review URL: https://codereview.chromium.org/1696043002 Cr-Commit-Position: refs/heads/master@{#34571}
-
- 07 Mar, 2016 1 commit
-
-
joransiu authored
S390 specific implementations of crankshaft functions. R=danno@chromium.org,jkummerow@chromium.org,jochen@chromium.org,jyan@ca.ibm.com,michael_dawson@ca.ibm.com,mbrandy@us.ibm.com BUG= Review URL: https://codereview.chromium.org/1763233003 Cr-Commit-Position: refs/heads/master@{#34543}
-
- 26 Feb, 2016 1 commit
-
-
rmcilroy authored
Adds support for cpu profiler logging to the interpreter. Modifies the the API to be passed AbstractCode objects instead of Code objects, and adds extra functions to AbstractCode which is required by log.cc and cpu-profiler.cc. The main change in sampler.cc is to determine if a stack frame is an interpreter stack frame, and if so, use the bytecode address as the pc for that frame. This allows sampling of bytecode functions. This requires adding support to SafeStackIterator to determine if a frame is interpreted, which we do by checking the PC against pre-stored addresses for the start and end of interpreter entry builtins. Also removes CodeDeleteEvents which are dead code and haven't been reported for some time. Still to do is tracking source positions which will be done in a followup CL. BUG=v8:4766 LOG=N Review URL: https://codereview.chromium.org/1728593002 Cr-Commit-Position: refs/heads/master@{#34321}
-
- 18 Feb, 2016 1 commit
-
-
danno authored
Frame slots indexes numbers are used more consistently for computation in both TurboFan and Crankshaft. Specifically, Crankshaft now uses frame slot indexes in LChunk, removing the need for some special-case maths when building the deoptimization translation table. LOG=N R=mstarzinger@chromium.org Committed: https://crrev.com/81423b84dbb2eaf7e1a57b0f6029fc8e643b4755 Cr-Commit-Position: refs/heads/master@{#34078} Review URL: https://codereview.chromium.org/1702593002 Cr-Commit-Position: refs/heads/master@{#34114}
-
- 17 Feb, 2016 2 commits
-
-
machenbach authored
Revert of More simplification and unification of frame handling (patchset #5 id:80001 of https://codereview.chromium.org/1702593002/ ) Reason for revert: [Sheriff] Breaks nosnap debug: https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20nosnap%20-%20debug/builds/5329 Original issue's description: > More simplification and unification of frame handling > > Frame slots indexes numbers are used more consistently for > computation in both TurboFan and Crankshaft. Specifically, > Crankshaft now uses frame slot indexes in LChunk, removing > the need for some special-case maths when building the > deoptimization translation table. > > LOG=N > R=mstarzinger@chromium.org > > Committed: https://crrev.com/81423b84dbb2eaf7e1a57b0f6029fc8e643b4755 > Cr-Commit-Position: refs/heads/master@{#34078} TBR=mstarzinger@chromium.org,jarin@chromium.org,danno@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/1708583002 Cr-Commit-Position: refs/heads/master@{#34082}
-
danno authored
Frame slots indexes numbers are used more consistently for computation in both TurboFan and Crankshaft. Specifically, Crankshaft now uses frame slot indexes in LChunk, removing the need for some special-case maths when building the deoptimization translation table. LOG=N R=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/1702593002 Cr-Commit-Position: refs/heads/master@{#34078}
-
- 04 Jan, 2016 1 commit
-
-
bmeurer authored
Use the same mechanism that is already available for Crankshaft to not leak all kinds of things in TurboFan generated code. Long-term we will support weakness in a better way, but for now, just use the infrastructure that is already in place to avoid memory leaks via TurboFan generated code. R=jarin@chromium.org, ulan@chromium.org Review URL: https://codereview.chromium.org/1555743003 Cr-Commit-Position: refs/heads/master@{#33073}
-
- 26 Nov, 2015 1 commit
-
-
rossberg authored
Moves all files related to AST and scopes into ast/, and all files related to scanner & parser to parsing/. Also eliminates a couple of spurious dependencies. R=mstarzinger@chromium.org BUG= Review URL: https://codereview.chromium.org/1481613002 Cr-Commit-Position: refs/heads/master@{#32351}
-
- 25 Nov, 2015 1 commit
-
-
jochen authored
We always want to have an Isolate, so just use an extra ctor arg BUG=2487 R=yangguo@chromium.org,mstarzinger@chromium.org LOG=n Review URL: https://codereview.chromium.org/1476763002 Cr-Commit-Position: refs/heads/master@{#32277}
-
- 23 Nov, 2015 1 commit
-
-
ulan authored
This simplifies the layout of dependent code array and optimizes it for sparse dependency groups. BUG=chromium:554488 LOG=NO Review URL: https://codereview.chromium.org/1435313002 Cr-Commit-Position: refs/heads/master@{#32170}
-
- 20 Oct, 2015 1 commit
-
-
jkummerow authored
Review URL: https://codereview.chromium.org/1405363003 Cr-Commit-Position: refs/heads/master@{#31410}
-
- 02 Oct, 2015 3 commits
-
-
danno authored
Previous to this patch, both the lithium and TurboFan register allocators tracked allocated registers by "indices", rather than the register codes used elsewhere in the runtime. This patch ensures that codes are used everywhere, and in the process cleans up a bunch of redundant code and adds more structure to how the set of allocatable registers is defined. Some highlights of changes: * TurboFan's RegisterConfiguration class moved to V8's top level so that it can be shared with Crankshaft. * Various "ToAllocationIndex" and related methods removed. * Code that can be easily shared between Register classes on different platforms is now shared. * The list of allocatable registers on each platform is declared as a list rather than implicitly via the register index <-> code mapping. Committed: https://crrev.com/80bc6f6e11f79524e3f1ad05579583adfd5f18b2 Cr-Commit-Position: refs/heads/master@{#30913} Committed: https://crrev.com/7b7a8205d9a00c678fb7a6e032a55fecbc1509cf Cr-Commit-Position: refs/heads/master@{#31075} Review URL: https://codereview.chromium.org/1287383003 Cr-Commit-Position: refs/heads/master@{#31087}
-
danno authored
Revert of Reland: Remove register index/code indirection (patchset #20 id:380001 of https://codereview.chromium.org/1287383003/ ) Reason for revert: Failures on MIPS Original issue's description: > Remove register index/code indirection > > Previous to this patch, both the lithium and TurboFan register > allocators tracked allocated registers by "indices", rather than > the register codes used elsewhere in the runtime. This patch > ensures that codes are used everywhere, and in the process cleans > up a bunch of redundant code and adds more structure to how the > set of allocatable registers is defined. > > Some highlights of changes: > > * TurboFan's RegisterConfiguration class moved to V8's top level > so that it can be shared with Crankshaft. > * Various "ToAllocationIndex" and related methods removed. > * Code that can be easily shared between Register classes on > different platforms is now shared. > * The list of allocatable registers on each platform is declared > as a list rather than implicitly via the register index <-> > code mapping. > > Committed: https://crrev.com/80bc6f6e11f79524e3f1ad05579583adfd5f18b2 > Cr-Commit-Position: refs/heads/master@{#30913} > > Committed: https://crrev.com/7b7a8205d9a00c678fb7a6e032a55fecbc1509cf > Cr-Commit-Position: refs/heads/master@{#31075} TBR=akos.palfi@imgtec.com,bmeurer@chromium.org,jarin@chromium.org,paul.lind@imgtec.com,titzer@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1380863004 Cr-Commit-Position: refs/heads/master@{#31083}
-
danno authored
Previous to this patch, both the lithium and TurboFan register allocators tracked allocated registers by "indices", rather than the register codes used elsewhere in the runtime. This patch ensures that codes are used everywhere, and in the process cleans up a bunch of redundant code and adds more structure to how the set of allocatable registers is defined. Some highlights of changes: * TurboFan's RegisterConfiguration class moved to V8's top level so that it can be shared with Crankshaft. * Various "ToAllocationIndex" and related methods removed. * Code that can be easily shared between Register classes on different platforms is now shared. * The list of allocatable registers on each platform is declared as a list rather than implicitly via the register index <-> code mapping. Committed: https://crrev.com/80bc6f6e11f79524e3f1ad05579583adfd5f18b2 Cr-Commit-Position: refs/heads/master@{#30913} Review URL: https://codereview.chromium.org/1287383003 Cr-Commit-Position: refs/heads/master@{#31075}
-
- 24 Sep, 2015 2 commits
-
-
danno authored
Revert of Remove register index/code indirection (patchset #17 id:320001 of https://codereview.chromium.org/1287383003/ ) Reason for revert: Failures on greedy RegAlloc, Fuzzer Original issue's description: > Remove register index/code indirection > > Previous to this patch, both the lithium and TurboFan register > allocators tracked allocated registers by "indices", rather than > the register codes used elsewhere in the runtime. This patch > ensures that codes are used everywhere, and in the process cleans > up a bunch of redundant code and adds more structure to how the > set of allocatable registers is defined. > > Some highlights of changes: > > * TurboFan's RegisterConfiguration class moved to V8's top level > so that it can be shared with Crankshaft. > * Various "ToAllocationIndex" and related methods removed. > * Code that can be easily shared between Register classes on > different platforms is now shared. > * The list of allocatable registers on each platform is declared > as a list rather than implicitly via the register index <-> > code mapping. > > Committed: https://crrev.com/80bc6f6e11f79524e3f1ad05579583adfd5f18b2 > Cr-Commit-Position: refs/heads/master@{#30913} TBR=akos.palfi@imgtec.com,bmeurer@chromium.org,jarin@chromium.org,paul.lind@imgtec.com,titzer@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1365073002 Cr-Commit-Position: refs/heads/master@{#30914}
-
danno authored
Previous to this patch, both the lithium and TurboFan register allocators tracked allocated registers by "indices", rather than the register codes used elsewhere in the runtime. This patch ensures that codes are used everywhere, and in the process cleans up a bunch of redundant code and adds more structure to how the set of allocatable registers is defined. Some highlights of changes: * TurboFan's RegisterConfiguration class moved to V8's top level so that it can be shared with Crankshaft. * Various "ToAllocationIndex" and related methods removed. * Code that can be easily shared between Register classes on different platforms is now shared. * The list of allocatable registers on each platform is declared as a list rather than implicitly via the register index <-> code mapping. Review URL: https://codereview.chromium.org/1287383003 Cr-Commit-Position: refs/heads/master@{#30913}
-
- 21 Aug, 2015 1 commit
-
-
mstarzinger authored
R=titzer@chromium.org Review URL: https://codereview.chromium.org/1304053004 Cr-Commit-Position: refs/heads/master@{#30308}
-
- 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}
-
- 01 Jul, 2015 1 commit
-
-
bmeurer authored
This operator< overload is rather dangerous for handles. And we don't actually need a std::set in the chunk builder, since duplicates are automatically eliminated later when the code dependencies are committed. R=jarin@chromium.org Review URL: https://codereview.chromium.org/1214573004 Cr-Commit-Position: refs/heads/master@{#29401}
-
- 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}
-
- 28 May, 2015 1 commit
-
-
bmeurer authored
The list of inlined functions is used in exactly two places - for live edit and to prevent code flushing for inlined functions - and those are fine with SharedFunctionInfo and don't require a closure. This is one additional step towards inlining based on SharedFunctionInfo instead of JSFunction. R=jarin@chromium.org Review URL: https://codereview.chromium.org/1145893003 Cr-Commit-Position: refs/heads/master@{#28672}
-
- 20 Apr, 2015 1 commit
-
-
titzer authored
R=mstarzinger@chromium.org BUG= Review URL: https://codereview.chromium.org/1099473004 Cr-Commit-Position: refs/heads/master@{#27945}
-
- 17 Apr, 2015 1 commit
-
-
machenbach authored
Revert of Refactor compilation dependency handling. (patchset #4 id:60001 of https://codereview.chromium.org/1095433002/) Reason for revert: [Sheriff] Causes crashes in laout tests: http://build.chromium.org/p/client.v8/builders/V8-Blink%20Linux%2064%20%28dbg%29/builds/2543 Extra bisect run: http://build.chromium.org/p/client.v8/builders/V8-Blink%20Linux%2064%20%28dbg%29/builds/2548 Original issue's description: > Refactor compilation dependency handling. > > Extract a new data structure CompilationDependencies and move (most) logic there. > > R=mstarzinger@chromium.org,verwaest@chromium.org > BUG= > > Committed: https://crrev.com/b882479f1c84a48961b8aec81fa1bb1225034784 > Cr-Commit-Position: refs/heads/master@{#27892} TBR=mstarzinger@chromium.org,verwaest@chromium.org,titzer@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG= Review URL: https://codereview.chromium.org/1093783002 Cr-Commit-Position: refs/heads/master@{#27904}
-
- 16 Apr, 2015 1 commit
-
-
titzer authored
Extract a new data structure CompilationDependencies and move (most) logic there. R=mstarzinger@chromium.org,verwaest@chromium.org BUG= Review URL: https://codereview.chromium.org/1095433002 Cr-Commit-Position: refs/heads/master@{#27892}
-
- 27 Mar, 2015 1 commit
-
-
yangguo authored
R=jochen@chromium.org Review URL: https://codereview.chromium.org/1041743002 Cr-Commit-Position: refs/heads/master@{#27501}
-
- 06 Mar, 2015 1 commit
-
-
ulan authored
This keeps dying maps alive for FLAG_retain_maps_for_n_gc garbage collections to increase chances of them being reused for new objects in future and decrease number of deoptimizations. BUG=v8:3664 LOG=N TEST=cctest/test-heap/MapRetaining Review URL: https://codereview.chromium.org/980523004 Cr-Commit-Position: refs/heads/master@{#27040}
-
- 12 Feb, 2015 1 commit
-
-
ulan authored
BUG= Review URL: https://codereview.chromium.org/871253005 Cr-Commit-Position: refs/heads/master@{#26614}
-
- 04 Feb, 2015 1 commit
-
-
ulan authored
BUG= Review URL: https://codereview.chromium.org/882913006 Cr-Commit-Position: refs/heads/master@{#26436}
-
- 22 Jan, 2015 1 commit
-
-
ulan authored
This prevents GC from observing code objects with out-of-sync weak dependencies. BUG=v8:3823 LOG=N Review URL: https://codereview.chromium.org/866723002 Cr-Commit-Position: refs/heads/master@{#26225}
-
- 16 Jan, 2015 1 commit
-
-
Sven Panne authored
Contribution of PowerPC port (continuation of 422063005). The inital patch covers the core changes to the common files. Subsequent patches will cover changes to common files to support AIX and to update the ppc directories so they are current with the changes in the rest of the project. This is based off of the GitHub repository https://github.com/andrewlow/v8ppc BUG= R=svenpanne@chromium.org, danno@chromium.org, sevnpanne@chromium.org Review URL: https://codereview.chromium.org/817143002 Cr-Commit-Position: refs/heads/master@{#26091}
-
- 02 Oct, 2014 1 commit
-
-
yangguo@chromium.org authored
R=mvstanton@chromium.org Review URL: https://codereview.chromium.org/606083004 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24377 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 24 Sep, 2014 1 commit
-
-
yangguo@chromium.org authored
R=jkummerow@chromium.org Review URL: https://codereview.chromium.org/596783002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24161 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 01 Sep, 2014 1 commit
-
-
jarin@chromium.org authored
This adds context deoptimization to Turbofan and Crankshaft (also submitted separately as https://codereview.chromium.org/515723004/). The second patchset removes the deoptimization/continuation block from calls. BUG= R=bmeurer@chromium.org Review URL: https://codereview.chromium.org/522873002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23547 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 26 Aug, 2014 1 commit
-
-
mstarzinger@chromium.org authored
R=svenpanne@chromium.org TEST=cctest/test-api/InitializeAndDispose Review URL: https://codereview.chromium.org/504093002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23401 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-