1. 21 Jun, 2016 6 commits
  2. 20 Jun, 2016 34 commits
    • bjaideep's avatar
      PPC/s390: [builtins] Use BUILTIN frame in DatePrototype_GetField · c0630818
      bjaideep authored
      Port 198e09de
      
      Original commit message:
      
          Construct a BUILTIN frame before throwing an exception from runtime.
      
      R=jgruber@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, mbrandy@us.ibm.com
      BUG=
      
      Review-Url: https://codereview.chromium.org/2083523004
      Cr-Commit-Position: refs/heads/master@{#37118}
      c0630818
    • bjaideep's avatar
      PPC/s390: [cleanup] Remove dead code from DeclareLookupSlot and rename it · 97ae43ac
      bjaideep authored
      Port cbc6adc8
      
      Original commit message:
      
          Runtime_DeclareLookupSlot is used when generating code for var and function declarations
          originating in an eval. Over time, it's accumulated quite a bit of cruft, which this CL removes:
      
            - With legacy const gone, lookup slots never have any property attributes.
            - There was a bit signaling that the variable was from an eval, but that was redundant since
              DeclareLookupSlot is only used for eval.
            - Some Proxy-related code didn't make sense here.
      
          Its name was also not terribly clear: while "LookupSlot" is used in several places, this
          particular function is only used for declaring variables and functions inside sloppy eval.
          Renamed (and split into two) to make this clear for future archeologists.
      
          Also added various DCHECKs to check the assumptions being made.
      
      R=adamk@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/2085623003
      Cr-Commit-Position: refs/heads/master@{#37117}
      97ae43ac
    • bjaideep's avatar
      PPC/s390: [wasm] Separate compilation from instantiation · 8071e21c
      bjaideep authored
      Port c1d01aea
      
      Original commit message:
      
          Compilation of wasm functions happens before instantiation. Imports are linked afterwards, at instantiation time. Globals and memory are also
          allocated and then tied in via relocation at instantiation time.
      
          This paves the way for implementing Wasm.compile, a prerequisite to
          offering the compiled code serialization feature.
      
          Currently, the WasmModule::Compile method just returns a fixed array
          containing the code objects. More appropriate modeling of the compiled module to come.
      
          Opportunistically centralized the logic on how to update memory
          references, size, and globals, since that logic is the exact same on each
          architecture, except for the actual storing of values back in the
          instruction stream.
      
      R=mtrofin@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, mbrandy@us.ibm.com
      
      BUG=v8:5072
      LOG=N
      
      Review-Url: https://codereview.chromium.org/2087453002
      Cr-Commit-Position: refs/heads/master@{#37116}
      8071e21c
    • bjaideep's avatar
      PPC/s390: [builtins] Introduce proper Float64Tan operator. · f1c2729d
      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}
      f1c2729d
    • brettw's avatar
      Windows GN build flag fixes. · 3665ae7d
      brettw authored
      This brings some more flags in line with the GYP build on Windows. In particular, this ads the SSE2 flag on x86, and the stack linker flag on x64.
      
      Review-Url: https://codereview.chromium.org/2077173002
      Cr-Commit-Position: refs/heads/master@{#37114}
      3665ae7d
    • lpy's avatar
      Revert of Refactor CpuProfiler. (patchset #13 id:240001 of... · d6be0bf6
      lpy authored
      Revert of Refactor CpuProfiler. (patchset #13 id:240001 of https://codereview.chromium.org/2053523003/ )
      
      Reason for revert:
      MIPS compilation error.
      
      Original issue's description:
      > Refactor CpuProfiler.
      >
      > Currently CpuProfiler is a subclass of CodeEventListener, it listens code events
      > from Logger, constructs and stores CodeEventsContainer. This patch is part of
      > the effort to split the logic of CodeEventListener as ProfilerListener out of
      > the profiling functionality logic in CpuProfiler. A ProfilerListener will listen
      > to code events, construct code event to CodeEventsContainer and pass it to code
      > event handler.
      >
      > The reason we refactor CpuProfiler is that eventually we want to move
      > CpuProfiler as part of sampler library and code event listener should stay
      > inside V8.
      >
      > Main changes:
      > 1. Refactored CpuProfiler into two parts, the CpuProfiler with profling
      > functionality and the ProfilerListener listening to code events from Logger.
      > 2. Created CodeEventObserver and made CpuProfiler inherit from it.
      > ProfilerListener will have a list of observers and call CodeEventHandler once a
      > code event is created.
      > 3. Moved code entry list from CodeEntry to ProfilerListener.
      >
      > Minor changes:
      > 1. Moved static code entry as part of CodeEntry.
      > 2. Added ProfilerListener to Logger.
      >
      > BUG=v8:4789
      >
      > Committed: https://crrev.com/cb59fc1facc9b390e2c7544b4da56a4e0a9b3222
      > Cr-Commit-Position: refs/heads/master@{#37112}
      
      TBR=alph@chromium.org,jochen@chromium.org,yangguo@chromium.org
      # Skipping CQ checks because original CL landed less than 1 days ago.
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      BUG=v8:4789
      
      Review-Url: https://codereview.chromium.org/2079273003
      Cr-Commit-Position: refs/heads/master@{#37113}
      d6be0bf6
    • lpy's avatar
      Refactor CpuProfiler. · cb59fc1f
      lpy authored
      Currently CpuProfiler is a subclass of CodeEventListener, it listens code events
      from Logger, constructs and stores CodeEventsContainer. This patch is part of
      the effort to split the logic of CodeEventListener as ProfilerListener out of
      the profiling functionality logic in CpuProfiler. A ProfilerListener will listen
      to code events, construct code event to CodeEventsContainer and pass it to code
      event handler.
      
      The reason we refactor CpuProfiler is that eventually we want to move
      CpuProfiler as part of sampler library and code event listener should stay
      inside V8.
      
      Main changes:
      1. Refactored CpuProfiler into two parts, the CpuProfiler with profling
      functionality and the ProfilerListener listening to code events from Logger.
      2. Created CodeEventObserver and made CpuProfiler inherit from it.
      ProfilerListener will have a list of observers and call CodeEventHandler once a
      code event is created.
      3. Moved code entry list from CodeEntry to ProfilerListener.
      
      Minor changes:
      1. Moved static code entry as part of CodeEntry.
      2. Added ProfilerListener to Logger.
      
      BUG=v8:4789
      
      Review-Url: https://codereview.chromium.org/2053523003
      Cr-Commit-Position: refs/heads/master@{#37112}
      cb59fc1f
    • adamk's avatar
      [cleanup] Remove dead code from DeclareLookupSlot and rename it · cbc6adc8
      adamk authored
      Runtime_DeclareLookupSlot is used when generating code for var and function declarations
      originating in an eval. Over time, it's accumulated quite a bit of cruft, which this CL removes:
      
        - With legacy const gone, lookup slots never have any property attributes.
        - There was a bit signaling that the variable was from an eval, but that was redundant since
          DeclareLookupSlot is only used for eval.
        - Some Proxy-related code didn't make sense here.
      
      Its name was also not terribly clear: while "LookupSlot" is used in several places, this
      particular function is only used for declaring variables and functions inside sloppy eval.
      Renamed (and split into two) to make this clear for future archeologists.
      
      Also added various DCHECKs to check the assumptions being made.
      
      Review-Url: https://codereview.chromium.org/2061173002
      Cr-Commit-Position: refs/heads/master@{#37111}
      cbc6adc8
    • jpp's avatar
      V8. ASM-2-WASM. Another asm-types.h revision. · 4257fdea
      jpp authored
      BUG=
      
      Review-Url: https://codereview.chromium.org/2078053002
      Cr-Commit-Position: refs/heads/master@{#37110}
      4257fdea
    • yangguo's avatar
      [snapshot] serialize embedder-provided external references. · 0b177bc0
      yangguo authored
      R=jochen@chromium.org, vogelheim@chromium.org
      BUG=chromium:617892
      
      Review-Url: https://codereview.chromium.org/2066993004
      Cr-Commit-Position: refs/heads/master@{#37109}
      0b177bc0
    • mlippautz's avatar
      [heap] Filter out stale left-trimmed handles · d800a659
      mlippautz authored
      BUG=chromium:620553
      LOG=N
      R=jochen@chromium.org
      
      Review-Url: https://codereview.chromium.org/2078403002
      Cr-Commit-Position: refs/heads/master@{#37108}
      d800a659
    • yangguo's avatar
      [debug] always add debug slot for statements. · 9611a4d2
      yangguo authored
      Previously we would elide debug slots if the statement position it
      belongs to has just already been written. The motivation is that since
      we should only break once per statement, we can elide debug slots that
      has the same statement position as the previous debug slot.
      
      This is an unnecessary optimization, since the debugger has yet another
      check against breaking twice at the same statement at runtime, in
      Debug::Break.
      
      This optimization can also be wrong, if there is control flow involved,
      for example if we can jump to the elided debug slot without executing
      the previous debug slot.
      
      CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_rel_ng;tryserver.blink:linux_blink_rel
      R=jgruber@chromium.org
      
      Review-Url: https://codereview.chromium.org/2080173002
      Cr-Commit-Position: refs/heads/master@{#37107}
      9611a4d2
    • machenbach's avatar
      [mb] Switch branch builders to mb · 2d778239
      machenbach authored
      BUG=chromium:616035
      NOTRY=true
      
      Review-Url: https://codereview.chromium.org/2082583002
      Cr-Commit-Position: refs/heads/master@{#37106}
      2d778239
    • balazs.kilvady's avatar
      MIPS: Followup '[turbofan] Introduce new operators Float32SubPreserveNan and... · eff959bb
      balazs.kilvady authored
      MIPS: Followup '[turbofan] Introduce new operators Float32SubPreserveNan and Float64SubPreserveNan'.
      
      Port 481502da
      
      Float32SubMinusZero and Float64SubMinusZero tests are failing because MIPS does not preserve NaN payload according to Wasm spec. Implemented macro-assembler methods that check for NaN operands, and return the qNaN value with preserved payload and sign bits.
      
      TEST=cctest/test-run-wasm/Run_WasmFloat32SubMinusZero, cctest/test-run-wasm/Run_WasmFloat64SubMinusZero
      
      BUG=
      
      patch from issue 2019693002 at patchset 140001 (http://crrev.com/2019693002#ps140001)
      
      R=ahaas@chromium.org
      
      Review-Url: https://codereview.chromium.org/2066483008
      Cr-Commit-Position: refs/heads/master@{#37105}
      eff959bb
    • mlippautz's avatar
      Reland "[heap] Add page evacuation mode for new->new" · 7d5969da
      mlippautz authored
      Adds an evacuation mode that allows moving pages within new space without
      copying objects.
      
      Basic idea:
      a) Move page within new space
      b) Sweep page to make iterable and process ArrayBuffers
      c) Finish sweep till next scavenge
      
      Threshold is currently 70% live bytes, i.e., the same threshold we use
      to determine fragmented pages.
      
      This reverts commit 2263ee9b.
      
      BUG=chromium:581412
      LOG=N
      CQ_EXTRA_TRYBOTS=tryserver.v8:v8_linux_arm64_gc_stress_dbg,v8_linux_gc_stress_dbg,v8_mac_gc_stress_dbg,v8_linux64_tsan_rel,v8_mac64_asan_rel
      
      Review-Url: https://codereview.chromium.org/2078863002
      Cr-Commit-Position: refs/heads/master@{#37104}
      7d5969da
    • asaka's avatar
      additional includes needed for MIPS toolchain after move of hashmap · 11eb9d22
      asaka authored
      Follow up from https://codereview.chromium.org/2010243003
      
      BUG=v8:5050
      
      Review-Url: https://codereview.chromium.org/2071273003
      Cr-Commit-Position: refs/heads/master@{#37103}
      11eb9d22
    • jarin's avatar
      [turbofan] More efficient truncation analysis for add, sub. · 398d131a
      jarin authored
      We now spread the word32 truncation even if the inputs can be minus zero
      as long as the result is not minus zero.
      
      Review-Url: https://codereview.chromium.org/2078423002
      Cr-Commit-Position: refs/heads/master@{#37102}
      398d131a
    • machenbach's avatar
      [mb] Add configs for more linux bots · 1b3d9fa3
      machenbach authored
      BUG=chromium:616035
      NOTRY=true
      NOTREECHECKS=true
      NOPRESUBMIT=true
      
      Review-Url: https://codereview.chromium.org/2078973002
      Cr-Commit-Position: refs/heads/master@{#37101}
      1b3d9fa3
    • bmeurer's avatar
      [turbofan] Properly lower NumberTan to Float64Tan. · 04c982af
      bmeurer authored
      TBR=mvstanton@chromium.org
      BUG=v8:5086,v8:5126
      
      Review-Url: https://codereview.chromium.org/2080233002
      Cr-Commit-Position: refs/heads/master@{#37100}
      04c982af
    • clemensh's avatar
      [wasm] Handlify WasmDebugInfo where needed · 48a96d17
      clemensh authored
      All function which potentially do heap allocations now take a Handle
      on a WasmDebugInfo. This unfortunately requires to make some function
      static, since otherwise the "this" pointer would not be handlified.
      
      R=ahaas@chromium.org, titzer@chromium.org
      BUG=chromium:613110
      
      Review-Url: https://codereview.chromium.org/2074933005
      Cr-Commit-Position: refs/heads/master@{#37099}
      48a96d17
    • bmeurer's avatar
      [turbofan] The speculative number operations don't produce control. · bfdaff31
      bmeurer authored
      The simplified SpeculativeNumber operators shouldn't be in the control
      chain at all. They are part of the effect chain to ensure that we can
      find a frame state for eager deoptimization.
      
      R=jarin@chromium.org
      
      Review-Url: https://codereview.chromium.org/2083503002
      Cr-Commit-Position: refs/heads/master@{#37098}
      bfdaff31
    • yangguo's avatar
      [liveedit] simplify source position recalculation. · ecc760a0
      yangguo authored
      When updating source positions, we recompute reloc info. Under the
      assumption that reloc info is appended to the code, we may or may not
      need to allocate a new code object. That assumption is no longer valid
      since 2010 (see r5020).
      
      R=mstarzinger@chromium.org
      
      Review-Url: https://codereview.chromium.org/2077363002
      Cr-Commit-Position: refs/heads/master@{#37097}
      ecc760a0
    • bmeurer's avatar
      [turbofan] Introduce CheckTaggedSigned and CheckTaggedPointer operators. · 99eb5686
      bmeurer authored
      These are used to check for Smi or HeapObject, and we use them
      appropriately in JSNativeContextSpecialization, so we don't need
      to introduce dependencies on concrete control flow and/or concrete
      frame states.
      
      They will be optimized by a proper check elimination reducer,
      which will be added in a separate CL.
      
      R=jarin@chromium.org
      BUG=v8:4470
      
      Review-Url: https://codereview.chromium.org/2082523002
      Cr-Commit-Position: refs/heads/master@{#37096}
      99eb5686
    • machenbach's avatar
      [gn] Default to ninja on all platforms · 3643f7b1
      machenbach authored
      This makes sure we use ninja everywhere if not stated
      otherwise explicitly.
      
      BUG=chromium:474921
      
      Review-Url: https://codereview.chromium.org/2078393002
      Cr-Commit-Position: refs/heads/master@{#37095}
      3643f7b1
    • ahaas's avatar
      [wasm] Use the new TF operators for F64Cos, F64Sin, F64Tan, and F64Exp · cdf4d10d
      ahaas authored
      R=bmeurer@chromium.org, bradnelson@chromium.org
      BUG=v8:5086
      
      Review-Url: https://codereview.chromium.org/2083473002
      Cr-Commit-Position: refs/heads/master@{#37094}
      cdf4d10d
    • yangguo's avatar
      Remove obsolete stack overflow string. · 5448ca0b
      yangguo authored
      R=bmeurer@chromium.org
      
      Review-Url: https://codereview.chromium.org/2077323002
      Cr-Commit-Position: refs/heads/master@{#37093}
      5448ca0b
    • jarin's avatar
      [turbofan] Only consider inhabited types for constant folding in typed lowering. · 50d6837a
      jarin authored
      BUG=chromium:621423
      
      Review-Url: https://codereview.chromium.org/2084483002
      Cr-Commit-Position: refs/heads/master@{#37092}
      50d6837a
    • machenbach's avatar
      Revert of Implement WASM big-endian support (patchset #5 id:80001 of... · 093df3fa
      machenbach authored
      Revert of Implement WASM big-endian support (patchset #5 id:80001 of https://codereview.chromium.org/2034093002/ )
      
      Reason for revert:
      [Sheriff] Speculative revert for crashes on chrubuntu chromebooks:
      https://build.chromium.org/p/client.v8.ports/builders/V8%20Arm/builds/320
      
      Original issue's description:
      > Implement WASM big-endian support.
      >
      > Implement WASM support on big-endian platforms. WASM has
      > an implicit requirement that it is running on little-endian
      > machine. We achieve WASM support on BE by keeping data
      > in memory in little-endian order, and changing data
      > endianness before storing to memory and after loading from
      > memory.
      >
      > BUG=
      >
      > Committed: https://crrev.com/d3f3f6c8186b2a53f0c539f7bba0c3708c4d83f9
      > Cr-Commit-Position: refs/heads/master@{#37065}
      
      TBR=titzer@chromium.org,akos.palfi@imgtec.com,balazs.kilvady@imgtec.com,jyan@ca.ibm.com,ivica.bogosavljevic@imgtec.com
      # Not skipping CQ checks because original CL landed more than 1 days ago.
      BUG=
      
      Review-Url: https://codereview.chromium.org/2080153002
      Cr-Commit-Position: refs/heads/master@{#37091}
      093df3fa
    • machenbach's avatar
      Revert of [turbofan] Introduce CheckUnless. (patchset #1 id:1 of... · 46c21b2c
      machenbach authored
      Revert of [turbofan] Introduce CheckUnless. (patchset #1 id:1 of https://codereview.chromium.org/2080113002/ )
      
      Reason for revert:
      [Sheriff] Speculative revert: Seems to lead to devtools crashes:
      https://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Win/builds/5259
      
      Original issue's description:
      > [turbofan] Introduce CheckUnless.
      >
      > Similarly to CheckIf, CheckUnless is a deoptimization without a specific
      > frame state. A frame state is assigned during effect-control linearization
      > (and CheckUnless is turned into DeoptimizeUnless).
      >
      > At the moment, the new operator is only used at one place in native context
      > specialization, but we should use it everywhere. The advantage of
      > CHeckUnless is that it avoids non-truncating uses of values by frame
      > states. This particular change is aimed at Octane's crypto, where this
      > enables to turn one NumberMultiply into Int32Mul, and thus improve
      > the score by more than 10% (it also needs minus zero truncation and
      > typing to be improved, but those CLs are already in flight).
      >
      > BUG=v8:4470
      > R=bmeurer@chromium.org
      >
      > Committed: https://crrev.com/85fde59d538e0dcaf461108086c2f7cf904f567a
      > Cr-Commit-Position: refs/heads/master@{#37085}
      
      TBR=bmeurer@chromium.org,jarin@chromium.org
      # Skipping CQ checks because original CL landed less than 1 days ago.
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      BUG=v8:4470
      
      Review-Url: https://codereview.chromium.org/2078333002
      Cr-Commit-Position: refs/heads/master@{#37090}
      46c21b2c
    • yangguo's avatar
      Simplify AssemblerPositionsRecorder. · 9c3d730d
      yangguo authored
      R=bmeurer@chromium.org, jgruber@chromium.org
      
      Review-Url: https://codereview.chromium.org/2072963003
      Cr-Commit-Position: refs/heads/master@{#37089}
      9c3d730d
    • bmeurer's avatar
      [ieee754] Use uint32_t/uint64_t instead of u_int32_t/u_int64_t. · 3c9ff7ec
      bmeurer authored
      The uint32_t/uint64_t types are more portable than the old style, pre
      C99 u_int32_t/u_int64_t types.
      
      R=yangguo@chromium.org
      BUG=v8:5086
      
      Review-Url: https://codereview.chromium.org/2080573002
      Cr-Commit-Position: refs/heads/master@{#37088}
      3c9ff7ec
    • bmeurer's avatar
      [builtins] Introduce proper Float64Tan operator. · c87168bc
      bmeurer authored
      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.
      
      BUG=v8:5086,v8:5126
      R=yangguo@chromium.org
      
      Review-Url: https://codereview.chromium.org/2083453002
      Cr-Commit-Position: refs/heads/master@{#37087}
      c87168bc
    • mtrofin's avatar
      [wasm] Separate compilation from instantiation · c1d01aea
      mtrofin authored
      Compilation of wasm functions happens before instantiation. Imports are linked afterwards, at instantiation time. Globals and memory are also
      allocated and then tied in via relocation at instantiation time.
      
      This paves the way for implementing Wasm.compile, a prerequisite to
      offering the compiled code serialization feature.
      
      Currently, the WasmModule::Compile method just returns a fixed array
      containing the code objects. More appropriate modeling of the compiled module to come.
      
      Opportunistically centralized the logic on how to update memory
      references, size, and globals, since that logic is the exact same on each
      architecture, except for the actual storing of values back in the
      instruction stream.
      
      BUG=v8:5072
      
      Review-Url: https://codereview.chromium.org/2056633002
      Cr-Commit-Position: refs/heads/master@{#37086}
      c1d01aea
    • jarin's avatar
      [turbofan] Introduce CheckUnless. · 85fde59d
      jarin authored
      Similarly to CheckIf, CheckUnless is a deoptimization without a specific
      frame state. A frame state is assigned during effect-control linearization
      (and CheckUnless is turned into DeoptimizeUnless).
      
      At the moment, the new operator is only used at one place in native context
      specialization, but we should use it everywhere. The advantage of
      CHeckUnless is that it avoids non-truncating uses of values by frame
      states. This particular change is aimed at Octane's crypto, where this
      enables to turn one NumberMultiply into Int32Mul, and thus improve
      the score by more than 10% (it also needs minus zero truncation and
      typing to be improved, but those CLs are already in flight).
      
      BUG=v8:4470
      R=bmeurer@chromium.org
      
      Review-Url: https://codereview.chromium.org/2080113002
      Cr-Commit-Position: refs/heads/master@{#37085}
      85fde59d