diff options
-rw-r--r-- | Makefile.am | 138 | ||||
-rw-r--r-- | chill_run_util.hh | 3 | ||||
-rw-r--r-- | configure.ac | 89 | ||||
-rw-r--r-- | omega/Makefile | 32 | ||||
-rw-r--r-- | omega/Makefile.am | 2 | ||||
-rw-r--r-- | omega/Makefile.config | 35 | ||||
-rw-r--r-- | omega/Makefile.rules | 37 | ||||
-rw-r--r-- | omega/code_gen/obj/Makefile | 49 | ||||
-rw-r--r-- | omega/code_gen/obj/Makefile.am | 10 | ||||
-rw-r--r-- | omega/configure.ac | 38 | ||||
-rw-r--r-- | omega/omega_calc/obj/Makefile | 57 | ||||
-rw-r--r-- | omega/omega_calc/obj/Makefile.am | 32 | ||||
-rw-r--r-- | omega/omega_lib/include/omega/omega_core/oc.h | 25 | ||||
-rw-r--r-- | omega/omega_lib/obj/Makefile | 57 | ||||
-rw-r--r-- | omega/omega_lib/obj/Makefile.am | 47 | ||||
-rw-r--r-- | omega/omega_lib/src/omega_core/oc.cc | 21 |
16 files changed, 382 insertions, 290 deletions
diff --git a/Makefile.am b/Makefile.am new file mode 100644 index 0000000..65463c3 --- /dev/null +++ b/Makefile.am @@ -0,0 +1,138 @@ +SUBDIRS = omega/omega_lib/obj omega/code_gen/obj +build_date = "\"`date +%m/%d/%Y`\"" + +## Core Libraries ## +core_libs = -lm -lrose -lrt -lutil -lomega -lcodegen -ldl +core_libs += -lboost_date_time -lboost_filesystem -lboost_program_options +core_libs += -lboost_regex -lboost_system -lboost_thread -lboost_wave + +core_libdirs = -Lomega/code_gen/obj -Lomega/omega_lib/obj +core_libdirs += -L$(ROSEHOME)/lib -L$(BOOSTHOME)/lib + + + +## Core Includes ## +core_includes = -Iomega/include -I$(ROSEHOME)/include +core_includes += -I$(BOOSTHOME)/include + + +## Source ## +# Core # +core_src = dep.cc +core_src += irtools.cc +core_src += loop.cc +core_src += loop_basic.cc +core_src += loop_datacopy.cc +core_src += loop_extra.cc +core_src += loop_tile.cc +core_src += loop_unroll.cc +core_src += omegatools.cc + +# chill # +# cudachill # +cudachill_src = mem_mapping_utils.cc +cudachill_src += loop_cuda_rose.cc + +# IR # +# chill +ir_chill_src = ir_rose.cc +ir_chill_src += ir_rose_utils.cc + +# cudachill +ir_cudachill_src = ir_rose.cc +ir_cudachill_src += ir_rose_utils.cc +ir_cudachill_src += ir_cudarose.cc +ir_cudachill_src += ir_cuda_rose_utils.cc + +# runner (interface) # +# cc +chill_script_runner_src = +chill_python_runner_src = chill_run.cc chill_run_util.cc chillmodule.cc +chill_lua_runner_src = chill_run.cc chill_run_util.cc chill_env.cc +# yacc +chill_script_yacc_src = lex.yy.cc parser.tab.cc +chill_lua_yacc_src = parse_expr.yy.cc parse_expr.tab.cc +chill_python_yacc_src = parse_expr.yy.cc parse_expr.tab.cc + + + +## Interface ## +# Libs/Source/Flags # +if PYTHON_OPT +runner_libs = -lpython$(PYTHON_VERSION) +runner_libdirs = -L$(PYTHON_LIBDIR) +runner_includes = -I$(PYTHON_INCDIR) +chill_runner_src = $(chill_python_runner_src) $(chill_python_yacc_src) +cudachill_runner_src = $(chill_python_runner_src) $(chill_python_yacc_src) +yacc_src = $(chill_python_yacc_src) +runner_flags = -DCHILL_BUILD_DATE=$(build_date) +runner_flags += -DCHILL_BUILD_VERSION=$(CHILL_BUILD_VERSION) +runner_flags += -DPYTHON +else +if LUA_OPT +runner_libs = -llua -lreadline -lhistory -lpthread -ldl +runner_libdirs = -L$(LUAHOME)/lib +runner_includes = -I$(LUAHOME)/include +chill_runner_src = $(chill_lua_runner_src) $(chill_lua_yacc_src) +cudachill_runner_src = $(chill_lua_runner_src) $(chill_lua_yacc_src) +yacc_src = $(chill_lua_yacc_src) +runner_flags = -DCHILL_BUILD_DATE=$(build_date) +runner_flags += -DCHILL_BUILD_VERSION=$(CHILL_BUILD_VERSION) +runner_flags += -DLUA +else +runner_libs = +runner_libdirs = +runner_includes = +chill_runner_src = $(chill_script_runner_src) $(chill_script_yacc_src) +yacc_src = $(chill_script_yacc_src) +runner_flags = -DCHILL_BUILD_DATE=$(build_date) +runner_flags += -DCHILL_BUILD_VERSION=$(CHILL_BUILD_VERSION) +endif +endif + + + +## Yacc ## +# config +BUILT_SOURCES=$(yacc_src) +AM_YFLAGS=-d -t + +# rules +lex.yy.cc: parser.ll parser.tab.cc + flex++ parser.ll + +parser.tab.cc: parser.yy + bison -t -d $< + +parse_expr.yy.cc: parse_expr.tab.cc parse_expr.ll + flex -o parse_expr.yy.cc parse_expr.ll + +parse_expr.tab.cc: parse_expr.yy + bison -t -d parse_expr.yy + + + +## Common ## +common_cppflags = $(core_includes) $(runner_includes) +common_cppflags += $(runner_flags) +common_cppflags += -DBUILD_ROSE +common_libs = $(core_libs) $(runner_libs) +common_libdirs = $(core_libdirs) $(runner_libdirs) + +## Binaries ## +if CUDACHILL_OPT +bin_PROGRAMS=cudachill +else +bin_PROGRAMS=chill +endif + +cudachill_CPPFLAGS =-DCUDACHILL $(common_cppflags) +cudachill_LDADD =$(common_libs) +cudachill_LDFLAGS =$(common_libdirs) +cudachill_SOURCES =$(core_src) $(cudachill_runner_src) $(cudachill_src) $(ir_cudachill_src) + +chill_CPPFLAGS =$(common_cppflags) $(chill_runner_cppflags) +chill_LDADD =$(common_libs) +chill_LDFLAGS =$(common_libdirs) +chill_SOURCES =$(core_src) $(chill_runner_src) $(chill_src) $(ir_chill_src) + diff --git a/chill_run_util.hh b/chill_run_util.hh index 0b716be..8df5871 100644 --- a/chill_run_util.hh +++ b/chill_run_util.hh @@ -8,6 +8,7 @@ typedef std::map<std::string, int> simap_t; typedef std::vector<std::map<std::string, int> > simap_vec_t; +// in chill_run_util.cc simap_vec_t* make_prog(simap_vec_t* cond); simap_vec_t* make_cond_gt(simap_t* lhs, simap_t* rhs); simap_vec_t* make_cond_lt(simap_t* lhs, simap_t* rhs); @@ -21,6 +22,8 @@ simap_t* make_cond_item_neg(simap_t* expr); simap_t* make_cond_item_number(int n); simap_t* make_cond_item_variable(const char* var); simap_t* make_cond_item_level(int n); + +// in parse_expr.yy simap_vec_t* parse_relation_vector(const char* expr); #endif diff --git a/configure.ac b/configure.ac new file mode 100644 index 0000000..f4ccc5a --- /dev/null +++ b/configure.ac @@ -0,0 +1,89 @@ +AC_INIT([chill],[0.2.1]) +AC_CONFIG_AUX_DIR([.]) +AM_INIT_AUTOMAKE([-Wall -Werror foreign]) + +#AC_SUBST([prefix],["$(pwd)/bin"]) + +### Use the C++ compiler for linking (C is default) ### +AC_SUBST([CCLD],["$""(CXX)"]) +AC_SUBST([CHILL_BUILD_VERSION],["\\\"0.2.1\\\""]) + +AM_PROG_LEX +AC_PROG_CC +AC_PROG_CXX +AC_PROG_RANLIB +AC_PROG_YACC + +AM_PATH_PYTHON([2.7],[ + AC_SUBST([PYTHON_INCDIR], + [`${PYTHON} -c "from distutils import sysconfig; print(sysconfig.get_python_inc())"`]) + AC_SUBST([PYTHON_LIBDIR], + [`${PYTHON} -c "from distutils import sysconfig; print(sysconfig.get_config_var('LIBDIR'))"`]) + AC_SUBST([with_python],[yes])],[ + AC_SUBST([with_python],[no])]) + + +AC_ARG_ENABLE([cuda],[ + AS_HELP_STRING([--enable-cuda],[builds cudachill])],[ + AS_IF([test "x$enableval" != xno],[ + AC_SUBST([enable_cuda],[yes])],[])]) +AM_CONDITIONAL([CUDACHILL_OPT],[test "$enable_cuda" = yes]) + + +AC_ARG_ENABLE([coverage],[ + AS_HELP_STRING([--enable-coverage],[enables coverage testing])],[ + + AS_IF([test "x$enableval" != xno],[ + AC_SUBST([enable_coverage],[yes]) + AC_SUBST([CFLAGS],["-g -fprofile-arcs -ftest-coverage"]) + AC_SUBST([CPPFLAGS],["-g -fprofile-arcs -ftest-coverage"])],[])]) + + +AC_ARG_WITH([lua],[ + AS_HELP_STRING([--with-lua],[set lua home])],[ + AC_SUBST([LUAHOME], [$withval])],[ + AC_SUBST([LUAHOME], ["${LUAHOME}"])]) + +AC_ARG_WITH([rose],[ + AS_HELP_STRING([--with-rose],[set rose home])],[ + AC_SUBST([ROSEHOME], [$withval]) + AC_DEFINE([BUILD_ROSE],[],[Use ROSE])],[ + AC_SUBST([ROSEHOME], ["${ROSEHOME}"]) + AC_DEFINE([BUILD_ROSE],[],[Use ROSE])]) + +AC_ARG_WITH([boost],[ + AS_HELP_STRING([--with-boost],[set boost home])],[ + AC_SUBST([BOOSTHOME], [$withval])],[ + AC_SUBST([BOOSTHOME], ["${BOOSTHOME}"])]) + +AC_ARG_WITH([omega],[ + AS_HELP_STRING([--with-omega],[set omega home])],[ + AC_SUBST([OMEGAHOME], [$withval])],[ + AC_SUBST([OMEGAHOME], ["$(pwd)/omega"])]) + + +AC_ARG_WITH([interface],[ + AS_HELP_STRING([--with-interface],[select interface language])],[ + AC_SUBST([interface_lang],[$withval])],[ + AC_SUBST([interface_lang],["default"])]) + +AS_IF([test "$interface_lang" = default],[ + AS_IF([test "$enable_cuda" != no],[ + AC_SUBST([use_python],[no]) + AC_SUBST([use_lua],[yes]) + ],[ + AC_SUBST([use_python],[no]) + AC_SUBST([use_lua],[no])])]) + +AS_IF([test "$interface_lang" = lua],[ + AC_SUBST([use_lua],[yes])]) +AS_IF([test "$interface_lang" = python],[ + AC_SUBST([use_python],[yes])]) + +AM_CONDITIONAL([PYTHON_OPT],[test "$use_python" = yes]) +AM_CONDITIONAL([LUA_OPT],[test "$use_lua" = yes]) + +AC_CONFIG_HEADERS([include/config.h]) +AC_CONFIG_FILES([Makefile]) +AC_CONFIG_SUBDIRS([omega]) +AC_OUTPUT diff --git a/omega/Makefile b/omega/Makefile deleted file mode 100644 index 7e4204d..0000000 --- a/omega/Makefile +++ /dev/null @@ -1,32 +0,0 @@ -# DON'T EDIT -- put changes in Makefile.config. - -BASEDIR = ./ -include $(BASEDIR)/Makefile.config - -all: - cd omega_lib/obj; $(MAKE) -ifeq ($(BUILD_CODEGEN), true) - cd code_gen/obj; $(MAKE) -endif - cd omega_calc/obj; $(MAKE) - -depend: - cd omega_lib/obj; $(MAKE) depend -ifeq ($(BUILD_CODEGEN), true) - cd code_gen/obj; $(MAKE) depend -endif - cd omega_calc/obj; $(MAKE) depend - -clean: - cd omega_lib/obj; $(MAKE) clean - cd code_gen/obj; $(MAKE) clean - cd omega_calc/obj; $(MAKE) clean - -veryclean: - cd omega_lib/obj; $(MAKE) veryclean - cd code_gen/obj; $(MAKE) veryclean - cd omega_calc/obj; $(MAKE) veryclean - -install: - cp -rL bin lib include $(DEST_DIR) - diff --git a/omega/Makefile.am b/omega/Makefile.am new file mode 100644 index 0000000..d4a353d --- /dev/null +++ b/omega/Makefile.am @@ -0,0 +1,2 @@ +SUBDIRS=omega_lib/obj omega_calc/obj code_gen/obj + diff --git a/omega/Makefile.config b/omega/Makefile.config deleted file mode 100644 index fd4791f..0000000 --- a/omega/Makefile.config +++ /dev/null @@ -1,35 +0,0 @@ -# Edit this file to customize for your system. - -# whether CodeGen+ is built -BUILD_CODEGEN = true - -ifneq ($(strip $(wildcard $(ROSEHOME))),) -BUILD_ROSE = true -BUILD_SUIF = false -else -BUILD_ROSE = false -endif - -CC = g++ -# CC = icc -Kc++ -CFLAGS = -g -DEPENDENCE_CFLAGS = -M - -AR = ar - -INCL_PATH = -I$(BASEDIR)/basic/include -I../include -LIBS = -LIB_PATH = - -# default installation path -ifeq ($(shell whoami), root) -DEST_DIR = /usr/local/ -else -DEST_DIR = $(HOME)/ -endif -# uncomment below to overwrite default path -# DEST_DIR = - -# DO NOT CHANGE -OMEGA_BUILD_DATE = $(shell date +%m/%d/%Y) - diff --git a/omega/Makefile.rules b/omega/Makefile.rules deleted file mode 100644 index ead5bc3..0000000 --- a/omega/Makefile.rules +++ /dev/null @@ -1,37 +0,0 @@ -# DON'T EDIT -- put changes in Makefile.config. - -.SUFFIXES: -.PHONY: all depend clean veryclean depend_self clean_self veryclean_self - -# Executable target; can have only one per directory -$(EXEC_TARGET): $(OBJS) - $(CC) $(CFLAGS) $(LIB_PATH) $(OBJS) $(LIBS) -o $(EXEC_TARGET) - -# Library target; can have only one per directory -$(LIB_TARGET): $(OBJS) - $(AR) -rs $(LIB_TARGET) $(OBJS) - - -# Implicit rules: make C files in ../src/ directory - -%.o: ../src/%.c - $(CC) $(CFLAGS) $(INCL_PATH) -c $< - -%.o: %.cc - $(CC) $(CFLAGS) $(INCL_PATH) -c $< - -%.o: ../src/%.cc - $(CC) $(CFLAGS) $(INCL_PATH) -c $< - -#Special rule for .cc files in basic directory, ConstString and Link -%.o: $(BASEDIR)/basic/src/%.cc - $(CC) $(CFLAGS) $(INCL_PATH) -c $< - -depend_self: - $(CC) $(DEPENDENCE_CFLAGS) $(INCL_PATH) $(SRCS) > Makefile.deps - -clean_self: - -rm -f *.o - -veryclean_self: clean_self - -rm -f $(LIB_TARGET) $(EXEC_TARGET) diff --git a/omega/code_gen/obj/Makefile b/omega/code_gen/obj/Makefile deleted file mode 100644 index dbc65fe..0000000 --- a/omega/code_gen/obj/Makefile +++ /dev/null @@ -1,49 +0,0 @@ - -# DON'T EDIT -- put any locally required changes in Makefile.config. - - -LIB_TARGET=libcodegen.a - -all: $(LIB_TARGET) -depend: depend_self -clean: clean_self -veryclean: veryclean_self - -BASIC_SRC = ../src/codegen.cc ../src/CG_stringBuilder.cc ../src/CG.cc ../src/CG_utils.cc -BASIC_OBJ = $(BASIC_SRC:../src/%.cc=%.o) - - -ROSE_SRC = ../src/rose_attributes.cc ../src/CG_roseRepr.cc ../src/CG_roseBuilder.cc -ROSE_OBJ = $(ROSE_SRC:../src/%.cc=%.o) - -OBJS = ${BASIC_OBJ} -SRCS = ${BASIC_SRC} - -BASEDIR=../.. -include $(BASEDIR)/Makefile.config - -INCL_PATH := $(INCL_PATH) -I../../omega_lib/include - - - - -ifeq ($(BUILD_ROSE), true) -OBJS := $(OBJS) $(ROSE_OBJ) -SRCS := $(SRCS) $(ROSE_SRC) -INCL_PATH := $(INCL_PATH) -I${ROSEHOME}/include -I${BOOSTHOME}/include -endif - -ifeq ($(BUILD_ROSE), true) -IR_OBJ = $(ROSE_SRC:../src/%.cc=%.o) -endif - -include $(BASEDIR)/Makefile.rules - - -# suppress warning of constant char * conversion nuiance in suif -$(IR_OBJ): %.o: ../src/%.cc - $(CC) -Wno-write-strings $(CFLAGS) $(INCL_PATH) -c $< -o $@ - -ifeq ($(shell test -f Makefile.deps && echo "true"), true) -include Makefile.deps -endif diff --git a/omega/code_gen/obj/Makefile.am b/omega/code_gen/obj/Makefile.am new file mode 100644 index 0000000..cd85b8b --- /dev/null +++ b/omega/code_gen/obj/Makefile.am @@ -0,0 +1,10 @@ + +noinst_LIBRARIES =libcodegen.a + +libcodegen_a_SOURCES =../src/codegen.cc ../src/CG_stringBuilder.cc ../src/CG.cc ../src/CG_utils.cc +libcodegen_a_CFLAGS =-Wno-write-strings +libcodegen_a_CPPFLAGS =-I../include -I../../omega_lib/include -I$(ROSEHOME)/include -I$(BOOSTHOME)/include +#if BUILD_ROSE +libcodegen_a_SOURCES += ../src/rose_attributes.cc ../src/CG_roseRepr.cc ../src/CG_roseBuilder.cc +#endif + diff --git a/omega/configure.ac b/omega/configure.ac new file mode 100644 index 0000000..35e7581 --- /dev/null +++ b/omega/configure.ac @@ -0,0 +1,38 @@ +### note: I have no idea what version of omega this is. +### If it's not 0.1.0, feel free to change it +AC_INIT([omega],[0.1.0]) +AC_CONFIG_AUX_DIR([.]) +AM_INIT_AUTOMAKE([-Wall -Werror foreign]) + +### Use the C++ compiler for linking (C is default) ### +AC_SUBST([CCLD],["$""(CXX)"]) +AC_DEFINE([OMEGA_VERSION],["0.1.0"],[Omega version]) + +AM_PROG_LEX +AC_PROG_CC +AC_PROG_CXX +AC_PROG_RANLIB +AC_PROG_YACC + +AC_ARG_WITH([rose],[ + AS_HELP_STRING([--with-rose],[set rose home]) + ],[ + AC_SUBST([ROSEHOME], [$withval]) + AC_DEFINE([BUILD_ROSE],[],[Use Rose]) + ],[ + AC_SUBST([ROSEHOME], ["${ROSEHOME}"])]) + +AC_ARG_WITH([boost],[ + AS_HELP_STRING([--with-boost],[set boost home])],[ + AC_SUBST([BOOSTHOME], [$withval])],[ + AC_SUBST([BOOSTHOME], ["${BOOSTHOME}"])]) + +AC_CONFIG_HEADERS([include/config.h]) +AC_CONFIG_FILES([ + omega_lib/obj/Makefile + omega_calc/obj/Makefile + code_gen/obj/Makefile]) + +AC_OUTPUT + + diff --git a/omega/omega_calc/obj/Makefile b/omega/omega_calc/obj/Makefile deleted file mode 100644 index 4001c83..0000000 --- a/omega/omega_calc/obj/Makefile +++ /dev/null @@ -1,57 +0,0 @@ -# Makefile for release 1.0 of the omega system -# DON'T EDIT -- put any locally required changes in Makefile.config. -# See INSTALL for more details. - -EXEC_TARGET=oc - - -all: $(EXEC_TARGET) - -clean: clean_self - -veryclean: veryclean_self - - -SRCS := ../src/AST.cc ../src/myflex.cc -OBJS := $(SRCS:../src/%.cc=%.o) - -YACC_SRCS := lex.yy.cc parser.tab.cc -YACC_OBJS := $(YACC_SRCS:.cc=.o) - -depend: $(YACC_SRCS) depend_self - -SRCS := $(SRCS) $(YACC_SRCS) -OBJS := $(OBJS) $(YACC_OBJS) - -BASEDIR=../.. -include $(BASEDIR)/Makefile.config - -LIB_PATH := $(LIB_PATH) -L../../omega_lib/obj -LIBS := $(LIBS) -lomega - -ifeq ($(BUILD_CODEGEN), true) -LIB_PATH := $(LIB_PATH) -L../../code_gen/obj -LIBS := $(LIBS) -lcodegen -CFLAGS := $(CFLAGS) -DBUILD_CODEGEN -endif - -CFLAGS := $(CFLAGS) -INCL_PATH := -I. $(INCL_PATH) -I../../omega_lib/include -I../../code_gen/include - -include $(BASEDIR)/Makefile.rules - -# lex/yacc related -.PHONY: parser.tab.o - -lex.yy.cc: ../src/parser.ll - flex++ $< - -parser.tab.hh parser.tab.cc: ../src/parser.yy - bison -t -d $< - -parser.tab.o: parser.tab.cc - $(CC) $(CFLAGS) -DOMEGA_BUILD_DATE="\"$(OMEGA_BUILD_DATE)\"" $(INCL_PATH) -c $< - -ifeq ($(shell test -f Makefile.deps && echo "true"), true) -include Makefile.deps -endif diff --git a/omega/omega_calc/obj/Makefile.am b/omega/omega_calc/obj/Makefile.am new file mode 100644 index 0000000..4420f89 --- /dev/null +++ b/omega/omega_calc/obj/Makefile.am @@ -0,0 +1,32 @@ +noinst_PROGRAMS=oc + +SRCDIR=../src + + +build_date = "\"`date +%m/%d/%Y`\"" + +BUILT_SOURCES=$(SRCDIR)/lex.yy.cc $(SRCDIR)/parser.tab.cc +AM_YFLAGS=-d -t + +calc_includes =-I$(SRCDIR) +calc_includes+=-I../include +calc_includes+=-I../../omega_lib/include -I../../code_gen/include +calc_includes+=-I../../basic/include + +#calc_libs =../../omega_lib/obj/libomega.a +#calc_libs+=../../code_gen/obj/libcodegen.a +calc_libs =-lomega -lcodegen +calc_lib_paths =-L../../omega_lib/obj -L../../code_gen/obj +calc_lib_paths+=-L$(ROSEHOME)/lib -L$(BOOSTHOME)/lib + +oc_SOURCES=$(SRCDIR)/AST.cc $(SRCDIR)/myflex.cc $(SRCDIR)/lex.yy.cc $(SRCDIR)/parser.tab.cc +oc_LDADD=$(calc_libs) +oc_LDFLAGS=$(calc_lib_paths) +oc_CPPFLAGS=$(calc_includes) -DBUILD_CODEGEN -DOMEGA_BUILD_DATE=$(build_date) + +$(SRCDIR)/lex.yy.cc: $(SRCDIR)/parser.tab.cc $(SRCDIR)/parser.ll + flex++ -o $(SRCDIR)/lex.yy.cc $(SRCDIR)/parser.ll + +$(SRCDIR)/parser.tab.cc: + bison -t -d -o $(SRCDIR)/parser.tab.cc $(SRCDIR)/parser.yy + diff --git a/omega/omega_lib/include/omega/omega_core/oc.h b/omega/omega_lib/include/omega/omega_core/oc.h index e12491a..e4f5444 100644 --- a/omega/omega_lib/include/omega/omega_core/oc.h +++ b/omega/omega_lib/include/omega/omega_core/oc.h @@ -66,8 +66,29 @@ extern FILE *outputFile; /* printProblem writes its output to this file */ // #define eqnnzero(e,s) {int *p00,*r00; p00 = (int *)(e); r00 = &p00[headerWords+1+(s)]; while(p00 < r00) *p00++ = 0;} // #define eqnzero(e) eqnnzero(e,nVars) -void eqnncpy(eqn *dest, eqn *src, int); -void eqnnzero(eqn *e, int); +//void eqnncpy(eqn *dest, eqn *src, int); +//void eqnnzero(eqn *e, int); + +inline void eqnncpy(eqn *dest, eqn *src, int nVars) { + dest->key = src->key; + dest->touched = src->touched; + dest->color = src->color; + dest->essential = src->essential; + dest->varCount = src->varCount; + for (int i = 0; i <= nVars; i++) + dest->coef[i] = src->coef[i]; +} + + +inline void eqnnzero(eqn *e, int nVars) { + e->key = 0; + e->touched = 0; + e->color = EQ_BLACK; + e->essential = 0; + e->varCount = 0; + for (int i = 0; i <= nVars; i++) + e->coef[i] = 0; +} extern int mayBeRed; diff --git a/omega/omega_lib/obj/Makefile b/omega/omega_lib/obj/Makefile deleted file mode 100644 index 3d0ffd2..0000000 --- a/omega/omega_lib/obj/Makefile +++ /dev/null @@ -1,57 +0,0 @@ -# Makefile for release 1.0 of the omega system -# DON'T EDIT -- put any locally required changes in Makefile.config. -# See INSTALL for more details. - -LIB_TARGET = libomega.a - -all: $(LIB_TARGET) -depend: depend_self -clean: clean_self -veryclean: veryclean_self - - - -BASIC_SRC = $(BASEDIR)/basic/src/ConstString.cc $(BASEDIR)/basic/src/Link.cc -BASIC_OBJ = ConstString.o Link.o - -OC_SRC = ../src/omega_core/oc.cc ../src/omega_core/oc_solve.cc \ - ../src/omega_core/oc_simple.cc ../src/omega_core/oc_eq.cc \ - ../src/omega_core/oc_problems.cc ../src/omega_core/oc_print.cc \ - ../src/omega_core/oc_quick_kill.cc ../src/omega_core/oc_exp_kill.cc \ - ../src/omega_core/oc_query.cc ../src/omega_core/oc_util.cc \ - ../src/omega_core/oc_global.cc -OC_OBJ = $(addsuffix .o, $(basename $(notdir $(OC_SRC)))) - -PRES_SRC = ../src/pres_print.cc ../src/pres_rear.cc ../src/pres_beaut.cc \ - ../src/pres_dnf.cc ../src/pres_conj.cc ../src/pres_quant.cc \ - ../src/pres_decl.cc ../src/pres_logic.cc ../src/pres_form.cc \ - ../src/pres_cnstr.cc ../src/pres_var.cc ../src/pres_gen.cc \ - ../src/pres_col.cc ../src/pres_subs.cc -PRES_OBJ = $(addsuffix .o, $(basename $(notdir $(PRES_SRC)))) - -REL_SRC = ../src/Relations.cc ../src/Relation.cc ../src/RelBody.cc ../src/RelVar.cc \ - ../src/evac.cc ../src/farkas.cc ../src/hull_legacy.cc ../src/hull_simple.cc -REL_OBJ = $(addsuffix .o, $(basename $(notdir $(REL_SRC)))) - -FANCY_SRC = ../src/reach.cc ../src/closure.cc -FANCY_OBJ = $(addsuffix .o, $(basename $(notdir $(FANCY_SRC)))) - - -LIB_SRC = ${FANCY_SRC} ${REL_SRC} ${PRES_SRC} ${OC_SRC} ${BASIC_SRC} -LIB_OBJ = ${OC_OBJ} ${BASIC_OBJ} ${FANCY_OBJ} ${REL_OBJ} ${PRES_OBJ} - -OBJS=$(LIB_OBJ) -SRCS=$(LIB_SRC) -OBJS=$(LIB_OBJ) - -BASEDIR=../.. -include $(BASEDIR)/Makefile.config -include $(BASEDIR)/Makefile.rules - -#Extra rule for nonstandard source layout -%.o: ../src/omega_core/%.cc - $(CC) $(CFLAGS) $(INCL_PATH) -c $< -o $@ - -ifeq ($(shell test -f Makefile.deps && echo "true"), true) -include Makefile.deps -endif diff --git a/omega/omega_lib/obj/Makefile.am b/omega/omega_lib/obj/Makefile.am new file mode 100644 index 0000000..455fc58 --- /dev/null +++ b/omega/omega_lib/obj/Makefile.am @@ -0,0 +1,47 @@ +noinst_LIBRARIES = libomega.a + +basic_src =../../basic/src/ConstString.cc +basic_src +=../../basic/src/Link.cc + +oc_src =../src/omega_core/oc.cc +oc_src +=../src/omega_core/oc_eq.cc +oc_src +=../src/omega_core/oc_exp_kill.cc +oc_src +=../src/omega_core/oc_global.cc +oc_src +=../src/omega_core/oc_print.cc +oc_src +=../src/omega_core/oc_problems.cc +oc_src +=../src/omega_core/oc_simple.cc +oc_src +=../src/omega_core/oc_solve.cc +oc_src +=../src/omega_core/oc_query.cc +oc_src +=../src/omega_core/oc_quick_kill.cc +oc_src +=../src/omega_core/oc_util.cc + +pres_src =../src/pres_beaut.cc +pres_src +=../src/pres_cnstr.cc +pres_src +=../src/pres_col.cc +pres_src +=../src/pres_conj.cc +pres_src +=../src/pres_decl.cc +pres_src +=../src/pres_dnf.cc +pres_src +=../src/pres_form.cc +pres_src +=../src/pres_gen.cc +pres_src +=../src/pres_logic.cc +pres_src +=../src/pres_print.cc +pres_src +=../src/pres_rear.cc +pres_src +=../src/pres_quant.cc +pres_src +=../src/pres_subs.cc +pres_src +=../src/pres_var.cc + +rel_src =../src/evac.cc +rel_src +=../src/farkas.cc +rel_src +=../src/hull_legacy.cc +rel_src +=../src/hull_simple.cc +rel_src +=../src/Relation.cc +rel_src +=../src/Relations.cc +rel_src +=../src/RelBody.cc +rel_src +=../src/RelVar.cc + +fancy_src =../src/closure.cc +fancy_src +=../src/reach.cc + + +libomega_a_SOURCES =$(basic_src) $(oc_src) $(pres_src) $(rel_src) $(fancy_src) +libomega_a_CPPFLAGS =-I../include -I../../basic/include diff --git a/omega/omega_lib/src/omega_core/oc.cc b/omega/omega_lib/src/omega_core/oc.cc index ec60a11..0dc9b49 100644 --- a/omega/omega_lib/src/omega_core/oc.cc +++ b/omega/omega_lib/src/omega_core/oc.cc @@ -749,27 +749,6 @@ void Problem::checkGistInvariant() const { fprintf(outputFile,"] Done checking gist invariant on\n"); } #endif -} - -inline void eqnncpy(eqn *dest, eqn *src, int nVars) { - dest->key = src->key; - dest->touched = src->touched; - dest->color = src->color; - dest->essential = src->essential; - dest->varCount = src->varCount; - for (int i = 0; i <= nVars; i++) - dest->coef[i] = src->coef[i]; -} - - -inline void eqnnzero(eqn *e, int nVars) { - e->key = 0; - e->touched = 0; - e->color = EQ_BLACK; - e->essential = 0; - e->varCount = 0; - for (int i = 0; i <= nVars; i++) - e->coef[i] = 0; } } // namespace |