- 30 Jun, 2016 1 commit
-
-
bmeurer authored
These are no longer used, except in tests that test these intrinsics. R=yangguo@chromium.org Review-Url: https://codereview.chromium.org/2114613002 Cr-Commit-Position: refs/heads/master@{#37432}
-
- 29 Jun, 2016 1 commit
-
-
yangguo authored
R=bmeurer@chromium.org BUG=v8:5117 Review-Url: https://codereview.chromium.org/2101523003 Cr-Commit-Position: refs/heads/master@{#37357}
-
- 27 Jun, 2016 2 commits
-
-
bbudge authored
Replaces ArchDefault method with Crankshaft and Turbofan getters. Eliminates IsAllocated method on Register, FloatRegister, DoubleRegister. Eliminates ToString method too. Changes call sites to access appropriate arch default RegisterConfiguration. LOG=N BUG= Review-Url: https://codereview.chromium.org/2092413002 Cr-Commit-Position: refs/heads/master@{#37297}
-
ishell authored
The global object can be loaded from the native context and the name can be loaded in the type feedback metadata. BUG=chromium:576312 Review-Url: https://codereview.chromium.org/2096653003 Cr-Commit-Position: refs/heads/master@{#37278}
-
- 20 Jun, 2016 3 commits
-
-
bjaideep authored
Port c87168bc Original commit message: Import base::ieee754::tan() from fdlibm and introduce Float64Tan TurboFan operator based on that, similar to what we do for Float64Cos and Float64Sin. Rewrite Math.tan() as TurboFan builtin and use those operators to also inline Math.tan() into optimized TurboFan functions. Drive-by-fix: Kill the %_ConstructDouble intrinsics, and provide only the %ConstructDouble runtime entry for writing tests. R=bmeurer@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, mbrandy@us.ibm.com BUG=v8:5086,v8:5126 LOG=N Review-Url: https://codereview.chromium.org/2080303002 Cr-Commit-Position: refs/heads/master@{#37115}
-
yangguo authored
R=bmeurer@chromium.org, jgruber@chromium.org Review-Url: https://codereview.chromium.org/2072963003 Cr-Commit-Position: refs/heads/master@{#37089}
-
bjaideep authored
Port c781e831 Port 4d4eb611 Original commit message: Import base::ieee754::cos() and base::ieee754::sin() from fdlibm and introduce Float64Cos and Float64Sin TurboFan operator based on that, similar to what we do for Float64Log. Rewrite Math.cos() and Math.sin() as TurboFan builtins and use those operators to also inline Math.cos() and Math.sin() into optimized TurboFan functions. Unify Atanh, Cbrt and Expm1 as exports from flibm. R=bmeurer@chromium.org, mvstanton@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, mbrandy@us.ibm.com BUG=v8:5086,v8:5118,v8:5103 LOG=N Review-Url: https://codereview.chromium.org/2078273002 Cr-Commit-Position: refs/heads/master@{#37083}
-
- 18 Jun, 2016 1 commit
-
-
bjaideep authored
Port d5f2ac5e Original commit message: Import base::ieee754::exp() from FreeBSD msun and introduce a Float64Exp TurboFan operator based on that, similar to what we do for Float64Log. Rewrite Math.exp() as TurboFan builtin and use that operator to also inline Math.exp() into optimized TurboFan functions. R=bmeurer@chromium.org, mvstanton@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, mbrandy@us.ibm.com BUG=v8:3266,v8:3468,v8:3493,v8:5086,v8:5108,chromium:620786 LOG=N Review-Url: https://codereview.chromium.org/2075263002 Cr-Commit-Position: refs/heads/master@{#37073}
-
- 14 Jun, 2016 2 commits
-
-
ishell authored
The former will handle loads of predeclared global variables (vars and functions), lets, consts and undeclared variables. The latter will handle named loads from explicit receiver. In addition, named loads does not depend of the TypeofMode. TypeofMode related cleanup will be done in the follow-up CL. BUG=chromium:576312 LOG=Y TBR=bmeurer@chromium.org Review-Url: https://codereview.chromium.org/1912633002 Cr-Commit-Position: refs/heads/master@{#36965}
-
bmeurer authored
There's no need to have different versions of the fairly complex TransitionElementsKindStub just to avoid a single instance type check at execution time (which is used to figure out the effective length in case of JSArray objects). R=ishell@chromium.org Review-Url: https://codereview.chromium.org/2064993002 Cr-Commit-Position: refs/heads/master@{#36954}
-
- 10 Jun, 2016 2 commits
-
-
bjaideep authored
Port c8ac0d86 Original commit message: Instead, always tail call to the runtime. Also, cleanup the various versions of the runtime call that is used for Array construction fallback. There can be only one. R=danno@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, mbrandy@us.ibm.com BUG=chromium:608675 LOG=N Review-Url: https://codereview.chromium.org/2057253002 Cr-Commit-Position: refs/heads/master@{#36901}
-
bmeurer authored
This switches Math.log to use an fdlibm based version of log, imported as base::ieee754::log, and use that consistently everywhere, i.e. change the Float64Log TurboFan operators on Intel to use the C++ implementation as well (same for Crankshaft). R=yangguo@chromium.org BUG=v8:5065,v8:5086 Review-Url: https://codereview.chromium.org/2053893003 Cr-Commit-Position: refs/heads/master@{#36880}
-
- 09 Jun, 2016 2 commits
-
-
bmeurer authored
When walking up the prototype chain during OrdinaryHasInstance, we first check if the current prototype equals the expected one, and only afterwards check the current prototype against null. That's obviously wrong if we check something like Proxy, whose prototype is null. R=yangguo@chromium.org BUG=v8:5085 Review-Url: https://codereview.chromium.org/2041103007 Cr-Commit-Position: refs/heads/master@{#36840}
-
alph authored
Move is_profiling to the isolate for now. BUG=v8:4789 Review-Url: https://codereview.chromium.org/2040683002 Cr-Commit-Position: refs/heads/master@{#36838}
-
- 02 Jun, 2016 1 commit
-
-
bjaideep authored
result is sign-extended on 64bit for functions LCodeGen::DoFlooringDivI and LCodeGen::DoDivI R=joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, mbrandy@us.ibm.com BUG= LOG=N Review-Url: https://codereview.chromium.org/2029273002 Cr-Commit-Position: refs/heads/master@{#36661}
-
- 30 May, 2016 2 commits
-
-
bjaideep authored
Port 56d90782 Original commit message: In Crankshaft, we would install special ICs that didn't need a vector and slot in the MEGAMORPHIC case. This optimization limits our hand against future improvements. R=mvstanton@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, mbrandy@us.ibm.com BUG= LOG=N Review-Url: https://codereview.chromium.org/2023983002 Cr-Commit-Position: refs/heads/master@{#36600}
-
joransiu authored
Jaideep has been regularly contributing PPC and S390 changes recently. Adding him as owner/reviewer to PPC / S390 specific directories. R=joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, mbrandy@us.ibm.com BUG= Review-Url: https://codereview.chromium.org/2024533003 Cr-Commit-Position: refs/heads/master@{#36589}
-
- 18 May, 2016 1 commit
-
-
jyan authored
port 8e303dd0 R=bmeurer@chromium.org, yangguo@chromium.org, joransiu@ca.ibm.com, michael_dawson@ca.ibm.com, mbrandy@us.ibm.com BUG=v8:5010 Review-Url: https://codereview.chromium.org/1986343002 Cr-Commit-Position: refs/heads/master@{#36323}
-
- 17 May, 2016 1 commit
-
-
jyan authored
port 551e0aa1 Original Commit Messag: This adds back the instanceof operator support in the backends and introduces a @@hasInstance protector cell on the isolate that guards the fast path for the InstanceOfStub. This way we recover the ~10% regression on Octane EarleyBoyer in Crankshaft and greatly improve TurboFan and Ignition performance of instanceof. R=bmeurer@chromium.org, ishell@chromium.org, joransiu@ca.ibm.com, michael_dawson@ca.ibm.com, mbrandy@us.ibm.com TBR=hpayer@chromium.org,rossberg@chromium.org BUG=chromium:597249, v8:4447 LOG=n Review-Url: https://codereview.chromium.org/1989523002 Cr-Commit-Position: refs/heads/master@{#36290}
-
- 13 May, 2016 1 commit
-
-
mstarzinger authored
This makes the profiler reconstruct inlined function frames at eager deopt points from the deoptimization data. The main goal of this is to remove the last side-channel where Crankshaft communicates directly to the profiler. This is the last preparatory step towards deprecating the side-channel in question. R=yangguo@chromium.org Review-Url: https://codereview.chromium.org/1973993002 Cr-Commit-Position: refs/heads/master@{#36229}
-
- 11 May, 2016 3 commits
-
-
bjaideep authored
Port 6e15433d R=hpayer@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, mbrandy@us.ibm.com BUG=chromium:580959 LOG=N Review-Url: https://codereview.chromium.org/1970563004 Cr-Commit-Position: refs/heads/master@{#36185}
-
bjaideep authored
Port 61f5fbbb Original commit message: 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. R=hpayer@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, mbrandy@us.ibm.com BUG=chromium:580959 LOG=N Review-Url: https://codereview.chromium.org/1970633002 Cr-Commit-Position: refs/heads/master@{#36184}
-
mstarzinger authored
This passes the inlining_id of deoptimization points via the relocation info instead of via a side-channel to the CPU profiler. This is one step towards deprecating the side-channel in question and avoid the need for performing a lookup of the return address of the deopt point. R=jarin@chromium.org Review-Url: https://codereview.chromium.org/1956693002 Cr-Commit-Position: refs/heads/master@{#36177}
-
- 06 May, 2016 2 commits
-
-
ishell authored
Deoptimizer is now able to reconstruct topmost accessor and constructor frames. BUG=chromium:608278, v8:4698 LOG=N TBR=bmeurer@chromium.org Review-Url: https://codereview.chromium.org/1936043002 Cr-Commit-Position: refs/heads/master@{#36075}
-
mstarzinger authored
This moves all the machinery for tracing inlined function that is specific to Crankshaft into the appropriate component. Only the old side-channel via a list of InlinedFunctionInfo structs remained within the CompilationInfo for now. In the long run we will reconstruct that information from the deoptimization data on the code objects. R=bmeurer@chromium.org Review-Url: https://codereview.chromium.org/1944323002 Cr-Commit-Position: refs/heads/master@{#36068}
-
- 04 May, 2016 1 commit
-
-
mstarzinger authored
The language mode is no longer constant accross a compilation unit. For example the extends clause of a class literal can be in strict mode even though the surrounding function is in sloppy mode. This makes any global language mode predicate that reasons over an entire function inherently dangerous. Instead one should use the appropriate predicate on scopes or literals directly. R=bmeurer@chromium.org Review-Url: https://codereview.chromium.org/1949013002 Cr-Commit-Position: refs/heads/master@{#36010}
-
- 27 Apr, 2016 1 commit
-
-
bjaideep authored
Port ef49c6b1 Original commit message: Default (and only way) is now to retrieve a tagged object. R=mlippautz@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, mbrandy@us.ibm.com BUG=chromium:606711 LOG=N Review-Url: https://codereview.chromium.org/1917353002 Cr-Commit-Position: refs/heads/master@{#35829}
-
- 20 Apr, 2016 1 commit
-
-
mbrandy authored
Port 978ad03b Original commit message: Fix and re-enable the flexible representation for Math.floor (which is used to implement Math.ceil) and Math.round, which allows Math.floor and Math.round to return double results instead of int32, and therefore allows values outside the int32 range, especially -0 is now a valid result, which doesn't deopt. Also port this feature to x64 and ia32 when the CPU supports the SSE4.1 extension. This addresses all the known deoptimization loops related to Math.round in the Kraken benchmark suite, and seems to also address most of the deoptimization loops related to Math.floor in the Oort Online benchmark. Drive-by-fix: Import the regression tests for the broken HMathFloorOfDiv optimization that caused the initial revert of the feature (for arm64 only back then). R=bmeurer@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com BUG=chromium:476477,v8:2890,v8:4059 LOG=n Review URL: https://codereview.chromium.org/1839643007 Cr-Commit-Position: refs/heads/master@{#35659}
-
- 07 Apr, 2016 2 commits
-
-
mbrandy authored
Port ce1fe78d R=mvstanton@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, bjaideep@ca.ibm.com BUG=chromium:585041 LOG=N Review URL: https://codereview.chromium.org/1872443002 Cr-Commit-Position: refs/heads/master@{#35337}
-
mstarzinger authored
Now that we no longer compile stubs from JavaScript source, but have other means of generating stubs using our optimizing compilers, we can assume that scope analysis has happened whenever prologues are being assembled. R=bmeurer@chromium.org Review URL: https://codereview.chromium.org/1863333004 Cr-Commit-Position: refs/heads/master@{#35329}
-
- 01 Apr, 2016 1 commit
-
-
ishell authored
This CL ensures that we build environments/frame states so that tail caller frame will never become topmost. BUG=chromium:598998, v8:4698 LOG=N Review URL: https://codereview.chromium.org/1849503002 Cr-Commit-Position: refs/heads/master@{#35188}
-
- 31 Mar, 2016 1 commit
-
-
mbrandy authored
Port f2a58593 Original commit message: Replace the uses with proper page flag lookups. R=mlippautz@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com BUG=chromium:581412 LOG=N TEST=mjsunit/allocation-site-info Review URL: https://codereview.chromium.org/1845753005 Cr-Commit-Position: refs/heads/master@{#35172}
-
- 30 Mar, 2016 1 commit
-
-
jarin authored
Context is always available through deopt data, so there should be no need to store the context back to the frame every time. (Turbofan already does not store back to the frame.) Review URL: https://codereview.chromium.org/1845553002 Cr-Commit-Position: refs/heads/master@{#35125}
-
- 22 Mar, 2016 3 commits
-
-
mbrandy authored
Port 1134688c Original commit message: This roughly doubles performance for generic Array.prototype.push. R=verwaest@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com BUG= Review URL: https://codereview.chromium.org/1823103002 Cr-Commit-Position: refs/heads/master@{#34999}
-
mbrandy authored
Port acbb968d Port 66e22b79 Original commit messages: 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. Always generate lazy bailout points for tail calls because Debugger could still require them to inspect optimized frames. R=ishell@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com BUG=chromium:596473, v8:4698 LOG=N Review URL: https://codereview.chromium.org/1825513002 Cr-Commit-Position: refs/heads/master@{#34996}
-
ishell authored
BUG=v8:4698 LOG=N TBR=bmeurer@chromium.org Review URL: https://codereview.chromium.org/1782743003 Cr-Commit-Position: refs/heads/master@{#34992}
-
- 21 Mar, 2016 1 commit
-
-
jkummerow authored
Bounds check hoisting was known to be buggy and has never been turned on. Since Crankshaft is deprecated, nobody is going to spend time fixing it, so let's just get rid of it. BUG=v8:4155,v8:4849 LOG=n R=bmeurer@chromium.org Review URL: https://codereview.chromium.org/1823623002 Cr-Commit-Position: refs/heads/master@{#34948}
-
- 16 Mar, 2016 1 commit
-
-
ishell authored
This fix removes unnecessary nops from function prolog and seems to recover performance regression on some of SunSpider benchmarks. TBR=bmeurer@chromium.org BUG=chromium:531369 LOG=N Review URL: https://codereview.chromium.org/1800233003 Cr-Commit-Position: refs/heads/master@{#34810}
-
- 09 Mar, 2016 2 commits
-
-
mbrandy authored
Port 9dcd0857 Original commit message: 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). R=danno@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com BUG= Review URL: https://codereview.chromium.org/1778713002 Cr-Commit-Position: refs/heads/master@{#34643}
-
ishell authored
TBR=bmeurer@chromium.org BUG=v8:4698 LOG=N Review URL: https://codereview.chromium.org/1773173005 Cr-Commit-Position: refs/heads/master@{#34613}
-