- 22 Jun, 2016 1 commit
-
-
yangguo authored
R=vogelheim@chromium.org Review-Url: https://codereview.chromium.org/2081703002 Cr-Commit-Position: refs/heads/master@{#37170}
-
- 21 Jun, 2016 5 commits
-
-
rmcilroy authored
Adds back simple dead code elimination to the bytecode pipeline. BUG=v8:4280,chromium:616064 Review-Url: https://codereview.chromium.org/2038083002 Cr-Commit-Position: refs/heads/master@{#37147}
-
rmcilroy authored
Make intrinsic ids a contiguous set of ids so that the switch statement can build a table switch rather than doing a large if/else tree. BUG=v8:4822 LOG=N Committed: https://crrev.com/36abd28a8d9932eb55d7c2bf3ad5e7cfe3eb99ea Review-Url: https://codereview.chromium.org/2084623002 Cr-Original-Commit-Position: refs/heads/master@{#37135} Cr-Commit-Position: refs/heads/master@{#37145}
-
machenbach authored
Revert of [Interpreter] Map runtime id's to intrinsic id's in InvokeIntrinsic bytecode. (patchset #3 id:40001 of https://codereview.chromium.org/2084623002/ ) Reason for revert: [Sheriff] Breaks gc stress: https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20GC%20Stress%20-%20custom%20snapshot/builds/6304 Original issue's description: > [Interpreter] Map runtime id's to intrinsic id's in InvokeIntrinsic bytecode. > > Make intrinsic ids a contiguous set of ids so that the switch statement can build > a table switch rather than doing a large if/else tree. > > BUG=v8:4822 > LOG=N > > Committed: https://crrev.com/36abd28a8d9932eb55d7c2bf3ad5e7cfe3eb99ea > Cr-Commit-Position: refs/heads/master@{#37135} TBR=epertoso@chromium.org,oth@chromium.org,rmcilroy@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:4822 Review-Url: https://codereview.chromium.org/2085823003 Cr-Commit-Position: refs/heads/master@{#37137}
-
oth authored
Add explicit state in BytecodeSourceInfo to simplify checks for validity and whether a statement or expression position. Remove BytecodeSourceInfo::Update which inherited rules for updating source position information during bytecode building. BUG=v8:4280 LOG=N Review-Url: https://codereview.chromium.org/2048203002 Cr-Commit-Position: refs/heads/master@{#37136}
-
rmcilroy authored
Make intrinsic ids a contiguous set of ids so that the switch statement can build a table switch rather than doing a large if/else tree. BUG=v8:4822 LOG=N Review-Url: https://codereview.chromium.org/2084623002 Cr-Commit-Position: refs/heads/master@{#37135}
-
- 10 Jun, 2016 1 commit
-
-
oth authored
BUG=v8:4280 LOG=N Review-Url: https://codereview.chromium.org/2041913002 Cr-Commit-Position: refs/heads/master@{#36885}
-
- 06 Jun, 2016 1 commit
-
-
cbruni authored
Passing in the isolate and pointer compare the instnance against the corresponding constant is always faster than decoding the instance types. BUG= Review-Url: https://codereview.chromium.org/2028983002 Cr-Commit-Position: refs/heads/master@{#36744}
-
- 03 Jun, 2016 2 commits
-
-
rmcilroy authored
This moves processing of jumps out of bytecode array builder and into bytecode array writer. This simplifies the pipeline by avoiding having to flush for offset and patch up offsets in bytecode array builder based on what was emitted by the bytecode array writer. This also enables future refactorings to add dead code elimination back into the pipeline, and move processing of scalable operand sizes to the end of the pipeline (in the bytecode array writer) rather than having to deal with scalable operand types throughout pipeline. BUG=v8:4280,chromium:616064 Review-Url: https://codereview.chromium.org/2035813002 Cr-Commit-Position: refs/heads/master@{#36716}
-
Miran.Karic authored
A value in unittests/Bytecodes.DecodeBytecodeAndOperands was 16 bit instead of 8 bit. This was causing test to fail on big endian machines. BUG= Review-Url: https://codereview.chromium.org/2030063002 Cr-Commit-Position: refs/heads/master@{#36698}
-
- 01 Jun, 2016 1 commit
-
-
Miran.Karic authored
A few values were missing use of a macro causing test to fail on big endian machines. BUG= Review-Url: https://codereview.chromium.org/2024123002 Cr-Commit-Position: refs/heads/master@{#36645}
-
- 27 May, 2016 2 commits
-
-
oth authored
Online optimization stage for reducing redundant transfers between registers. BUG=V8:4280 LOG=N Review-Url: https://codereview.chromium.org/1997653002 Cr-Commit-Position: refs/heads/master@{#36551}
-
mvstanton authored
We get less "pollution" of type feedback if we have one vector per native context, rather than one for the whole system. This CL moves the vector appropriately. BUG= Review-Url: https://codereview.chromium.org/1906823002 Cr-Commit-Position: refs/heads/master@{#36539}
-
- 25 May, 2016 2 commits
-
-
oth authored
BUG=v8:4280 LOG=N Review-Url: https://codereview.chromium.org/2007023003 Cr-Commit-Position: refs/heads/master@{#36509}
-
oth authored
This change introduces five fused bytecodes for common bytecode sequences on popular websites. These are LdrNamedProperty, LdrKeyedProperty, LdrGlobal, LdrContextSlot, and LdrUndefined. These load values into a destination register operand instead of the accumulator. They are emitted by the peephole optimizer. BUG=v8:4280 LOG=N Review-Url: https://codereview.chromium.org/1985753002 Cr-Commit-Position: refs/heads/master@{#36507}
-
- 19 May, 2016 1 commit
-
-
danno authored
Previously, CodeStubAssembler macros performing FixedArray element accesses had to compute offsets to elements explicitly with a fair amount of duplicated code. Furthermore, any peephole optimizations that could produce better code-- like recognizing constant indices or combining array index computation with Smi untagging--were also duplicated. This change factors the code to compute FixedArray index offsets into a common routine in the CodeStubAssembler that applies standard peephole optimizations to all accesses. In order to do this, it also introduces limited introspection into the up-until-now opaque Node* type exported from code-assembler.h, allowing Nodes to be queried whether they are constant and extracting their constant value in that case. Review-Url: https://codereview.chromium.org/1989363004 Cr-Commit-Position: refs/heads/master@{#36370}
-
- 18 May, 2016 1 commit
-
-
rmcilroy authored
In order to support compiling to baseline on return we need to be able to return to the actual return address. With this change this is what the Return bytecode now does, removing the need for the InterpreterExitTrampoline. This change also removes the InterpreterNotifyDeoptXXX builtins and unifies FCG and Igntion to both use NotifyDeoptXXX. As part of this change, FullCodegenerator::State is moved to Deoptimize::BailoutState. BUG=v8:4280 LOG=N Committed: https://crrev.com/34c9626e2ee56fe805de549697ca5323aed7cb66 Cr-Commit-Position: refs/heads/master@{#36288} Review-Url: https://codereview.chromium.org/1969423002 Cr-Commit-Position: refs/heads/master@{#36310}
-
- 17 May, 2016 3 commits
-
-
rmcilroy authored
Makes LogicalNot bytecode not do the ToBoolean operation, and add support in the peephole optimizer to choose between the appropriate bytecode depending upon whether the previous bytecode emitted a boolean or not. BUG=v8:4280 LOG=N Review-Url: https://codereview.chromium.org/1985033002 Cr-Commit-Position: refs/heads/master@{#36295}
-
machenbach authored
Revert of [Interpreter] Remove InterpreterExitTrampoline and replace with returning to the entry trampoline. (patchset #6 id:170001 of https://codereview.chromium.org/1969423002/ ) Reason for revert: Breaks https://build.chromium.org/p/client.v8.ports/builders/V8%20Linux%20-%20arm%20-%20sim/builds/619 Might only affect pure release builds? Original issue's description: > [Interpreter] Remove InterpreterExitTrampoline and replace with returning to the entry trampoline. > > In order to support compiling to baseline on return we need to be able to > return to the actual return address. With this change this is what the > Return bytecode now does, removing the need for the > InterpreterExitTrampoline. > > This change also removes the InterpreterNotifyDeoptXXX builtins and > unifies FCG and Igntion to both use NotifyDeoptXXX. As part of this > change, FullCodegenerator::State is moved to Deoptimize::BailoutState. > > BUG=v8:4280 > LOG=N > > Committed: https://crrev.com/34c9626e2ee56fe805de549697ca5323aed7cb66 > Cr-Commit-Position: refs/heads/master@{#36288} TBR=mstarzinger@chromium.org,oth@chromium.org,rmcilroy@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:4280 Review-Url: https://codereview.chromium.org/1986353002 Cr-Commit-Position: refs/heads/master@{#36294}
-
rmcilroy authored
In order to support compiling to baseline on return we need to be able to return to the actual return address. With this change this is what the Return bytecode now does, removing the need for the InterpreterExitTrampoline. This change also removes the InterpreterNotifyDeoptXXX builtins and unifies FCG and Igntion to both use NotifyDeoptXXX. As part of this change, FullCodegenerator::State is moved to Deoptimize::BailoutState. BUG=v8:4280 LOG=N Review-Url: https://codereview.chromium.org/1969423002 Cr-Commit-Position: refs/heads/master@{#36288}
-
- 12 May, 2016 1 commit
-
-
oth authored
This change introduces a pipeline for the final stages of bytecode generation. The peephole optimizer is made distinct from the BytecodeArrayBuilder. A new BytecodeArrayWriter is responsible for writing bytecode. It also keeps track of the maximum register seen and offers a potentially smaller frame size. R=rmcilroy@chromium.org LOG=N BUG=v8:4280 Review-Url: https://codereview.chromium.org/1947403002 Cr-Commit-Position: refs/heads/master@{#36220}
-
- 28 Apr, 2016 1 commit
-
-
yangguo authored
DevTools uses the debug interrupt to trap on function entry. Without source position at the stack check, we would get bogus source positions. R=mstarzinger@chromium.org BUG=chromium:595646 LOG=N Review-Url: https://codereview.chromium.org/1925063002 Cr-Commit-Position: refs/heads/master@{#35864}
-
- 22 Apr, 2016 5 commits
-
-
mbrandy authored
The offset from fp to the register file is based on the frame size -- which is one slot larger when embedded constant pools are enabled. TEST=unittests/DecodeBytecodeAndOperands TBR=rmcilroy@chromium.org, bmeurer@chromium.org, oth@chromium.org, mstarzinger@chromium.org BUG= Review URL: https://codereview.chromium.org/1906963002 Cr-Commit-Position: refs/heads/master@{#35735} Review URL: https://codereview.chromium.org/1909283003 Cr-Commit-Position: refs/heads/master@{#35737}
-
mbrandy authored
Revert of Fix interpreter unittest for embedded constant pools. (patchset #2 id:20001 of https://codereview.chromium.org/1906963002/ ) Reason for revert: Need to fix the #undef logic. Original issue's description: > Fix interpreter unittest for embedded constant pools. > > The offset from fp to the register file is based on the frame size > -- which is one slot larger when embedded constant pools are enabled. > > TEST=unittests/DecodeBytecodeAndOperands > R=rmcilroy@chromium.org, bmeurer@chromium.org, oth@chromium.org, mstarzinger@chromium.org > BUG= TBR=bmeurer@chromium.org,mstarzinger@chromium.org,oth@chromium.org,rmcilroy@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/1909323003 Cr-Commit-Position: refs/heads/master@{#35736}
-
mbrandy authored
The offset from fp to the register file is based on the frame size -- which is one slot larger when embedded constant pools are enabled. TEST=unittests/DecodeBytecodeAndOperands R=rmcilroy@chromium.org, bmeurer@chromium.org, oth@chromium.org, mstarzinger@chromium.org BUG= Review URL: https://codereview.chromium.org/1906963002 Cr-Commit-Position: refs/heads/master@{#35735}
-
epertoso authored
Removes some control edges added from the RawMachineAssembler to the end of the graph. Adds a parameter that tells the Verifier to ignore effect and control inputs. Review URL: https://codereview.chromium.org/1912853003 Cr-Commit-Position: refs/heads/master@{#35731}
-
neis authored
The new bytecodes replace two runtime functions. They are still unsupported by the bytecode graphbuilder, though. BUG=v8:4907 LOG=n Review URL: https://codereview.chromium.org/1904933002 Cr-Commit-Position: refs/heads/master@{#35716}
-
- 19 Apr, 2016 1 commit
-
-
rmcilroy authored
Removes the register file machine register from the interpreter and replaces it will loads from the parent frame pointer. As part of this change the raw operand values for register values changes to enable the interpreter to keep using the operand value as the offset from the parent frame pointer. BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1894063002 Cr-Commit-Position: refs/heads/master@{#35618}
-
- 15 Apr, 2016 1 commit
-
-
rmcilroy authored
The current context is stored as a stack slot on the interpreter frame and therefore we don't need to also maintain a machine register for the context. Removes this register from bytecode handlers. In the process modifies this frees up a register on ia32 to keep the dispatch table pointer in a register rather than on a stack slot on ia32. BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1887493004 Cr-Commit-Position: refs/heads/master@{#35511}
-
- 14 Apr, 2016 1 commit
-
-
rmcilroy authored
Modifies Ignition to store code entry addresses in the dispatch table rather than code objects. This allows the interpreter to avoid calculating the code entry address from the code object on every dispatch and provides a ~5-7% performance improvement on Octane with Ignition. This change adds ArchOpcode::kArchTailCallAddress to TurboFan to enable tail call dispatch using these code addresses. It also adds a Dispatch linkage creator (distinct from the stub linkage type used previously) to allow targetting a code address target (which will diverge further from the stub linkage type when we remove the context machine register in Ignition). BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1882073002 Cr-Commit-Position: refs/heads/master@{#35480}
-
- 13 Apr, 2016 1 commit
-
-
Miran.Karic authored
Operand values in Bytecodes.DecodeBytecodeAndOperands test are encoded in little endian format. The test calls Bytecodes::Decode function which reads the operands but the values are byte swapped on big endian machines. Added big endian encoded data which decodes correctly on BE machines. BUG= Review URL: https://codereview.chromium.org/1881423002 Cr-Commit-Position: refs/heads/master@{#35447}
-
- 06 Apr, 2016 1 commit
-
-
oth authored
Anotates bytecodes with a description of how each uses the accumulator. Validates annotations and uses of accumulator when generating bytecode handlers. Only prints the accumulator during tracing where used. BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1852213002 Cr-Commit-Position: refs/heads/master@{#35281}
-
- 05 Apr, 2016 1 commit
-
-
yangguo authored
If a statement or expression does not produce any bytecode, it's position should always be overwritten by a following statement position. R=mstarzinger@chromium.org, vogelheim@chromium.org BUG=v8:4680 LOG=N Review URL: https://codereview.chromium.org/1854113002 Cr-Commit-Position: refs/heads/master@{#35252}
-
- 01 Apr, 2016 1 commit
-
-
oth authored
Improves code coverage of bytecode array builder and constant array builder. Fixes initial index for constant pool slice for kQuad operands. BUG=v8:4280,chromium:599000 LOG=N TBR=rmcilroy@chromium.org Review URL: https://codereview.chromium.org/1845313002 Cr-Commit-Position: refs/heads/master@{#35201}
-
- 23 Mar, 2016 1 commit
-
-
oth authored
BUG=v8:4280,v8:4747 LOG=N Review URL: https://codereview.chromium.org/1825103002 Cr-Commit-Position: refs/heads/master@{#35024}
-
- 22 Mar, 2016 1 commit
-
-
epertoso authored
Introduces a bytecode whose handler executes the equivalent of %_IsArray and %_IsJSReceiver without a runtime call. BUG=v8:4822 LOG=y Review URL: https://codereview.chromium.org/1645763003 Cr-Commit-Position: refs/heads/master@{#34983}
-
- 21 Mar, 2016 1 commit
-
-
oth authored
This change introduces wide prefix bytecodes to support wide (16-bit) and extra-wide (32-bit) operands. It retires the previous wide-bytecodes and reduces the number of operand types. Operands are now either scalable or fixed size. Scalable operands increase in width when a bytecode is prefixed with wide or extra-wide. The bytecode handler table is extended to 256*3 entries. The first 256 entries are used for bytecodes with 8-bit operands, the second 256 entries are used for bytecodes with operands that scale to 16-bits, and the third group of 256 entries are used for bytecodes with operands that scale to 32-bits. LOG=N BUG=v8:4747,v8:4280 Review URL: https://codereview.chromium.org/1783483002 Cr-Commit-Position: refs/heads/master@{#34955}
-
- 15 Mar, 2016 1 commit
-
-
yangguo authored
We may not emit bytecode for the evaluation of the to-be-returned expression. In that case we cannot set two return positions for a return statement (one before and one after the expression evaluation). This sets the interpreter apart from full-codegen. Make sure that we always have the second of the two return positions. Note that we end up with separate test cases for ignition and FCG. R=rmcilroy@chromium.org, vogelheim@chromium.org BUG=v8:4690 LOG=N Review URL: https://codereview.chromium.org/1801473003 Cr-Commit-Position: refs/heads/master@{#34771}
-
- 07 Mar, 2016 1 commit
-
-
mythria authored
TestNotEqualsStrict is converted to a TestEqualsStrict and logical not by the parser. Also, CompareIC does not have an implementation for TestNotEqualsStrict. Hence, removing this bytecode. BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1768593002 Cr-Commit-Position: refs/heads/master@{#34527}
-
- 01 Mar, 2016 1 commit
-
-
bmeurer authored
Similar to fullcodegen, Ignition now also marks a for-in statement as slow (via the TypeFeedbackVector) when we have to call %ForInFilter, i.e. we either have no enumeration cache or the receiver map changes during an iteration of the for-in map. R=mstarzinger@chromium.org BUG=v8:3650 LOG=n Review URL: https://codereview.chromium.org/1755563002 Cr-Commit-Position: refs/heads/master@{#34391}
-