-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathMakefile
More file actions
95 lines (76 loc) · 2.07 KB
/
Makefile
File metadata and controls
95 lines (76 loc) · 2.07 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
XJDK_HOME ?= .
AGENT ?= lib/deuceAgent-1.3.0.jar
JUNIT ?= lib/junit.jar
JAVA ?= java
JAVAC ?= javac
JAVAOPT ?= -server
BIN ?= ${XJDK_HOME}/bin
STM ?= estmmvcc
ifndef STM
SYNC = global
else
SYNC = ${STM}.Context
endif
ANT=ant
#############################
# Platform dependent settings
#############################
ifndef OS_NAME
OS_NAME = $(shell uname -s)
endif
ifeq ($(OS_NAME), Darwin)
JDK_RT ?= /System/Library/Frameworks/JavaVM.framework/Versions/1.6/Classes/classes.jar
endif
ifeq ($(OS_NAME), Linux)
JDK_RT ?= /usr/lib/jvm/java-1.7.0/jre/lib/rt.jar
endif
ifeq ($(OS_NAME), SunOS)
JDK_RT ?= /usr/lib/jvm/java-6-sun-1.6.0.20/jre/lib/rt.jar
endif
#############################
# Agent
#############################
JAR_STM = mydeuce.jar
EXCLUDE = -Dorg.deuce.exclude=java.lang.Enum,sun.*
MAIN = org.deuce.transform.asm.Agent
#############################
# Benchmark
#############################
VERSION = 0.1
JAR_BENCH = compositional-deucestm-${VERSION}.jar
MAIN_CLASS = contention/benchmark/Test.java
CP = ${BIN}:${AGENT}
#############################
# Bytecode archives
#############################
JAR_DIR ?= lib
BENCH = ${JAR_DIR}/compositional-deucestm-${VERSION}.jar
RT = ${JAR_DIR}/rt_instrumented.jar
MYDEUCE = ${JAR_DIR}/${JAR_STM}
all: compile instrument
instrument:
${JAVA} -cp ${AGENT} ${EXCLUDE} ${MAIN} ${JDK_RT} ${RT}
compile:
${ANT}
${ANT} jarbench
${ANT} jardeuce
compilev:
${ANT} -v
${ANT} -v jarbench
${ANT} -v jardeuce
check:
${JAVA} ${JAVAOPT} -Dorg.deuce.exclude="java.util.*,java.lang.*,sun.*" \
-javaagent:${AGENT} \
-Dorg.deuce.transaction.contextClass=org.deuce.transaction.${SYNC} \
-cp ${BENCH}:${MYDEUCE}:bin \
-Xbootclasspath/p:${RT} \
contention.benchmark.Test \
-v -W 2 -u 20 -a 0 -s 0 -d 2000 -t 64 -i 4096 -r 8192 -b linkedlists.transactional.ReusableLinkedListIntSet
check-notx:
${JAVA} ${JAVAOPT} \
-cp bin \
contention.benchmark.Test \
-W 0 -w 20 -a 0 -s 0 -l 2000 -t 1 -i 4096 -r 8192 -b linkedlists.lockbased.LazyLinkedListSortedSet
clean:
rm -rf bin/*
rm ${BENCH} ${MYDEUCE} ${RT}