Permalink
Commits on Aug 16, 2015
  1. Adds CI badges for both master and develop branches

    0x7CFE committed Aug 16, 2015
  2. Merges release 0.4

    0x7CFE committed Aug 16, 2015
    Release 0.4 completely refactors the VM logic and
    brings new instruction API that allows us to extract
    semantic information from method bytecodes.
    
    Later this will help to deduce the possible control
    flow and perform a lot of optimizations. This should
    literally boost the VM performance to a new level.
    
    Also huge amount of work was done in terms of code
    organization, readability and maintainability.
    
    * develop: (290 commits)
      Renames standart_set -> standard_set
      Fixes compilation of MethodCompiler::getSkipOffset
      Installs llvm 3.3 under osx
      Bumps version in `--version`
      Moves some methods from instructions.h into stapi.h
      Replaces get_current_dir_name with getcwd
      Fixes compilation of Timer.cpp not on Linux
      Removes double compilation of some cpp files
      Prepares env and compilers
      Fixes primitive::stringAt
      Bumps version of debian package
      Bumps version upto 0.4
      Adds --mm_type into man page
      Fixes llvm version in README and shows how to build unit tests
      Fixes comments in JITRuntime.cpp
      Fixes outdated comments with m_targetToBlockMap
      Makes more functions in Timer.h be const
      Fixes library linkage order
      Removes trash comments from MethodCompiler
      Removes trash comments from ControlGraphVisualizer
      ...
Commits on May 20, 2015
  1. Merge pull request #64 from vlastachu/feature/47/gc_log

    0x7CFE committed May 20, 2015
    Feature/47/gc log
Commits on Apr 18, 2015
  1. Merge pull request #75 from 0x7CFE/feature/74/jit_once

    0x7CFE committed Apr 18, 2015
    Provides Jit>>once: for one-time JIT execution of a block
  2. Adds jit shell

    0x7CFE committed Apr 18, 2015
    Issue: #74
Commits on Apr 17, 2015
  1. Merge pull request #71 from 0x7CFE/fix/jit_warnings

    0x7CFE committed Apr 17, 2015
    Fixes warnings in MethodCompiler and ControlGraph, fixes Travis error detection
Commits on Apr 13, 2015
  1. Merge pull request #70 from 0x7CFE/fixes/tests

    0x7CFE committed Apr 13, 2015
    Fixes test warnings
Commits on Apr 12, 2015
  1. Merge branch 'feature/32/codegen_into_ir_func' into develop

    0x7CFE committed Apr 12, 2015
    * feature/32/codegen_into_ir_func:
      Forces IR functions to be inlined
      Rewrites doAssignInstance with `@setInstanceInContext'
      Rewrites doAssignInstance using cached `@getObjectFieldPtr'
      Fixes using of `@getTempsFromContext'
      Rewrites primitive::arrayAtPut using cached `@getObjectFieldPtr'
      Rewrites doPushInstance using cached `@getInstanceFromContext'
      Rewrites doPushArgument using cached `@getArgFromContext'
      Rewrites doPushLiteral using TJITContext::getLiteral
      Rewrites TJITContext::getLiteral using cached `@getLiteralFromContext'
      Rewrites doAssignTemporary with `@setTemporaryInContext'
      Rewrites doPushArgument with `@getTemporaryFromContext'
      Adds function to_string to format names of llvm values
      Removes extra space in `@setObjectField'
      Rewrites `@getObjectFields' using `@getObjectFieldPtr'
    
    Issue: #32
  2. Merge branch 'feature/32/stapi_tests' into develop

    0x7CFE committed Apr 12, 2015
    * feature/32/stapi_tests: (39 commits)
      Disables stack underflow test
      Adds test to check whether all incomings of Phi are unique
      Fixes unregistered methods in image
      Fixes tests due to new requirements
      Fixes ABAB test due to new requirements
      Fixes ControlGraphVisualizer 1. It throws exception if file can't be created 2. It escapes chars in filename 3. If literals can't be accessed, it generates a name for the node by default
      Adds test to check behaviour of graph builder on stack underflow
      Fixes the correct order of arguments for EXPECT_*
      Fixes segfault in stack_semantics
      Removes check whether branch should jump on branches
      Adds tests for duplicate opcode
      Fixes TSmalltalkInstruction::isValueProvider (primitives provide values)
      Fixes test for TSmalltalkInstruction (primitives are value providers)
      Fixes TSmalltalkInstruction::isValueConsumer (selfReturn doesn't consume value)
      Fixes test for TSmalltalkInstruction (selfReturn doesn't consume value)
      Adds tests which checks whether branches jump not on terminators
      Adds test to check whether instructions linked with value providers
      Adds newline at EOF in ParsedBytecode.cpp
      Adds fixes after rebase
      Removes stringstream(to format message) from tests
      ...
    
    Conflicts:
    	CMakeLists.txt
    	image/imageSource.st
    	tests/CMakeLists.txt
    
    Issue: #32
  3. Merge branches 'feature/32/instruction_api' and 'feature/32/benchmark…

    0x7CFE committed Apr 12, 2015
    …' into develop
    
    * feature/32/instruction_api: (152 commits)
      Adds logic that removes redundant phis
      Comments out unused sizeInByte constants (lifetime TODO)
      Experimental implementation of self direct calls and lifetime markers
      Removes redundant gc protection in doMarkArguments
      Adds optimization for PushArgument 0
      Refactors naming
      Adds trivial method detector
      Encodes SmallInt literals as immediate values
      Messages sent to literal receivers are now encoded directly
      Removes pointer protection from SendBinary arguments
      Fixes protection logic and removes redundant checks
      Applies protectProducerNode() to produced values
      Adds logic that answers a question whether produced value should be protected
      Adds TSmalltalkInstruction::mayCauseGC()
      Adds control graph walking routines
      Fixes image to conform in-image compiler
      Fixes encoding of dup instruction
      Fixes the node value of doPrimitive (it is always nil, because the flow continues in primitiveFailedBB)
      Fixes primitive startNewProcess
      Refactors phi generation logic
      ...
    
    * feature/32/benchmark: (156 commits)
      Adds Tree benchmarks
      Adds statistics of blockReturn invokation
      Adds Array, OrderedArray and List benchmarks
      Adds more benchmarks, simplifies TVMExecutionContext::stackPush()
      Adds benchmark which compares various operations in soft and JIT
      Comments out compilation trace messages
      Experimental implementation of self direct calls and lifetime markers
      Removes redundant gc protection in doMarkArguments
      Adds optimization for PushArgument 0
      Refactors naming
      Adds trivial method detector
      Encodes SmallInt literals as immediate values
      Messages sent to literal receivers are now encoded directly
      Removes pointer protection from SendBinary arguments
      Fixes protection logic and removes redundant checks
      Applies protectProducerNode() to produced values
      Adds logic that answers a question whether produced value should be protected
      Adds TSmalltalkInstruction::mayCauseGC()
      Adds control graph walking routines
      Fixes image to conform in-image compiler
      ...
    
    Issue: #32
  4. Disables stack underflow test

    0x7CFE committed Apr 12, 2015
    Issue: #32
  5. Adds logic that removes redundant phis

    0x7CFE committed Apr 11, 2015
    Issue: #32
  6. Fixes stack_semantics test

    0x7CFE committed Feb 3, 2015
Commits on Apr 11, 2015
  1. Merge branches 'feature/62/man', 'feature/61/cmake' and 'feature/65/t…

    0x7CFE committed Apr 11, 2015
    …ravis' into develop
    
    * feature/62/man:
      Adds basic description of the project
      Adds more detailed description of cli options
      Improves the man page
    
    * feature/61/cmake:
      Improves error messages in FindLLVM
      Improves handling of GTest libs when they are missing or when they are of incorrect architecture
      Target `make all` builds tests but does not run it
      Improves CTest support
      Fixes the version of doc
      Adds deps for DEB package + changes the name of package
      Hides variables from user corresponding to readline and tinfo
      Prettifies LLVM flags
      Modifies FindLLVM.cmake to switch between versions in an easy way.
    
    * feature/65/travis:
      Do not use ppa to satisfy the deps
      Adds support of ctest+cdash
      Builds only master, develop or any branch which name contains 'travis'
      Removes email notifications
      Turns on llvm
      Adds i386 deps
      Adds basic .travis.yml file
    
    Issue: #61
    Issue: #62
    Issue: #65
Commits on Mar 18, 2015
  1. Adds Tree benchmarks

    0x7CFE committed Mar 18, 2015
  2. Adds statistics of blockReturn invokation

    0x7CFE committed Mar 18, 2015
    Issue: #32
Commits on Mar 9, 2015
  1. Adds Array, OrderedArray and List benchmarks

    0x7CFE committed Mar 9, 2015
    Issue: #32
Commits on Mar 8, 2015
  1. Comments out compilation trace messages

    0x7CFE committed Mar 8, 2015
    Issue: #32
Commits on Mar 7, 2015
  1. Experimental implementation of self direct calls and lifetime markers

    0x7CFE committed Mar 7, 2015
    Commit provides experimental implementation of direct calls
    of messages sent to self where it is safe to do so.
    
    If class do not have children message sent to self may be encoded
    as a direct call. However, some image code is required to detect
    and store children of current class.
    
    Also argument arrays produced by MarkArguments are now enclosed
    in llvm.lifetime.start/end intrinsics to mark the object lifetime.
    
    Issue: #32
Commits on Mar 6, 2015
  1. Adds optimization for PushArgument 0

    0x7CFE authored and kpp committed Mar 4, 2015
    Self pointer is already stored in holder for quick access
    
    Issue: #32
  2. Refactors naming

    0x7CFE authored and kpp committed Mar 4, 2015
    Issue: #32
  3. Adds trivial method detector

    0x7CFE authored and kpp committed Mar 4, 2015
    Issue: #32
  4. Encodes SmallInt literals as immediate values

    0x7CFE authored and kpp committed Mar 4, 2015
    Issue: #32
  5. Messages sent to literal receivers are now encoded directly

    0x7CFE authored and kpp committed Mar 4, 2015
    Literal receivers are encoded at the time of method compilation,
    so thier value and their class will not change over time.
    
    Actual values are known at compile time and may be used to lookup
    the actual method that should be invoked.
    
    Issue: #32