1. 11 Jan, 2017 1 commit
    • rmcilroy's avatar
      [compiler] Collect eager inner functions for compilation during renumbering. · a3052cfe
      rmcilroy authored
      This CL modifies the ast-numbering phase to collect function literals which
      should be compiled eagerly. This is then used to eagerly compile the inner
      functions before compiling the outer function. This will be used to queue
      compilation jobs on the CompilerDispatcher in a later CL.
      
      This CL moves the compilation of eager inner functions out of the
      GetSharedFunctionInfo function and instead compiles them explicitly. This
      simplifies GetSharedFunctionInfo and also means there is no need to pass a
      LazyCompilationMode to the function, so this concept has been removed.
      
      BUG=v8:5203,v8:5215
      
      Review-Url: https://codereview.chromium.org/2618553004
      Cr-Commit-Position: refs/heads/master@{#42221}
      a3052cfe
  2. 02 Jan, 2017 1 commit
  3. 30 Nov, 2016 1 commit
    • clemensh's avatar
      [wasm] Remove raw byte pointers from WasmModule · 6572b562
      clemensh authored
      These byte pointers (module_start and module_end) were only valid
      during decoding. During instantiation or execution, they can get
      invalidated by garbage collection.
      This CL removes them from the WasmModule struct, and introduces a new
      ModuleStorage struct as interface to the wasm wire bytes.
      Since the storage is often needed together with the ModuleEnv, a new
      ModuleStorageEnv struct holds both a ModuleEnv and a ModuleStorage.
      The pointers in the ModuleStorage should never escape the live range of
      this struct, as they might point into a SeqOneByteString or ArrayBuffer.
      Therefore, the WasmInterpreter needs to create its own copy of the
      whole module.
      Runtime functions that previously used the raw pointers in WasmModule
      (leading to memory errors) now have to use the SeqOneByteString in the
      WasmCompiledModule.
      
      R=titzer@chromium.org
      BUG=chromium:669518
      
      Review-Url: https://codereview.chromium.org/2540133002
      Cr-Commit-Position: refs/heads/master@{#41388}
      6572b562
  4. 21 Nov, 2016 1 commit
  5. 15 Nov, 2016 1 commit
  6. 03 Nov, 2016 1 commit
  7. 02 Nov, 2016 1 commit
  8. 26 Oct, 2016 2 commits
    • heimbuef's avatar
      New zone-backed list datastructure to replace ZoneList · 610c0d75
      heimbuef authored
      Since ZoneLists are essentially non-standard ZoneVectors and have a bad
      growing behaviour (ZoneList-allocations make up ~50% of website parse
      zone memory) we should stop using them. The zone-containers are merely
      a clean-up, with none of them actually better suited to be used with
      zones. This new datastructure allows most operations of a LinkedList (
      except pop_first and insertAt/removeAt) but uses about the same memory
      as a well-initialized ZoneVector/ZoneList (<3% overhead with reasonably
      large lists). It also never attempts to free memory again (which would
      not work in zones anyway).
      
      The ZoneChunkList is essentially a doubly-linked-list of arrays of
      variable size.
      
      Some test-results where I tried storing 16k pointers in different list
      types (lists themselves also zone-allocated):
      
      List type                       Zone memory used   Time taken
      -----------------------------------------------------------------------
      Zone array (for comparison)     131072 B
      
      Ideally initialized ZoneList    131088 B           0.062ms
      
      ChunkZoneList                   134744 B           0.052ms <--new thing
      
      ZoneDeque                       141744 B
      
      ZoneLinkedList                  393264 B
      
      Initially empty ZoneList        524168 B           0.171ms <--right now
      
      ChunkZoneList only push_front   524320 B
      
      Review-Url: https://codereview.chromium.org/2449383002
      Cr-Commit-Position: refs/heads/master@{#40602}
      610c0d75
    • bbudge's avatar
      [Turbofan] Add concept of FP register aliasing on ARM 32. · 09ab8e6a
      bbudge authored
      - Modifies RegisterConfiguration to specify complex aliasing on ARM 32.
      - Modifies RegisterAllocator to consider aliasing.
      - Modifies ParallelMove::PrepareInsertAfter to handle aliasing.
      - Modifies GapResolver to split wider register moves when interference
      with smaller moves is detected.
      - Modifies MoveOptimizer to handle aliasing.
      - Adds ARM 32 macro-assembler pseudo move instructions to handle cases where
        split moves don't correspond to actual s-registers.
      - Modifies CodeGenerator::AssembleMove and AssembleSwap to handle moves of
        different widths, and moves involving pseudo-s-registers.
      - Adds unit tests for FP operand interference checking and PrepareInsertAfter.
      - Adds more tests of FP for the move optimizer and register allocator.
      
      LOG=N
      BUG=v8:4124
      
      Review-Url: https://codereview.chromium.org/2410673002
      Cr-Commit-Position: refs/heads/master@{#40597}
      09ab8e6a
  9. 20 Oct, 2016 1 commit
  10. 17 Oct, 2016 1 commit
  11. 11 Oct, 2016 2 commits
  12. 10 Oct, 2016 2 commits
  13. 07 Oct, 2016 2 commits
  14. 06 Oct, 2016 3 commits
  15. 04 Oct, 2016 1 commit
  16. 30 Sep, 2016 1 commit
  17. 29 Sep, 2016 1 commit
    • leszeks's avatar
      [base] Template MatchFun in TemplateHashMapImpl · 837c91e8
      leszeks authored
      Make MatchFun a template parameter in TemplateHashMapImpl, moving the
      PointersMatch function down to an implementation which extends
      TemplateHashMapImpl to void* key and value (i.e. the same as the current
      HashMap and ZoneHashMap typedefs).
      
      This will allow other instantiations of TemplateHashMapImpl, with
      different MatchFun values, e.g. std::equal_to, to have their key
      equality test inlined, rather than calling a function pointer,
      
      Review-Url: https://codereview.chromium.org/2354593002
      Cr-Commit-Position: refs/heads/master@{#39868}
      837c91e8
  18. 26 Sep, 2016 1 commit
    • jgruber's avatar
      Enable component builds for fuzzers · 22606f0c
      jgruber authored
      V8 is collecting a growing amount of fuzzers, all of which take substantial
      space on the bots and in chromium build archives. This CL improves that
      situation by allowing component (shared library) builds for almost all fuzzers.
      
      The parser fuzzer is handled as an exception since it would require exporting a
      large number of additional functions.
      
      A component build results in about a 50-100x improvement in file size for each
      fuzzer (~50M-100M to around 1.1M).
      
      BUG=chromium:648864
      CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_chromium_compile_dbg_ng;master.tryserver.chromium.android:android_clang_dbg_recipe
      
      Review-Url: https://codereview.chromium.org/2360983002
      Cr-Commit-Position: refs/heads/master@{#39709}
      22606f0c
  19. 23 Sep, 2016 2 commits
  20. 22 Sep, 2016 2 commits
  21. 20 Sep, 2016 1 commit