Commit Graph

36 Commits

Author SHA1 Message Date
Ruben Ayrapetyan 005b5370fc Switching to g++ and corresponding changes according to C++ requirements. 2015-01-16 17:27:02 +03:00
Ruben Ayrapetyan 6bb39bb8ea Introducing 'try to give memory back' callback for heap allocator to use upon allocation request that can not be satisfied by the allocator. 2014-12-18 22:25:22 +03:00
Ruben Ayrapetyan 1e0eea3d73 Returning NULL from mem_heap_alloc_block if requested block size is zero. 2014-12-18 13:26:42 +03:00
Ruben Ayrapetyan dd3271e35d Changing uint8_t* to void* in arguments and return values of mem_heap_alloc_block, mem_heap_free_block and mem_heap_try_resize_block operations. 2014-12-17 21:27:02 +03:00
Ilmir Usmanov dc8ab27900 Split parser into parser itself, opcodes dumper and syntax errors checker.
Add internal hash map of literal indexes:
  In this hash map key is pair of block number and literal's unique identifier in the block, and the value is a literal index that unique in the whole program.
  Block is a continues array of opcodes. So, bytecode is splitted into blocks.
  Each block has its own uid counter. To get literal index the interpreter looks up it in the hash map.
  Thus, now JS program is able to have more than 255 identifiers/string literals.
  The first 128 (0-127) uids are reserved for block's uid counter, the other 128 (128-255) are reserved for tmp variables.
2014-12-10 18:31:59 +03:00
Ruben Ayrapetyan c21e186f2c Static definition of pool's area size and number of chunks in a pool; alignment of mem_block_header_t and mem_pool_state_t to MEM_ALIGNMENT. 2014-11-26 19:23:26 +03:00
Ruben Ayrapetyan 9a0081b856 Splitting free block from end if block search direction is backward (currently, for short-term blocks). 2014-11-24 18:52:47 +03:00
Ruben Ayrapetyan 804af937d8 Fixing !MEM_STATS build. 2014-11-12 15:41:13 +03:00
Ruben Ayrapetyan bd60d1874b Implementing resize of heap blocks.
- adding mem_heap_try_resize_block routine that tries to resize
   block using free space that is located right after the resized block;
 - placing long-term blocks from start of heap space and short-term - from end
   of the space to increase probability of success of resizing just allocated
   long-term block;
 - adding mem_heap_try_resize_block invocation to 'test_heap' unit test.
2014-11-11 15:44:31 +03:00
Ruben Ayrapetyan cd41b236d9 Statistics of memory usage during interpretation. 2014-09-16 21:19:07 +04:00
Ruben Ayrapetyan b987bcc920 Compaction of heap block's header from 32 bytes to 8 bytes. ./benchmarks/jerry/loop_arithmetics_1kk.js: 2.77 -> 2.82. 2014-08-12 16:23:44 +04:00
Ruben Ayrapetyan aa43e06366 Style fixes in liballocator, libecmaobjects, libecmaoperations: putting else on separate line after closing brace of 'if' block. 2014-08-12 13:53:34 +04:00
Ruben Ayrapetyan 38c6c2357d Styles fixes in liballocator: indentation and braces rules. 2014-08-11 21:10:06 +04:00
Ruben Ayrapetyan 59940fb648 Style fixes in liballocator, libecmaobjects, libecmaoperations: now lines are not longer than 120 characters. 2014-08-11 19:51:40 +04:00
Ruben Ayrapetyan b02eefd4ae Style fixes in liballocator, libecmaobjects, libecmaoperations: space between function name and opening parenthesis, no space after opening parenthesis/before closing parenthesis. 2014-08-11 19:28:14 +04:00
Ruben Ayrapetyan 8ce1ef3c8b Removing trailing whitespace in liballocator, libecmaobjects and libecmaoperations. 2014-08-11 15:59:19 +04:00
Ruben Ayrapetyan 7b04e9eaeb Compacting pool header to 8 bytes. Replaced typed pool chunks with fixed-size untyped ones. loop_arithmetics_1kk.js benchmark: 2.98517 -> 2.9443. 2014-08-08 23:11:06 +04:00
Ruben Ayrapetyan 2887332573 Fixing valgrind annotations in mem_heap_alloc_block for path added in ae189c6107f943f5273f9b2fce14ad17a396636c. 2014-08-07 21:08:07 +04:00
Ruben Ayrapetyan 99c15ef802 Implementing object model, memory allocators finalization routines. Adding assertion that all memory was freed before exit. 2014-08-07 19:24:32 +04:00
Ruben Ayrapetyan 93c7b813cf Fixing heap's block allocation routine. Adding related checks to mem_check_heap. 2014-08-07 18:26:26 +04:00
Ruben Ayrapetyan ac35a4ebf2 Fixing cppcheck warnings in mem-heap.c (appeared when valgrind=1) and in jerry-libc.c (appeared libc_raw=1). 2014-08-04 18:42:40 +04:00
Ruben Ayrapetyan 0025827eac Fixes: JERRY_NVALGRIND effect was inverted; also a block was marked as inaccessible too early. 2014-08-01 18:30:24 +04:00
Ruben Ayrapetyan fa87696275 Revert "Fixes: JERRY_NVALGRIND effect was inverted; also a block was marked as inaccessible too early."
This reverts commit 53c0da4307b1407f506ff71b0e014eefe00da985.
2014-08-01 18:29:55 +04:00
Ruben Ayrapetyan a6feea1068 Fixes: JERRY_NVALGRIND effect was inverted; also a block was marked as inaccessible too early. 2014-08-01 18:28:18 +04:00
Ruben Ayrapetyan e1c57dc231 Adding valgrind's memcheck support in mem-heap. Adding valgrind's headers valgrind.h and memcheck.h to third-party/valgrind directory. 2014-08-01 18:22:34 +04:00
Ruben Ayrapetyan e3c8af68f5 Enhancement of heap memory usage statistics output. 2014-07-25 19:16:52 +04:00
Ruben Ayrapetyan 5e4078095a Print heap memory usage statistics before exit (host version). 2014-07-25 19:09:10 +04:00
Ruben Ayrapetyan 8d180e9be1 Minor style fixes. 2014-07-23 20:41:21 +04:00
Ruben Ayrapetyan 1796b9d903 Renaming rest camelCase-named identifiers according to underscore_named_value-naming. 2014-07-23 14:07:45 +04:00
Ruben Ayrapetyan b3b4c74cbe Renaming mem_* identifiers from 'camelCase' to 'underscore_naming'. 2014-07-23 12:54:45 +04:00
Ruben Ayrapetyan 2d4ed154ee Removing m_ prefix from identifiers (m_ValueType -> ValueType, ...). 2014-07-23 11:41:58 +04:00
Ruben Ayrapetyan aaf2bc4f41 Fix mem-heap.c, mem-poolman.c and test_poolman.c compilation for '#ifndef MEM_STATS' case. 2014-07-09 19:43:50 +04:00
Ruben Ayrapetyan c54370bfec Remove inline from mem_GetChunkSize and mem-heap internal static functions. 2014-07-09 19:15:51 +04:00
Ilmir Usmanov a2350cb88e Change parser to stack-only version 2014-07-09 18:05:19 +04:00
Ilmir Usmanov f46d5b440c Merge line-by-line parser 2014-07-09 16:17:42 +04:00
e.gavrin 3fde3400f4 manualy generated blinky opcodes 2014-07-03 16:23:25 +04:00