- 22 Apr, 2016 3 commits
-
-
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}
-
bmeurer authored
Get rid of further typing checks from ChangeLowering and put them into the representation selection pass instead (encoding the information in the operator instead). Drive-by-change: Rename ChangeSmiToInt32 to ChangeTaggedSignedToInt32 for consistency about naming Tagged, TaggedSigned and TaggedPointer. R=jarin@chromium.org Review URL: https://codereview.chromium.org/1909343002 Cr-Commit-Position: refs/heads/master@{#35723}
-
bmeurer authored
If we have to convert a float64 value to tagged representation and we already know that the value is either in Signed31/Signed32 or Unsigned32 range, then we can just convert the float64 to word32 and use the fast word32 to tagged conversion. Doing this in ChangeLowering (or the effect linearization pass) would be unsound, as the types on the nodes are no longer usable. This removes all Type uses from effect linearization. There's still some work to be done for ChangeLowering tho. R=jarin@chromium.org Review URL: https://codereview.chromium.org/1908093002 Cr-Commit-Position: refs/heads/master@{#35713}
-
- 21 Apr, 2016 1 commit
-
-
bmeurer authored
This operator doesn't generate any actual code, but teaches the register allocator that a certain computed pointer value is tagged. This is required to safely implement InnerAllocate (and we also use this for Allocate to be sure that we don't suddenly leak a dangling pointer into the heap somewhere). R=epertoso@chromium.org BUG=v8:4939 LOG=n Review URL: https://codereview.chromium.org/1905813003 Cr-Commit-Position: refs/heads/master@{#35700}
-
- 20 Apr, 2016 1 commit
-
-
bmeurer authored
Previously we had to run SimplifiedLowering, ChangeLowering and JSGenericLowering independently and exactly in this order to achieve great performance for the common case of JSToNumber (i.e. input is already a Smi or a HeapNumber). This phase ordering problem already causes trouble with not being able to run the generic lowering phase earlier, but also blocks proper plain primitive ToNumber optimizations. So this properly integrates JSToNumber into the truncation analysis and optimizes according to the truncation (either Word32 or Float64). R=jarin@chromium.org Review URL: https://codereview.chromium.org/1901803002 Cr-Commit-Position: refs/heads/master@{#35643}
-
- 18 Apr, 2016 2 commits
-
-
binji authored
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=v8:4614 LOG=y TBR=bmeurer@chromium.org Review URL: https://codereview.chromium.org/1902433003 Cr-Commit-Position: refs/heads/master@{#35596}
-
bmeurer authored
Add support to optimize certain comparisons of typeof with known strings to utilize the existing ObjectIs<Type> predicates. Also add a new ObjectIsCallable, which is used to optimize the common typeof x === "function" pattern. R=jarin@chromium.org Review URL: https://codereview.chromium.org/1898653003 Cr-Commit-Position: refs/heads/master@{#35562}
-
- 16 Apr, 2016 2 commits
-
-
machenbach authored
Revert of [Atomics] Remove Atomics code stubs; use TF ops (patchset #6 id:100001 of https://codereview.chromium.org/1891033002/ ) Reason for revert: [Sheriff] Breaks https://build.chromium.org/p/client.v8/builders/V8%20Linux%20ASAN%20mipsel%20-%20debug%20builder/builds/6121 Original issue's description: > [Atomics] Remove Atomics code stubs; use TF ops > > This is a much cleaner solution, which won't require nearly as much > architecture-specific code. Thanks bmeurer@! > > BUG=v8:4614 > LOG=y > R=bmeurer@chromium.org,jarin@chromium.org > > Committed: https://crrev.com/6ff5881b1def45b35384572f61327e42563a89c3 > Cr-Commit-Position: refs/heads/master@{#35547} TBR=bmeurer@chromium.org,jarin@chromium.org,rodolph.perfetta@gmail.com,binji@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:4614 Review URL: https://codereview.chromium.org/1895643002 Cr-Commit-Position: refs/heads/master@{#35548}
-
binji authored
This is a much cleaner solution, which won't require nearly as much architecture-specific code. Thanks bmeurer@! BUG=v8:4614 LOG=y R=bmeurer@chromium.org,jarin@chromium.org Review URL: https://codereview.chromium.org/1891033002 Cr-Commit-Position: refs/heads/master@{#35547}
-
- 15 Apr, 2016 1 commit
-
-
bmeurer authored
This adds an ObjectIsString operator and hooks it up with JSNativeContextSpecialization (to remove the use of some machine operators there). R=jarin@chromium.org Review URL: https://codereview.chromium.org/1894523002 Cr-Commit-Position: refs/heads/master@{#35525}
-
- 14 Apr, 2016 2 commits
-
-
jarin authored
This allows us to remove the turbofan bailout that we introduced as a response to crbug.com/589792. BUG=chromium:589792 LOG=n Review URL: https://codereview.chromium.org/1884713003 Cr-Commit-Position: refs/heads/master@{#35493}
-
bmeurer authored
At some point we thought about using this instead of JSToNumber, but now there doesn't seem to be any reason for this anymore. R=jarin@chromium.org Review URL: https://codereview.chromium.org/1890763002 Cr-Commit-Position: refs/heads/master@{#35469}
-
- 12 Apr, 2016 2 commits
-
-
gdeepti authored
Add relocatable pointers for wasm memory references that need to be updated when wasm GrowMemory is used. Code generator changes to accept relocatable constants as immediates. R=titzer@chromium.org, yangguo@chromium.org, bradnelson@chromium.org Committed: https://crrev.com/eb5fe0df64ec0add423b2a1f6fb62d5a33dce2a5 Cr-Commit-Position: refs/heads/master@{#35182} Committed: https://crrev.com/297932a302ce0b73c3618ef9e4eba9d9d241f2b3 Cr-Commit-Position: refs/heads/master@{#35400} Review URL: https://codereview.chromium.org/1759383003 Cr-Commit-Position: refs/heads/master@{#35407}
-
machenbach authored
Revert of [compiler] Add relocatable pointer constants for wasm memory references. (patchset #15 id:320001 of https://codereview.chromium.org/1759383003/ ) Reason for revert: [Sheriff] Breaks msan: https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20arm64%20-%20sim%20-%20MSAN/builds/7842 Original issue's description: > [compiler] Add relocatable pointer constants for wasm memory references. > > Add relocatable pointers for wasm memory references that need to be updated when wasm GrowMemory is used. Code generator changes to accept relocatable constants as immediates. > > R=titzer@chromium.org, yangguo@chromium.org, bradnelson@chromium.org > > Committed: https://crrev.com/eb5fe0df64ec0add423b2a1f6fb62d5a33dce2a5 > Cr-Commit-Position: refs/heads/master@{#35182} > > Committed: https://crrev.com/297932a302ce0b73c3618ef9e4eba9d9d241f2b3 > Cr-Commit-Position: refs/heads/master@{#35400} TBR=bradnelson@chromium.org,titzer@chromium.org,bmeurer@chromium.org,bradnelson@google.com,gdeepti@google.com # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1881913002 Cr-Commit-Position: refs/heads/master@{#35401}
-
- 11 Apr, 2016 1 commit
-
-
gdeepti authored
Add relocatable pointers for wasm memory references that need to be updated when wasm GrowMemory is used. Code generator changes to accept relocatable constants as immediates. R=titzer@chromium.org, yangguo@chromium.org, bradnelson@chromium.org Committed: https://crrev.com/eb5fe0df64ec0add423b2a1f6fb62d5a33dce2a5 Cr-Commit-Position: refs/heads/master@{#35182} Review URL: https://codereview.chromium.org/1759383003 Cr-Commit-Position: refs/heads/master@{#35400}
-
- 02 Apr, 2016 3 commits
-
-
machenbach authored
Revert of Turbofan: Add MachineOperators for SIMD. (patchset #1 id:1 of https://codereview.chromium.org/1850383002/ ) Reason for revert: The first revert did help after all. See comments on: https://codereview.chromium.org/1848433003/ Original issue's description: > Reland of Turbofan: Add MachineOperators for SIMD. (patchset #1 id:1 of https://codereview.chromium.org/1850373002/ ) > > Reason for revert: > Revert didn't help. Still we need to figure out what bothers the msan build. > > Original issue's description: > > Revert of Turbofan: Add MachineOperators for SIMD. (patchset #5 id:70001 of https://codereview.chromium.org/1848433003/ ) > > > > Reason for revert: > > [Sheriff] Speculative revert. Compile now times out on msan: > > https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20arm64%20-%20sim%20-%20MSAN/builds/7705 > > > > Original issue's description: > > > Turbofan: Add MachineOperators for SIMD. > > > > > > Takes the SIMD runtime intrinsics as a starting point for defining TF machine operators. The rationale for omitting functions is: > > > > > > - UInt constructors. int and uint aren't distinguished in wasm. > > > - Check functions. > > > - 'FromXxxBits' functions. These are essentially casts. > > > - Simple Load / Store functions. Existing load / store with SIMD type should work. > > > - Uint functions, except where their behavior is bitwise different from the Int function. > > > > > > Skipped fns: > > > > > > Float32x4Check > > > Float32x4FromInt32x4Bits > > > Float32x4FromUint32x4Bits > > > Float32x4FromInt16x8Bits > > > Float32x4FromUint16x8Bits > > > Float32x4FromInt8x16Bits > > > Float32x4FromUint8x16Bits > > > Float32x4Load > > > Float32x4Store > > > > > > Int32x4Check > > > Int32x4FromUint32x4 > > > Int32x4FromFloat32x4Bits > > > Int32x4FromUint32x4Bits > > > Int32x4FromInt16x8Bits > > > Int32x4FromUint16x8Bits > > > Int32x4FromInt8x16Bits > > > Int32x4FromUint8x16Bits > > > Int32x4Load > > > Int32x4Store > > > > > > CreateUint32x4 > > > Uint32x4Check > > > Uint32x4ExtractLane > > > Uint32x4ReplaceLane > > > Uint32x4Add > > > Uint32x4Sub > > > Uint32x4Mul > > > Uint32x4And > > > Uint32x4Or > > > Uint32x4Xor > > > Uint32x4Not > > > Uint32x4Equal > > > Uint32x4NotEqual > > > Uint32x4Select > > > Uint32x4Swizzle > > > Uint32x4Shuffle > > > Uint32x4FromInt32x4 > > > Uint32x4FromFloat32x4Bits > > > Uint32x4FromInt32x4Bits > > > Uint32x4FromInt16x8Bits > > > Uint32x4FromUint16x8Bits > > > Uint32x4FromInt8x16Bits > > > Uint32x4FromUint8x16Bits > > > Uint32x4Load > > > Uint32x4Load1 > > > Uint32x4Load2 > > > Uint32x4Load3 > > > Uint32x4Store > > > Uint32x4Store1 > > > Uint32x4Store2 > > > Uint32x4Store3 > > > > > > Bool32x4Check > > > > > > Int16x8Check > > > Int16x8FromUint16x8 > > > Int16x8FromFloat32x4Bits > > > Int16x8FromInt32x4Bits > > > Int16x8FromUint32x4Bits > > > Int16x8FromUint16x8Bits > > > Int16x8FromInt8x16Bits > > > Int16x8FromUint8x16Bits > > > Int16x8Load > > > Int16x8Store > > > > > > CreateUint16x8 > > > Uint16x8Check > > > Uint16x8ExtractLane > > > Uint16x8ReplaceLane > > > Uint16x8Add > > > Uint16x8Sub > > > Uint16x8Mul > > > Uint16x8And > > > Uint16x8Or > > > Uint16x8Xor > > > Uint16x8Not > > > Uint16x8Equal > > > Uint16x8NotEqual > > > Uint16x8Select > > > Uint16x8Swizzle > > > Uint16x8Shuffle > > > Uint16x8FromInt16x8 > > > Uint16x8FromFloat32x4Bits > > > Uint16x8FromInt32x4Bits > > > Uint16x8FromUint32x4Bits > > > Uint16x8FromInt16x8Bits > > > Uint16x8FromInt8x16Bits > > > Uint16x8FromUint8x16Bits > > > Uint16x8Load > > > Uint16x8Store > > > > > > Bool16x8Check > > > > > > Int8x16Check > > > Int8x16FromUint8x16 > > > Int8x16FromFloat32x4Bits > > > Int8x16FromInt32x4Bits > > > Int8x16FromUint32x4Bits > > > Int8x16FromInt16x8Bits > > > Int8x16FromUint16x8Bits > > > Int8x16FromUint8x16Bits > > > Int8x16Load > > > Int8x16Store > > > > > > CreateUint8x16 > > > Uint8x16Check > > > Uint8x16ExtractLane > > > Uint8x16ReplaceLane > > > Uint8x16Add > > > Uint8x16Sub > > > Uint8x16Mul > > > Uint8x16And > > > Uint8x16Or > > > Uint8x16Xor > > > Uint8x16Not > > > Uint8x16Equal > > > Uint8x16NotEqual > > > Uint8x16Select > > > Uint8x16Swizzle > > > Uint8x16Shuffle > > > Uint8x16FromInt8x16 > > > Uint8x16FromFloat32x4Bits > > > Uint8x16FromInt32x4Bits > > > Uint8x16FromUint32x4Bits > > > Uint8x16FromInt16x8Bits > > > Uint8x16FromUint16x8Bits > > > Uint8x16FromInt8x16Bits > > > Uint8x16Load > > > Uint8x16Store > > > > > > Bool8x16Check > > > > > > LOG=N > > > BUG=v8:4124 > > > > > > Committed: https://crrev.com/3831d41e4ce7b162775732cb6ac1f8139e60aa30 > > > Cr-Commit-Position: refs/heads/master@{#35213} > > > > TBR=bradnelson@chromium.org,gdeepti@chromium.org,titzer@chromium.org,mtrofin@chromium.org,bradnelson@google.com,bmeurer@chromium.org,bbudge@chromium.org > > # Skipping CQ checks because original CL landed less than 1 days ago. > > NOPRESUBMIT=true > > NOTREECHECKS=true > > NOTRY=true > > BUG=v8:4124 > > > > Committed: https://crrev.com/8481ec6016992e0b9ffb70137e9ff8fcd4135bba > > Cr-Commit-Position: refs/heads/master@{#35220} > > TBR=bradnelson@chromium.org,gdeepti@chromium.org,titzer@chromium.org,mtrofin@chromium.org,bradnelson@google.com,bmeurer@chromium.org,bbudge@chromium.org > # Skipping CQ checks because original CL landed less than 1 days ago. > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > BUG=v8:4124 > > Committed: https://crrev.com/1f46e3ee8cec6b06b30b569e5688de095c4661ff > Cr-Commit-Position: refs/heads/master@{#35221} TBR=bradnelson@chromium.org,gdeepti@chromium.org,titzer@chromium.org,mtrofin@chromium.org,bradnelson@google.com,bmeurer@chromium.org,bbudge@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:4124 Review URL: https://codereview.chromium.org/1846413002 Cr-Commit-Position: refs/heads/master@{#35222}
-
machenbach authored
Reland of Turbofan: Add MachineOperators for SIMD. (patchset #1 id:1 of https://codereview.chromium.org/1850373002/ ) Reason for revert: Revert didn't help. Still we need to figure out what bothers the msan build. Original issue's description: > Revert of Turbofan: Add MachineOperators for SIMD. (patchset #5 id:70001 of https://codereview.chromium.org/1848433003/ ) > > Reason for revert: > [Sheriff] Speculative revert. Compile now times out on msan: > https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20arm64%20-%20sim%20-%20MSAN/builds/7705 > > Original issue's description: > > Turbofan: Add MachineOperators for SIMD. > > > > Takes the SIMD runtime intrinsics as a starting point for defining TF machine operators. The rationale for omitting functions is: > > > > - UInt constructors. int and uint aren't distinguished in wasm. > > - Check functions. > > - 'FromXxxBits' functions. These are essentially casts. > > - Simple Load / Store functions. Existing load / store with SIMD type should work. > > - Uint functions, except where their behavior is bitwise different from the Int function. > > > > Skipped fns: > > > > Float32x4Check > > Float32x4FromInt32x4Bits > > Float32x4FromUint32x4Bits > > Float32x4FromInt16x8Bits > > Float32x4FromUint16x8Bits > > Float32x4FromInt8x16Bits > > Float32x4FromUint8x16Bits > > Float32x4Load > > Float32x4Store > > > > Int32x4Check > > Int32x4FromUint32x4 > > Int32x4FromFloat32x4Bits > > Int32x4FromUint32x4Bits > > Int32x4FromInt16x8Bits > > Int32x4FromUint16x8Bits > > Int32x4FromInt8x16Bits > > Int32x4FromUint8x16Bits > > Int32x4Load > > Int32x4Store > > > > CreateUint32x4 > > Uint32x4Check > > Uint32x4ExtractLane > > Uint32x4ReplaceLane > > Uint32x4Add > > Uint32x4Sub > > Uint32x4Mul > > Uint32x4And > > Uint32x4Or > > Uint32x4Xor > > Uint32x4Not > > Uint32x4Equal > > Uint32x4NotEqual > > Uint32x4Select > > Uint32x4Swizzle > > Uint32x4Shuffle > > Uint32x4FromInt32x4 > > Uint32x4FromFloat32x4Bits > > Uint32x4FromInt32x4Bits > > Uint32x4FromInt16x8Bits > > Uint32x4FromUint16x8Bits > > Uint32x4FromInt8x16Bits > > Uint32x4FromUint8x16Bits > > Uint32x4Load > > Uint32x4Load1 > > Uint32x4Load2 > > Uint32x4Load3 > > Uint32x4Store > > Uint32x4Store1 > > Uint32x4Store2 > > Uint32x4Store3 > > > > Bool32x4Check > > > > Int16x8Check > > Int16x8FromUint16x8 > > Int16x8FromFloat32x4Bits > > Int16x8FromInt32x4Bits > > Int16x8FromUint32x4Bits > > Int16x8FromUint16x8Bits > > Int16x8FromInt8x16Bits > > Int16x8FromUint8x16Bits > > Int16x8Load > > Int16x8Store > > > > CreateUint16x8 > > Uint16x8Check > > Uint16x8ExtractLane > > Uint16x8ReplaceLane > > Uint16x8Add > > Uint16x8Sub > > Uint16x8Mul > > Uint16x8And > > Uint16x8Or > > Uint16x8Xor > > Uint16x8Not > > Uint16x8Equal > > Uint16x8NotEqual > > Uint16x8Select > > Uint16x8Swizzle > > Uint16x8Shuffle > > Uint16x8FromInt16x8 > > Uint16x8FromFloat32x4Bits > > Uint16x8FromInt32x4Bits > > Uint16x8FromUint32x4Bits > > Uint16x8FromInt16x8Bits > > Uint16x8FromInt8x16Bits > > Uint16x8FromUint8x16Bits > > Uint16x8Load > > Uint16x8Store > > > > Bool16x8Check > > > > Int8x16Check > > Int8x16FromUint8x16 > > Int8x16FromFloat32x4Bits > > Int8x16FromInt32x4Bits > > Int8x16FromUint32x4Bits > > Int8x16FromInt16x8Bits > > Int8x16FromUint16x8Bits > > Int8x16FromUint8x16Bits > > Int8x16Load > > Int8x16Store > > > > CreateUint8x16 > > Uint8x16Check > > Uint8x16ExtractLane > > Uint8x16ReplaceLane > > Uint8x16Add > > Uint8x16Sub > > Uint8x16Mul > > Uint8x16And > > Uint8x16Or > > Uint8x16Xor > > Uint8x16Not > > Uint8x16Equal > > Uint8x16NotEqual > > Uint8x16Select > > Uint8x16Swizzle > > Uint8x16Shuffle > > Uint8x16FromInt8x16 > > Uint8x16FromFloat32x4Bits > > Uint8x16FromInt32x4Bits > > Uint8x16FromUint32x4Bits > > Uint8x16FromInt16x8Bits > > Uint8x16FromUint16x8Bits > > Uint8x16FromInt8x16Bits > > Uint8x16Load > > Uint8x16Store > > > > Bool8x16Check > > > > LOG=N > > BUG=v8:4124 > > > > Committed: https://crrev.com/3831d41e4ce7b162775732cb6ac1f8139e60aa30 > > Cr-Commit-Position: refs/heads/master@{#35213} > > TBR=bradnelson@chromium.org,gdeepti@chromium.org,titzer@chromium.org,mtrofin@chromium.org,bradnelson@google.com,bmeurer@chromium.org,bbudge@chromium.org > # Skipping CQ checks because original CL landed less than 1 days ago. > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > BUG=v8:4124 > > Committed: https://crrev.com/8481ec6016992e0b9ffb70137e9ff8fcd4135bba > Cr-Commit-Position: refs/heads/master@{#35220} TBR=bradnelson@chromium.org,gdeepti@chromium.org,titzer@chromium.org,mtrofin@chromium.org,bradnelson@google.com,bmeurer@chromium.org,bbudge@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:4124 Review URL: https://codereview.chromium.org/1850383002 Cr-Commit-Position: refs/heads/master@{#35221}
-
machenbach authored
Revert of Turbofan: Add MachineOperators for SIMD. (patchset #5 id:70001 of https://codereview.chromium.org/1848433003/ ) Reason for revert: [Sheriff] Speculative revert. Compile now times out on msan: https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20arm64%20-%20sim%20-%20MSAN/builds/7705 Original issue's description: > Turbofan: Add MachineOperators for SIMD. > > Takes the SIMD runtime intrinsics as a starting point for defining TF machine operators. The rationale for omitting functions is: > > - UInt constructors. int and uint aren't distinguished in wasm. > - Check functions. > - 'FromXxxBits' functions. These are essentially casts. > - Simple Load / Store functions. Existing load / store with SIMD type should work. > - Uint functions, except where their behavior is bitwise different from the Int function. > > Skipped fns: > > Float32x4Check > Float32x4FromInt32x4Bits > Float32x4FromUint32x4Bits > Float32x4FromInt16x8Bits > Float32x4FromUint16x8Bits > Float32x4FromInt8x16Bits > Float32x4FromUint8x16Bits > Float32x4Load > Float32x4Store > > Int32x4Check > Int32x4FromUint32x4 > Int32x4FromFloat32x4Bits > Int32x4FromUint32x4Bits > Int32x4FromInt16x8Bits > Int32x4FromUint16x8Bits > Int32x4FromInt8x16Bits > Int32x4FromUint8x16Bits > Int32x4Load > Int32x4Store > > CreateUint32x4 > Uint32x4Check > Uint32x4ExtractLane > Uint32x4ReplaceLane > Uint32x4Add > Uint32x4Sub > Uint32x4Mul > Uint32x4And > Uint32x4Or > Uint32x4Xor > Uint32x4Not > Uint32x4Equal > Uint32x4NotEqual > Uint32x4Select > Uint32x4Swizzle > Uint32x4Shuffle > Uint32x4FromInt32x4 > Uint32x4FromFloat32x4Bits > Uint32x4FromInt32x4Bits > Uint32x4FromInt16x8Bits > Uint32x4FromUint16x8Bits > Uint32x4FromInt8x16Bits > Uint32x4FromUint8x16Bits > Uint32x4Load > Uint32x4Load1 > Uint32x4Load2 > Uint32x4Load3 > Uint32x4Store > Uint32x4Store1 > Uint32x4Store2 > Uint32x4Store3 > > Bool32x4Check > > Int16x8Check > Int16x8FromUint16x8 > Int16x8FromFloat32x4Bits > Int16x8FromInt32x4Bits > Int16x8FromUint32x4Bits > Int16x8FromUint16x8Bits > Int16x8FromInt8x16Bits > Int16x8FromUint8x16Bits > Int16x8Load > Int16x8Store > > CreateUint16x8 > Uint16x8Check > Uint16x8ExtractLane > Uint16x8ReplaceLane > Uint16x8Add > Uint16x8Sub > Uint16x8Mul > Uint16x8And > Uint16x8Or > Uint16x8Xor > Uint16x8Not > Uint16x8Equal > Uint16x8NotEqual > Uint16x8Select > Uint16x8Swizzle > Uint16x8Shuffle > Uint16x8FromInt16x8 > Uint16x8FromFloat32x4Bits > Uint16x8FromInt32x4Bits > Uint16x8FromUint32x4Bits > Uint16x8FromInt16x8Bits > Uint16x8FromInt8x16Bits > Uint16x8FromUint8x16Bits > Uint16x8Load > Uint16x8Store > > Bool16x8Check > > Int8x16Check > Int8x16FromUint8x16 > Int8x16FromFloat32x4Bits > Int8x16FromInt32x4Bits > Int8x16FromUint32x4Bits > Int8x16FromInt16x8Bits > Int8x16FromUint16x8Bits > Int8x16FromUint8x16Bits > Int8x16Load > Int8x16Store > > CreateUint8x16 > Uint8x16Check > Uint8x16ExtractLane > Uint8x16ReplaceLane > Uint8x16Add > Uint8x16Sub > Uint8x16Mul > Uint8x16And > Uint8x16Or > Uint8x16Xor > Uint8x16Not > Uint8x16Equal > Uint8x16NotEqual > Uint8x16Select > Uint8x16Swizzle > Uint8x16Shuffle > Uint8x16FromInt8x16 > Uint8x16FromFloat32x4Bits > Uint8x16FromInt32x4Bits > Uint8x16FromUint32x4Bits > Uint8x16FromInt16x8Bits > Uint8x16FromUint16x8Bits > Uint8x16FromInt8x16Bits > Uint8x16Load > Uint8x16Store > > Bool8x16Check > > LOG=N > BUG=v8:4124 > > Committed: https://crrev.com/3831d41e4ce7b162775732cb6ac1f8139e60aa30 > Cr-Commit-Position: refs/heads/master@{#35213} TBR=bradnelson@chromium.org,gdeepti@chromium.org,titzer@chromium.org,mtrofin@chromium.org,bradnelson@google.com,bmeurer@chromium.org,bbudge@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:4124 Review URL: https://codereview.chromium.org/1850373002 Cr-Commit-Position: refs/heads/master@{#35220}
-
- 01 Apr, 2016 6 commits
-
-
bbudge authored
IMPORTANT NOTE: This will likely be macroized to reduce boilerplate. Publishing now to start discussion about approach, which ops are needed, etc. Omitted functions are commented out in machine-operator.h so start there. Takes the SIMD runtime intrinsics as a starting point for defining TF machine operators. The rationale for omitting functions is: - UInt constructors. int and uint aren't distinguished in wasm. - Check functions. - 'FromXxxBits' functions. These are essentially casts. - Simple Load / Store functions. Existing load / store with SIMD type should work. - Uint functions, except where their behavior is bitwise different from the Int function. Skipped fns: Float32x4Check Float32x4FromInt32x4Bits Float32x4FromUint32x4Bits Float32x4FromInt16x8Bits Float32x4FromUint16x8Bits Float32x4FromInt8x16Bits Float32x4FromUint8x16Bits Float32x4Load Float32x4Store Int32x4Check Int32x4FromUint32x4 Int32x4FromFloat32x4Bits Int32x4FromUint32x4Bits Int32x4FromInt16x8Bits Int32x4FromUint16x8Bits Int32x4FromInt8x16Bits Int32x4FromUint8x16Bits Int32x4Load Int32x4Store CreateUint32x4 Uint32x4Check Uint32x4ExtractLane Uint32x4ReplaceLane Uint32x4Add Uint32x4Sub Uint32x4Mul Uint32x4And Uint32x4Or Uint32x4Xor Uint32x4Not Uint32x4Equal Uint32x4NotEqual Uint32x4Select Uint32x4Swizzle Uint32x4Shuffle Uint32x4FromInt32x4 Uint32x4FromFloat32x4Bits Uint32x4FromInt32x4Bits Uint32x4FromInt16x8Bits Uint32x4FromUint16x8Bits Uint32x4FromInt8x16Bits Uint32x4FromUint8x16Bits Uint32x4Load Uint32x4Load1 Uint32x4Load2 Uint32x4Load3 Uint32x4Store Uint32x4Store1 Uint32x4Store2 Uint32x4Store3 Bool32x4Check Int16x8Check Int16x8FromUint16x8 Int16x8FromFloat32x4Bits Int16x8FromInt32x4Bits Int16x8FromUint32x4Bits Int16x8FromUint16x8Bits Int16x8FromInt8x16Bits Int16x8FromUint8x16Bits Int16x8Load Int16x8Store CreateUint16x8 Uint16x8Check Uint16x8ExtractLane Uint16x8ReplaceLane Uint16x8Add Uint16x8Sub Uint16x8Mul Uint16x8And Uint16x8Or Uint16x8Xor Uint16x8Not Uint16x8Equal Uint16x8NotEqual Uint16x8Select Uint16x8Swizzle Uint16x8Shuffle Uint16x8FromInt16x8 Uint16x8FromFloat32x4Bits Uint16x8FromInt32x4Bits Uint16x8FromUint32x4Bits Uint16x8FromInt16x8Bits Uint16x8FromInt8x16Bits Uint16x8FromUint8x16Bits Uint16x8Load Uint16x8Store Bool16x8Check Int8x16Check Int8x16FromUint8x16 Int8x16FromFloat32x4Bits Int8x16FromInt32x4Bits Int8x16FromUint32x4Bits Int8x16FromInt16x8Bits Int8x16FromUint16x8Bits Int8x16FromUint8x16Bits Int8x16Load Int8x16Store CreateUint8x16 Uint8x16Check Uint8x16ExtractLane Uint8x16ReplaceLane Uint8x16Add Uint8x16Sub Uint8x16Mul Uint8x16And Uint8x16Or Uint8x16Xor Uint8x16Not Uint8x16Equal Uint8x16NotEqual Uint8x16Select Uint8x16Swizzle Uint8x16Shuffle Uint8x16FromInt8x16 Uint8x16FromFloat32x4Bits Uint8x16FromInt32x4Bits Uint8x16FromUint32x4Bits Uint8x16FromInt16x8Bits Uint8x16FromUint16x8Bits Uint8x16FromInt8x16Bits Uint8x16Load Uint8x16Store Bool8x16Check LOG=N BUG=v8:4124 Review URL: https://codereview.chromium.org/1848433003 Cr-Commit-Position: refs/heads/master@{#35213}
-
bmeurer authored
This allows us to remove the troublesome %_MathClz32 intrinsic and also allows us to utilize the functionality that is already available in TurboFan. Also introduce a proper NumberClz32 operator so we don't need to introduce a machine operator at the JS level. R=epertoso@chromium.org Review URL: https://codereview.chromium.org/1852553003 Cr-Commit-Position: refs/heads/master@{#35208}
-
bmeurer authored
These operators will be easier to optimize, and we can remove some unnecessary clutter from the intrinsic lowering. Drive-by-cleanup: Some alpha sorting of the type conversion operator business. R=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/1848243002 Cr-Commit-Position: refs/heads/master@{#35197}
-
jochen authored
We expect that the majority of malloc'd memory held by V8 is allocated in Zone objects. Introduce an Allocator class that is used by Zones to manage memory, and allows for querying the current usage. BUG=none R=titzer@chromium.org,bmeurer@chromium.org,jarin@chromium.org LOG=n TBR=rossberg@chromium.org Review URL: https://codereview.chromium.org/1847543002 Cr-Commit-Position: refs/heads/master@{#35196}
-
yangguo authored
Revert of [compiler] Add relocatable pointer constants for wasm memory references. (patchset #14 id:300001 of https://codereview.chromium.org/1759383003/ ) Reason for revert: Test failures: https://build.chromium.org/p/client.v8/builders/V8%20Mac64/builds/8046 Original issue's description: > [compiler] Add relocatable pointer constants for wasm memory references. > > Add relocatable pointers for wasm memory references that need to be updated when wasm GrowMemory is used. Code generator changes to accept relocatable constants as immediates. > > R=titzer@chromium.org, yangguo@chromium.org, bradnelson@chromium.org > > Committed: https://crrev.com/eb5fe0df64ec0add423b2a1f6fb62d5a33dce2a5 > Cr-Commit-Position: refs/heads/master@{#35182} TBR=bradnelson@chromium.org,titzer@chromium.org,gdeepti@google.com # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1846083005 Cr-Commit-Position: refs/heads/master@{#35185}
-
gdeepti authored
Add relocatable pointers for wasm memory references that need to be updated when wasm GrowMemory is used. Code generator changes to accept relocatable constants as immediates. R=titzer@chromium.org, yangguo@chromium.org, bradnelson@chromium.org Review URL: https://codereview.chromium.org/1759383003 Cr-Commit-Position: refs/heads/master@{#35182}
-
- 31 Mar, 2016 1 commit
-
-
ahaas authored
*) For all tests the input validation was incorrect, i.e. some values were considered invalid although they were valid. The problem was that values which are outside int range can get in range through truncation. *) Removed an assertion in the x64 code generation of TruncateFloat64ToUint32 which trapped on negative inputs. *) Introduced a new TF operator TruncateFloat32ToUint32 which does the same as ChangeFloat32ToUint32 but does not trap on negative inputs. R=titzer@chromium.org Review URL: https://codereview.chromium.org/1843983002 Cr-Commit-Position: refs/heads/master@{#35176}
-
- 30 Mar, 2016 2 commits
-
-
bmeurer authored
Migrate Math.ceil, Math.round and Math.trunc to TurboFan code stubs, similar to what we did with Math.floor, and make these builtins properly optimizable in TurboFan via appropriate simplified operators NumberCeil, NumberRound and NumberTrunc, which are intended to be reusable for ToInteger and ToLength optimizations that will be done in a followup CL. Also allows us to kill the funky %RoundNumber runtime function, which was quite heavy. Improve test coverage for Math.ceil and Math.trunc a lot, especially making sure that we also properly trigger the TurboFan builtin reducer case. R=jarin@chromium.org BUG=v8:4059 LOG=n Review URL: https://codereview.chromium.org/1841993002 Cr-Commit-Position: refs/heads/master@{#35135}
-
ahaas authored
Int64Mul is lowered to a new turbofan operator, Int32MulPair. The new operator takes 4 inputs an generates 2 outputs. The inputs are the low word of the left input, high word of the left input, the low word of the right input, and high word of the right input. The ouputs are the low and high word of the result of the multiplication. R=titzer@chromium.org, v8-arm-ports@googlegroups.com Review URL: https://codereview.chromium.org/1807273002 Cr-Commit-Position: refs/heads/master@{#35131}
-
- 29 Mar, 2016 1 commit
-
-
bmeurer authored
The NumberFloor operator matches exactly the semantics of the Math.floor builtin on Numbers. It uses hardware rounding instructions if available, but provides a full fallback solution that is compatible with Math.floor. The lowering is optimizable based on types if needed later, i.e. we already optimize it for the case that the input is already an Integer (in the EcmaScript sense, including NaN and -0), but we could add more optimizations, like combining NumberFloor and NumberDivide in the future, if necessary. R=jarin@chromium.org BUG=v8:2890,v8:4059 LOG=n Review URL: https://codereview.chromium.org/1843533003 Cr-Commit-Position: refs/heads/master@{#35090}
-
- 21 Mar, 2016 1 commit
-
-
bmeurer authored
Split ToNumberStub into the entry ToNumberStub, and two new stubs, StringToNumberStub and NonNumberToNumberStub, which can be used when we already know something about the input (i.e. in various branches of the code stubs, or in TurboFan graphs). Also introduce an appropriate StringToNumber simplified operator for TurboFan, that is pure and is lowered to an invocation of the newly added StringToNumberStub. R=jarin@chromium.org Review URL: https://codereview.chromium.org/1818923002 Cr-Commit-Position: refs/heads/master@{#34922}
-
- 16 Mar, 2016 1 commit
-
-
ahaas authored
Int64Sub is lowered to a new turbofan operator, Int32SubPair. The new operator takes 4 inputs an generates 2 outputs. The inputs are the low word of the left input, high word of the left input, the low word of the right input, and high word of the right input. The ouputs are the low and high word of the result of the subtraction. The implementation is very similar to the implementation of Int64Add. @v8-arm-ports: please take a careful look at the implementation of sbc in the simulator. R=titzer@chromium.org, v8-arm-ports@googlegroups.com Review URL: https://codereview.chromium.org/1778893005 Cr-Commit-Position: refs/heads/master@{#34808}
-
- 14 Mar, 2016 1 commit
-
-
ahaas authored
Int64Add is lowered to a new turbofan operator, Int32AddPair. The new operator takes 4 inputs an generates 2 outputs. The inputs are the low word of the left input, high word of the left input, the low word of the right input, and high word of the right input. The ouputs are the low and high word of the result of the addition. R=titzer@chromium.org, v8-arm-ports@googlegroups.com Review URL: https://codereview.chromium.org/1778493004 Cr-Commit-Position: refs/heads/master@{#34747}
-
- 10 Mar, 2016 1 commit
-
-
ahaas authored
With the original implementation nodes which were not reachable from end could cause the verification to fail. R=titzer@chromium.org, mstarzinger@chromium.org Review URL: https://codereview.chromium.org/1782863002 Cr-Commit-Position: refs/heads/master@{#34683}
-
- 09 Mar, 2016 1 commit
-
-
ahaas authored
I implemented I64ShrU and I64ShrS the same as I64Shl in https://codereview.chromium.org/1756863002 R=titzer@chromium.org Review URL: https://codereview.chromium.org/1768233002 Cr-Commit-Position: refs/heads/master@{#34630}
-
- 07 Mar, 2016 1 commit
-
-
ahaas authored
I64Shl is lowered to a new turbofan operator, WasmWord64Shl. The new operator takes 3 inputs, the low-word input, the high-word input, and the shift, and produces 2 output, the low-word output and the high-word output. At the moment I implemented the lowering only for ia32, but I think the CL is already big enough. I will add the other platforms in separate CLs. R=titzer@chromium.org Review URL: https://codereview.chromium.org/1756863002 Cr-Commit-Position: refs/heads/master@{#34546}
-
- 29 Feb, 2016 1 commit
-
-
mtrofin authored
BUG= Review URL: https://codereview.chromium.org/1738973002 Cr-Commit-Position: refs/heads/master@{#34363}
-
- 27 Feb, 2016 1 commit
-
-
bmeurer authored
Since both null and undefined are also marked as undetectable now, we can just test that bit instead of having the CompareNilIC try to collect feedback to speed up the general case (without the undetectable bit being used). Drive-by-fix: Update the type system to match the new handling of undetectable in the runtime. R=danno@chromium.org Committed: https://crrev.com/666aec0348c8793e61c8633dee7ad29a514239ba Cr-Commit-Position: refs/heads/master@{#34237} Review URL: https://codereview.chromium.org/1722193002 Cr-Commit-Position: refs/heads/master@{#34344}
-
- 26 Feb, 2016 1 commit
-
-
adamk authored
Revert of [compiler] Drop the CompareNilIC. (patchset #4 id:60001 of https://codereview.chromium.org/1722193002/ ) Reason for revert: Speculative revert in attempt to fix #2 crasher on canary. Original issue's description: > [compiler] Drop the CompareNilIC. > > Since both null and undefined are also marked as undetectable now, we > can just test that bit instead of having the CompareNilIC try to collect > feedback to speed up the general case (without the undetectable bit > being used). > > Drive-by-fix: Update the type system to match the new handling of > undetectable in the runtime. > > R=danno@chromium.org > > Committed: https://crrev.com/666aec0348c8793e61c8633dee7ad29a514239ba > Cr-Commit-Position: refs/heads/master@{#34237} TBR=danno@chromium.org,verwaest@chromium.org,bmeurer@chromium.org LOG=y BUG=chromium:589897 NOTRY=true Review URL: https://codereview.chromium.org/1743433002 Cr-Commit-Position: refs/heads/master@{#34308}
-
- 24 Feb, 2016 2 commits
-
-
bmeurer authored
These macro operators represent a conditional eager deoptimization exit without explicit branching, which greatly reduces overhead of both scheduling and register allocation, and thereby greatly reduces overall compilation time, esp. when there are a lot of eager deoptimization exits. R=jarin@chromium.org Review URL: https://codereview.chromium.org/1721103003 Cr-Commit-Position: refs/heads/master@{#34239}
-
bmeurer authored
Since both null and undefined are also marked as undetectable now, we can just test that bit instead of having the CompareNilIC try to collect feedback to speed up the general case (without the undetectable bit being used). Drive-by-fix: Update the type system to match the new handling of undetectable in the runtime. R=danno@chromium.org Review URL: https://codereview.chromium.org/1722193002 Cr-Commit-Position: refs/heads/master@{#34237}
-
- 16 Feb, 2016 1 commit
-
-
rodolph.perfetta authored
Let me know if this is not the right approach Review URL: https://codereview.chromium.org/1698483002 Cr-Commit-Position: refs/heads/master@{#34028}
-