Giter Club home page Giter Club logo

dellhart / vbd-hotspot Goto Github PK

View Code? Open in Web Editor NEW

This project forked from lun-liu/vbd-hotspot

0.0 1.0 0.0 375.13 MB

Volatile-By-Default Semantics for HotSpot JVM

License: GNU General Public License v2.0

Makefile 0.27% HTML 0.64% Shell 0.93% M4 0.08% C 6.63% Java 76.60% Batchfile 0.02% Objective-C 0.43% C++ 11.61% JavaScript 1.32% DTrace 0.05% Assembly 0.04% XSLT 0.06% Lex 0.01% Roff 1.26% Python 0.05% Perl 0.01% Ruby 0.01% Haskell 0.01% CSS 0.01%

vbd-hotspot's Introduction

VBD-HotSpot

This project modified HotSpot JVM in OpenJDK8u to provide Volatile-By-Default semantics for HotSpot JVM, including a Volatile-By-Default interpreter for x86-64 and a Volatile-By-Default c2 compiler. VBD-HotSpot compiler also supports "relaxed" semantics for programmer specified variables, methods, or classes

This repo is cloned from the openjdk8u-master Mercurial repository (last changeset: 1645:b77f17326a42, Jan 25 2016). The original README file can also be found in this repo

Build

  1. before attempting to build, setup the sytem according to [System Setup] section of file ./Readme-builds.html

  2. if you don't have a jdk7u7 or newer jdk, download and install it from http://java.sun.com/javase/downloads/index.jsp add the /bin directory of this installation to your path environment variable.

  3. configure the build, install necessary dependencies:

    bash ./configure
    
  4. build the openjdk:

    make all
    

the resulting jdk image should be found in build/*.

* OpenJDK8u has some compatability issue with gcc 6.0. See (http://git.net/ml/hotspot-dev/2016-05/msg00133.html). You can consider downgrade your gcc if you run into this issue.

Run Java with VBD-HotSpot

Volatile-By-Default can be enabled using -XX:+VBD flag (or -XX:+VBDInter and -XX:+VBDComp for interpreter and compiler only). Also -XX:-TieredCompilation is needed to turn off c1 compiler (only the c2 compiler is Volatile-By-Default now). Also remember to use -XX:-OptimizeStringConcat to disable String intrinsics optimizations, and -XX:+AggresiveMemBar to allow more optimizations for non-escaping objects.

BUILD_IMAGE/jdk/bin/java -XX:-TieredCompilation -XX:+VBD -XX:-OptimizeStringConcat -XX:+AggresiveMemBar SomeJavaProgram

"relaxed" semantics for methods, fields, classes, etc.

VBD-HotSpot allows programmers to specify certain methods, fields, or classes to have "relaxed" semantics (current JMM semantics) instead of Volatile-by-Default semantics. To specify such methods, fields, or classes, use flags -XX:VBDRelaxedMethod, -XX:VBDRelaxedField, or -XX:VBDRelaxedClass.

BUILD_IMAGE/jdk/bin/java -XX:-TieredCompilation -XX:+VBD -XX:-OptimizeStringConcat -XX:+AggresiveMemBar -XX:VBDRelaxedMethod=to/relax/method1,to/relax/method2 SomeJavaProgram

vbd-hotspot's People

Contributors

sc-hotspot avatar

Watchers

Jangsoo Lee avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.