From d7c59d57dda7c2a4cceb3aa31b2e682ebe8bc1bb Mon Sep 17 00:00:00 2001
From: Adel Ejjeh <aejjeh@hpvmfpga1.cs.illinois.edu>
Date: Mon, 20 Jan 2020 09:35:11 -0600
Subject: [PATCH] fixing parboil makefiles and adding noexcept to visc.h

---
 hpvm/test/parboil/benchmarks/lbm/Makefile     |   2 +-
 .../benchmarks/sgemm/src/visc/Makefile        |   4 +-
 hpvm/test/parboil/common/include/visc.h       | 138 +++++++++---------
 hpvm/test/parboil/common/mk/visc.mk           |   4 +-
 4 files changed, 74 insertions(+), 74 deletions(-)

diff --git a/hpvm/test/parboil/benchmarks/lbm/Makefile b/hpvm/test/parboil/benchmarks/lbm/Makefile
index ee7bcb33b4..4ebf6fc0af 100644
--- a/hpvm/test/parboil/benchmarks/lbm/Makefile
+++ b/hpvm/test/parboil/benchmarks/lbm/Makefile
@@ -1,4 +1,4 @@
-PARBOIL_ROOT = $(LLVM_SRC_ROOT)/../test/parboil
+PARBOIL_ROOT = $(LLVM_SRC_ROOT)/tools/hpvm/test/parboil
 APP = lbm
 
 ifeq ($(NUM_CORES),)
diff --git a/hpvm/test/parboil/benchmarks/sgemm/src/visc/Makefile b/hpvm/test/parboil/benchmarks/sgemm/src/visc/Makefile
index f74ee8921a..d1f6c96d0c 100644
--- a/hpvm/test/parboil/benchmarks/sgemm/src/visc/Makefile
+++ b/hpvm/test/parboil/benchmarks/sgemm/src/visc/Makefile
@@ -4,5 +4,5 @@ LANGUAGE=visc
 SRCDIR_OBJS=io.ll #compute_gold.o
 VISC_OBJS=main.visc.ll
 APP_CUDALDFLAGS=-lm -lstdc++
-APP_CFLAGS=-ffast-math -O3
-APP_CXXFLAGS=-ffast-math -O3
+APP_CFLAGS=-ffast-math -O1
+APP_CXXFLAGS=-ffast-math -O1
diff --git a/hpvm/test/parboil/common/include/visc.h b/hpvm/test/parboil/common/include/visc.h
index a27d0d003e..b0a0f141e5 100644
--- a/hpvm/test/parboil/common/include/visc.h
+++ b/hpvm/test/parboil/common/include/visc.h
@@ -14,92 +14,92 @@
 
 #ifdef __cplusplus
 extern "C" {
-void __visc__hint(visc::Target);
+void __visc__hint(visc::Target) noexcept;
 #else
-void __visc__hint(enum Target);
+void __visc__hint(enum Target) noexcept;
 #endif
 
 #ifdef __cplusplus
-void* __visc__node(...);
-//void* __visc__createNode(...);
-//void* __visc__createNode1D(...);
-//void* __visc__createNode2D(...);
-//void* __visc__createNode3D(...);
-//void __visc__return(...);
+void* __visc__node(...) noexcept;
+//void* __visc__createNode(...) noexcept;
+//void* __visc__createNode1D(...) noexcept;
+//void* __visc__createNode2D(...) noexcept;
+//void* __visc__createNode3D(...) noexcept;
+//void __visc__return(...) noexcept;
 #endif
-void* __visc__createNodeND(unsigned, ...);
-void __visc__return(unsigned, ...);
-
-void __visc__attributes(unsigned, ...);
-void __visc__init();
-void __visc__cleanup();
-
-void __visc__bindIn(void*, unsigned, unsigned, unsigned);
-void __visc__bindOut(void*, unsigned, unsigned, unsigned);
-void* __visc__edge(void*, void*, unsigned, unsigned, unsigned, unsigned);
-void __visc__push(void*, void*);
-void* __visc__pop(void*);
-void* __visc__launch(unsigned, ...);
-void __visc__wait(void*);
-
-void* __visc__getNode();
-void* __visc__getParentNode(void*);
-void __visc__barrier();
-void* __visc__malloc(long);
-long __visc__getNodeInstanceID_x(void*);
-long __visc__getNodeInstanceID_y(void*);
-long __visc__getNodeInstanceID_z(void*);
-long __visc__getNumNodeInstances_x(void*);
-long __visc__getNumNodeInstances_y(void*);
-long __visc__getNumNodeInstances_z(void*);
+void* __visc__createNodeND(unsigned, ...) noexcept;
+void __visc__return(unsigned, ...) noexcept;
+
+void __visc__attributes(unsigned, ...) noexcept;
+void __visc__init() noexcept;
+void __visc__cleanup() noexcept;
+
+void __visc__bindIn(void*, unsigned, unsigned, unsigned) noexcept;
+void __visc__bindOut(void*, unsigned, unsigned, unsigned) noexcept;
+void* __visc__edge(void*, void*, unsigned, unsigned, unsigned, unsigned) noexcept;
+void __visc__push(void*, void*) noexcept;
+void* __visc__pop(void*) noexcept;
+void* __visc__launch(unsigned, ...) noexcept;
+void __visc__wait(void*) noexcept;
+
+void* __visc__getNode() noexcept;
+void* __visc__getParentNode(void*) noexcept;
+void __visc__barrier() noexcept;
+void* __visc__malloc(long) noexcept;
+long __visc__getNodeInstanceID_x(void*) noexcept;
+long __visc__getNodeInstanceID_y(void*) noexcept;
+long __visc__getNodeInstanceID_z(void*) noexcept;
+long __visc__getNumNodeInstances_x(void*) noexcept;
+long __visc__getNumNodeInstances_y(void*) noexcept;
+long __visc__getNumNodeInstances_z(void*) noexcept;
 
 // Atomic
 // signed int
-int __visc__atomic_cmpxchg(int*, int, int);
-int __visc__atomic_add(int*, int);
-int __visc__atomic_sub(int*, int);
-int __visc__atomic_xchg(int*, int);
-int __visc__atomic_inc(int*);
-int __visc__atomic_dec(int*);
-int __visc__atomic_min(int*, int);
-int __visc__atomic_max(int*, int);
-int __visc__atomic_umax(int*, int);
-int __visc__atomic_umin(int*, int);
-int __visc__atomic_and(int*, int);
-int __visc__atomic_or(int*, int);
-int __visc__atomic_xor(int*, int);
+int __visc__atomic_cmpxchg(int*, int, int) noexcept;
+int __visc__atomic_add(int*, int) noexcept;
+int __visc__atomic_sub(int*, int) noexcept;
+int __visc__atomic_xchg(int*, int) noexcept;
+int __visc__atomic_inc(int*) noexcept;
+int __visc__atomic_dec(int*) noexcept;
+int __visc__atomic_min(int*, int) noexcept;
+int __visc__atomic_max(int*, int) noexcept;
+int __visc__atomic_umax(int*, int) noexcept;
+int __visc__atomic_umin(int*, int) noexcept;
+int __visc__atomic_and(int*, int) noexcept;
+int __visc__atomic_or(int*, int) noexcept;
+int __visc__atomic_xor(int*, int) noexcept;
 
 // Special Func
-float __visc__floor(float);
-float __visc__rsqrt(float);
-float __visc__sqrt(float);
-float __visc__sin(float);
-float __visc__cos(float);
+float __visc__floor(float) noexcept;
+float __visc__rsqrt(float) noexcept;
+float __visc__sqrt(float) noexcept;
+float __visc__sin(float) noexcept;
+float __visc__cos(float) noexcept;
 // unsigned int
-//unsigned __visc__atomic_cmpxchg(unsigned*, unsigned, unsigned);
-//unsigned __visc__atomic_add(unsigned*, unsigned);
-//unsigned __visc__atomic_sub(unsigned*, unsigned);
-//unsigned __visc__atomic_xchg(unsigned*, unsigned);
-//unsigned __visc__atomic_inc(unsigned*);
-//unsigned __visc__atomic_dec(unsigned*);
-//unsigned __visc__atomic_min(unsigned*, unsigned);
-//unsigned __visc__atomic_max(unsigned*, unsigned);
-//unsigned __visc__atomic_and(unsigned*, unsigned);
-//unsigned __visc__atomic_or(unsigned*, unsigned);
-//unsigned __visc__atomic_xor(unsigned*, unsigned);
+//unsigned __visc__atomic_cmpxchg(unsigned*, unsigned, unsigned) noexcept;
+//unsigned __visc__atomic_add(unsigned*, unsigned) noexcept;
+//unsigned __visc__atomic_sub(unsigned*, unsigned) noexcept;
+//unsigned __visc__atomic_xchg(unsigned*, unsigned) noexcept;
+//unsigned __visc__atomic_inc(unsigned*) noexcept;
+//unsigned __visc__atomic_dec(unsigned*) noexcept;
+//unsigned __visc__atomic_min(unsigned*, unsigned) noexcept;
+//unsigned __visc__atomic_max(unsigned*, unsigned) noexcept;
+//unsigned __visc__atomic_and(unsigned*, unsigned) noexcept;
+//unsigned __visc__atomic_or(unsigned*, unsigned) noexcept;
+//unsigned __visc__atomic_xor(unsigned*, unsigned) noexcept;
 
 
 #include <unistd.h>
 
-long get_global_id(int);
-long get_group_id(int);
-long get_local_id(int);
-long get_local_size(int);
+long get_global_id(int) noexcept;
+long get_group_id(int) noexcept;
+long get_local_id(int) noexcept;
+long get_local_size(int) noexcept;
 
 
-void llvm_visc_track_mem(void*, size_t);
-void llvm_visc_untrack_mem(void*);
-void llvm_visc_request_mem(void*, size_t);
+void llvm_visc_track_mem(void*, size_t) noexcept;
+void llvm_visc_untrack_mem(void*) noexcept;
+void llvm_visc_request_mem(void*, size_t) noexcept;
 
 #ifdef __cplusplus
 }
diff --git a/hpvm/test/parboil/common/mk/visc.mk b/hpvm/test/parboil/common/mk/visc.mk
index 781e360146..eb11371ccd 100755
--- a/hpvm/test/parboil/common/mk/visc.mk
+++ b/hpvm/test/parboil/common/mk/visc.mk
@@ -2,7 +2,7 @@
 
 # Default language wide options
 LANG_CFLAGS=-I$(PARBOIL_ROOT)/common/include
-LANG_CXXFLAGS=$(LANG_CFLAGS) -fno-exceptions
+LANG_CXXFLAGS=$(LANG_CFLAGS)  
 LANG_LDFLAGS=-lOpenCL -L$(OPENCL_LIB_PATH) -lrt -L$(CUDA_LIB_PATH) -lcudart
 
 CFLAGS=$(LANG_CFLAGS) $(PLATFORM_CFLAGS) $(APP_CFLAGS)
@@ -197,7 +197,7 @@ $(VISC_RT_LIB) : $(VISC_RT_PATH)/visc-rt.cpp
 	make -C $(LLVM_LIB_PATH)
 
 $(HOST) $(KERNEL): $(BUILDDIR)/$(VISC_OBJS)
-	$(OPT) $(VISC_OPTFLAGS) -S $< -o $(HOST)
+	$(OPT) --debug $(VISC_OPTFLAGS) -S $< -o $(HOST)
 
 $(RUNDIR) :
 	mkdir -p $(RUNDIR)
-- 
GitLab