- 10 May, 2016 2 commits
-
-
hpayer authored
The new allocation folding implementation avoids fragmentation between folded allocation. As a consequence, our heap will always be iterable i.e. we do not have to perform a garbage collection before iterating the heap. BUG=chromium:580959 LOG=n Review-Url: https://codereview.chromium.org/1899813003 Cr-Commit-Position: refs/heads/master@{#36133}
-
bmeurer authored
This adds a new pass MemoryOptimizer that walks over the effect chain from Start and lowers all Allocate, LoadField, StoreField, LoadElement, and StoreElement nodes, trying to fold allocations into allocation groups and eliminate write barriers on StoreField and StoreElement if possible (i.e. if the object belongs to the current allocation group and that group allocates in new space). R=hpayer@chromium.org, jarin@chromium.org BUG=v8:4931, chromium:580959 LOG=n Review-Url: https://codereview.chromium.org/1963583004 Cr-Commit-Position: refs/heads/master@{#36128}
-
- 09 May, 2016 2 commits
-
-
bbudge authored
Changes some platform specific class names and uses typedefs to define FloatRegister, DoubleRegister, etc. This will be needed to do register allocation on ARM/MIPS where registers combine to form larger registers. LOG=N BUG=v8:4124 Review-Url: https://codereview.chromium.org/1954953002 Cr-Commit-Position: refs/heads/master@{#36117}
-
zhengxing.li authored
The CL #35926 (https://codereview.chromium.org/1804003002) exposed two hidden bugs in x87 code generation when Ignition was enabled. This CL fixed those bugs. BUG= Review-Url: https://codereview.chromium.org/1960993002 Cr-Commit-Position: refs/heads/master@{#36099}
-
- 06 May, 2016 2 commits
-
-
zhengxing.li authored
port d2efbf25 (r36000) original commit message: BUG= Review-Url: https://codereview.chromium.org/1947363002 Cr-Commit-Position: refs/heads/master@{#36061}
-
zhengxing.li authored
X87: Add new relocation type WASM_MEMORY_SIZE_REFERENCE, use relocatable pointers to update wasm memory size references in generated code. port 117a56b7 (r36044) original commit message: - Add new RelocInfo mode WASM_MEMORY_SIZE_REFERENCE in the assembler and add relocation information to immediates in compare instructions. - Use relocatable constants for MemSize/BoundsCheck in the wasm compiler BUG= Review-Url: https://codereview.chromium.org/1947413003 Cr-Commit-Position: refs/heads/master@{#36058}
-
- 05 May, 2016 3 commits
-
-
zhengxing.li authored
port af677d7b (r35998) original commit message: https://codereview.chromium.org/1938213002 added xchg_b and xchg_w, but didn't add it to the disassembler, and there were no tests that caught it. BUG= Review-Url: https://codereview.chromium.org/1947843002 Cr-Commit-Position: refs/heads/master@{#36051}
-
zhengxing.li authored
port 81cb8411 (r35993) original commit message: BUG= Review-Url: https://codereview.chromium.org/1947833002 Cr-Commit-Position: refs/heads/master@{#36049}
-
zhengxing.li authored
port fa570e55 (r35963) original commit message: BUG= Review-Url: https://codereview.chromium.org/1952583002 Cr-Commit-Position: refs/heads/master@{#36048}
-
- 03 May, 2016 2 commits
-
-
ishell authored
Code common with ObjectHasOwnProperty builtin was moved to CodeStubAssembler. BUG=v8:2743 LOG=Y Review-Url: https://codereview.chromium.org/1894953004 Cr-Commit-Position: refs/heads/master@{#35972}
-
zhengxing.li authored
port d1b3d426 (r35918) original commit message: Further refactor the pipeline to even run the first scheduler (part of the effect control linearization) concurrently. This temporarily disables most of the write barrier elimination, but we will get back to that later. Drive-by-fix: Remove the dead code from ChangeLowering, and stack allocate the Typer in the pipeline. Also migrate the AllocateStub to a native code builtin, so that we have the code object + a handle to it available all the time. BUG= Review-Url: https://codereview.chromium.org/1940143002 Cr-Commit-Position: refs/heads/master@{#35961}
-
- 29 Apr, 2016 1 commit
-
-
zhengxing.li authored
port 306c412c (r35833) original commit message: This is needed by Blink to implement the Custom Elements spec. BUG= Review-Url: https://codereview.chromium.org/1928213002 Cr-Commit-Position: refs/heads/master@{#35889}
-
- 27 Apr, 2016 1 commit
-
-
zhengxing.li authored
port ef49c6b1 (r35792) original commit message: Default (and only way) is now to retrieve a tagged object. BUG= Review URL: https://codereview.chromium.org/1924643004 Cr-Commit-Position: refs/heads/master@{#35808}
-
- 26 Apr, 2016 2 commits
-
-
mlippautz authored
Default (and only way) is now to retrieve a tagged object. BUG=chromium:606711 LOG=N Review URL: https://codereview.chromium.org/1922553002 Cr-Commit-Position: refs/heads/master@{#35792}
-
zhengxing.li authored
port c005029a (r35754) original commit message: Use the FastNewSloppyArgumentsStub in the interpreter when function doesn't have duplicate parameters. BUG= Review URL: https://codereview.chromium.org/1922803002 Cr-Commit-Position: refs/heads/master@{#35781}
-
- 25 Apr, 2016 2 commits
-
-
mstarzinger authored
This adds a baseline tier to the compilation pipeline. Currently this tier is used to model a path from the interpreter to optimized code via full-codegen code (to ensure sufficient type feedback). Switching from the unoptimized tier to the baseline tier is limited to happen only when there are no activations of the given function on the stack. R=rmcilroy@chromium.org,bmeurer@chromium.org Review URL: https://codereview.chromium.org/1903273004 Cr-Commit-Position: refs/heads/master@{#35757}
-
zhengxing.li authored
port 5c8609de (r35724) original commit message: This ensures the InterpreterEntryTrampoline heals code entry fields inside closures when being called without a valid bytecode array. This is preparatory work to allow removal of bytecode when switching some functions to other types of code. BUG= Review URL: https://codereview.chromium.org/1920713002 Cr-Commit-Position: refs/heads/master@{#35744}
-
- 22 Apr, 2016 1 commit
-
-
rmcilroy authored
Adds IncStub and DecStub TurboFan code stubs and hooks them up to the interpreter's Inc and Dec bytecodes (which are used for count operations, e.g. i++). BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1901083002 Cr-Commit-Position: refs/heads/master@{#35720}
-
- 21 Apr, 2016 1 commit
-
-
zhengxing.li authored
port 3518e492 (r35660) original commit message: Short external strings do not cache the resource data, and may be used for compressible strings. The assumptions about their lengths is invalid and may lead to oob reads. BUG= Review URL: https://codereview.chromium.org/1904003003 Cr-Commit-Position: refs/heads/master@{#35681}
-
- 20 Apr, 2016 2 commits
-
-
mlippautz authored
BUG= Review URL: https://codereview.chromium.org/1899183002 Cr-Commit-Position: refs/heads/master@{#35656}
-
zhengxing.li authored
port 623ad7de (r35618) original commit message: 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= Review URL: https://codereview.chromium.org/1903093002 Cr-Commit-Position: refs/heads/master@{#35640}
-
- 19 Apr, 2016 4 commits
-
-
zhengxing.li authored
port d2b0a4b7 (r35606) original commit message: MIPS port contributed by Balazs Kilvady <balazs.kilvady@imgtec.com> BUG= Review URL: https://codereview.chromium.org/1897823005 Cr-Commit-Position: refs/heads/master@{#35611}
-
mlippautz authored
This makes IterateBodyFast work without requiring visitors to inherit from ObjectVisitor. R=ishell@chromium.org Review URL: https://codereview.chromium.org/1900843002 Cr-Commit-Position: refs/heads/master@{#35604}
-
zhengxing.li authored
port d412cfa2 (r35596) original commit message: Reland of (https://codereview.chromium.org/1891033002) This is a much cleaner solution, which won't require nearly as much architecture-specific code. Thanks bmeurer@! BUG= Review URL: https://codereview.chromium.org/1897143003 Cr-Commit-Position: refs/heads/master@{#35603}
-
zhengxing.li authored
port d0ccddd0 (r35584) original commit message: Behind --ignition-generators. Does not yet support Turbofan. BUG= Review URL: https://codereview.chromium.org/1902663002 Cr-Commit-Position: refs/heads/master@{#35602}
-
- 18 Apr, 2016 5 commits
-
-
rmcilroy authored
Adds code to call FunctionEntryHook on entry to the InterpreterEntryTrampoline. This should give SyzyProf enough information to build non-discontinous profile graphs, however since interpreter functions aren't uniquely identified they will all get lumped into one bucket. This should be good enough for SyzyProf's current use-case. BUG=v8:4763 LOG=N Review URL: https://codereview.chromium.org/1884133002 Cr-Commit-Position: refs/heads/master@{#35568}
-
zhengxing.li authored
port 0c05e02f (r35480) original commit message: 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= Review URL: https://codereview.chromium.org/1893243002 Cr-Commit-Position: refs/heads/master@{#35561}
-
zhengxing.li authored
port 5e9ddf6c (r35453) original commit message: Reland of (https://codereview.chromium.org/1617503003) * New atomic code stubs for x64, ia32, arm, arm64 * Add convenience functions JumpIfNotValidSmiValue, JumpIfUintNotValidSmiValue to macro-assembler-ia32 (API based on x64 macro assembler) * Remove runtime implementation of Atomics.load, the code stub should always be called instead * Add new test to mjsunit atomics test; check that Smi values of different sizes are supported when possible, else fall back to HeapNumbers These changes were needed to add another codestub: * Bump kStubMajorKeyBits from 7 to 8 * Reduce ScriptContextFieldStub::kSlotIndexBits from 13 to 12 BUG= Review URL: https://codereview.chromium.org/1894923002 Cr-Commit-Position: refs/heads/master@{#35560}
-
zhengxing.li authored
port c2de9611(r35440) original commit message: Visit the Optimized Code Map on first call rather than closure creation. This is useful for escape analysis, and helps upcoming changes to type feedback gathering. BUG= Review URL: https://codereview.chromium.org/1893213002 Cr-Commit-Position: refs/heads/master@{#35558}
-
zhengxing.li authored
port 2e329666(r35370) original commit message: ... instead of doing stack magic. This is a cleanup in preparation for the new generators implementation. BUG= Review URL: https://codereview.chromium.org/1893943002 Cr-Commit-Position: refs/heads/master@{#35555}
-
- 15 Apr, 2016 3 commits
-
-
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}
-
zhengxing.li authored
port 974721c6 (r35283) original commit message: Introduce a ResumeGeneratorTrampoline, which does the actual stack state reconstruction (currently always restores a fullcodegen frame), and introduce appropriate TurboFan builtins for %GeneratorPrototype%.next, %GeneratorPrototype%.return and %GeneratorPrototype%.throw based on this native builtin. Also unify the flooding in case of step-in to always work based on JSFunction and remove the special casing for JSGeneratorObject. BUG= Review URL: https://codereview.chromium.org/1889083002 Cr-Commit-Position: refs/heads/master@{#35510}
-
zhengxing.li authored
port 3dd3beb0 (r35199) original commit message: Currently, if the size of two cmp or test operands is a byte or a word, we sign-extend or zero-extend each of them into a 32-bit register before doing the comparison, even when the conditions for the use of a memory operand are met. This CL makes it possible to load only one of them into a register and address the other as a memory operand. The tricky bit is that, unlike as in the x64 counterpart http://crrev.com/1780193003, not all registers can be accessed as bytes. BUG= Review URL: https://codereview.chromium.org/1883373002 Cr-Commit-Position: refs/heads/master@{#35508}
-
- 14 Apr, 2016 1 commit
-
-
zhengxing.li authored
port e6b6e554 (r35163) original commit message: In the earlier implementation of GenerateDoubleToObject the context is loaded from the parent's frame. rsi is clobbered because it is used to store kHoleNan constnat. It is not always safe to peek at the parents frame. Bytecode handlers have TypedFrame and the type of frame is stored at FP + 1. GenerateDoubleToObject expects context to be store at that place. In the current implementation rsi is pushed onto the stack and is popped when exiting this function. BUG= Review URL: https://codereview.chromium.org/1884873007 Cr-Commit-Position: refs/heads/master@{#35478}
-
- 12 Apr, 2016 2 commits
-
-
jfb authored
The usage of __attribute__((format(x, y)) was either wrong or missing from multiple functions, leading to erroneous formats. This CL: - Imports PRINTF_FORMAT macro from Chrome's src/base/compiler-specific.h. - Uses it appropriately. - Imports Chrome's base/format_macros.h mainly to fix size_t formats (further cleanup could be done). - Fixes a bunch of incorrect formats. Original CL: https://codereview.chromium.org/1869433004 Reverted in: https://codereview.chromium.org/1867383002 Reverted again in: https://codereview.chromium.org/1877823003 Reverts due to non-CQ bots: - First: v8_win_dbg, v8_win64_dbg, v8_mac_dbg - Second: gc mole (added to v8_linux_rel_ng for this patch) R= jochen@chromium.org TBR= ahaas@chromium.org,bmeurer@chromium.org,yangguo@chromium.org Review URL: https://codereview.chromium.org/1872203005 Cr-Commit-Position: refs/heads/master@{#35423}
-
bmeurer authored
Previously TurboFan always went to the runtime to allocate in old space, which is pretty slow compare to a stub call. R=jarin@chromium.org Review URL: https://codereview.chromium.org/1877323002 Cr-Commit-Position: refs/heads/master@{#35418}
-
- 11 Apr, 2016 2 commits
-
-
https://codereview.chromium.org/1877453002/machenbach authored
Reason for revert: Breaks gc mole: https://build.chromium.org/p/client.v8/builders/V8%20Linux/builds/9421 Original issue's description: > Fix printf formats > > The usage of __attribute__((format(x, y)) was either wrong or missing from multiple functions, leading to erroneous formats. This CL: > > - Imports PRINTF_FORMAT macro from Chrome's src/base/compiler-specific.h. > - Uses it appropriately. > - Imports Chrome's base/format_macros.h mainly to fix size_t formats (further cleanup could be done). > - Fixes a bunch of incorrect formats. > > Original CL: https://codereview.chromium.org/1869433004 > Reverted in: https://codereview.chromium.org/1867383002 > > R= jochen@chromium.org > TBR= bmeurer@chromium.org, yangguo@chromium.org, ahaas@chromium.org > > Committed: https://crrev.com/bf505329288e1b75bab0e6800371a9aac40fa5cc > Cr-Commit-Position: refs/heads/master@{#35394} TBR=jochen@chromium.org,ahaas@chromium.org,bmeurer@chromium.org,yangguo@chromium.org,jfb@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/1877823003 Cr-Commit-Position: refs/heads/master@{#35396}
-
jfb authored
The usage of __attribute__((format(x, y)) was either wrong or missing from multiple functions, leading to erroneous formats. This CL: - Imports PRINTF_FORMAT macro from Chrome's src/base/compiler-specific.h. - Uses it appropriately. - Imports Chrome's base/format_macros.h mainly to fix size_t formats (further cleanup could be done). - Fixes a bunch of incorrect formats. Original CL: https://codereview.chromium.org/1869433004 Reverted in: https://codereview.chromium.org/1867383002 R= jochen@chromium.org TBR= bmeurer@chromium.org, yangguo@chromium.org, ahaas@chromium.org Review URL: https://codereview.chromium.org/1877453002 Cr-Commit-Position: refs/heads/master@{#35394}
-
- 08 Apr, 2016 2 commits
-
-
jfb authored
Revert of Fix printf formats (patchset #8 id:140001 of https://codereview.chromium.org/1869433004/ ) Reason for revert: One small issue easily fixed here: https://codereview.chromium.org/1867333003/ But it looks like MSVS 2013 doesn't like some of the formats and exists with the unhelpful: Stderr: f:\dd\vctools\crt\crtw32\stdio\output.c(1125) : Assertion failed: ("Incorrect format specifier", 0) It's easier to revert for now, I'll dig more into the docs: https://msdn.microsoft.com/en-us/library/56e442dc(v=vs.120).aspx https://msdn.microsoft.com/en-us/library/tcxf1dw6(v=vs.120).aspx And then resubmit, making sure I run these bots. Original issue's description: > Fix printf formats > > The usage of __attribute__((format(x, y)) was either wrong or missing from multiple functions, leading to erroneous formats. This CL: > > - Imports PRINTF_FORMAT macro from Chrome's src/base/compiler-specific.h. > - Uses it appropriately. > - Imports Chrome's base/format_macros.h mainly to fix size_t formats (further cleanup could be done). > - Fixes a bunch of incorrect formats. > > R= jochen@chromium.org, bmeurer@chromium.org, yangguo@chromium.org, ahaas@chromium.org > > Committed: https://crrev.com/6ebf9fbb93d31f9be41156a3325d58704ed4933d > Cr-Commit-Position: refs/heads/master@{#35365} TBR=jochen@chromium.org,bmeurer@chromium.org,yangguo@chromium.org,ahaas@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/1867383002 Cr-Commit-Position: refs/heads/master@{#35366}
-
jfb authored
The usage of __attribute__((format(x, y)) was either wrong or missing from multiple functions, leading to erroneous formats. This CL: - Imports PRINTF_FORMAT macro from Chrome's src/base/compiler-specific.h. - Uses it appropriately. - Imports Chrome's base/format_macros.h mainly to fix size_t formats (further cleanup could be done). - Fixes a bunch of incorrect formats. R= jochen@chromium.org, bmeurer@chromium.org, yangguo@chromium.org, ahaas@chromium.org Review URL: https://codereview.chromium.org/1869433004 Cr-Commit-Position: refs/heads/master@{#35365}
-