support for java-11 made a bit cleaner
This commit is contained in:
		
							parent
							
								
									776bb9cbfe
								
							
						
					
					
						commit
						fca8399d0f
					
				| 
						 | 
					@ -688,7 +688,9 @@ VOID Instruction(INS ins, VOID *v) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	UINT32 memOperands = INS_MemoryOperandCount(ins);
 | 
						UINT32 memOperands = INS_MemoryOperandCount(ins);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (INS_IsControlFlow(ins))//INS_IsBranchOrCall(ins))//INS_IsIndirectBranchOrCall(ins))
 | 
						//if (INS_IsIndirectBranchOrCall(ins))//old versions of PIN
 | 
				
			||||||
 | 
						if (INS_IsBranchOrCall(ins))//use this for older versions of PIN like 97554
 | 
				
			||||||
 | 
						//if (INS_IsControlFlow(ins))//use this for newer versions of PIN like 98332
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		INS_InsertCall(ins, IPOINT_BEFORE, (AFUNPTR) BrnFun, IARG_THREAD_ID,
 | 
							INS_InsertCall(ins, IPOINT_BEFORE, (AFUNPTR) BrnFun, IARG_THREAD_ID,
 | 
				
			||||||
				IARG_BRANCH_TARGET_ADDR, IARG_BRANCH_TAKEN, IARG_INST_PTR,
 | 
									IARG_BRANCH_TARGET_ADDR, IARG_BRANCH_TAKEN, IARG_INST_PTR,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,4 +1,4 @@
 | 
				
			||||||
PIN_KIT ?=/home/rajshekar/softwares/pin-98332/
 | 
					PIN_KIT ?=/mnt/remote_scratch/softwares/pin-97554/
 | 
				
			||||||
CXX=$(shell make PIN_ROOT=$(PIN_KIT) VAR=CXX -f pin_makefile print_var)
 | 
					CXX=$(shell make PIN_ROOT=$(PIN_KIT) VAR=CXX -f pin_makefile print_var)
 | 
				
			||||||
LINKER=$(shell make PIN_ROOT=$(PIN_KIT) VAR=LINKER -f pin_makefile print_var)
 | 
					LINKER=$(shell make PIN_ROOT=$(PIN_KIT) VAR=LINKER -f pin_makefile print_var)
 | 
				
			||||||
TOOL_CXXFLAGS=$(shell make PIN_ROOT=$(PIN_KIT) VAR=TOOL_CXXFLAGS -f pin_makefile print_var)
 | 
					TOOL_CXXFLAGS=$(shell make PIN_ROOT=$(PIN_KIT) VAR=TOOL_CXXFLAGS -f pin_makefile print_var)
 | 
				
			||||||
| 
						 | 
					@ -60,21 +60,23 @@ $(BINDIR)/shmem.$(OBJ_EXTENSION): $(COMMDIR)/IPCBase.h $(COMMDIR)/shm/shmem.h  $
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
################################ JNI stuff comes here ############################################
 | 
					################################ JNI stuff comes here ############################################
 | 
				
			||||||
#JNIPACKAGE = emulatorinterface.communication.shm.SharedMem #use this for java-8
 | 
					 | 
				
			||||||
JNIPACKAGE = ../../simulator/emulatorinterface/communication/shm/SharedMem.java #use this for java-11
 | 
					JNIPACKAGE = ../../simulator/emulatorinterface/communication/shm/SharedMem.java #use this for java-11
 | 
				
			||||||
#JNINCLUDE =-I/usr/lib/jvm/java-8-openjdk-amd64/include/linux -I/usr/lib/jvm/java-8-openjdk-amd64/include #use this for java-8
 | 
					 | 
				
			||||||
JNINCLUDE =-I/usr/lib/jvm/java-11-openjdk-amd64/include/linux -I/usr/lib/jvm/java-11-openjdk-amd64/include #use this for java-11
 | 
					JNINCLUDE =-I/usr/lib/jvm/java-11-openjdk-amd64/include/linux -I/usr/lib/jvm/java-11-openjdk-amd64/include #use this for java-11
 | 
				
			||||||
JNILinkingFlags = -shared -Wall $(POSITION_INDEPENDENCE)
 | 
					JNILinkingFlags = -shared -Wall $(POSITION_INDEPENDENCE)
 | 
				
			||||||
#JAVAH = javah -jni #use this for java-8
 | 
					 | 
				
			||||||
JAVAH = javac #use this for java-11
 | 
					JAVAH = javac #use this for java-11
 | 
				
			||||||
 | 
					JAVAHCOMMAND = $(JAVAH) -classpath $(TOPBINDIR) -h $(JNIBINDIR) $(JNIPACKAGE); mv $(JNIBINDIR)/emulatorinterface_communication_shm_SharedMem.h $(JNIBINDIR)/SharedMem.h
 | 
				
			||||||
 | 
					ifeq ($(shell java -version 2>&1|grep 1.8.0 >/dev/null; printf $$?),0)
 | 
				
			||||||
 | 
						JNIPACKAGE = emulatorinterface.communication.shm.SharedMem #use this for java-8
 | 
				
			||||||
 | 
						JNINCLUDE =-I/usr/lib/jvm/java-8-openjdk-amd64/include/linux -I/usr/lib/jvm/java-8-openjdk-amd64/include #use this for java-8
 | 
				
			||||||
 | 
						JAVAH = javah -jni #use this for java-8
 | 
				
			||||||
 | 
						JAVAHCOMMAND = $(JAVAH) -classpath $(TOPBINDIR) -o $(JNIBINDIR)/SharedMem.h $(JNIPACKAGE) #use this for java-8	
 | 
				
			||||||
 | 
					endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
$(JNIBINDIR)/libshmlib.$(LIB_EXTENSION): $(JNIBINDIR)/SharedMem.h $(COMMDIR)/shm/JNIShm.c $(COMMDIR)/common.h
 | 
					$(JNIBINDIR)/libshmlib.$(LIB_EXTENSION): $(JNIBINDIR)/SharedMem.h $(COMMDIR)/shm/JNIShm.c $(COMMDIR)/common.h
 | 
				
			||||||
	$(shell $(JNICOMMAND))
 | 
						$(shell $(JNICOMMAND))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
$(JNIBINDIR)/SharedMem.h: $(TOPBINDIR)/emulatorinterface/communication/shm/SharedMem.class
 | 
					$(JNIBINDIR)/SharedMem.h: $(TOPBINDIR)/emulatorinterface/communication/shm/SharedMem.class
 | 
				
			||||||
	#$(JAVAH) -classpath $(TOPBINDIR) -o $(JNIBINDIR)/SharedMem.h $(JNIPACKAGE) #use this for java-8
 | 
						$(JAVAHCOMMAND)
 | 
				
			||||||
	$(JAVAH) -classpath $(TOPBINDIR) -h $(JNIBINDIR) $(JNIPACKAGE) #use this line and the next for java-11
 | 
					 | 
				
			||||||
	mv $(JNIBINDIR)/emulatorinterface_communication_shm_SharedMem.h $(JNIBINDIR)/SharedMem.h
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
clean:
 | 
					clean:
 | 
				
			||||||
	rm -rf $(BINDIR) $(JNIBINDIR)
 | 
						rm -rf $(BINDIR) $(JNIBINDIR)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -31,12 +31,12 @@ TDP = 15W
 | 
				
			||||||
		<!--Currently we support following (emulator,communication) combinations : -->
 | 
							<!--Currently we support following (emulator,communication) combinations : -->
 | 
				
			||||||
		<!--(pin, sharedMemory), (qemu, sharedMemory), (qemu, network), (none, file)-->
 | 
							<!--(pin, sharedMemory), (qemu, sharedMemory), (qemu, network), (none, file)-->
 | 
				
			||||||
		<!--(pin,file) combination can be used to collect execution trace of an application in a compressed file-->
 | 
							<!--(pin,file) combination can be used to collect execution trace of an application in a compressed file-->
 | 
				
			||||||
		<EmulatorType>none</EmulatorType> <!--pin,qemu-->
 | 
							<EmulatorType>pin</EmulatorType> <!--pin,qemu-->
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
		<!--NOTE only file interface supports the execution of multiple benchmarks inside tejas-->
 | 
							<!--NOTE only file interface supports the execution of multiple benchmarks inside tejas-->
 | 
				
			||||||
		<!--if you are reading the packets from a file, the emulator must be set to none-->
 | 
							<!--if you are reading the packets from a file, the emulator must be set to none-->
 | 
				
			||||||
		<!--multiple benchmarks are specified using arguments to the simulator-->
 | 
							<!--multiple benchmarks are specified using arguments to the simulator-->
 | 
				
			||||||
		<CommunicationType>file</CommunicationType>  <!--file,sharedMemory,network-->
 | 
							<CommunicationType>sharedMemory</CommunicationType>  <!--file,sharedMemory,network-->
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
		<!--We can use tejas as an interface to create a compressed (gzip) trace file using the emulator-->
 | 
							<!--We can use tejas as an interface to create a compressed (gzip) trace file using the emulator-->
 | 
				
			||||||
		<!--Set this option to true if you want to create a trace file of the benchmark execution-->
 | 
							<!--Set this option to true if you want to create a trace file of the benchmark execution-->
 | 
				
			||||||
| 
						 | 
					@ -49,11 +49,11 @@ TDP = 15W
 | 
				
			||||||
		<!--We do not allow overwriting of trace files. So if a tracefile with same name is pre-existing, kindly rename it-->
 | 
							<!--We do not allow overwriting of trace files. So if a tracefile with same name is pre-existing, kindly rename it-->
 | 
				
			||||||
		<BasenameForTraceFiles>/home/rajshekar/projects/tejas/tests/test1_trace</BasenameForTraceFiles>
 | 
							<BasenameForTraceFiles>/home/rajshekar/projects/tejas/tests/test1_trace</BasenameForTraceFiles>
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
		<PinTool>/home/rajshekar/softwares/pin-98332/</PinTool>
 | 
							<PinTool>/mnt/remote_scratch/softwares/pin-97554/</PinTool>
 | 
				
			||||||
		<PinInstrumentor>/home/rajshekar/projects/tejas/workspace/Tejas/src/emulator/pin/obj-pin/causalityTool.so</PinInstrumentor>
 | 
							<PinInstrumentor>/mnt/remote_scratch1/rajshekar/projects/tejas/workspace/Tejas/src/emulator/pin/obj-pin/causalityTool.so</PinInstrumentor>
 | 
				
			||||||
		<QemuTool>TODO/home/prathmesh/workspace/qemu/x86_64-linux-user/qemu-x86_64 /home/prathmesh/tmp/testQemu.o</QemuTool>
 | 
							<QemuTool>TODO/home/prathmesh/workspace/qemu/x86_64-linux-user/qemu-x86_64 /home/prathmesh/tmp/testQemu.o</QemuTool>
 | 
				
			||||||
		<ShmLibDirectory>/home/rajshekar/projects/tejas/workspace/Tejas/src/emulator/pin/obj-comm/</ShmLibDirectory>
 | 
							<ShmLibDirectory>/mnt/remote_scratch1/rajshekar/projects/tejas/workspace/Tejas/src/emulator/pin/obj-comm/</ShmLibDirectory>
 | 
				
			||||||
		<GetBenchmarkPIDScript>/home/rajshekar_resources/tejas_configs/getBenchmarkPID.sh</GetBenchmarkPIDScript>
 | 
							<GetBenchmarkPIDScript>/home/rajshekar/resources/tejas_configs/getBenchmarkPID.sh</GetBenchmarkPIDScript>
 | 
				
			||||||
		<KillEmulatorScript>/home/rajshekar/resources/tejas_configs/killAllDescendents.sh</KillEmulatorScript>
 | 
							<KillEmulatorScript>/home/rajshekar/resources/tejas_configs/killAllDescendents.sh</KillEmulatorScript>
 | 
				
			||||||
	</Emulator>
 | 
						</Emulator>
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
| 
						 | 
					@ -77,7 +77,7 @@ TDP = 15W
 | 
				
			||||||
		<pinpointsSim>false</pinpointsSim>
 | 
							<pinpointsSim>false</pinpointsSim>
 | 
				
			||||||
		<pinpointsFile>/mnt/srishtistr0/scratch/rajshekar/tejas/PinPoints_working_directory/soplex.test.Data/t.sorted</pinpointsFile>
 | 
							<pinpointsFile>/mnt/srishtistr0/scratch/rajshekar/tejas/PinPoints_working_directory/soplex.test.Data/t.sorted</pinpointsFile>
 | 
				
			||||||
		<NumInsToIgnore>00000000</NumInsToIgnore>	<!--Ignores these many profilable instructions from the start of the program-->
 | 
							<NumInsToIgnore>00000000</NumInsToIgnore>	<!--Ignores these many profilable instructions from the start of the program-->
 | 
				
			||||||
		<subsetSim>false</subsetSim>
 | 
							<subsetSim>true</subsetSim>
 | 
				
			||||||
		<subsetSimSize>2000000</subsetSimSize>
 | 
							<subsetSimSize>2000000</subsetSimSize>
 | 
				
			||||||
		<markerFunctions>false</markerFunctions>
 | 
							<markerFunctions>false</markerFunctions>
 | 
				
			||||||
		<startSimMarker>add</startSimMarker>
 | 
							<startSimMarker>add</startSimMarker>
 | 
				
			||||||
| 
						 | 
					@ -112,12 +112,12 @@ TDP = 15W
 | 
				
			||||||
			<PipelineType>outOfOrder</PipelineType>	<!--inOrder,outOfOrder(set issue width for multi-issue in-order)-->
 | 
								<PipelineType>outOfOrder</PipelineType>	<!--inOrder,outOfOrder(set issue width for multi-issue in-order)-->
 | 
				
			||||||
			
 | 
								
 | 
				
			||||||
			<BranchPredictor>
 | 
								<BranchPredictor>
 | 
				
			||||||
				<Predictor_Mode>TAGE</Predictor_Mode>	<!-- Legal Values are NoPredictor, PerfectPredictor, AlwaysTaken, AlwaysNotTaken, Tournament, Bimodal, GAg, GAp, GShare, PAg, PAp, TAGE, TAGE-SC-L -->
 | 
									<Predictor_Mode>TAGE-SC-L</Predictor_Mode>	<!-- Legal Values are NoPredictor, PerfectPredictor, AlwaysTaken, AlwaysNotTaken, Tournament, Bimodal, GAg, GAp, GShare, PAg, PAp, TAGE, TAGE-SC-L -->
 | 
				
			||||||
				<PCBits>8</PCBits>
 | 
									<PCBits>8</PCBits>
 | 
				
			||||||
				<BHRsize>16</BHRsize>
 | 
									<BHRsize>16</BHRsize>
 | 
				
			||||||
				<BranchMispredPenalty>17</BranchMispredPenalty>	<!--Branch misprediction penalty--><!-- https://www.7-cpu.com/cpu/Skylake.html -->
 | 
									<BranchMispredPenalty>17</BranchMispredPenalty>	<!--Branch misprediction penalty--><!-- https://www.7-cpu.com/cpu/Skylake.html -->
 | 
				
			||||||
				<SaturatingBits>2</SaturatingBits>
 | 
									<SaturatingBits>2</SaturatingBits>
 | 
				
			||||||
				<TAGESCLLibDirectory>/home/rajshekar/projects/tejas/workspace/Tejas/src/simulator/pipeline/branchpredictor/TAGESCL/</TAGESCLLibDirectory>
 | 
									<TAGESCLLibDirectory>/mnt/remote_scratch1/rajshekar/projects/tejas/workspace/Tejas/src/simulator/pipeline/branchpredictor/TAGESCL/</TAGESCLLibDirectory>
 | 
				
			||||||
				<LeakageEnergy>0.0178</LeakageEnergy>
 | 
									<LeakageEnergy>0.0178</LeakageEnergy>
 | 
				
			||||||
				<DynamicEnergy>0.0962</DynamicEnergy>
 | 
									<DynamicEnergy>0.0962</DynamicEnergy>
 | 
				
			||||||
			</BranchPredictor>			
 | 
								</BranchPredictor>			
 | 
				
			||||||
| 
						 | 
					@ -477,7 +477,7 @@ TDP = 15W
 | 
				
			||||||
		<Interconnect>NOC</Interconnect>
 | 
							<Interconnect>NOC</Interconnect>
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
		<NOC>
 | 
							<NOC>
 | 
				
			||||||
			<NocConfigFile>/home/rajshekar/resources/tejas_configs/config_2core_kabylake_NocConfig.txt</NocConfigFile>
 | 
								<NocConfigFile>/nfs_home/rajshekar/resources/tejas_configs/config_2core_kabylake_NocConfig.txt</NocConfigFile>
 | 
				
			||||||
			<NocSelScheme>STATIC</NocSelScheme>
 | 
								<NocSelScheme>STATIC</NocSelScheme>
 | 
				
			||||||
			<NocNumberOfBuffers>4</NocNumberOfBuffers>
 | 
								<NocNumberOfBuffers>4</NocNumberOfBuffers>
 | 
				
			||||||
			<NocPortType>FCFS</NocPortType>
 | 
								<NocPortType>FCFS</NocPortType>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,7 +1,11 @@
 | 
				
			||||||
 | 
					javaver=java-11
 | 
				
			||||||
 | 
					ifeq ($(shell java -version 2>&1|grep 1.8.0 >/dev/null; printf $$?),0)
 | 
				
			||||||
 | 
						javaver=java-8
 | 
				
			||||||
 | 
					endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
all:
 | 
					all:
 | 
				
			||||||
	javac -h . TAGESCLInvoker.java
 | 
						javac -h . TAGESCLInvoker.java
 | 
				
			||||||
	#gcc -fPIC -I/usr/lib/jvm/java-8-openjdk-amd64/include/ -I/usr/lib/jvm/java-8-openjdk-amd64/include/linux/ -shared -o libnative.so pipeline_branchpredictor_TAGESCL_TAGESCLInvoker.cc
 | 
						gcc -fPIC -I/usr/lib/jvm/$(javaver)-openjdk-amd64/include/ -I/usr/lib/jvm/$(javaver)-openjdk-amd64/include/linux/ -shared -o libnative.so pipeline_branchpredictor_TAGESCL_TAGESCLInvoker.cc
 | 
				
			||||||
	gcc -fPIC -I/usr/lib/jvm/java-11-openjdk-amd64/include/ -I/usr/lib/jvm/java-11-openjdk-amd64/include/linux/ -shared -o libnative.so pipeline_branchpredictor_TAGESCL_TAGESCLInvoker.cc
 | 
					 | 
				
			||||||
clean:
 | 
					clean:
 | 
				
			||||||
	rm -f *.h
 | 
						rm -f *.h
 | 
				
			||||||
	rm -f *.class
 | 
						rm -f *.class
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue