- 02 Dec, 2015 1 commit
-
-
yangguo authored
The new step-in implementation no longer tries to predict the step-in target, so we don't need the arguments count nor call type anymore. R=verwaest@chromium.org Review URL: https://codereview.chromium.org/1484893003 Cr-Commit-Position: refs/heads/master@{#32516}
-
- 27 Nov, 2015 1 commit
-
-
jochen authored
Requires passing an explicit Isolate* to a bunch of static Assembler methods. BUG=v8:2487 R=yangguo@chromium.org,jkummerow@chromium.org LOG=n Review URL: https://codereview.chromium.org/1474323002 Cr-Commit-Position: refs/heads/master@{#32376}
-
- 25 Nov, 2015 3 commits
-
-
ahaas authored
The Float32RoundTruncate operator rounds float32 numbers towards zero. The operator is currently implemented on x64, ia32, arm, and arm64. Additionally I added support for the float32 vrintz, vrintn, and vrinta instructions to the arm simulator. R=titzer@chromium.org Review URL: https://codereview.chromium.org/1468303005 Cr-Commit-Position: refs/heads/master@{#32301}
-
ahaas authored
The Float32RoundUp operator rounds float32 numbers towards infinity. The operator is currently implemented on x64, ia32, arm, and arm64. R=titzer@chromium.org Review URL: https://codereview.chromium.org/1474963002 Cr-Commit-Position: refs/heads/master@{#32262}
-
ahaas authored
I implemented the optional Float32RoundDown operator on x64, ia32, arm, and arm64. For arm I also had to adjust the simulator. R=titzer@chromium.org Review URL: https://codereview.chromium.org/1471913006 Cr-Commit-Position: refs/heads/master@{#32261}
-
- 07 Oct, 2015 1 commit
-
-
mstarzinger authored
This removes the include of compiler.h from all our assemblers, which was only needed for the SourcePosition class. R=jkummerow@chromium.org Review URL: https://codereview.chromium.org/1397493002 Cr-Commit-Position: refs/heads/master@{#31157}
-
- 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}
-
- 30 Sep, 2015 1 commit
-
-
mstarzinger authored
This enables linter checking for "readability/namespace" violations during presubmit and instead marks the few known exceptions that we allow explicitly. R=bmeurer@chromium.org Review URL: https://codereview.chromium.org/1371083003 Cr-Commit-Position: refs/heads/master@{#31019}
-
- 29 Sep, 2015 1 commit
-
-
jacob.bramley authored
It is not safe to access memory below sp, and this is also forbidden by the ABI. When pushing, we must either use an atomic operation (such as vstm+db_w) or move sp before writing the data. This patch fixes one stack access, and also adds vpush and vpop helpers to simplify similar code. BUG= Review URL: https://codereview.chromium.org/1378563002 Cr-Commit-Position: refs/heads/master@{#31008}
-
- 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}
-
- 05 Sep, 2015 1 commit
-
-
ishell authored
[arm] Decrease the size of the assembler class by allocating buffers of pending constants on the heap. BUG=chromium:521828 LOG=N Review URL: https://codereview.chromium.org/1310863005 Cr-Commit-Position: refs/heads/master@{#30602}
-
- 04 Sep, 2015 2 commits
-
-
ishell authored
Revert of [arm] Decrease the size of the assembler class by allocating buffers of pending constants on the he… (patchset #2 id:20001 of https://codereview.chromium.org/1309903009/ ) Reason for revert: Static assert failed on ARM64 Original issue's description: > [arm] Decrease the size of the assembler class by allocating buffers of pending constants on the heap. > > BUG=chromium:521828 > LOG=N > > Committed: https://crrev.com/033af3fa511c52bc4049cd278d0623a6c6f9f9c3 > Cr-Commit-Position: refs/heads/master@{#30592} TBR=jkummerow@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=chromium:521828 Review URL: https://codereview.chromium.org/1307863007 Cr-Commit-Position: refs/heads/master@{#30593}
-
ishell authored
[arm] Decrease the size of the assembler class by allocating buffers of pending constants on the heap. BUG=chromium:521828 LOG=N Review URL: https://codereview.chromium.org/1309903009 Cr-Commit-Position: refs/heads/master@{#30592}
-
- 15 Jul, 2015 1 commit
-
-
yangguo authored
By not having to patch the return sequence (we patch the debug break slot right before it), we don't overwrite it and therefore don't have to keep the original copy of the code around. R=ulan@chromium.org BUG=v8:4269 LOG=N Review URL: https://codereview.chromium.org/1234833003 Cr-Commit-Position: refs/heads/master@{#29672}
-
- 14 Jul, 2015 1 commit
-
-
yangguo authored
The new implemtation counts the number of calls (or continuations) before the PC to find the corresponding PC in the new code. R=mstarzinger@chromium.org BUG=chromium:507070 LOG=N Review URL: https://codereview.chromium.org/1235603002 Cr-Commit-Position: refs/heads/master@{#29636}
-
- 13 Jul, 2015 1 commit
-
-
bmeurer authored
Some TurboFan instructions block the literal pool for their entire duration. If a long enough sequence of these instructions is encountered, the literal pool can be blocked until it goes out of range. Patch from issue 1236603002 at patchset 1 (http://crrev.com/1236603002#ps1). BUG=v8:4292 LOG=y R=jarin@chromium.org Review URL: https://codereview.chromium.org/1232343002 Cr-Commit-Position: refs/heads/master@{#29587}
-
- 10 Jul, 2015 1 commit
-
-
yangguo authored
Break point at calls are currently set via IC. To change this, we need to set debug break slots instead. We also need to distinguish those debug break slots as calls to support step-in. To implement this, we add a data field to debug break reloc info to indicate non-call debug breaks or in case of call debug breaks, the number of arguments. We can later use this to find the callee on the evaluation stack in Debug::PrepareStep. BUG=v8:4269 R=ulan@chromium.org LOG=N Review URL: https://codereview.chromium.org/1222093007 Cr-Commit-Position: refs/heads/master@{#29561}
-
- 09 Jul, 2015 2 commits
-
-
bmeurer authored
The b, bl and blx methods that take labels basically ignore the constant pool check and just block the constant pool for the next instruction. This way a long enough sequence of those instructions will block can potentially block the constant pool emission for too long. BUG=v8:4292 LOG=y R=yangguo@chromium.org Review URL: https://codereview.chromium.org/1223093004 Cr-Commit-Position: refs/heads/master@{#29550}
-
bmeurer authored
That parameter is just confusing and completely unused. Review URL: https://codereview.chromium.org/1228763003 Cr-Commit-Position: refs/heads/master@{#29547}
-
- 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}
-
- 08 Apr, 2015 1 commit
-
-
bmeurer authored
Performance measurements show that the position independent code is usually slightly faster than the position dependent code, and there seems to be no noticable regression. This also gets rid of a lot of support code that was only required to allow embedding labels into the code stream. And it implies that neither the GC nor the deserializer need to do anything for jump tables. R=svenpanne@chromium.org BUG=v8:3872 LOG=n Review URL: https://codereview.chromium.org/1069633002 Cr-Commit-Position: refs/heads/master@{#27646}
-
- 07 Apr, 2015 1 commit
-
-
mvstanton authored
Thanks to some careful assumptions, we can examine the object found at vector[slot] and trust it's a heap object where the second field is either a map if it's a WeakCell, or definitely not a map if it's a Symbol, String or FixedArray. Use this to save a memory read. BUG= Review URL: https://codereview.chromium.org/1032163002 Cr-Commit-Position: refs/heads/master@{#27631}
-
- 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}
-
- 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}
-
- 23 Mar, 2015 1 commit
-
-
balazs.kilvady authored
BUG= Review URL: https://codereview.chromium.org/1025453003 Cr-Commit-Position: refs/heads/master@{#27351}
-
- 18 Mar, 2015 1 commit
-
-
yangguo authored
Review URL: https://codereview.chromium.org/1005183006 Cr-Commit-Position: refs/heads/master@{#27275}
-
- 04 Mar, 2015 1 commit
-
-
yangguo authored
We now have BreakLocation::Iterator to iterate via RelocIterator, and create a BreakLocation when we are done iterating. The reloc info is stored in BreakLocation in a GC-safe way and instantiated on demand. R=ulan@chromium.org BUG=v8:3924 LOG=N Review URL: https://codereview.chromium.org/967323002 Cr-Commit-Position: refs/heads/master@{#26983}
-
- 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}
-
- 06 Feb, 2015 1 commit
-
-
Benedikt Meurer authored
BUG=v8:3872 LOG=n R=verwaest@chromium.org Review URL: https://codereview.chromium.org/887073007 Cr-Commit-Position: refs/heads/master@{#26475}
-
- 05 Feb, 2015 3 commits
-
-
loislo authored
1) The hardcoded strings were converted into DeoptReason enum. 2) Deopt comment were converted into a pair location and deopt reason entries so the deopt reason tracking mode would less affect the size of the RelocInfo table and heap. 3) DeoptReason entry in RelocInfo reuses kCommentTag value and generates short entry in RelocInfo table. BUG=452067 LOG=n Committed: https://crrev.com/c49820e45b57f128a98690940875c049f612dde6 Cr-Commit-Position: refs/heads/master@{#26434} Committed: https://crrev.com/ec42e002da03adb2db968dd5b7453341ddc59a5c Cr-Commit-Position: refs/heads/master@{#26448} Review URL: https://codereview.chromium.org/874323003 Cr-Commit-Position: refs/heads/master@{#26463}
-
bmeurer authored
Revert of Externalize deoptimization reasons. (patchset #7 id:120001 of https://codereview.chromium.org/874323003/) Reason for revert: This CL breaks RelocInfo::INTERNAL_REFERENCE (and maybe others that come after DEOPT_REASON), which is currently (mostly) unused on tip-of-tree, but will be used for jump tables soon(ish) and should therefore work. It seems to be a problem with implicitly assumptions about the number of reloc info modes. Needs further investigation. Original issue's description: > Externalize deoptimization reasons. > > 1) The hardcoded strings were converted into DeoptReason enum. > > 2) Deopt comment were converted into a pair location and deopt reason entries so > the deopt reason tracking mode would less affect the size of the RelocInfo table and heap. > > 3) DeoptReason entry in RelocInfo reuses kCommentTag value and generates short entry in RelocInfo table. > > BUG=452067 > LOG=n > > Committed: https://crrev.com/c49820e45b57f128a98690940875c049f612dde6 > Cr-Commit-Position: refs/heads/master@{#26434} > > Committed: https://crrev.com/ec42e002da03adb2db968dd5b7453341ddc59a5c > Cr-Commit-Position: refs/heads/master@{#26448} TBR=alph@chromium.org,mstarzinger@chromium.org,svenpanne@chromium.org,yurys@chromium.org,loislo@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=452067 Review URL: https://codereview.chromium.org/900223002 Cr-Commit-Position: refs/heads/master@{#26457}
-
loislo authored
1) The hardcoded strings were converted into DeoptReason enum. 2) Deopt comment were converted into a pair location and deopt reason entries so the deopt reason tracking mode would less affect the size of the RelocInfo table and heap. 3) DeoptReason entry in RelocInfo reuses kCommentTag value and generates short entry in RelocInfo table. BUG=452067 LOG=n Committed: https://crrev.com/c49820e45b57f128a98690940875c049f612dde6 Cr-Commit-Position: refs/heads/master@{#26434} Review URL: https://codereview.chromium.org/874323003 Cr-Commit-Position: refs/heads/master@{#26448}
-
- 04 Feb, 2015 2 commits
-
-
loislo authored
Revert of Externalize deoptimization reasons. (patchset #6 id:100001 of https://codereview.chromium.org/874323003/) Reason for revert: it broke the build Original issue's description: > Externalize deoptimization reasons. > > 1) The hardcoded strings were converted into DeoptReason enum. > > 2) Deopt comment were converted into a pair location and deopt reason entries so > the deopt reason tracking mode would less affect the size of the RelocInfo table and heap. > > 3) DeoptReason entry in RelocInfo reuses kCommentTag value and generates short entry in RelocInfo table. > > BUG=452067 > LOG=n > > Committed: https://crrev.com/c49820e45b57f128a98690940875c049f612dde6 > Cr-Commit-Position: refs/heads/master@{#26434} TBR=alph@chromium.org,mstarzinger@chromium.org,svenpanne@chromium.org,yurys@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=452067 Review URL: https://codereview.chromium.org/892843007 Cr-Commit-Position: refs/heads/master@{#26435}
-
loislo authored
1) The hardcoded strings were converted into DeoptReason enum. 2) Deopt comment were converted into a pair location and deopt reason entries so the deopt reason tracking mode would less affect the size of the RelocInfo table and heap. 3) DeoptReason entry in RelocInfo reuses kCommentTag value and generates short entry in RelocInfo table. BUG=452067 LOG=n Review URL: https://codereview.chromium.org/874323003 Cr-Commit-Position: refs/heads/master@{#26434}
-