1. 25 Aug, 2016 17 commits
    • jacob.bramley's avatar
      [arm] Fix an accessor return type. · a338dad4
      jacob.bramley authored
      Existing uses are correct but the return type was misleading.
      
      Also clarify some related comments to make the difference between Bits
      and BitField more obvious.
      
      BUG=
      
      Review-Url: https://codereview.chromium.org/2275973002
      Cr-Commit-Position: refs/heads/master@{#38894}
      a338dad4
    • bmeurer's avatar
      Revert of [turbofan] Insert dummy values when changing from None type.... · a55fdb1e
      bmeurer authored
      Revert of [turbofan] Insert dummy values when changing from None type. (patchset #5 id:80001 of https://codereview.chromium.org/2266823002/ )
      
      Reason for revert:
      Octane/Mandreel aborts with an exception now:
      
      TypeError: __FUNCTION_TABLE__[(r2 >> 2)] is not a function
      
      Original issue's description:
      > [turbofan] Insert dummy values when changing from None type.
      >
      > Currently we choose the MachineRepresentation::kNone representation for
      > values of Type::None, and when converting values from the kNone representation
      > we use "impossible" conversions that will crash at runtime. This
      > assumes that the impossible conversions should never be hit (the only
      > way to produce the impossible values is to perform an always-failing
      > runtime check on a value, such as Smi-checking a string). Note that
      > this assumes that the runtime check is executed before the impossible
      > convesrion.
      >
      > Introducing BitwiseOr type feedback broke this in two ways:
      >
      > - we always pick Word32 representation for bitwise-or, so the
      >   impossible conversion does not trigger (it only triggers with
      >   None representation), and we could end up with unsupported
      >   conversions from Word32.
      >
      > - even if we inserted impossible conversions, they are pure conversions.
      >   Since untagging, bitwise-or operations are also pure, we could hoist
      >   all these before the smi check of the inputs and we could hit the
      >   impossible conversions before we get to the smi check.
      >
      > This CL addresses this by just providing dummy values for conversions
      > from the Type::None type. It also removes the impossible-to-* conversions.
      >
      > BUG=chromium:638132
      >
      > Committed: https://crrev.com/c83b21ab755f1420b6da85b3ff43d7e96ead9bbe
      > Cr-Commit-Position: refs/heads/master@{#38883}
      
      TBR=mstarzinger@chromium.org,jarin@chromium.org
      # Skipping CQ checks because original CL landed less than 1 days ago.
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      BUG=chromium:638132
      
      Review-Url: https://codereview.chromium.org/2280613002
      Cr-Commit-Position: refs/heads/master@{#38893}
      a55fdb1e
    • nikolaos's avatar
      [parser] Clean up (pre)parser traits, part 5, last · ba9367db
      nikolaos authored
      This patch moves the following methods from the traits objects to
      the (pre)parser implementation objects:
      
      - AddFormalParameter
      - AddParameterInitializationBlock
      - DeclareFormalParameter
      - ExpressionListToExpression
      - GetNonPatternList
      - GetReportedErrorList
      - IsTaggedTemplate
      - MaterializeUnspreadArgumentsLiterals
      - NoTemplateTag
      - ParseArrowFunctionFormalParameterList
      - ReindexLiterals
      - SetFunctionNameFromIdentifierRef
      - SetFunctionNameFromPropertyName
      
      It moves the Void method from the preparser traits object to the
      preparser implementation object.  It also removes the traits zone
      method and replaces it with that of ParserBase, which it turns to
      public.
      
      After all this, the traits objects contain just typedefs and the
      delegate methods are no more necessary.
      
      R=adamk@chromium.org, marja@chromium.org
      BUG=
      LOG=N
      
      Review-Url: https://codereview.chromium.org/2277843002
      Cr-Commit-Position: refs/heads/master@{#38892}
      ba9367db
    • heimbuef's avatar
      Better pack fields in Variable · 95560650
      heimbuef authored
      Used a BitField to for Variable fields instead of relying on the compiler, saving some memory probably.
      This reduces sizeof(Variable) from 64 to 40 on x64
      
      BUG=v8:5209
      
      Review-Url: https://codereview.chromium.org/2257493002
      Cr-Commit-Position: refs/heads/master@{#38891}
      95560650
    • nikolaos's avatar
      [parser] Clean up (pre)parser traits, part 4 · 3c1d076a
      nikolaos authored
      This patch moves the following methods from the traits objects to
      the (pre)parser implementation objects:
      
      - ExpressionFromIdentifier
      - ExpressionFromLiteral
      - ExpressionFromString
      - FunctionSentExpression
      - GetNextSymbol
      - GetNumberAsSymbol
      - GetSymbol
      - NewExpressionList
      - NewPropertyList
      - NewStatementList
      - NewSuperCallReference
      - NewSuperPropertyReference
      - NewTargetExpression
      - ThisExpression
      
      Also, the method GetIterator is specific only to the parser and is
      removed from the preparser's implementation.
      
      R=adamk@chromium.org, marja@chromium.org
      BUG=
      LOG=N
      
      Review-Url: https://codereview.chromium.org/2274113002
      Cr-Commit-Position: refs/heads/master@{#38890}
      3c1d076a
    • neis's avatar
      [modules] Split exports into regular and special, store regular ones in a multimap. · 6e67d042
      neis authored
      BUG=v8:1569
      
      Review-Url: https://codereview.chromium.org/2273013002
      Cr-Commit-Position: refs/heads/master@{#38889}
      6e67d042
    • vogelheim's avatar
      Minor header cleanup. · 1212e693
      vogelheim authored
      Review-Url: https://codereview.chromium.org/2272013002
      Cr-Commit-Position: refs/heads/master@{#38888}
      1212e693
    • mstarzinger's avatar
      [deoptimizer] Remove obsolete constructor argument. · b34d352e
      mstarzinger authored
      R=jarin@chromium.org
      
      Review-Url: https://codereview.chromium.org/2272653002
      Cr-Commit-Position: refs/heads/master@{#38887}
      b34d352e
    • baptiste.afsa's avatar
      [turbofan] Allow tests to enable/disable instruction scheduling. · 65ba1cde
      baptiste.afsa authored
      Some instruction selection tests rely on the instructions to be emitted
      in a specific order.
      
      R=jarin@chromium.org, bmeurer@chromium.org
      
      Review-Url: https://codereview.chromium.org/2276003002
      Cr-Commit-Position: refs/heads/master@{#38886}
      65ba1cde
    • neis's avatar
      Use NeedsContext() instead of comparing num_heap_slots(). · 4671660f
      neis authored
      R=verwaest@chromium.org, bmeurer@chromium.org
      BUG=
      
      Review-Url: https://codereview.chromium.org/2269403003
      Cr-Commit-Position: refs/heads/master@{#38885}
      4671660f
    • bmeurer's avatar
      [turbofan] Disable LoadElimination completely for asm.js. · b471d4ab
      bmeurer authored
      There's no point in running the LoadElimination on asm.js functions and
      it would take serious amount of effort to actually make it correct for
      the deprecated parts of the pipeline.
      
      R=jarin@chromium.org
      BUG=v8:5308
      
      Review-Url: https://codereview.chromium.org/2276273002
      Cr-Commit-Position: refs/heads/master@{#38884}
      b471d4ab
    • jarin's avatar
      [turbofan] Insert dummy values when changing from None type. · c83b21ab
      jarin authored
      Currently we choose the MachineRepresentation::kNone representation for
      values of Type::None, and when converting values from the kNone representation
      we use "impossible" conversions that will crash at runtime. This
      assumes that the impossible conversions should never be hit (the only
      way to produce the impossible values is to perform an always-failing
      runtime check on a value, such as Smi-checking a string). Note that
      this assumes that the runtime check is executed before the impossible
      convesrion.
      
      Introducing BitwiseOr type feedback broke this in two ways:
      
      - we always pick Word32 representation for bitwise-or, so the
        impossible conversion does not trigger (it only triggers with
        None representation), and we could end up with unsupported
        conversions from Word32.
      
      - even if we inserted impossible conversions, they are pure conversions.
        Since untagging, bitwise-or operations are also pure, we could hoist
        all these before the smi check of the inputs and we could hit the
        impossible conversions before we get to the smi check.
      
      This CL addresses this by just providing dummy values for conversions
      from the Type::None type. It also removes the impossible-to-* conversions.
      
      BUG=chromium:638132
      
      Review-Url: https://codereview.chromium.org/2266823002
      Cr-Commit-Position: refs/heads/master@{#38883}
      c83b21ab
    • bmeurer's avatar
      [compiler] Properly canonicalize handles even with concurrent recompilation. · 052ba98d
      bmeurer authored
      For concurrent recompilation we created the CompilationHandleScope after
      the CanonicalHandleScope, which basically disabled the canonicalization
      because the deferred handle creation doesn't pay attention to the
      canonicalization mode then. This meant that we did not canonicalize
      handles properly as soon as concurrent recompilation was enabled.
      
      R=jarin@chromium.org
      BUG=v8:5267
      
      Review-Url: https://codereview.chromium.org/2276953004
      Cr-Commit-Position: refs/heads/master@{#38882}
      052ba98d
    • bmeurer's avatar
      [turbofan] Add regression tests for LoadElement/Field in diamond. · a124bf77
      bmeurer authored
      This introduces appropriate unit tests to ensure that merging of
      elements/fields information is correct for diamonds.
      
      BUG=chromium:639210,v8:5266
      R=jarin@chromium.org
      
      Review-Url: https://codereview.chromium.org/2278043002
      Cr-Commit-Position: refs/heads/master@{#38881}
      a124bf77
    • franzih's avatar
      [api] Disable new and delete using = delete. · 8ce60a19
      franzih authored
      According to our style guide on Copyable and Movable Types,
      copy/move operators should be disabled using = delete in the public: section.
      Use consistent style for disabling new and delete.
      
      BUG=
      
      Review-Url: https://codereview.chromium.org/2276063002
      Cr-Commit-Position: refs/heads/master@{#38880}
      8ce60a19
    • franzih's avatar
      [api] Disable copy constructors using = delete. · 6effe72f
      franzih authored
      According to our style guide on Copyable and Movable Types,
      copy/move operators should be disabled using = delete in the public: section,
      not in the private: section.
      
      BUG=
      
      Review-Url: https://codereview.chromium.org/2272063002
      Cr-Commit-Position: refs/heads/master@{#38879}
      6effe72f
    • franzih's avatar
      Disable copy constructor in public: section or use macro. · b2fee84f
      franzih authored
      According to our style guide on Copyable and Movable Types,
      copy/move operators should be disabled in the public: section, not
      in the private: section. If disabled with a macro such as
      DISALLOW_COPY_AND_ASSIGN, it should be at the end of the private: section,
      and should be the last thing in the class.
      
      BUG=
      
      Review-Url: https://codereview.chromium.org/2271043003
      Cr-Commit-Position: refs/heads/master@{#38878}
      b2fee84f
  2. 24 Aug, 2016 23 commits