- 12 Nov, 2019 1 commit
-
-
Ross McIlroy authored
Optimizes BitVector::Iterator::Advance by using base::bits::CountTrailingZeros to skip through bitvector. Also inlines Advance in the header. This reduces the LiveRangeAnalysis phase of TurboFan/Prop by about 2-5% on Octane. BUG=v8:9684 Change-Id: I3954d50d8ae9bd062a153e1fa2cb0abfd43d73eb Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1910948 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#64920}
-
- 31 Oct, 2019 1 commit
-
-
Jakob Gruber authored
The condition to detect an inline backing store was wrong and we would try to access the heap-allocated store even for inline stores. Drive-by: Use kBitsPerSystemPointer and the new kBitsPerSystemPointerLog2 constants. Change-Id: I19d0245ae82642a788c967534ab2a84464d56a67 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1890093 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Auto-Submit: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#64667}
-
- 23 May, 2019 1 commit
-
-
Yang Guo authored
NOPRESUBMIT=true TBR=mstarzinger@chromium.org Bug: v8:9247 Change-Id: I4cd6b79a1c2cba944f6f23caed59d4f1a4ee358b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1624217 Commit-Queue: Yang Guo <yangguo@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#61790}
-
- 26 Jun, 2017 1 commit
-
-
Leszek Swirski authored
If the data to be stored in a BitVector is small enough (less than the pointer size), it can be stored directly on the BitVector instead of the pointer. This patch makes the data field of the BitVector a union between a pointer and uintptr_t, and uses the latter is the data length is 0. Change-Id: I24c1920f2c16373c883cf69b123bf59812fef28e Reviewed-on: https://chromium-review.googlesource.com/541307 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#46209}
-
- 23 Jun, 2017 1 commit
-
-
Leszek Swirski authored
In bits.h, instead of relying on C++ overloading for 32/64 bits integers (which can be ambiguous when the input isn't the exact type typedef-ed by uint64_t or uint32_t), use templates and std::enable_if to switch between integers of different sizes. This means that we can get rid of an awkward sizeof check in bit-vector.cc, which was necessary to compile on Mac. Change-Id: Id0eaf0f855cdbd2dc4d7bc1c481037fcd9b73953 Reviewed-on: https://chromium-review.googlesource.com/543480 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#46184}
-
- 11 Jan, 2017 1 commit
-
-
rmcilroy authored
This CL modifies the ast-numbering phase to collect function literals which should be compiled eagerly. This is then used to eagerly compile the inner functions before compiling the outer function. This will be used to queue compilation jobs on the CompilerDispatcher in a later CL. This CL moves the compilation of eager inner functions out of the GetSharedFunctionInfo function and instead compiles them explicitly. This simplifies GetSharedFunctionInfo and also means there is no need to pass a LazyCompilationMode to the function, so this concept has been removed. BUG=v8:5203,v8:5215 Review-Url: https://codereview.chromium.org/2618553004 Cr-Commit-Position: refs/heads/master@{#42221}
-
- 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 Aug, 2015 1 commit
-
-
mtrofin authored
This change encompasses what is necessary to enable stack checks in loops without suffering large regressions. Primarily, it consists of a new mechanism for dealing with deferred blocks by "splintering", rather than splitting, inside deferred blocks. My initial change was splitting along deferred block boundaries, but the regression introduced by stackchecks wasn't resolved conclusively. After investigation, it appears that just splitting ranges along cold block boundaries leads to a greater opportunity for moves on the hot path, hence the suboptimal outcome. The alternative "splinters" ranges rather than splitting them. While splitting creates 2 ranges and links them (parent-child), in contrast, splintering creates a new independent range with no parent-child relation to the original. The original range appears as if it has a liveness hole in the place of the splintered one. All thus obtained ranges are then register allocated with no change to the register allocator. The splinters (cold blocks) do not conflict with the hot path ranges, by construction. The hot path ones have less pressure to split, because we remove a source of conflicts. After allocation, we merge the splinters back to their original ranges and continue the pipeline. We leverage the previous changes made for deferred blocks (determining where to spill, for example). Review URL: https://codereview.chromium.org/1305393003 Cr-Commit-Position: refs/heads/master@{#30357}
-
- 31 Oct, 2014 1 commit
-
-
dcarney@chromium.org authored
additionally rename data-flow.* to bit-vector.* as at some point these file became very inaccurately named BUG= R=svenpanne@chromium.org Review URL: https://codereview.chromium.org/683243005 Cr-Commit-Position: refs/heads/master@{#25030} git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25030 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 25 Aug, 2014 1 commit
-
-
bmeurer@chromium.org authored
R=machenbach@chromium.org Review URL: https://codereview.chromium.org/502803002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23330 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 20 Aug, 2014 1 commit
-
-
bmeurer@chromium.org authored
The bit counting functions provided by CompilerIntrinsics were undefined for zero, which was easily overlooked and unsafe in general. Also their implementation was kinda hacky and mostly untested. Fixed the implementation and moved the functions to base/bits.h. TEST=base-unittests,cctest,compiler-unittests,mjsunit R=hpayer@chromium.org Review URL: https://codereview.chromium.org/494633002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23229 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 03 Jun, 2014 1 commit
-
-
jochen@chromium.org authored
- this avoids using relative include paths which are forbidden by the style guide - makes the code more readable since it's clear which header is meant - allows for starting to use checkdeps BUG=none R=jkummerow@chromium.org, danno@chromium.org LOG=n Review URL: https://codereview.chromium.org/304153016 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21625 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 29 Apr, 2014 1 commit
-
-
bmeurer@chromium.org authored
R=svenpanne@chromium.org Review URL: https://codereview.chromium.org/259183002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21035 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 14 Apr, 2011 1 commit
-
-
fschneider@chromium.org authored
Not used in Crankshaft anymore. Review URL: http://codereview.chromium.org/6849023 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7619 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 07 Apr, 2011 1 commit
-
-
fschneider@chromium.org authored
Instead of adding an extra AST node we can just use an auxiliary bailout id for named and keyed property count operations. Review URL: http://codereview.chromium.org/6810015 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7524 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 07 Dec, 2010 3 commits
-
-
kasperl@chromium.org authored
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5922 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kasperl@chromium.org authored
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5921 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kasperl@chromium.org authored
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5920 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 04 Oct, 2010 1 commit
-
-
kmillikin@chromium.org authored
Change more functions used by the Compiler class to have a uniform interface: they get passed as argument an input/output pointer to a CompilationInfo that they mutate if they succeed, and they return a flag telling whether they succeeded. Also, remove some unnecessary timers. Review URL: http://codereview.chromium.org/3561012 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5583 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 30 Sep, 2010 1 commit
-
-
erik.corry@gmail.com authored
This one has been approved by the 64 bit compiler in MSVC 2005 so I hope it also passes the 2008 version. The --max-new-space-size option is now in kBytes. The --max-old-space-size option is now in MBytes. Some issues remain with 64 bit heaps and the counters. See http://code.google.com/p/v8/issues/detail?id=887 Review URL: http://codereview.chromium.org/3573005 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5559 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 28 Sep, 2010 2 commits
-
-
erik.corry@gmail.com authored
be done from Windows where the compiler is stricter about truncating changes. Review URL: http://codereview.chromium.org/3454035 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5545 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
erik.corry@gmail.com authored
Fix test after 64 bit heap size change. Review URL: http://codereview.chromium.org/3432032 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5543 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 24 Sep, 2010 1 commit
-
-
kmillikin@chromium.org authored
For some reason, the scope's arguments and arguments shadow were variable proxies, which resulted in all references to the arguments shadow being shared in the AST. This makes it hard to put per-node state on the AST nodes. I took the opportunity to remove Variable::AsVariable which has confused people in the past, and to rename Variable::slot to the more accurate Variable::AsSlot. Review URL: http://codereview.chromium.org/3432022 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5517 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 24 Aug, 2010 2 commits
-
-
kasperl@chromium.org authored
increment part of a count operation. Review URL: http://codereview.chromium.org/3150032 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5328 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kasperl@chromium.org authored
flow graph code completely. Add new AST node for null compares and use it to make the full codegens better at generating code for null comparisons. Review URL: http://codereview.chromium.org/3146037 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5323 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 02 Jun, 2010 1 commit
-
-
erik.corry@gmail.com authored
Improve code generation for known smis and suspected Smis. Review URL: http://codereview.chromium.org/2452002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4783 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 29 Mar, 2010 1 commit
-
-
kmillikin@chromium.org authored
The flow graph has been simplified to remove the special branch, join, and exit nodes. All nodes are now basic blocks (possibly empty to preserve edge-split form) with a distinguished entry and exit block. Most trivial expressions are not added to the flow graph as instructions. The assigned variable analyzer has been changed to sometimes work right-to-left so that right subexpressions can be marked as trivial. The reaching definitions analysis has been temporarily removed, and the analyses that depended on it (primitivity analysis, dead code marking) as well. Review URL: http://codereview.chromium.org/1530003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4307 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 25 Mar, 2010 1 commit
-
-
kmillikin@chromium.org authored
The FlowGraph, FlowGraphBuilder, and flow graph node classes are moved to src/flow-graph.cc. Review URL: http://codereview.chromium.org/1253009 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4287 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 24 Mar, 2010 1 commit
-
-
kmillikin@chromium.org authored
As part of aggressive dead code elimination, we initially assume all flow-graph instructions are not live. We mark those that are critical and recursively all their children. The children of variable references (VariableProxies occurring as rvalues) include all their reaching definitions. Review URL: http://codereview.chromium.org/1159005 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4246 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 23 Mar, 2010 2 commits
-
-
fschneider@chromium.org authored
This change adds a data-flow pass to statically determine if a variable contains a primitive type. It requires building the flow graph and computing reaching definitions as pre-requisites. The analysis annotates all VariableProxy nodes with the result. Review URL: http://codereview.chromium.org/1132005 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4224 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
iposva@chromium.org authored
their place. - Add one field to the SharedFunctionInfo to remember the number of literals used in this function. Review URL: http://codereview.chromium.org/669240 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4211 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 22 Mar, 2010 2 commits
-
-
kmillikin@chromium.org authored
Include the initial definitions for parameters on input to the function, and the initial definition of stack-allocated locals as undefined. Review URL: http://codereview.chromium.org/1155006 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4206 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
fschneider@chromium.org authored
This change adds the option to peel off the first iteration of inner loops. Loop peeling is off by default and can enabled by a flag. It also requires building a flow graph. As part of this I added the possibility to clone AST nodes. Review URL: http://codereview.chromium.org/998001 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4205 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 19 Mar, 2010 1 commit
-
-
fschneider@chromium.org authored
Also remove unused attributes related to it from the ast. Review URL: http://codereview.chromium.org/1117003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4194 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 16 Mar, 2010 2 commits
-
-
fschneider@chromium.org authored
Even if we know that the input to a count operation is a smi we still need to check if the result overflowed (and becomes a heap number). Also fix the smi loop analysis to take two border cases correctly into account. Review URL: http://codereview.chromium.org/1040002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4147 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kmillikin@chromium.org authored
After computing RD_in for all flow graph nodes, push the reaching definitions through the basic blocks to annotate all variable references in the AST. Review URL: http://codereview.chromium.org/889003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4143 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 12 Mar, 2010 4 commits
-
-
fschneider@chromium.org authored
Review URL: http://codereview.chromium.org/885004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4120 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kmillikin@chromium.org authored
We only track definitions of stack-allocated variables. Trying to look up other variables in the environment is a bug. Review URL: http://codereview.chromium.org/843006 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4119 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
fschneider@chromium.org authored
Property stores were not visited correctly by the visitor. I fixed this issue by visiting property stores by visiting receiver and key directly (and not calling visit on the lhs property ast node) Review URL: http://codereview.chromium.org/903003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4117 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kmillikin@chromium.org authored
Use the classical worklist algorithm to compute reaching definitions. All nodes are initially put on the worklist. Until the worklist is empty, nodes are removed, their RD_in is recomputed, and if it changes their successors are added to the worklist. Review URL: http://codereview.chromium.org/853004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4113 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-