1. 26 Jul, 2016 3 commits
    • bmeurer's avatar
      [turbofan] Fix overly aggressive dead code elimination. · 32346aae
      bmeurer authored
      When we eliminate nodes during truncation analysis that have no value
      uses, we must make sure that we do not eliminate speculative number
      operations that would have side effects depending on the inputs, i.e.
      for example a SpeculativeNumberMultiply(x,y) does ToNumber(x) and
      ToNumber(y) first, so if either x or y could throw an exception during
      ToNumber conversion, we must not eliminate the multiplication, even if
      it has no value uses (some later pass may kill the actual machine
      multiplication, but the checks on the inputs have to remain still).
      So we check whether both x and y are PlainPrimitive, i.e. neither
      Receiver nor Symbol, which could raise exceptions for ToNumber, and
      only in that case we propagate the "unusedness" of the node to its
      inputs.
      
      This also uncovered a bug with the type of Dead, which must be None,
      as this represents an impossible value, so we had to fix that too.
      
      Also the dead code removal will not work correctly for constants (i.e.
      pure nodes with no value inputs), as those might be cached and hence
      we might resurrect them for an unrelated node lowering during
      SimplifiedLowering and only later kill the actual node (replacing its
      uses with Dead), which would then also replace the new use with Dead.
      So that was fixed as well. This shouldn't change anything for the
      result, as unused constants automagically disappear from the graph later
      on anyways.
      
      R=yangguo@chromium.org
      BUG=chromium:631318
      
      Review-Url: https://codereview.chromium.org/2182003002
      Cr-Commit-Position: refs/heads/master@{#38038}
      32346aae
    • benwells's avatar
      Revert of MIPS: Fix '[turbofan] Prevent storing signalling NaNs into holey... · 73a5db9d
      benwells authored
      Revert of MIPS: Fix '[turbofan] Prevent storing signalling NaNs into holey double arrays.' (patchset #2 id:20001 of https://codereview.chromium.org/2171303002/ )
      
      Reason for revert:
      This bug has an error in the toolchain.gypi file, the conditions clause is repeated. This has broken the DrMemory builder - see first failing chromium build https://build.chromium.org/p/chromium.memory.fyi/builders/Chromium%20Windows%20Builder%20%28DrMemory%29/builds/17857 which included a v8 roll.
      
      For reference the errors are:
      gyp: Key 'conditions' repeated at level 11 with key path 'target_defaults.conditions.6.1.target_conditions.0.1.conditions.0.1' while reading C:\b\build\slave\drm-cr\build\src\v8\gypfiles\toolchain.gypi while reading includes of C:\b\build\slave\drm-cr\build\src\v8\src\d8.gyp
      
      gyp: Key 'conditions' repeated at level 11 with key path 'target_defaults.conditions.6.1.target_conditions.0.1.conditions.0.1' while reading C:\b\build\slave\drm-cr\build\src\v8\gypfiles\toolchain.gypi while reading includes of C:\b\build\slave\drm-cr\build\src\v8\src\v8.gyp
      
      gyp: Key 'conditions' repeated at level 11 with key path 'target_defaults.conditions.6.1.target_conditions.0.1.conditions.0.1' while reading C:\b\build\slave\drm-cr\build\src\v8\gypfiles\toolchain.gypi while reading includes of C:\b\build\slave\drm-cr\build\src\v8\samples\samples.gyp
      
      Original issue's description:
      > MIPS: Fix '[turbofan] Prevent storing signalling NaNs into holey double arrays.'
      >
      > Port 6470ddad
      >
      > On MIPS different signaling NaN values must be used for hardware and simulator targets, even at snapshot generation when always simulator is used.
      >
      > Original commit message:
      > This introduces SilenceNaN operator, which makes sure that we only
      > store quiet NaNs into holey arrays. We omit the NaN silencing code
      > at instruction selection time if the input is an operation that
      > cannot possibly produce signalling NaNs.
      >
      > BUG=
      >
      > Committed: https://crrev.com/52f2ceb052f63324050c7a098e4398f510b54763
      > Cr-Commit-Position: refs/heads/master@{#38030}
      
      TBR=jarin@chromium.org,machenbach@google.com,akos.palfi@mattakis.com,ivica.bogosavljevic@imgtec.com,marija.antic@imgtec.com,ilija.pavlovic.imgtec@gmail.com,akos.palfi@imgtec.com,machenbach@chromium.org,balazs.kilvady@imgtec.com
      # Skipping CQ checks because original CL landed less than 1 days ago.
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      BUG=
      
      TBR=machenbach
      
      Review-Url: https://codereview.chromium.org/2184573002
      Cr-Commit-Position: refs/heads/master@{#38037}
      73a5db9d
    • v8-autoroll's avatar
      Update V8 DEPS. · 38764eac
      v8-autoroll authored
      Rolling v8/build to cce24bcaab6481f479f4baf00b5ea36d78268bcd
      
      Rolling v8/tools/mb to 11aa1bbe1b4fbae3694d14eb59b4eb98550bcbee
      
      TBR=machenbach@chromium.org,vogelheim@chromium.org,hablich@chromium.org
      
      Review-Url: https://codereview.chromium.org/2181913002
      Cr-Commit-Position: refs/heads/master@{#38036}
      38764eac
  2. 25 Jul, 2016 37 commits