From 18f561925bfd190c069ff479b4451a3c1abfdfb2 Mon Sep 17 00:00:00 2001 From: Alexander Date: Wed, 12 Mar 2025 14:22:11 +0300 Subject: [PATCH] fixed paths --- Sapfor/CMakeLists.txt | 466 +- .../FDVM/CMakeLists.txt | 0 .../Parser/CMakeLists.txt | 0 .../SageLib/CMakeLists.txt | 0 .../SageNewSrc/CMakeLists.txt | 0 .../SageOldSrc/CMakeLists.txt | 0 .../{_projects => projects}/Sapc++/Sapc++.sln | 0 .../dvm/fdvm/CMakeLists.txt | 0 .../dvm/fdvm/trunk/CMakeLists.txt | 0 .../fdvm/trunk/InlineExpansion/CMakeLists.txt | 0 .../dvm/fdvm/trunk/InlineExpansion/dvm_tag.h | 0 .../dvm/fdvm/trunk/InlineExpansion/hlp.cpp | 0 .../fdvm/trunk/InlineExpansion/inl_exp.cpp | 0 .../dvm/fdvm/trunk/InlineExpansion/inline.h | 0 .../fdvm/trunk/InlineExpansion/inliner.cpp | 0 .../fdvm/trunk/InlineExpansion/intrinsic.h | 0 .../fdvm/trunk/InlineExpansion/makefile.uni | 0 .../fdvm/trunk/InlineExpansion/makefile.win | 0 .../dvm/fdvm/trunk/Makefile | 0 .../dvm/fdvm/trunk/Sage/CMakeLists.txt | 0 .../dvm/fdvm/trunk/Sage/LICENSE | 0 .../dvm/fdvm/trunk/Sage/Makefile | 0 .../dvm/fdvm/trunk/Sage/Sage++/CMakeLists.txt | 0 .../dvm/fdvm/trunk/Sage/Sage++/Makefile | 0 .../dvm/fdvm/trunk/Sage/Sage++/libSage++.cpp | 0 .../dvm/fdvm/trunk/Sage/Sage++/makefile.uni | 0 .../dvm/fdvm/trunk/Sage/Sage++/makefile.win | 0 .../dvm/fdvm/trunk/Sage/h/Makefile | 0 .../dvm/fdvm/trunk/Sage/h/bif.h | 0 .../dvm/fdvm/trunk/Sage/h/compatible.h | 0 .../dvm/fdvm/trunk/Sage/h/db.h | 0 .../dvm/fdvm/trunk/Sage/h/db.new.h | 0 .../dvm/fdvm/trunk/Sage/h/defines.h | 0 .../dvm/fdvm/trunk/Sage/h/defs.h | 0 .../dvm/fdvm/trunk/Sage/h/dep.h | 0 .../dvm/fdvm/trunk/Sage/h/dep_str.h | 0 .../dvm/fdvm/trunk/Sage/h/dep_struct.h | 0 .../dvm/fdvm/trunk/Sage/h/elist.h | 0 .../dvm/fdvm/trunk/Sage/h/f90.h | 0 .../dvm/fdvm/trunk/Sage/h/fixcray.h | 0 .../dvm/fdvm/trunk/Sage/h/fm.h | 0 .../dvm/fdvm/trunk/Sage/h/head | 0 .../dvm/fdvm/trunk/Sage/h/leak_detector.h | 0 .../dvm/fdvm/trunk/Sage/h/list.h | 0 .../dvm/fdvm/trunk/Sage/h/ll.h | 0 .../dvm/fdvm/trunk/Sage/h/prop.h | 0 .../dvm/fdvm/trunk/Sage/h/sage.h | 0 .../dvm/fdvm/trunk/Sage/h/sagearch.h | 0 .../dvm/fdvm/trunk/Sage/h/sageroot.h | 0 .../dvm/fdvm/trunk/Sage/h/sets.h | 0 .../dvm/fdvm/trunk/Sage/h/symb.h | 0 .../dvm/fdvm/trunk/Sage/h/symblob.h | 0 .../dvm/fdvm/trunk/Sage/h/tag | 0 .../dvm/fdvm/trunk/Sage/h/tag.doc | 0 .../dvm/fdvm/trunk/Sage/h/tag.h | 0 .../dvm/fdvm/trunk/Sage/h/tag_make | 0 .../dvm/fdvm/trunk/Sage/h/version.h | 0 .../dvm/fdvm/trunk/Sage/h/vextern.h | 0 .../dvm/fdvm/trunk/Sage/h/vparse.h | 0 .../dvm/fdvm/trunk/Sage/h/vpc.h | 0 .../dvm/fdvm/trunk/Sage/h/window.h | 0 .../dvm/fdvm/trunk/Sage/lib/CMakeLists.txt | 0 .../dvm/fdvm/trunk/Sage/lib/Makefile | 0 .../fdvm/trunk/Sage/lib/include/attributes.h | 0 .../fdvm/trunk/Sage/lib/include/baseClasses.h | 0 .../fdvm/trunk/Sage/lib/include/bif_node.def | 0 .../fdvm/trunk/Sage/lib/include/dependence.h | 0 .../dvm/fdvm/trunk/Sage/lib/include/ext_ann.h | 0 .../fdvm/trunk/Sage/lib/include/ext_high.h | 0 .../dvm/fdvm/trunk/Sage/lib/include/ext_lib.h | 0 .../dvm/fdvm/trunk/Sage/lib/include/ext_low.h | 0 .../dvm/fdvm/trunk/Sage/lib/include/ext_mid.h | 0 .../fdvm/trunk/Sage/lib/include/extcxx_low.h | 0 .../fdvm/trunk/Sage/lib/include/libSage++.h | 0 .../dvm/fdvm/trunk/Sage/lib/include/macro.h | 0 .../trunk/Sage/lib/include/sage++callgraph.h | 0 .../Sage/lib/include/sage++classhierarchy.h | 0 .../trunk/Sage/lib/include/sage++extern.h | 0 .../fdvm/trunk/Sage/lib/include/sage++proto.h | 0 .../fdvm/trunk/Sage/lib/include/sage++user.h | 0 .../dvm/fdvm/trunk/Sage/lib/include/symb.def | 0 .../dvm/fdvm/trunk/Sage/lib/include/type.def | 0 .../fdvm/trunk/Sage/lib/include/unparse.def | 0 .../trunk/Sage/lib/include/unparseC++.def | 0 .../trunk/Sage/lib/include/unparseDVM.def | 0 .../dvm/fdvm/trunk/Sage/lib/makefile.uni | 0 .../dvm/fdvm/trunk/Sage/lib/makefile.win | 0 .../fdvm/trunk/Sage/lib/newsrc/CMakeLists.txt | 0 .../dvm/fdvm/trunk/Sage/lib/newsrc/Makefile | 0 .../fdvm/trunk/Sage/lib/newsrc/annotate.tab.c | 0 .../fdvm/trunk/Sage/lib/newsrc/annotate.tab.h | 0 .../dvm/fdvm/trunk/Sage/lib/newsrc/annotate.y | 0 .../dvm/fdvm/trunk/Sage/lib/newsrc/comments.c | 0 .../fdvm/trunk/Sage/lib/newsrc/low_level.c | 0 .../fdvm/trunk/Sage/lib/newsrc/makefile.uni | 0 .../fdvm/trunk/Sage/lib/newsrc/makefile.win | 0 .../dvm/fdvm/trunk/Sage/lib/newsrc/toolsann.c | 0 .../dvm/fdvm/trunk/Sage/lib/newsrc/unparse.c | 0 .../fdvm/trunk/Sage/lib/oldsrc/CMakeLists.txt | 0 .../dvm/fdvm/trunk/Sage/lib/oldsrc/Makefile | 0 .../dvm/fdvm/trunk/Sage/lib/oldsrc/anal_ind.c | 0 .../dvm/fdvm/trunk/Sage/lib/oldsrc/db.c | 0 .../dvm/fdvm/trunk/Sage/lib/oldsrc/db_unp.c | 0 .../fdvm/trunk/Sage/lib/oldsrc/db_unp_comm.c | 0 .../fdvm/trunk/Sage/lib/oldsrc/db_unp_vpc.c | 0 .../dvm/fdvm/trunk/Sage/lib/oldsrc/dbutils.c | 0 .../fdvm/trunk/Sage/lib/oldsrc/garb_coll.c | 0 .../fdvm/trunk/Sage/lib/oldsrc/glob_anal.c | 0 .../dvm/fdvm/trunk/Sage/lib/oldsrc/ker_fun.c | 0 .../dvm/fdvm/trunk/Sage/lib/oldsrc/list.c | 0 .../fdvm/trunk/Sage/lib/oldsrc/make_nodes.c | 0 .../fdvm/trunk/Sage/lib/oldsrc/makefile.uni | 0 .../fdvm/trunk/Sage/lib/oldsrc/makefile.win | 0 .../dvm/fdvm/trunk/Sage/lib/oldsrc/mod_ref.c | 0 .../dvm/fdvm/trunk/Sage/lib/oldsrc/ndeps.c | 0 .../fdvm/trunk/Sage/lib/oldsrc/readnodes.c | 0 .../dvm/fdvm/trunk/Sage/lib/oldsrc/sets.c | 0 .../dvm/fdvm/trunk/Sage/lib/oldsrc/setutils.c | 0 .../dvm/fdvm/trunk/Sage/lib/oldsrc/symb_alg.c | 0 .../fdvm/trunk/Sage/lib/oldsrc/writenodes.c | 0 .../dvm/fdvm/trunk/Sage/makefile.uni | 0 .../dvm/fdvm/trunk/Sage/makefile.win | 0 .../CodeTransformer/CodeTransformer.vcxproj | 0 .../CodeTransformer.vcxproj.filters | 0 .../FDVM/FDVM.sln | 0 .../FDVM/FDVM/FDVM.vcxproj | 0 .../FDVM/FDVM/FDVM.vcxproj.filters | 0 .../FDVM/NEWsrc/NEWsrc.vcxproj | 0 .../FDVM/NEWsrc/NEWsrc.vcxproj.filters | 0 .../FDVM/OLDsrc/OLDsrc.vcxproj | 0 .../FDVM/OLDsrc/OLDsrc.vcxproj.filters | 0 .../FDVM/Parser/Parser.vcxproj | 0 .../FDVM/Parser/Parser.vcxproj.filters | 0 .../FDVM/SageLib++/SageLib++.vcxproj | 0 .../FDVM/SageLib++/SageLib++.vcxproj.filters | 0 .../FDVM/inlineExp/inlineExp.vcxproj | 0 .../FDVM/inlineExp/inlineExp.vcxproj.filters | 0 .../dvm/fdvm/trunk/acrossDebugging/across.cpp | 0 .../dvm/fdvm/trunk/examples/gausf.fdv | 0 .../dvm/fdvm/trunk/examples/gausgb.fdv | 0 .../dvm/fdvm/trunk/examples/gaush.hpf | 0 .../dvm/fdvm/trunk/examples/gauswh.fdv | 0 .../dvm/fdvm/trunk/examples/jac.fdv | 0 .../dvm/fdvm/trunk/examples/jacas.fdv | 0 .../dvm/fdvm/trunk/examples/jach.hpf | 0 .../dvm/fdvm/trunk/examples/redbf.fdv | 0 .../dvm/fdvm/trunk/examples/redbh.hpf | 0 .../dvm/fdvm/trunk/examples/sor.fdv | 0 .../dvm/fdvm/trunk/examples/task2j.fdv | 0 .../dvm/fdvm/trunk/examples/tasks.fdv | 0 .../dvm/fdvm/trunk/examples/taskst.fdv | 0 .../dvm/fdvm/trunk/fdvm/CMakeLists.txt | 0 .../dvm/fdvm/trunk/fdvm/Makefile | 0 .../dvm/fdvm/trunk/fdvm/acc.cpp | 0 .../dvm/fdvm/trunk/fdvm/acc_across.cpp | 0 .../fdvm/trunk/fdvm/acc_across_analyzer.cpp | 0 .../dvm/fdvm/trunk/fdvm/acc_analyzer.cpp | 8650 ++++++++--------- .../dvm/fdvm/trunk/fdvm/acc_data.cpp | 0 .../dvm/fdvm/trunk/fdvm/acc_f2c.cpp | 0 .../dvm/fdvm/trunk/fdvm/acc_f2c_handlers.cpp | 0 .../fdvm/trunk/fdvm/acc_index_analyzer.cpp | 0 .../dvm/fdvm/trunk/fdvm/acc_rtc.cpp | 0 .../dvm/fdvm/trunk/fdvm/acc_unused_code.cpp | 0 .../dvm/fdvm/trunk/fdvm/acc_utilities.cpp | 0 .../dvm/fdvm/trunk/fdvm/aks_analyzeLoops.cpp | 0 .../dvm/fdvm/trunk/fdvm/aks_loopStructure.cpp | 0 .../dvm/fdvm/trunk/fdvm/aks_structs.cpp | 0 .../dvm/fdvm/trunk/fdvm/calls.cpp | 0 .../dvm/fdvm/trunk/fdvm/checkpoint.cpp | 0 .../dvm/fdvm/trunk/fdvm/debug.cpp | 0 .../dvm/fdvm/trunk/fdvm/dvm.cpp | 0 .../dvm/fdvm/trunk/fdvm/funcall.cpp | 0 .../dvm/fdvm/trunk/fdvm/help.cpp | 0 .../dvm/fdvm/trunk/fdvm/hpf.cpp | 0 .../dvm/fdvm/trunk/fdvm/io.cpp | 0 .../dvm/fdvm/trunk/fdvm/makefile.uni | 0 .../dvm/fdvm/trunk/fdvm/makefile.win | 0 .../dvm/fdvm/trunk/fdvm/omp.cpp | 0 .../dvm/fdvm/trunk/fdvm/ompdebug.cpp | 0 .../dvm/fdvm/trunk/fdvm/parloop.cpp | 0 .../dvm/fdvm/trunk/fdvm/stmt.cpp | 0 .../fdvm/trunk/include/acc_across_analyzer.h | 0 .../dvm/fdvm/trunk/include/acc_analyzer.h | 0 .../dvm/fdvm/trunk/include/acc_data.h | 0 .../fdvm/trunk/include/aks_loopStructure.h | 0 .../dvm/fdvm/trunk/include/aks_structs.h | 0 .../dvm/fdvm/trunk/include/calls.h | 0 .../dvm/fdvm/trunk/include/dvm.h | 0 .../dvm/fdvm/trunk/include/dvm_tag.h | 0 .../dvm/fdvm/trunk/include/extern.h | 0 .../dvm/fdvm/trunk/include/fdvm.h | 0 .../dvm/fdvm/trunk/include/fdvm_version.h | 0 .../dvm/fdvm/trunk/include/inc.h | 0 .../dvm/fdvm/trunk/include/leak_detector.h | 0 .../dvm/fdvm/trunk/include/libSageOMP.h | 0 .../dvm/fdvm/trunk/include/libdvm.h | 0 .../dvm/fdvm/trunk/include/libnum.h | 0 .../dvm/fdvm/trunk/include/unparse.hpf | 0 .../dvm/fdvm/trunk/include/unparse1.hpf | 0 .../dvm/fdvm/trunk/include/user.h | 0 .../dvm/fdvm/trunk/makefile.uni | 0 .../dvm/fdvm/trunk/makefile.win | 0 .../dvm/fdvm/trunk/parser/CMakeLists.txt | 0 .../dvm/fdvm/trunk/parser/Makefile | 0 .../dvm/fdvm/trunk/parser/cftn.c | 0 .../dvm/fdvm/trunk/parser/errors.c | 0 .../dvm/fdvm/trunk/parser/facc.gram | 0 .../dvm/fdvm/trunk/parser/fdvm.gram | 0 .../dvm/fdvm/trunk/parser/fomp.gram | 0 .../dvm/fdvm/trunk/parser/fspf.gram | 0 .../dvm/fdvm/trunk/parser/ftn.gram | 0 .../dvm/fdvm/trunk/parser/gram1.tab.c | 0 .../dvm/fdvm/trunk/parser/gram1.tab.h | 0 .../dvm/fdvm/trunk/parser/gram1.y | 0 .../dvm/fdvm/trunk/parser/hash.c | 0 .../dvm/fdvm/trunk/parser/head | 0 .../dvm/fdvm/trunk/parser/init.c | 0 .../dvm/fdvm/trunk/parser/lexfdvm.c | 0 .../dvm/fdvm/trunk/parser/lists.c | 0 .../dvm/fdvm/trunk/parser/low_hpf.c | 0 .../dvm/fdvm/trunk/parser/makefile.uni | 0 .../dvm/fdvm/trunk/parser/makefile.win | 0 .../dvm/fdvm/trunk/parser/misc.c | 0 .../dvm/fdvm/trunk/parser/stat.c | 0 .../dvm/fdvm/trunk/parser/sym.c | 0 .../dvm/fdvm/trunk/parser/tag | 0 .../dvm/fdvm/trunk/parser/tag.h | 0 .../dvm/fdvm/trunk/parser/tokdefs.h | 0 .../dvm/fdvm/trunk/parser/tokens | 0 .../dvm/fdvm/trunk/parser/types.c | 0 .../dvm/fdvm/trunk/parser/unparse_hpf.c | 0 .../dvm/fdvm/trunk/sageExample/SwapFors.cpp | 0 .../dvm/fdvm/trunk/sageExample/makefile.uni | 0 .../dvm/fdvm/trunk/sageExample/makefile.win | 0 .../dvm/tools/Zlib/CMakeLists.txt | 0 .../dvm/tools/Zlib/include/deflate.h | 0 .../dvm/tools/Zlib/include/infblock.h | 0 .../dvm/tools/Zlib/include/infcodes.h | 0 .../dvm/tools/Zlib/include/inffast.h | 0 .../dvm/tools/Zlib/include/inffixed.h | 0 .../dvm/tools/Zlib/include/inftrees.h | 0 .../dvm/tools/Zlib/include/infutil.h | 0 .../dvm/tools/Zlib/include/trees.h | 0 .../dvm/tools/Zlib/include/zconf.h | 0 .../dvm/tools/Zlib/include/zlib.h | 0 .../dvm/tools/Zlib/include/zutil.h | 0 .../dvm/tools/Zlib/makefile.uni | 0 .../dvm/tools/Zlib/makefile.win | 0 .../dvm/tools/Zlib/src/CMakeLists.txt | 0 .../dvm/tools/Zlib/src/adler32.c | 0 .../dvm/tools/Zlib/src/compress.c | 0 .../dvm/tools/Zlib/src/crc32.c | 0 .../dvm/tools/Zlib/src/deflate.c | 0 .../dvm/tools/Zlib/src/example.c | 0 .../dvm/tools/Zlib/src/gzio.c | 0 .../dvm/tools/Zlib/src/infblock.c | 0 .../dvm/tools/Zlib/src/infcodes.c | 0 .../dvm/tools/Zlib/src/inffast.c | 0 .../dvm/tools/Zlib/src/inflate.c | 0 .../dvm/tools/Zlib/src/inftrees.c | 0 .../dvm/tools/Zlib/src/infutil.c | 0 .../dvm/tools/Zlib/src/maketree.c | 0 .../dvm/tools/Zlib/src/minigzip.c | 0 .../dvm/tools/Zlib/src/trees.c | 0 .../dvm/tools/Zlib/src/uncompr.c | 0 .../dvm/tools/Zlib/src/zutil.c | 0 .../tools/pppa/branches/dvm4.07/makefile.uni | 0 .../tools/pppa/branches/dvm4.07/makefile.win | 0 .../tools/pppa/branches/dvm4.07/src/bool.h | 0 .../tools/pppa/branches/dvm4.07/src/dvmvers.h | 0 .../tools/pppa/branches/dvm4.07/src/inter.cpp | 0 .../tools/pppa/branches/dvm4.07/src/inter.h | 0 .../pppa/branches/dvm4.07/src/makefile.uni | 0 .../pppa/branches/dvm4.07/src/makefile.win | 0 .../pppa/branches/dvm4.07/src/potensyn.cpp | 0 .../pppa/branches/dvm4.07/src/potensyn.h | 0 .../pppa/branches/dvm4.07/src/statfile.cpp | 0 .../tools/pppa/branches/dvm4.07/src/statist.h | 0 .../pppa/branches/dvm4.07/src/statprintf.cpp | 0 .../pppa/branches/dvm4.07/src/statprintf.h | 0 .../pppa/branches/dvm4.07/src/statread.cpp | 0 .../pppa/branches/dvm4.07/src/statread.h | 0 .../tools/pppa/branches/dvm4.07/src/strall.h | 0 .../tools/pppa/branches/dvm4.07/src/sysstat.h | 0 .../pppa/branches/dvm4.07/src/treeinter.cpp | 0 .../pppa/branches/dvm4.07/src/treeinter.h | 0 .../dvm/tools/pppa/branches/dvm4.07/src/ver.h | 0 .../pppa/stuff/Zlib_1.1.3/Include/deflate.h | 0 .../pppa/stuff/Zlib_1.1.3/Include/infblock.h | 0 .../pppa/stuff/Zlib_1.1.3/Include/infcodes.h | 0 .../pppa/stuff/Zlib_1.1.3/Include/inffast.h | 0 .../pppa/stuff/Zlib_1.1.3/Include/inffixed.h | 0 .../pppa/stuff/Zlib_1.1.3/Include/inftrees.h | 0 .../pppa/stuff/Zlib_1.1.3/Include/infutil.h | 0 .../pppa/stuff/Zlib_1.1.3/Include/trees.h | 0 .../pppa/stuff/Zlib_1.1.3/Include/zconf.h | 0 .../pppa/stuff/Zlib_1.1.3/Include/zlib.h | 0 .../pppa/stuff/Zlib_1.1.3/Include/zutil.h | 0 .../tools/pppa/stuff/Zlib_1.1.3/Src/Makefile | 0 .../pppa/stuff/Zlib_1.1.3/Src/Makefile.1 | 0 .../tools/pppa/stuff/Zlib_1.1.3/Src/adler32.c | 0 .../pppa/stuff/Zlib_1.1.3/Src/compress.c | 0 .../tools/pppa/stuff/Zlib_1.1.3/Src/crc32.c | 0 .../tools/pppa/stuff/Zlib_1.1.3/Src/deflate.c | 0 .../tools/pppa/stuff/Zlib_1.1.3/Src/example.c | 0 .../tools/pppa/stuff/Zlib_1.1.3/Src/gzio.c | 0 .../pppa/stuff/Zlib_1.1.3/Src/infblock.c | 0 .../pppa/stuff/Zlib_1.1.3/Src/infcodes.c | 0 .../tools/pppa/stuff/Zlib_1.1.3/Src/inffast.c | 0 .../tools/pppa/stuff/Zlib_1.1.3/Src/inflate.c | 0 .../pppa/stuff/Zlib_1.1.3/Src/inftrees.c | 0 .../tools/pppa/stuff/Zlib_1.1.3/Src/infutil.c | 0 .../pppa/stuff/Zlib_1.1.3/Src/makefile.uni | 0 .../pppa/stuff/Zlib_1.1.3/Src/maketree.c | 0 .../pppa/stuff/Zlib_1.1.3/Src/minigzip.c | 0 .../tools/pppa/stuff/Zlib_1.1.3/Src/trees.c | 0 .../tools/pppa/stuff/Zlib_1.1.3/Src/uncompr.c | 0 .../tools/pppa/stuff/Zlib_1.1.3/Src/zutil.c | 0 .../dvm/tools/pppa/stuff/Zlib_1.1.3/Zlib.mak | 0 .../dvm/tools/pppa/stuff/Zlib_1.1.3/readme | 0 .../dvm/tools/pppa/trunk/CMakeLists.txt | 0 .../dvm/tools/pppa/trunk/makefile.uni | 0 .../dvm/tools/pppa/trunk/makefile.win | 0 .../dvm/tools/pppa/trunk/src/CMakeLists.txt | 0 .../tools/pppa/trunk/src/LibraryImport.cpp | 0 .../dvm/tools/pppa/trunk/src/LibraryImport.h | 0 .../dvm/tools/pppa/trunk/src/PPPA/PPPA.sln | 0 .../pppa/trunk/src/PPPA/PPPA/PPPA.vcxproj | 0 .../trunk/src/PPPA/PPPA/PPPA.vcxproj.filters | 0 .../dvm/tools/pppa/trunk/src/bool.h | 0 .../dvm/tools/pppa/trunk/src/dvmh_stat.h | 0 .../dvm/tools/pppa/trunk/src/dvmvers.h.in | 0 .../dvm/tools/pppa/trunk/src/inter.cpp | 0 .../dvm/tools/pppa/trunk/src/inter.h | 0 .../dvm/tools/pppa/trunk/src/json.hpp | 0 .../dvm/tools/pppa/trunk/src/makefile.uni | 0 .../dvm/tools/pppa/trunk/src/makefile.win | 0 .../dvm/tools/pppa/trunk/src/makefileJnilib | 0 .../dvm/tools/pppa/trunk/src/potensyn.cpp | 0 .../dvm/tools/pppa/trunk/src/potensyn.h | 0 .../dvm/tools/pppa/trunk/src/stat.cpp | 0 .../dvm/tools/pppa/trunk/src/statfile.cpp | 0 .../dvm/tools/pppa/trunk/src/statinter.cpp | 0 .../dvm/tools/pppa/trunk/src/statinter.h | 0 .../dvm/tools/pppa/trunk/src/statist.h | 0 .../dvm/tools/pppa/trunk/src/statlist.cpp | 0 .../dvm/tools/pppa/trunk/src/statlist.h | 0 .../dvm/tools/pppa/trunk/src/statprintf.cpp | 0 .../dvm/tools/pppa/trunk/src/statprintf.h | 0 .../dvm/tools/pppa/trunk/src/statread.cpp | 0 .../dvm/tools/pppa/trunk/src/statread.h | 0 .../dvm/tools/pppa/trunk/src/strall.h | 0 .../dvm/tools/pppa/trunk/src/sysstat.h | 0 .../dvm/tools/pppa/trunk/src/treeinter.cpp | 0 .../dvm/tools/pppa/trunk/src/treeinter.h | 0 .../dvm/tools/pppa/trunk/src/ver.h | 0 .../{_projects => projects}/paths.default.txt | 0 Sapfor/{_src => src}/CFGraph/CFGraph.cpp | 0 Sapfor/{_src => src}/CFGraph/CFGraph.h | 0 .../CFGraph/DataFlow/backward_data_flow.h | 0 .../DataFlow/backward_data_flow_impl.h | 0 .../CFGraph/DataFlow/data_flow.h | 0 .../CFGraph/DataFlow/data_flow_impl.h | 0 Sapfor/{_src => src}/CFGraph/IR.cpp | 0 Sapfor/{_src => src}/CFGraph/IR.h | 0 Sapfor/{_src => src}/CFGraph/RD_subst.cpp | 0 Sapfor/{_src => src}/CFGraph/RD_subst.h | 0 .../CFGraph/live_variable_analysis.cpp | 0 .../CFGraph/live_variable_analysis.h | 0 .../CFGraph/private_variables_analysis.cpp | 0 .../CFGraph/private_variables_analysis.h | 0 .../CreateInterTree/CreateInterTree.cpp | 0 .../CreateInterTree/CreateInterTree.h | 0 .../directive_analyzer.cpp | 0 .../DirectiveProcessing/directive_analyzer.h | 0 .../DirectiveProcessing/directive_creator.cpp | 0 .../DirectiveProcessing/directive_creator.h | 0 .../directive_creator_base.cpp | 0 .../directive_omp_parser.cpp | 0 .../directive_omp_parser.h | 0 .../DirectiveProcessing/directive_parser.cpp | 0 .../DirectiveProcessing/directive_parser.h | 0 .../DirectiveProcessing/insert_directive.cpp | 0 .../DirectiveProcessing/insert_directive.h | 0 .../DirectiveProcessing/remote_access.cpp | 0 .../DirectiveProcessing/remote_access.h | 0 .../remote_access_base.cpp | 0 .../DirectiveProcessing/shadow.cpp | 0 .../DirectiveProcessing/shadow.h | 0 .../spf_directive_preproc.cpp | 0 Sapfor/{_src => src}/Distribution/Array.cpp | 0 Sapfor/{_src => src}/Distribution/Array.h | 0 .../Distribution/ArrayAnalysis.cpp | 0 Sapfor/{_src => src}/Distribution/Arrays.h | 0 .../Distribution/CreateDistributionDirs.cpp | 0 .../Distribution/CreateDistributionDirs.h | 0 Sapfor/{_src => src}/Distribution/Cycle.cpp | 0 Sapfor/{_src => src}/Distribution/Cycle.h | 0 .../Distribution/Distribution.cpp | 0 .../{_src => src}/Distribution/Distribution.h | 0 .../Distribution/DvmhDirective.cpp | 0 .../Distribution/DvmhDirective.h | 0 .../Distribution/DvmhDirectiveBase.cpp | 0 .../Distribution/DvmhDirectiveBase.h | 0 .../Distribution/DvmhDirective_func.h | 0 .../{_src => src}/Distribution/GraphCSR.cpp | 0 Sapfor/{_src => src}/Distribution/GraphCSR.h | 0 .../{_src => src}/DvmhRegions/DvmhRegion.cpp | 0 Sapfor/{_src => src}/DvmhRegions/DvmhRegion.h | 0 .../DvmhRegions/DvmhRegionInserter.cpp | 0 .../DvmhRegions/DvmhRegionInserter.h | 0 .../{_src => src}/DvmhRegions/LoopChecker.cpp | 0 .../{_src => src}/DvmhRegions/LoopChecker.h | 0 .../DvmhRegions/ReadWriteAnalyzer.cpp | 0 .../DvmhRegions/ReadWriteAnalyzer.h | 0 .../DvmhRegions/RegionsMerger.cpp | 0 .../{_src => src}/DvmhRegions/RegionsMerger.h | 0 .../{_src => src}/DvmhRegions/TypedSymbol.cpp | 0 .../{_src => src}/DvmhRegions/TypedSymbol.h | 0 .../{_src => src}/DvmhRegions/VarUsages.cpp | 0 Sapfor/{_src => src}/DvmhRegions/VarUsages.h | 0 .../DynamicAnalysis/createParallelRegions.cpp | 0 .../DynamicAnalysis/createParallelRegions.h | 0 .../DynamicAnalysis/gCov_parser.cpp | 0 .../DynamicAnalysis/gCov_parser_func.h | 0 .../DynamicAnalysis/gcov_info.cpp | 0 .../{_src => src}/DynamicAnalysis/gcov_info.h | 0 .../control_flow_graph_part.cpp | 0 .../ExpressionTransform/expr_transform.cpp | 0 .../ExpressionTransform/expr_transform.h | 0 .../{_src => src}/GraphCall/graph_calls.cpp | 0 Sapfor/{_src => src}/GraphCall/graph_calls.h | 0 .../GraphCall/graph_calls_base.cpp | 0 .../GraphCall/graph_calls_func.h | 0 .../{_src => src}/GraphLoop/graph_loops.cpp | 0 Sapfor/{_src => src}/GraphLoop/graph_loops.h | 0 .../GraphLoop/graph_loops_base.cpp | 0 .../GraphLoop/graph_loops_func.h | 0 Sapfor/{_src => src}/Inliner/inliner.cpp | 0 Sapfor/{_src => src}/Inliner/inliner.h | 0 .../LoopAnalyzer/allocations_prepoc.cpp | 0 .../LoopAnalyzer/dep_analyzer.cpp | 0 .../LoopAnalyzer/loop_analyzer.cpp | 0 .../LoopAnalyzer/loop_analyzer.h | 0 .../ParallelizationRegions/ParRegions.cpp | 0 .../ParallelizationRegions/ParRegions.h | 0 .../ParallelizationRegions/ParRegions_func.h | 0 .../expand_extract_reg.cpp | 0 .../expand_extract_reg.h | 0 .../resolve_par_reg_conflicts.cpp | 0 .../resolve_par_reg_conflicts.h | 0 Sapfor/{_src => src}/Predictor/Lib/AMView.cpp | 0 Sapfor/{_src => src}/Predictor/Lib/AMView.h | 0 .../{_src => src}/Predictor/Lib/AlignAxis.cpp | 0 .../{_src => src}/Predictor/Lib/AlignAxis.h | 0 Sapfor/{_src => src}/Predictor/Lib/BGroup.cpp | 0 Sapfor/{_src => src}/Predictor/Lib/BGroup.h | 0 Sapfor/{_src => src}/Predictor/Lib/Block.cpp | 0 Sapfor/{_src => src}/Predictor/Lib/Block.h | 0 .../Predictor/Lib/CallInfoStructs.h | 0 .../Predictor/Lib/CallParams.cpp | 0 .../{_src => src}/Predictor/Lib/CommCost.cpp | 0 Sapfor/{_src => src}/Predictor/Lib/CommCost.h | 0 Sapfor/{_src => src}/Predictor/Lib/DArray.cpp | 0 Sapfor/{_src => src}/Predictor/Lib/DArray.h | 0 .../{_src => src}/Predictor/Lib/DimBound.cpp | 0 Sapfor/{_src => src}/Predictor/Lib/DimBound.h | 0 .../{_src => src}/Predictor/Lib/DistAxis.cpp | 0 Sapfor/{_src => src}/Predictor/Lib/DistAxis.h | 0 Sapfor/{_src => src}/Predictor/Lib/Event.cpp | 0 Sapfor/{_src => src}/Predictor/Lib/Event.h | 0 .../{_src => src}/Predictor/Lib/FuncCall.cpp | 0 Sapfor/{_src => src}/Predictor/Lib/FuncCall.h | 0 .../{_src => src}/Predictor/Lib/Interval.cpp | 0 Sapfor/{_src => src}/Predictor/Lib/Interval.h | 0 .../Predictor/Lib/IntervalTemplate.cpp | 0 .../{_src => src}/Predictor/Lib/LoopBlock.cpp | 0 .../{_src => src}/Predictor/Lib/LoopBlock.h | 0 Sapfor/{_src => src}/Predictor/Lib/LoopLS.cpp | 0 Sapfor/{_src => src}/Predictor/Lib/LoopLS.h | 0 Sapfor/{_src => src}/Predictor/Lib/Ls.cpp | 0 Sapfor/{_src => src}/Predictor/Lib/Ls.h | 0 .../Predictor/Lib/ModelDArray.cpp | 0 .../{_src => src}/Predictor/Lib/ModelIO.cpp | 0 .../Predictor/Lib/ModelInterval.cpp | 0 .../Predictor/Lib/ModelMPS_AM.cpp | 0 .../Predictor/Lib/ModelParLoop.cpp | 0 .../Predictor/Lib/ModelReduct.cpp | 0 .../Predictor/Lib/ModelRegular.cpp | 0 .../Predictor/Lib/ModelRemAccess.cpp | 0 .../Predictor/Lib/ModelShadow.cpp | 0 .../Predictor/Lib/ModelStructs.h | 0 .../{_src => src}/Predictor/Lib/ParLoop.cpp | 0 Sapfor/{_src => src}/Predictor/Lib/ParLoop.h | 0 .../Predictor/Lib/ParseString.cpp | 0 .../{_src => src}/Predictor/Lib/ParseString.h | 0 .../{_src => src}/Predictor/Lib/Processor.cpp | 0 .../{_src => src}/Predictor/Lib/Processor.h | 0 Sapfor/{_src => src}/Predictor/Lib/Ps.cpp | 0 Sapfor/{_src => src}/Predictor/Lib/Ps.h | 0 .../{_src => src}/Predictor/Lib/RedGroup.cpp | 0 Sapfor/{_src => src}/Predictor/Lib/RedGroup.h | 0 Sapfor/{_src => src}/Predictor/Lib/RedVar.cpp | 0 Sapfor/{_src => src}/Predictor/Lib/RedVar.h | 0 .../Predictor/Lib/RemAccessBuf.cpp | 0 .../Predictor/Lib/RemAccessBuf.h | 0 Sapfor/{_src => src}/Predictor/Lib/Space.cpp | 0 Sapfor/{_src => src}/Predictor/Lib/Space.h | 0 Sapfor/{_src => src}/Predictor/Lib/StdAfx.h | 0 .../{_src => src}/Predictor/Lib/TraceLine.cpp | 0 .../{_src => src}/Predictor/Lib/TraceLine.h | 0 Sapfor/{_src => src}/Predictor/Lib/Ver.h | 0 Sapfor/{_src => src}/Predictor/Lib/Vm.cpp | 0 Sapfor/{_src => src}/Predictor/Lib/Vm.h | 0 Sapfor/{_src => src}/Predictor/Lib/adler32.c | 0 Sapfor/{_src => src}/Predictor/Lib/compress.c | 0 Sapfor/{_src => src}/Predictor/Lib/crc32.c | 0 Sapfor/{_src => src}/Predictor/Lib/deflate.c | 0 Sapfor/{_src => src}/Predictor/Lib/deflate.h | 0 Sapfor/{_src => src}/Predictor/Lib/gzio.c | 0 Sapfor/{_src => src}/Predictor/Lib/infblock.c | 0 Sapfor/{_src => src}/Predictor/Lib/infblock.h | 0 Sapfor/{_src => src}/Predictor/Lib/infcodes.c | 0 Sapfor/{_src => src}/Predictor/Lib/infcodes.h | 0 Sapfor/{_src => src}/Predictor/Lib/inffast.c | 0 Sapfor/{_src => src}/Predictor/Lib/inffast.h | 0 Sapfor/{_src => src}/Predictor/Lib/inffixed.h | 0 Sapfor/{_src => src}/Predictor/Lib/inflate.c | 0 Sapfor/{_src => src}/Predictor/Lib/inftrees.c | 0 Sapfor/{_src => src}/Predictor/Lib/inftrees.h | 0 Sapfor/{_src => src}/Predictor/Lib/infutil.c | 0 Sapfor/{_src => src}/Predictor/Lib/infutil.h | 0 .../Predictor/Lib/intersection.cpp | 0 .../{_src => src}/Predictor/Lib/predictor.cpp | 0 Sapfor/{_src => src}/Predictor/Lib/trees.c | 0 Sapfor/{_src => src}/Predictor/Lib/trees.h | 0 Sapfor/{_src => src}/Predictor/Lib/uncompr.c | 0 Sapfor/{_src => src}/Predictor/Lib/zconf.h | 0 Sapfor/{_src => src}/Predictor/Lib/zlib.h | 0 Sapfor/{_src => src}/Predictor/Lib/zutil.c | 0 Sapfor/{_src => src}/Predictor/Lib/zutil.h | 0 .../{_src => src}/Predictor/PredictScheme.cpp | 0 .../{_src => src}/Predictor/PredictScheme.h | 0 .../Predictor/PredictorInterface.h | 0 .../Predictor/PredictorModel.cpp | 0 .../{_src => src}/Predictor/PredictorModel.h | 0 .../PrivateAnalyzer/private_analyzer.cpp | 0 .../PrivateAnalyzer/private_analyzer.h | 0 .../ProjectManipulation/ConvertFiles.cpp | 0 .../ProjectManipulation/ConvertFiles.h | 0 .../ProjectManipulation/FileInfo.cpp | 0 .../ProjectManipulation/FileInfo.h | 0 .../ProjectManipulation/ParseFiles.cpp | 0 .../ProjectManipulation/ParseFiles.h | 0 .../ProjectManipulation/PerfAnalyzer.cpp | 0 .../ProjectManipulation/PerfAnalyzer.h | 0 .../ProjectManipulation/StdCapture.h | 0 .../ProjectParameters/projectParameters.cpp | 0 .../ProjectParameters/projectParameters.h | 0 .../RenameSymbols/rename_symbols.cpp | 0 .../RenameSymbols/rename_symbols.h | 0 .../{_src => src}/SageAnalysisTool/Makefile | 0 .../SageAnalysisTool/OmegaForSage/Makefile | 0 .../SageAnalysisTool/OmegaForSage/README | 0 .../OmegaForSage/add-assert.cpp | 0 .../SageAnalysisTool/OmegaForSage/affine.cpp | 0 .../SageAnalysisTool/OmegaForSage/cover.cpp | 0 .../OmegaForSage/ddomega-build.cpp | 0 .../OmegaForSage/ddomega-use.cpp | 0 .../SageAnalysisTool/OmegaForSage/ddomega.cpp | 0 .../SageAnalysisTool/OmegaForSage/debug.cpp | 0 .../OmegaForSage/include/Exit.h | 0 .../OmegaForSage/include/add-assert.h | 0 .../OmegaForSage/include/affine.h | 0 .../OmegaForSage/include/cover.h | 0 .../OmegaForSage/include/dddir.h | 0 .../OmegaForSage/include/ddomega-build.h | 0 .../OmegaForSage/include/ddomega-use.h | 0 .../OmegaForSage/include/ddomega.h | 0 .../OmegaForSage/include/debug.h | 0 .../OmegaForSage/include/flags.h | 0 .../OmegaForSage/include/ip.h | 0 .../OmegaForSage/include/kill.h | 0 .../OmegaForSage/include/lang-interf.generic | 0 .../OmegaForSage/include/lang-interf.h | 0 .../OmegaForSage/include/missing.h | 0 .../OmegaForSage/include/omega2flags.h | 0 .../OmegaForSage/include/portable.h | 0 .../OmegaForSage/include/portable.h.origine | 0 .../OmegaForSage/include/range.h | 0 .../OmegaForSage/include/refine.h | 0 .../OmegaForSage/include/screen.h | 0 .../OmegaForSage/include/timeTrials.h | 0 .../SageAnalysisTool/OmegaForSage/ip.cpp | 0 .../SageAnalysisTool/OmegaForSage/kill.cpp | 0 .../SageAnalysisTool/OmegaForSage/refine.cpp | 0 .../OmegaForSage/sagedriver.cpp | 0 Sapfor/{_src => src}/SageAnalysisTool/README | 0 .../SageAnalysisTool/annotationDriver.cpp | 0 .../SageAnalysisTool/annotationDriver.h | 0 .../SageAnalysisTool/arrayRef.cpp | 0 .../{_src => src}/SageAnalysisTool/arrayRef.h | 0 .../SageAnalysisTool/computeInducVar.cpp | 0 .../SageAnalysisTool/constanteProp.cpp | 0 .../SageAnalysisTool/constanteSet.h | 0 .../SageAnalysisTool/controlFlow.cpp | 0 .../{_src => src}/SageAnalysisTool/defUse.cpp | 0 .../SageAnalysisTool/definesValues.h | 0 .../SageAnalysisTool/definitionSet.h | 0 .../SageAnalysisTool/depGraph.cpp | 0 .../{_src => src}/SageAnalysisTool/depGraph.h | 0 .../SageAnalysisTool/depInterface.cpp | 0 .../SageAnalysisTool/depInterface.h | 0 .../SageAnalysisTool/depInterfaceExt.h | 0 .../SageAnalysisTool/dependence.cpp | 0 .../SageAnalysisTool/dependence.h | 0 .../SageAnalysisTool/flowAnalysis.cpp | 0 .../{_src => src}/SageAnalysisTool/inducVar.h | 0 .../SageAnalysisTool/intrinsic.cpp | 0 .../SageAnalysisTool/intrinsic.h | 0 .../SageAnalysisTool/invariant.cpp | 0 .../SageAnalysisTool/loopTransform.cpp | 0 .../SageAnalysisTool/reductionCode.h | 0 Sapfor/{_src => src}/SageAnalysisTool/set.cpp | 0 Sapfor/{_src => src}/SageAnalysisTool/set.h | 0 Sapfor/{_src => src}/Sapfor.cpp | 0 Sapfor/{_src => src}/Sapfor.h | 0 Sapfor/{_src => src}/SapforData.h | 0 Sapfor/{_src => src}/Server/checkUniq.cpp | 0 Sapfor/{_src => src}/Server/server.cpp | 0 Sapfor/{_src => src}/Server/spf_icon.ico | Bin .../Transformations/array_assign_to_loop.cpp | 0 .../Transformations/array_assign_to_loop.h | 0 .../Transformations/checkpoints.cpp | 0 .../Transformations/checkpoints.h | 0 .../Transformations/convert_to_c.cpp | 0 .../Transformations/convert_to_c.h | 0 .../Transformations/dead_code.cpp | 0 .../{_src => src}/Transformations/dead_code.h | 0 .../Transformations/enddo_loop_converter.cpp | 0 .../Transformations/enddo_loop_converter.h | 0 .../Transformations/fix_common_blocks.cpp | 0 .../Transformations/fix_common_blocks.h | 0 .../Transformations/function_purifying.cpp | 0 .../Transformations/function_purifying.h | 0 .../Transformations/loop_transform.cpp | 0 .../Transformations/loop_transform.h | 0 .../Transformations/loops_combiner.cpp | 0 .../Transformations/loops_combiner.h | 0 .../Transformations/loops_splitter.cpp | 0 .../Transformations/loops_splitter.h | 0 .../Transformations/loops_unrolling.cpp | 0 .../Transformations/loops_unrolling.h | 0 .../private_arrays_resizing.cpp | 0 .../Transformations/private_arrays_resizing.h | 0 .../Transformations/private_removing.cpp | 0 .../Transformations/private_removing.h | 0 .../replace_dist_arrays_in_io.cpp | 0 .../replace_dist_arrays_in_io.h | 0 .../Transformations/set_implicit_none.cpp | 0 .../Transformations/set_implicit_none.h | 0 .../Transformations/swap_array_dims.cpp | 0 .../Transformations/swap_array_dims.h | 0 .../Transformations/uniq_call_chain_dup.cpp | 0 .../Transformations/uniq_call_chain_dup.h | 0 Sapfor/{_src => src}/Utils/AstWrapper.h | 0 .../{_src => src}/Utils/BoostStackTrace.cpp | 0 Sapfor/{_src => src}/Utils/CommonBlock.h | 0 Sapfor/{_src => src}/Utils/DefUseList.h | 0 Sapfor/{_src => src}/Utils/PassManager.h | 0 Sapfor/{_src => src}/Utils/RationalNum.cpp | 0 Sapfor/{_src => src}/Utils/RationalNum.h | 0 Sapfor/{_src => src}/Utils/SgUtils.cpp | 0 Sapfor/{_src => src}/Utils/SgUtils.h | 0 Sapfor/{_src => src}/Utils/errors.h | 0 Sapfor/{_src => src}/Utils/leak_detector.h | 0 Sapfor/{_src => src}/Utils/module_utils.cpp | 0 Sapfor/{_src => src}/Utils/module_utils.h | 0 .../Utils/russian_errors_text.txt | 0 Sapfor/{_src => src}/Utils/types.h | 0 Sapfor/{_src => src}/Utils/utils.cpp | 0 Sapfor/{_src => src}/Utils/utils.h | 0 Sapfor/{_src => src}/Utils/version.h | 0 .../VerificationCode/CorrectVarDecl.cpp | 0 .../VerificationCode/IncludeChecker.cpp | 0 .../VerificationCode/StructureChecker.cpp | 0 .../VerificationCode/VerifySageStructures.cpp | 0 .../VerificationCode/verifications.h | 0 .../VisualizerCalls/BuildGraph.cpp | 0 .../VisualizerCalls/BuildGraph.h | 0 .../VisualizerCalls/SendMessage.cpp | 0 .../VisualizerCalls/SendMessage.h | 0 .../VisualizerCalls/get_information.cpp | 0 .../VisualizerCalls/get_information.h | 0 .../VisualizerCalls/graphLayout/algebra.cpp | 0 .../VisualizerCalls/graphLayout/algebra.hpp | 0 .../graphLayout/fruchterman_reingold.cpp | 0 .../graphLayout/fruchterman_reingold.hpp | 0 .../graphLayout/kamada_kawai.cpp | 0 .../graphLayout/kamada_kawai.hpp | 0 .../VisualizerCalls/graphLayout/layout.cpp | 0 .../VisualizerCalls/graphLayout/layout.hpp | 0 .../VisualizerCalls/graphLayout/nodesoup.cpp | 0 .../VisualizerCalls/graphLayout/nodesoup.hpp | 0 Sapfor/{_test => tests}/inliner/alex.f | 0 Sapfor/{_test => tests}/inliner/array_sum.f | 0 .../inliner/inlineFunctionWithAllocatable.f90 | 0 Sapfor/{_test => tests}/inliner/sub.f | 0 Sapfor/{_test => tests}/inliner/test.f | 0 .../PRINT_PAR_REGIONS_ERRORS/entry_err1.f | 0 .../PRINT_PAR_REGIONS_ERRORS/entry_err2.f | 0 .../PRINT_PAR_REGIONS_ERRORS/etnry_ok1.f | 0 .../PRINT_PAR_REGIONS_ERRORS/etnry_ok2.f | 0 .../PRINT_PAR_REGIONS_ERRORS/goto_err1.f | 0 .../PRINT_PAR_REGIONS_ERRORS/goto_ok1.f | 0 .../check_args_decl/arg_decl_test_err1.f | 0 .../check_args_decl/arg_decl_test_err2.f | 0 .../check_args_decl/arg_decl_test_err3.f | 0 .../check_args_decl/arg_decl_test_ok1.f | 0 .../check_args_decl/arg_decl_test_ok2.f | 0 .../check_args_decl/arg_decl_test_ok3.f | 0 .../check_args_decl/arg_decl_test_wr1.f | 0 .../check_args_decl/arg_decl_test_wr3.f | 0 .../sapfor/checkpoint/checkpoint.f90 | 0 .../sapfor/checkpoint/checkpoint2.f90 | 0 .../anyArguments_fromLittleToBig.f90 | 0 .../assign_with_sections.f | 0 .../convert_assign_to_loop/simple_assign.f | 0 .../two_dimensional_assign.f | 0 .../convert_expr_to_loop/expr_with_sections.f | 0 .../sapfor/convert_expr_to_loop/simple_expr.f | 0 .../two_dimensional_expr.f | 0 .../sapfor/convert_sum_to_loop/simple_sum.f | 0 .../convert_sum_to_loop/sum_with_sections.f | 0 .../convert_sum_to_loop/two_dimensional_sum.f | 0 .../convert_where_to_loop/simple_where.f | 0 .../two_dimensional_where.f | 0 .../where_with_sections.f | 0 .../create_nested_loops/program.expected.f90 | 0 .../sapfor/create_nested_loops/program.f90 | 0 .../sapfor/create_nested_loops/test.bat | 0 .../sapfor/create_nested_loops/test.sh | 0 .../fission_priv_exp.f90 | 0 .../sapfor/loops_combiner/test_1.for | 0 .../sapfor/loops_combiner/test_2.for | 0 .../sapfor/loops_combiner/test_3.for | 0 .../sapfor/loops_combiner/test_4.for | 0 .../sapfor/loops_combiner/test_5.for | 0 .../merge_regions/array_read_before_write.in | 0 .../merge_regions/array_read_before_write.out | 0 .../sapfor/merge_regions/read_before_read.in | 0 .../sapfor/merge_regions/read_before_read.out | 0 .../merge_regions/read_in_loop_header.in | 0 .../merge_regions/read_in_loop_header.out | 0 .../merge_regions/var_modified_in_fun.in | 0 .../merge_regions/var_modified_in_fun.out | 0 .../merge_regions/var_read_before_write.in | 0 .../merge_regions/var_read_before_write.out | 0 .../sapfor/merge_regions/write_before_read.in | 0 .../merge_regions/write_before_read.out | 0 .../merge_regions/write_before_write.in | 0 .../merge_regions/write_before_write.out | 0 .../sapfor/parameter/magnit_3d.for | 0 .../sapfor/parameter/mycom.for | 0 .../sapfor/parameter/parameter.f90 | 0 .../sapfor/private_removing/test.f | 0 .../private_removing/test_cannot_remove.f | 0 .../sapfor/private_removing/test_cascade.f | 0 Sapfor/{_test => tests}/sapfor/shrink/error.f | 0 .../{_test => tests}/sapfor/shrink/error2.f | 0 .../{_test => tests}/sapfor/shrink/error3.f | 0 .../{_test => tests}/sapfor/shrink/shrink.f | 0 .../{_test => tests}/sapfor/shrink/shrink2.f | 0 .../{_test => tests}/sapfor/shrink/shrink3.f | 0 774 files changed, 4558 insertions(+), 4558 deletions(-) rename Sapfor/{_projects => projects}/FDVM/CMakeLists.txt (100%) rename Sapfor/{_projects => projects}/Parser/CMakeLists.txt (100%) rename Sapfor/{_projects => projects}/SageLib/CMakeLists.txt (100%) rename Sapfor/{_projects => projects}/SageNewSrc/CMakeLists.txt (100%) rename Sapfor/{_projects => projects}/SageOldSrc/CMakeLists.txt (100%) rename Sapfor/{_projects => projects}/Sapc++/Sapc++.sln (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/CMakeLists.txt (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/CMakeLists.txt (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/InlineExpansion/CMakeLists.txt (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/InlineExpansion/dvm_tag.h (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/InlineExpansion/hlp.cpp (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/InlineExpansion/inl_exp.cpp (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/InlineExpansion/inline.h (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/InlineExpansion/inliner.cpp (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/InlineExpansion/intrinsic.h (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/InlineExpansion/makefile.uni (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/InlineExpansion/makefile.win (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Makefile (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/CMakeLists.txt (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/LICENSE (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/Makefile (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/Sage++/CMakeLists.txt (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/Sage++/Makefile (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/Sage++/libSage++.cpp (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/Sage++/makefile.uni (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/Sage++/makefile.win (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/h/Makefile (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/h/bif.h (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/h/compatible.h (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/h/db.h (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/h/db.new.h (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/h/defines.h (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/h/defs.h (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/h/dep.h (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/h/dep_str.h (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/h/dep_struct.h (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/h/elist.h (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/h/f90.h (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/h/fixcray.h (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/h/fm.h (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/h/head (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/h/leak_detector.h (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/h/list.h (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/h/ll.h (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/h/prop.h (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/h/sage.h (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/h/sagearch.h (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/h/sageroot.h (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/h/sets.h (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/h/symb.h (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/h/symblob.h (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/h/tag (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/h/tag.doc (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/h/tag.h (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/h/tag_make (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/h/version.h (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/h/vextern.h (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/h/vparse.h (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/h/vpc.h (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/h/window.h (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/lib/CMakeLists.txt (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/lib/Makefile (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/lib/include/attributes.h (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/lib/include/baseClasses.h (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/lib/include/bif_node.def (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/lib/include/dependence.h (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/lib/include/ext_ann.h (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/lib/include/ext_high.h (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/lib/include/ext_lib.h (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/lib/include/ext_low.h (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/lib/include/ext_mid.h (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/lib/include/extcxx_low.h (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/lib/include/libSage++.h (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/lib/include/macro.h (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/lib/include/sage++callgraph.h (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/lib/include/sage++classhierarchy.h (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/lib/include/sage++extern.h (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/lib/include/sage++proto.h (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/lib/include/sage++user.h (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/lib/include/symb.def (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/lib/include/type.def (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/lib/include/unparse.def (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/lib/include/unparseC++.def (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/lib/include/unparseDVM.def (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/lib/makefile.uni (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/lib/makefile.win (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/lib/newsrc/CMakeLists.txt (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/lib/newsrc/Makefile (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/lib/newsrc/annotate.tab.c (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/lib/newsrc/annotate.tab.h (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/lib/newsrc/annotate.y (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/lib/newsrc/comments.c (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/lib/newsrc/low_level.c (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/lib/newsrc/makefile.uni (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/lib/newsrc/makefile.win (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/lib/newsrc/toolsann.c (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/lib/newsrc/unparse.c (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/lib/oldsrc/CMakeLists.txt (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/lib/oldsrc/Makefile (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/lib/oldsrc/anal_ind.c (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/lib/oldsrc/db.c (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/lib/oldsrc/db_unp.c (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/lib/oldsrc/db_unp_comm.c (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/lib/oldsrc/db_unp_vpc.c (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/lib/oldsrc/dbutils.c (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/lib/oldsrc/garb_coll.c (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/lib/oldsrc/glob_anal.c (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/lib/oldsrc/ker_fun.c (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/lib/oldsrc/list.c (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/lib/oldsrc/make_nodes.c (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/lib/oldsrc/makefile.uni (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/lib/oldsrc/makefile.win (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/lib/oldsrc/mod_ref.c (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/lib/oldsrc/ndeps.c (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/lib/oldsrc/readnodes.c (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/lib/oldsrc/sets.c (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/lib/oldsrc/setutils.c (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/lib/oldsrc/symb_alg.c (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/lib/oldsrc/writenodes.c (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/makefile.uni (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/Sage/makefile.win (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/VS2019proj_deprecated_move_to_sapfor/FDVM/CodeTransformer/CodeTransformer.vcxproj (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/VS2019proj_deprecated_move_to_sapfor/FDVM/CodeTransformer/CodeTransformer.vcxproj.filters (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/VS2019proj_deprecated_move_to_sapfor/FDVM/FDVM.sln (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/VS2019proj_deprecated_move_to_sapfor/FDVM/FDVM/FDVM.vcxproj (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/VS2019proj_deprecated_move_to_sapfor/FDVM/FDVM/FDVM.vcxproj.filters (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/VS2019proj_deprecated_move_to_sapfor/FDVM/NEWsrc/NEWsrc.vcxproj (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/VS2019proj_deprecated_move_to_sapfor/FDVM/NEWsrc/NEWsrc.vcxproj.filters (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/VS2019proj_deprecated_move_to_sapfor/FDVM/OLDsrc/OLDsrc.vcxproj (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/VS2019proj_deprecated_move_to_sapfor/FDVM/OLDsrc/OLDsrc.vcxproj.filters (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/VS2019proj_deprecated_move_to_sapfor/FDVM/Parser/Parser.vcxproj (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/VS2019proj_deprecated_move_to_sapfor/FDVM/Parser/Parser.vcxproj.filters (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/VS2019proj_deprecated_move_to_sapfor/FDVM/SageLib++/SageLib++.vcxproj (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/VS2019proj_deprecated_move_to_sapfor/FDVM/SageLib++/SageLib++.vcxproj.filters (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/VS2019proj_deprecated_move_to_sapfor/FDVM/inlineExp/inlineExp.vcxproj (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/VS2019proj_deprecated_move_to_sapfor/FDVM/inlineExp/inlineExp.vcxproj.filters (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/acrossDebugging/across.cpp (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/examples/gausf.fdv (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/examples/gausgb.fdv (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/examples/gaush.hpf (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/examples/gauswh.fdv (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/examples/jac.fdv (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/examples/jacas.fdv (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/examples/jach.hpf (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/examples/redbf.fdv (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/examples/redbh.hpf (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/examples/sor.fdv (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/examples/task2j.fdv (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/examples/tasks.fdv (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/examples/taskst.fdv (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/fdvm/CMakeLists.txt (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/fdvm/Makefile (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/fdvm/acc.cpp (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/fdvm/acc_across.cpp (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/fdvm/acc_across_analyzer.cpp (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/fdvm/acc_analyzer.cpp (96%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/fdvm/acc_data.cpp (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/fdvm/acc_f2c.cpp (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/fdvm/acc_f2c_handlers.cpp (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/fdvm/acc_index_analyzer.cpp (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/fdvm/acc_rtc.cpp (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/fdvm/acc_unused_code.cpp (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/fdvm/acc_utilities.cpp (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/fdvm/aks_analyzeLoops.cpp (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/fdvm/aks_loopStructure.cpp (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/fdvm/aks_structs.cpp (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/fdvm/calls.cpp (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/fdvm/checkpoint.cpp (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/fdvm/debug.cpp (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/fdvm/dvm.cpp (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/fdvm/funcall.cpp (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/fdvm/help.cpp (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/fdvm/hpf.cpp (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/fdvm/io.cpp (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/fdvm/makefile.uni (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/fdvm/makefile.win (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/fdvm/omp.cpp (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/fdvm/ompdebug.cpp (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/fdvm/parloop.cpp (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/fdvm/stmt.cpp (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/include/acc_across_analyzer.h (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/include/acc_analyzer.h (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/include/acc_data.h (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/include/aks_loopStructure.h (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/include/aks_structs.h (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/include/calls.h (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/include/dvm.h (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/include/dvm_tag.h (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/include/extern.h (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/include/fdvm.h (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/include/fdvm_version.h (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/include/inc.h (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/include/leak_detector.h (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/include/libSageOMP.h (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/include/libdvm.h (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/include/libnum.h (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/include/unparse.hpf (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/include/unparse1.hpf (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/include/user.h (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/makefile.uni (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/makefile.win (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/parser/CMakeLists.txt (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/parser/Makefile (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/parser/cftn.c (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/parser/errors.c (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/parser/facc.gram (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/parser/fdvm.gram (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/parser/fomp.gram (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/parser/fspf.gram (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/parser/ftn.gram (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/parser/gram1.tab.c (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/parser/gram1.tab.h (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/parser/gram1.y (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/parser/hash.c (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/parser/head (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/parser/init.c (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/parser/lexfdvm.c (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/parser/lists.c (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/parser/low_hpf.c (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/parser/makefile.uni (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/parser/makefile.win (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/parser/misc.c (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/parser/stat.c (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/parser/sym.c (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/parser/tag (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/parser/tag.h (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/parser/tokdefs.h (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/parser/tokens (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/parser/types.c (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/parser/unparse_hpf.c (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/sageExample/SwapFors.cpp (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/sageExample/makefile.uni (100%) rename Sapfor/{_projects => projects}/dvm/fdvm/trunk/sageExample/makefile.win (100%) rename Sapfor/{_projects => projects}/dvm/tools/Zlib/CMakeLists.txt (100%) rename Sapfor/{_projects => projects}/dvm/tools/Zlib/include/deflate.h (100%) rename Sapfor/{_projects => projects}/dvm/tools/Zlib/include/infblock.h (100%) rename Sapfor/{_projects => projects}/dvm/tools/Zlib/include/infcodes.h (100%) rename Sapfor/{_projects => projects}/dvm/tools/Zlib/include/inffast.h (100%) rename Sapfor/{_projects => projects}/dvm/tools/Zlib/include/inffixed.h (100%) rename Sapfor/{_projects => projects}/dvm/tools/Zlib/include/inftrees.h (100%) rename Sapfor/{_projects => projects}/dvm/tools/Zlib/include/infutil.h (100%) rename Sapfor/{_projects => projects}/dvm/tools/Zlib/include/trees.h (100%) rename Sapfor/{_projects => projects}/dvm/tools/Zlib/include/zconf.h (100%) rename Sapfor/{_projects => projects}/dvm/tools/Zlib/include/zlib.h (100%) rename Sapfor/{_projects => projects}/dvm/tools/Zlib/include/zutil.h (100%) rename Sapfor/{_projects => projects}/dvm/tools/Zlib/makefile.uni (100%) rename Sapfor/{_projects => projects}/dvm/tools/Zlib/makefile.win (100%) rename Sapfor/{_projects => projects}/dvm/tools/Zlib/src/CMakeLists.txt (100%) rename Sapfor/{_projects => projects}/dvm/tools/Zlib/src/adler32.c (100%) rename Sapfor/{_projects => projects}/dvm/tools/Zlib/src/compress.c (100%) rename Sapfor/{_projects => projects}/dvm/tools/Zlib/src/crc32.c (100%) rename Sapfor/{_projects => projects}/dvm/tools/Zlib/src/deflate.c (100%) rename Sapfor/{_projects => projects}/dvm/tools/Zlib/src/example.c (100%) rename Sapfor/{_projects => projects}/dvm/tools/Zlib/src/gzio.c (100%) rename Sapfor/{_projects => projects}/dvm/tools/Zlib/src/infblock.c (100%) rename Sapfor/{_projects => projects}/dvm/tools/Zlib/src/infcodes.c (100%) rename Sapfor/{_projects => projects}/dvm/tools/Zlib/src/inffast.c (100%) rename Sapfor/{_projects => projects}/dvm/tools/Zlib/src/inflate.c (100%) rename Sapfor/{_projects => projects}/dvm/tools/Zlib/src/inftrees.c (100%) rename Sapfor/{_projects => projects}/dvm/tools/Zlib/src/infutil.c (100%) rename Sapfor/{_projects => projects}/dvm/tools/Zlib/src/maketree.c (100%) rename Sapfor/{_projects => projects}/dvm/tools/Zlib/src/minigzip.c (100%) rename Sapfor/{_projects => projects}/dvm/tools/Zlib/src/trees.c (100%) rename Sapfor/{_projects => projects}/dvm/tools/Zlib/src/uncompr.c (100%) rename Sapfor/{_projects => projects}/dvm/tools/Zlib/src/zutil.c (100%) rename Sapfor/{_projects => projects}/dvm/tools/pppa/branches/dvm4.07/makefile.uni (100%) rename Sapfor/{_projects => projects}/dvm/tools/pppa/branches/dvm4.07/makefile.win (100%) rename Sapfor/{_projects => projects}/dvm/tools/pppa/branches/dvm4.07/src/bool.h (100%) rename Sapfor/{_projects => projects}/dvm/tools/pppa/branches/dvm4.07/src/dvmvers.h (100%) rename Sapfor/{_projects => projects}/dvm/tools/pppa/branches/dvm4.07/src/inter.cpp (100%) rename Sapfor/{_projects => projects}/dvm/tools/pppa/branches/dvm4.07/src/inter.h (100%) rename Sapfor/{_projects => projects}/dvm/tools/pppa/branches/dvm4.07/src/makefile.uni (100%) rename Sapfor/{_projects => projects}/dvm/tools/pppa/branches/dvm4.07/src/makefile.win (100%) rename Sapfor/{_projects => projects}/dvm/tools/pppa/branches/dvm4.07/src/potensyn.cpp (100%) rename Sapfor/{_projects => projects}/dvm/tools/pppa/branches/dvm4.07/src/potensyn.h (100%) rename Sapfor/{_projects => projects}/dvm/tools/pppa/branches/dvm4.07/src/statfile.cpp (100%) rename Sapfor/{_projects => projects}/dvm/tools/pppa/branches/dvm4.07/src/statist.h (100%) rename Sapfor/{_projects => projects}/dvm/tools/pppa/branches/dvm4.07/src/statprintf.cpp (100%) rename Sapfor/{_projects => projects}/dvm/tools/pppa/branches/dvm4.07/src/statprintf.h (100%) rename Sapfor/{_projects => projects}/dvm/tools/pppa/branches/dvm4.07/src/statread.cpp (100%) rename Sapfor/{_projects => projects}/dvm/tools/pppa/branches/dvm4.07/src/statread.h (100%) rename Sapfor/{_projects => projects}/dvm/tools/pppa/branches/dvm4.07/src/strall.h (100%) rename Sapfor/{_projects => projects}/dvm/tools/pppa/branches/dvm4.07/src/sysstat.h (100%) rename Sapfor/{_projects => projects}/dvm/tools/pppa/branches/dvm4.07/src/treeinter.cpp (100%) rename Sapfor/{_projects => projects}/dvm/tools/pppa/branches/dvm4.07/src/treeinter.h (100%) rename Sapfor/{_projects => projects}/dvm/tools/pppa/branches/dvm4.07/src/ver.h (100%) rename Sapfor/{_projects => projects}/dvm/tools/pppa/stuff/Zlib_1.1.3/Include/deflate.h (100%) rename Sapfor/{_projects => projects}/dvm/tools/pppa/stuff/Zlib_1.1.3/Include/infblock.h (100%) rename Sapfor/{_projects => projects}/dvm/tools/pppa/stuff/Zlib_1.1.3/Include/infcodes.h (100%) rename Sapfor/{_projects => projects}/dvm/tools/pppa/stuff/Zlib_1.1.3/Include/inffast.h (100%) rename Sapfor/{_projects => projects}/dvm/tools/pppa/stuff/Zlib_1.1.3/Include/inffixed.h (100%) rename Sapfor/{_projects => projects}/dvm/tools/pppa/stuff/Zlib_1.1.3/Include/inftrees.h (100%) rename Sapfor/{_projects => projects}/dvm/tools/pppa/stuff/Zlib_1.1.3/Include/infutil.h (100%) rename Sapfor/{_projects => projects}/dvm/tools/pppa/stuff/Zlib_1.1.3/Include/trees.h (100%) rename Sapfor/{_projects => projects}/dvm/tools/pppa/stuff/Zlib_1.1.3/Include/zconf.h (100%) rename Sapfor/{_projects => projects}/dvm/tools/pppa/stuff/Zlib_1.1.3/Include/zlib.h (100%) rename Sapfor/{_projects => projects}/dvm/tools/pppa/stuff/Zlib_1.1.3/Include/zutil.h (100%) rename Sapfor/{_projects => projects}/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/Makefile (100%) rename Sapfor/{_projects => projects}/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/Makefile.1 (100%) rename Sapfor/{_projects => projects}/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/adler32.c (100%) rename Sapfor/{_projects => projects}/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/compress.c (100%) rename Sapfor/{_projects => projects}/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/crc32.c (100%) rename Sapfor/{_projects => projects}/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/deflate.c (100%) rename Sapfor/{_projects => projects}/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/example.c (100%) rename Sapfor/{_projects => projects}/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/gzio.c (100%) rename Sapfor/{_projects => projects}/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/infblock.c (100%) rename Sapfor/{_projects => projects}/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/infcodes.c (100%) rename Sapfor/{_projects => projects}/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/inffast.c (100%) rename Sapfor/{_projects => projects}/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/inflate.c (100%) rename Sapfor/{_projects => projects}/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/inftrees.c (100%) rename Sapfor/{_projects => projects}/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/infutil.c (100%) rename Sapfor/{_projects => projects}/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/makefile.uni (100%) rename Sapfor/{_projects => projects}/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/maketree.c (100%) rename Sapfor/{_projects => projects}/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/minigzip.c (100%) rename Sapfor/{_projects => projects}/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/trees.c (100%) rename Sapfor/{_projects => projects}/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/uncompr.c (100%) rename Sapfor/{_projects => projects}/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/zutil.c (100%) rename Sapfor/{_projects => projects}/dvm/tools/pppa/stuff/Zlib_1.1.3/Zlib.mak (100%) rename Sapfor/{_projects => projects}/dvm/tools/pppa/stuff/Zlib_1.1.3/readme (100%) rename Sapfor/{_projects => projects}/dvm/tools/pppa/trunk/CMakeLists.txt (100%) rename Sapfor/{_projects => projects}/dvm/tools/pppa/trunk/makefile.uni (100%) rename Sapfor/{_projects => projects}/dvm/tools/pppa/trunk/makefile.win (100%) rename Sapfor/{_projects => projects}/dvm/tools/pppa/trunk/src/CMakeLists.txt (100%) rename Sapfor/{_projects => projects}/dvm/tools/pppa/trunk/src/LibraryImport.cpp (100%) rename Sapfor/{_projects => projects}/dvm/tools/pppa/trunk/src/LibraryImport.h (100%) rename Sapfor/{_projects => projects}/dvm/tools/pppa/trunk/src/PPPA/PPPA.sln (100%) rename Sapfor/{_projects => projects}/dvm/tools/pppa/trunk/src/PPPA/PPPA/PPPA.vcxproj (100%) rename Sapfor/{_projects => projects}/dvm/tools/pppa/trunk/src/PPPA/PPPA/PPPA.vcxproj.filters (100%) rename Sapfor/{_projects => projects}/dvm/tools/pppa/trunk/src/bool.h (100%) rename Sapfor/{_projects => projects}/dvm/tools/pppa/trunk/src/dvmh_stat.h (100%) rename Sapfor/{_projects => projects}/dvm/tools/pppa/trunk/src/dvmvers.h.in (100%) rename Sapfor/{_projects => projects}/dvm/tools/pppa/trunk/src/inter.cpp (100%) rename Sapfor/{_projects => projects}/dvm/tools/pppa/trunk/src/inter.h (100%) rename Sapfor/{_projects => projects}/dvm/tools/pppa/trunk/src/json.hpp (100%) rename Sapfor/{_projects => projects}/dvm/tools/pppa/trunk/src/makefile.uni (100%) rename Sapfor/{_projects => projects}/dvm/tools/pppa/trunk/src/makefile.win (100%) rename Sapfor/{_projects => projects}/dvm/tools/pppa/trunk/src/makefileJnilib (100%) rename Sapfor/{_projects => projects}/dvm/tools/pppa/trunk/src/potensyn.cpp (100%) rename Sapfor/{_projects => projects}/dvm/tools/pppa/trunk/src/potensyn.h (100%) rename Sapfor/{_projects => projects}/dvm/tools/pppa/trunk/src/stat.cpp (100%) rename Sapfor/{_projects => projects}/dvm/tools/pppa/trunk/src/statfile.cpp (100%) rename Sapfor/{_projects => projects}/dvm/tools/pppa/trunk/src/statinter.cpp (100%) rename Sapfor/{_projects => projects}/dvm/tools/pppa/trunk/src/statinter.h (100%) rename Sapfor/{_projects => projects}/dvm/tools/pppa/trunk/src/statist.h (100%) rename Sapfor/{_projects => projects}/dvm/tools/pppa/trunk/src/statlist.cpp (100%) rename Sapfor/{_projects => projects}/dvm/tools/pppa/trunk/src/statlist.h (100%) rename Sapfor/{_projects => projects}/dvm/tools/pppa/trunk/src/statprintf.cpp (100%) rename Sapfor/{_projects => projects}/dvm/tools/pppa/trunk/src/statprintf.h (100%) rename Sapfor/{_projects => projects}/dvm/tools/pppa/trunk/src/statread.cpp (100%) rename Sapfor/{_projects => projects}/dvm/tools/pppa/trunk/src/statread.h (100%) rename Sapfor/{_projects => projects}/dvm/tools/pppa/trunk/src/strall.h (100%) rename Sapfor/{_projects => projects}/dvm/tools/pppa/trunk/src/sysstat.h (100%) rename Sapfor/{_projects => projects}/dvm/tools/pppa/trunk/src/treeinter.cpp (100%) rename Sapfor/{_projects => projects}/dvm/tools/pppa/trunk/src/treeinter.h (100%) rename Sapfor/{_projects => projects}/dvm/tools/pppa/trunk/src/ver.h (100%) rename Sapfor/{_projects => projects}/paths.default.txt (100%) rename Sapfor/{_src => src}/CFGraph/CFGraph.cpp (100%) rename Sapfor/{_src => src}/CFGraph/CFGraph.h (100%) rename Sapfor/{_src => src}/CFGraph/DataFlow/backward_data_flow.h (100%) rename Sapfor/{_src => src}/CFGraph/DataFlow/backward_data_flow_impl.h (100%) rename Sapfor/{_src => src}/CFGraph/DataFlow/data_flow.h (100%) rename Sapfor/{_src => src}/CFGraph/DataFlow/data_flow_impl.h (100%) rename Sapfor/{_src => src}/CFGraph/IR.cpp (100%) rename Sapfor/{_src => src}/CFGraph/IR.h (100%) rename Sapfor/{_src => src}/CFGraph/RD_subst.cpp (100%) rename Sapfor/{_src => src}/CFGraph/RD_subst.h (100%) rename Sapfor/{_src => src}/CFGraph/live_variable_analysis.cpp (100%) rename Sapfor/{_src => src}/CFGraph/live_variable_analysis.h (100%) rename Sapfor/{_src => src}/CFGraph/private_variables_analysis.cpp (100%) rename Sapfor/{_src => src}/CFGraph/private_variables_analysis.h (100%) rename Sapfor/{_src => src}/CreateInterTree/CreateInterTree.cpp (100%) rename Sapfor/{_src => src}/CreateInterTree/CreateInterTree.h (100%) rename Sapfor/{_src => src}/DirectiveProcessing/directive_analyzer.cpp (100%) rename Sapfor/{_src => src}/DirectiveProcessing/directive_analyzer.h (100%) rename Sapfor/{_src => src}/DirectiveProcessing/directive_creator.cpp (100%) rename Sapfor/{_src => src}/DirectiveProcessing/directive_creator.h (100%) rename Sapfor/{_src => src}/DirectiveProcessing/directive_creator_base.cpp (100%) rename Sapfor/{_src => src}/DirectiveProcessing/directive_omp_parser.cpp (100%) rename Sapfor/{_src => src}/DirectiveProcessing/directive_omp_parser.h (100%) rename Sapfor/{_src => src}/DirectiveProcessing/directive_parser.cpp (100%) rename Sapfor/{_src => src}/DirectiveProcessing/directive_parser.h (100%) rename Sapfor/{_src => src}/DirectiveProcessing/insert_directive.cpp (100%) rename Sapfor/{_src => src}/DirectiveProcessing/insert_directive.h (100%) rename Sapfor/{_src => src}/DirectiveProcessing/remote_access.cpp (100%) rename Sapfor/{_src => src}/DirectiveProcessing/remote_access.h (100%) rename Sapfor/{_src => src}/DirectiveProcessing/remote_access_base.cpp (100%) rename Sapfor/{_src => src}/DirectiveProcessing/shadow.cpp (100%) rename Sapfor/{_src => src}/DirectiveProcessing/shadow.h (100%) rename Sapfor/{_src => src}/DirectiveProcessing/spf_directive_preproc.cpp (100%) rename Sapfor/{_src => src}/Distribution/Array.cpp (100%) rename Sapfor/{_src => src}/Distribution/Array.h (100%) rename Sapfor/{_src => src}/Distribution/ArrayAnalysis.cpp (100%) rename Sapfor/{_src => src}/Distribution/Arrays.h (100%) rename Sapfor/{_src => src}/Distribution/CreateDistributionDirs.cpp (100%) rename Sapfor/{_src => src}/Distribution/CreateDistributionDirs.h (100%) rename Sapfor/{_src => src}/Distribution/Cycle.cpp (100%) rename Sapfor/{_src => src}/Distribution/Cycle.h (100%) rename Sapfor/{_src => src}/Distribution/Distribution.cpp (100%) rename Sapfor/{_src => src}/Distribution/Distribution.h (100%) rename Sapfor/{_src => src}/Distribution/DvmhDirective.cpp (100%) rename Sapfor/{_src => src}/Distribution/DvmhDirective.h (100%) rename Sapfor/{_src => src}/Distribution/DvmhDirectiveBase.cpp (100%) rename Sapfor/{_src => src}/Distribution/DvmhDirectiveBase.h (100%) rename Sapfor/{_src => src}/Distribution/DvmhDirective_func.h (100%) rename Sapfor/{_src => src}/Distribution/GraphCSR.cpp (100%) rename Sapfor/{_src => src}/Distribution/GraphCSR.h (100%) rename Sapfor/{_src => src}/DvmhRegions/DvmhRegion.cpp (100%) rename Sapfor/{_src => src}/DvmhRegions/DvmhRegion.h (100%) rename Sapfor/{_src => src}/DvmhRegions/DvmhRegionInserter.cpp (100%) rename Sapfor/{_src => src}/DvmhRegions/DvmhRegionInserter.h (100%) rename Sapfor/{_src => src}/DvmhRegions/LoopChecker.cpp (100%) rename Sapfor/{_src => src}/DvmhRegions/LoopChecker.h (100%) rename Sapfor/{_src => src}/DvmhRegions/ReadWriteAnalyzer.cpp (100%) rename Sapfor/{_src => src}/DvmhRegions/ReadWriteAnalyzer.h (100%) rename Sapfor/{_src => src}/DvmhRegions/RegionsMerger.cpp (100%) rename Sapfor/{_src => src}/DvmhRegions/RegionsMerger.h (100%) rename Sapfor/{_src => src}/DvmhRegions/TypedSymbol.cpp (100%) rename Sapfor/{_src => src}/DvmhRegions/TypedSymbol.h (100%) rename Sapfor/{_src => src}/DvmhRegions/VarUsages.cpp (100%) rename Sapfor/{_src => src}/DvmhRegions/VarUsages.h (100%) rename Sapfor/{_src => src}/DynamicAnalysis/createParallelRegions.cpp (100%) rename Sapfor/{_src => src}/DynamicAnalysis/createParallelRegions.h (100%) rename Sapfor/{_src => src}/DynamicAnalysis/gCov_parser.cpp (100%) rename Sapfor/{_src => src}/DynamicAnalysis/gCov_parser_func.h (100%) rename Sapfor/{_src => src}/DynamicAnalysis/gcov_info.cpp (100%) rename Sapfor/{_src => src}/DynamicAnalysis/gcov_info.h (100%) rename Sapfor/{_src => src}/ExpressionTransform/control_flow_graph_part.cpp (100%) rename Sapfor/{_src => src}/ExpressionTransform/expr_transform.cpp (100%) rename Sapfor/{_src => src}/ExpressionTransform/expr_transform.h (100%) rename Sapfor/{_src => src}/GraphCall/graph_calls.cpp (100%) rename Sapfor/{_src => src}/GraphCall/graph_calls.h (100%) rename Sapfor/{_src => src}/GraphCall/graph_calls_base.cpp (100%) rename Sapfor/{_src => src}/GraphCall/graph_calls_func.h (100%) rename Sapfor/{_src => src}/GraphLoop/graph_loops.cpp (100%) rename Sapfor/{_src => src}/GraphLoop/graph_loops.h (100%) rename Sapfor/{_src => src}/GraphLoop/graph_loops_base.cpp (100%) rename Sapfor/{_src => src}/GraphLoop/graph_loops_func.h (100%) rename Sapfor/{_src => src}/Inliner/inliner.cpp (100%) rename Sapfor/{_src => src}/Inliner/inliner.h (100%) rename Sapfor/{_src => src}/LoopAnalyzer/allocations_prepoc.cpp (100%) rename Sapfor/{_src => src}/LoopAnalyzer/dep_analyzer.cpp (100%) rename Sapfor/{_src => src}/LoopAnalyzer/loop_analyzer.cpp (100%) rename Sapfor/{_src => src}/LoopAnalyzer/loop_analyzer.h (100%) rename Sapfor/{_src => src}/ParallelizationRegions/ParRegions.cpp (100%) rename Sapfor/{_src => src}/ParallelizationRegions/ParRegions.h (100%) rename Sapfor/{_src => src}/ParallelizationRegions/ParRegions_func.h (100%) rename Sapfor/{_src => src}/ParallelizationRegions/expand_extract_reg.cpp (100%) rename Sapfor/{_src => src}/ParallelizationRegions/expand_extract_reg.h (100%) rename Sapfor/{_src => src}/ParallelizationRegions/resolve_par_reg_conflicts.cpp (100%) rename Sapfor/{_src => src}/ParallelizationRegions/resolve_par_reg_conflicts.h (100%) rename Sapfor/{_src => src}/Predictor/Lib/AMView.cpp (100%) rename Sapfor/{_src => src}/Predictor/Lib/AMView.h (100%) rename Sapfor/{_src => src}/Predictor/Lib/AlignAxis.cpp (100%) rename Sapfor/{_src => src}/Predictor/Lib/AlignAxis.h (100%) rename Sapfor/{_src => src}/Predictor/Lib/BGroup.cpp (100%) rename Sapfor/{_src => src}/Predictor/Lib/BGroup.h (100%) rename Sapfor/{_src => src}/Predictor/Lib/Block.cpp (100%) rename Sapfor/{_src => src}/Predictor/Lib/Block.h (100%) rename Sapfor/{_src => src}/Predictor/Lib/CallInfoStructs.h (100%) rename Sapfor/{_src => src}/Predictor/Lib/CallParams.cpp (100%) rename Sapfor/{_src => src}/Predictor/Lib/CommCost.cpp (100%) rename Sapfor/{_src => src}/Predictor/Lib/CommCost.h (100%) rename Sapfor/{_src => src}/Predictor/Lib/DArray.cpp (100%) rename Sapfor/{_src => src}/Predictor/Lib/DArray.h (100%) rename Sapfor/{_src => src}/Predictor/Lib/DimBound.cpp (100%) rename Sapfor/{_src => src}/Predictor/Lib/DimBound.h (100%) rename Sapfor/{_src => src}/Predictor/Lib/DistAxis.cpp (100%) rename Sapfor/{_src => src}/Predictor/Lib/DistAxis.h (100%) rename Sapfor/{_src => src}/Predictor/Lib/Event.cpp (100%) rename Sapfor/{_src => src}/Predictor/Lib/Event.h (100%) rename Sapfor/{_src => src}/Predictor/Lib/FuncCall.cpp (100%) rename Sapfor/{_src => src}/Predictor/Lib/FuncCall.h (100%) rename Sapfor/{_src => src}/Predictor/Lib/Interval.cpp (100%) rename Sapfor/{_src => src}/Predictor/Lib/Interval.h (100%) rename Sapfor/{_src => src}/Predictor/Lib/IntervalTemplate.cpp (100%) rename Sapfor/{_src => src}/Predictor/Lib/LoopBlock.cpp (100%) rename Sapfor/{_src => src}/Predictor/Lib/LoopBlock.h (100%) rename Sapfor/{_src => src}/Predictor/Lib/LoopLS.cpp (100%) rename Sapfor/{_src => src}/Predictor/Lib/LoopLS.h (100%) rename Sapfor/{_src => src}/Predictor/Lib/Ls.cpp (100%) rename Sapfor/{_src => src}/Predictor/Lib/Ls.h (100%) rename Sapfor/{_src => src}/Predictor/Lib/ModelDArray.cpp (100%) rename Sapfor/{_src => src}/Predictor/Lib/ModelIO.cpp (100%) rename Sapfor/{_src => src}/Predictor/Lib/ModelInterval.cpp (100%) rename Sapfor/{_src => src}/Predictor/Lib/ModelMPS_AM.cpp (100%) rename Sapfor/{_src => src}/Predictor/Lib/ModelParLoop.cpp (100%) rename Sapfor/{_src => src}/Predictor/Lib/ModelReduct.cpp (100%) rename Sapfor/{_src => src}/Predictor/Lib/ModelRegular.cpp (100%) rename Sapfor/{_src => src}/Predictor/Lib/ModelRemAccess.cpp (100%) rename Sapfor/{_src => src}/Predictor/Lib/ModelShadow.cpp (100%) rename Sapfor/{_src => src}/Predictor/Lib/ModelStructs.h (100%) rename Sapfor/{_src => src}/Predictor/Lib/ParLoop.cpp (100%) rename Sapfor/{_src => src}/Predictor/Lib/ParLoop.h (100%) rename Sapfor/{_src => src}/Predictor/Lib/ParseString.cpp (100%) rename Sapfor/{_src => src}/Predictor/Lib/ParseString.h (100%) rename Sapfor/{_src => src}/Predictor/Lib/Processor.cpp (100%) rename Sapfor/{_src => src}/Predictor/Lib/Processor.h (100%) rename Sapfor/{_src => src}/Predictor/Lib/Ps.cpp (100%) rename Sapfor/{_src => src}/Predictor/Lib/Ps.h (100%) rename Sapfor/{_src => src}/Predictor/Lib/RedGroup.cpp (100%) rename Sapfor/{_src => src}/Predictor/Lib/RedGroup.h (100%) rename Sapfor/{_src => src}/Predictor/Lib/RedVar.cpp (100%) rename Sapfor/{_src => src}/Predictor/Lib/RedVar.h (100%) rename Sapfor/{_src => src}/Predictor/Lib/RemAccessBuf.cpp (100%) rename Sapfor/{_src => src}/Predictor/Lib/RemAccessBuf.h (100%) rename Sapfor/{_src => src}/Predictor/Lib/Space.cpp (100%) rename Sapfor/{_src => src}/Predictor/Lib/Space.h (100%) rename Sapfor/{_src => src}/Predictor/Lib/StdAfx.h (100%) rename Sapfor/{_src => src}/Predictor/Lib/TraceLine.cpp (100%) rename Sapfor/{_src => src}/Predictor/Lib/TraceLine.h (100%) rename Sapfor/{_src => src}/Predictor/Lib/Ver.h (100%) rename Sapfor/{_src => src}/Predictor/Lib/Vm.cpp (100%) rename Sapfor/{_src => src}/Predictor/Lib/Vm.h (100%) rename Sapfor/{_src => src}/Predictor/Lib/adler32.c (100%) rename Sapfor/{_src => src}/Predictor/Lib/compress.c (100%) rename Sapfor/{_src => src}/Predictor/Lib/crc32.c (100%) rename Sapfor/{_src => src}/Predictor/Lib/deflate.c (100%) rename Sapfor/{_src => src}/Predictor/Lib/deflate.h (100%) rename Sapfor/{_src => src}/Predictor/Lib/gzio.c (100%) rename Sapfor/{_src => src}/Predictor/Lib/infblock.c (100%) rename Sapfor/{_src => src}/Predictor/Lib/infblock.h (100%) rename Sapfor/{_src => src}/Predictor/Lib/infcodes.c (100%) rename Sapfor/{_src => src}/Predictor/Lib/infcodes.h (100%) rename Sapfor/{_src => src}/Predictor/Lib/inffast.c (100%) rename Sapfor/{_src => src}/Predictor/Lib/inffast.h (100%) rename Sapfor/{_src => src}/Predictor/Lib/inffixed.h (100%) rename Sapfor/{_src => src}/Predictor/Lib/inflate.c (100%) rename Sapfor/{_src => src}/Predictor/Lib/inftrees.c (100%) rename Sapfor/{_src => src}/Predictor/Lib/inftrees.h (100%) rename Sapfor/{_src => src}/Predictor/Lib/infutil.c (100%) rename Sapfor/{_src => src}/Predictor/Lib/infutil.h (100%) rename Sapfor/{_src => src}/Predictor/Lib/intersection.cpp (100%) rename Sapfor/{_src => src}/Predictor/Lib/predictor.cpp (100%) rename Sapfor/{_src => src}/Predictor/Lib/trees.c (100%) rename Sapfor/{_src => src}/Predictor/Lib/trees.h (100%) rename Sapfor/{_src => src}/Predictor/Lib/uncompr.c (100%) rename Sapfor/{_src => src}/Predictor/Lib/zconf.h (100%) rename Sapfor/{_src => src}/Predictor/Lib/zlib.h (100%) rename Sapfor/{_src => src}/Predictor/Lib/zutil.c (100%) rename Sapfor/{_src => src}/Predictor/Lib/zutil.h (100%) rename Sapfor/{_src => src}/Predictor/PredictScheme.cpp (100%) rename Sapfor/{_src => src}/Predictor/PredictScheme.h (100%) rename Sapfor/{_src => src}/Predictor/PredictorInterface.h (100%) rename Sapfor/{_src => src}/Predictor/PredictorModel.cpp (100%) rename Sapfor/{_src => src}/Predictor/PredictorModel.h (100%) rename Sapfor/{_src => src}/PrivateAnalyzer/private_analyzer.cpp (100%) rename Sapfor/{_src => src}/PrivateAnalyzer/private_analyzer.h (100%) rename Sapfor/{_src => src}/ProjectManipulation/ConvertFiles.cpp (100%) rename Sapfor/{_src => src}/ProjectManipulation/ConvertFiles.h (100%) rename Sapfor/{_src => src}/ProjectManipulation/FileInfo.cpp (100%) rename Sapfor/{_src => src}/ProjectManipulation/FileInfo.h (100%) rename Sapfor/{_src => src}/ProjectManipulation/ParseFiles.cpp (100%) rename Sapfor/{_src => src}/ProjectManipulation/ParseFiles.h (100%) rename Sapfor/{_src => src}/ProjectManipulation/PerfAnalyzer.cpp (100%) rename Sapfor/{_src => src}/ProjectManipulation/PerfAnalyzer.h (100%) rename Sapfor/{_src => src}/ProjectManipulation/StdCapture.h (100%) rename Sapfor/{_src => src}/ProjectParameters/projectParameters.cpp (100%) rename Sapfor/{_src => src}/ProjectParameters/projectParameters.h (100%) rename Sapfor/{_src => src}/RenameSymbols/rename_symbols.cpp (100%) rename Sapfor/{_src => src}/RenameSymbols/rename_symbols.h (100%) rename Sapfor/{_src => src}/SageAnalysisTool/Makefile (100%) rename Sapfor/{_src => src}/SageAnalysisTool/OmegaForSage/Makefile (100%) rename Sapfor/{_src => src}/SageAnalysisTool/OmegaForSage/README (100%) rename Sapfor/{_src => src}/SageAnalysisTool/OmegaForSage/add-assert.cpp (100%) rename Sapfor/{_src => src}/SageAnalysisTool/OmegaForSage/affine.cpp (100%) rename Sapfor/{_src => src}/SageAnalysisTool/OmegaForSage/cover.cpp (100%) rename Sapfor/{_src => src}/SageAnalysisTool/OmegaForSage/ddomega-build.cpp (100%) rename Sapfor/{_src => src}/SageAnalysisTool/OmegaForSage/ddomega-use.cpp (100%) rename Sapfor/{_src => src}/SageAnalysisTool/OmegaForSage/ddomega.cpp (100%) rename Sapfor/{_src => src}/SageAnalysisTool/OmegaForSage/debug.cpp (100%) rename Sapfor/{_src => src}/SageAnalysisTool/OmegaForSage/include/Exit.h (100%) rename Sapfor/{_src => src}/SageAnalysisTool/OmegaForSage/include/add-assert.h (100%) rename Sapfor/{_src => src}/SageAnalysisTool/OmegaForSage/include/affine.h (100%) rename Sapfor/{_src => src}/SageAnalysisTool/OmegaForSage/include/cover.h (100%) rename Sapfor/{_src => src}/SageAnalysisTool/OmegaForSage/include/dddir.h (100%) rename Sapfor/{_src => src}/SageAnalysisTool/OmegaForSage/include/ddomega-build.h (100%) rename Sapfor/{_src => src}/SageAnalysisTool/OmegaForSage/include/ddomega-use.h (100%) rename Sapfor/{_src => src}/SageAnalysisTool/OmegaForSage/include/ddomega.h (100%) rename Sapfor/{_src => src}/SageAnalysisTool/OmegaForSage/include/debug.h (100%) rename Sapfor/{_src => src}/SageAnalysisTool/OmegaForSage/include/flags.h (100%) rename Sapfor/{_src => src}/SageAnalysisTool/OmegaForSage/include/ip.h (100%) rename Sapfor/{_src => src}/SageAnalysisTool/OmegaForSage/include/kill.h (100%) rename Sapfor/{_src => src}/SageAnalysisTool/OmegaForSage/include/lang-interf.generic (100%) rename Sapfor/{_src => src}/SageAnalysisTool/OmegaForSage/include/lang-interf.h (100%) rename Sapfor/{_src => src}/SageAnalysisTool/OmegaForSage/include/missing.h (100%) rename Sapfor/{_src => src}/SageAnalysisTool/OmegaForSage/include/omega2flags.h (100%) rename Sapfor/{_src => src}/SageAnalysisTool/OmegaForSage/include/portable.h (100%) rename Sapfor/{_src => src}/SageAnalysisTool/OmegaForSage/include/portable.h.origine (100%) rename Sapfor/{_src => src}/SageAnalysisTool/OmegaForSage/include/range.h (100%) rename Sapfor/{_src => src}/SageAnalysisTool/OmegaForSage/include/refine.h (100%) rename Sapfor/{_src => src}/SageAnalysisTool/OmegaForSage/include/screen.h (100%) rename Sapfor/{_src => src}/SageAnalysisTool/OmegaForSage/include/timeTrials.h (100%) rename Sapfor/{_src => src}/SageAnalysisTool/OmegaForSage/ip.cpp (100%) rename Sapfor/{_src => src}/SageAnalysisTool/OmegaForSage/kill.cpp (100%) rename Sapfor/{_src => src}/SageAnalysisTool/OmegaForSage/refine.cpp (100%) rename Sapfor/{_src => src}/SageAnalysisTool/OmegaForSage/sagedriver.cpp (100%) rename Sapfor/{_src => src}/SageAnalysisTool/README (100%) rename Sapfor/{_src => src}/SageAnalysisTool/annotationDriver.cpp (100%) rename Sapfor/{_src => src}/SageAnalysisTool/annotationDriver.h (100%) rename Sapfor/{_src => src}/SageAnalysisTool/arrayRef.cpp (100%) rename Sapfor/{_src => src}/SageAnalysisTool/arrayRef.h (100%) rename Sapfor/{_src => src}/SageAnalysisTool/computeInducVar.cpp (100%) rename Sapfor/{_src => src}/SageAnalysisTool/constanteProp.cpp (100%) rename Sapfor/{_src => src}/SageAnalysisTool/constanteSet.h (100%) rename Sapfor/{_src => src}/SageAnalysisTool/controlFlow.cpp (100%) rename Sapfor/{_src => src}/SageAnalysisTool/defUse.cpp (100%) rename Sapfor/{_src => src}/SageAnalysisTool/definesValues.h (100%) rename Sapfor/{_src => src}/SageAnalysisTool/definitionSet.h (100%) rename Sapfor/{_src => src}/SageAnalysisTool/depGraph.cpp (100%) rename Sapfor/{_src => src}/SageAnalysisTool/depGraph.h (100%) rename Sapfor/{_src => src}/SageAnalysisTool/depInterface.cpp (100%) rename Sapfor/{_src => src}/SageAnalysisTool/depInterface.h (100%) rename Sapfor/{_src => src}/SageAnalysisTool/depInterfaceExt.h (100%) rename Sapfor/{_src => src}/SageAnalysisTool/dependence.cpp (100%) rename Sapfor/{_src => src}/SageAnalysisTool/dependence.h (100%) rename Sapfor/{_src => src}/SageAnalysisTool/flowAnalysis.cpp (100%) rename Sapfor/{_src => src}/SageAnalysisTool/inducVar.h (100%) rename Sapfor/{_src => src}/SageAnalysisTool/intrinsic.cpp (100%) rename Sapfor/{_src => src}/SageAnalysisTool/intrinsic.h (100%) rename Sapfor/{_src => src}/SageAnalysisTool/invariant.cpp (100%) rename Sapfor/{_src => src}/SageAnalysisTool/loopTransform.cpp (100%) rename Sapfor/{_src => src}/SageAnalysisTool/reductionCode.h (100%) rename Sapfor/{_src => src}/SageAnalysisTool/set.cpp (100%) rename Sapfor/{_src => src}/SageAnalysisTool/set.h (100%) rename Sapfor/{_src => src}/Sapfor.cpp (100%) rename Sapfor/{_src => src}/Sapfor.h (100%) rename Sapfor/{_src => src}/SapforData.h (100%) rename Sapfor/{_src => src}/Server/checkUniq.cpp (100%) rename Sapfor/{_src => src}/Server/server.cpp (100%) rename Sapfor/{_src => src}/Server/spf_icon.ico (100%) rename Sapfor/{_src => src}/Transformations/array_assign_to_loop.cpp (100%) rename Sapfor/{_src => src}/Transformations/array_assign_to_loop.h (100%) rename Sapfor/{_src => src}/Transformations/checkpoints.cpp (100%) rename Sapfor/{_src => src}/Transformations/checkpoints.h (100%) rename Sapfor/{_src => src}/Transformations/convert_to_c.cpp (100%) rename Sapfor/{_src => src}/Transformations/convert_to_c.h (100%) rename Sapfor/{_src => src}/Transformations/dead_code.cpp (100%) rename Sapfor/{_src => src}/Transformations/dead_code.h (100%) rename Sapfor/{_src => src}/Transformations/enddo_loop_converter.cpp (100%) rename Sapfor/{_src => src}/Transformations/enddo_loop_converter.h (100%) rename Sapfor/{_src => src}/Transformations/fix_common_blocks.cpp (100%) rename Sapfor/{_src => src}/Transformations/fix_common_blocks.h (100%) rename Sapfor/{_src => src}/Transformations/function_purifying.cpp (100%) rename Sapfor/{_src => src}/Transformations/function_purifying.h (100%) rename Sapfor/{_src => src}/Transformations/loop_transform.cpp (100%) rename Sapfor/{_src => src}/Transformations/loop_transform.h (100%) rename Sapfor/{_src => src}/Transformations/loops_combiner.cpp (100%) rename Sapfor/{_src => src}/Transformations/loops_combiner.h (100%) rename Sapfor/{_src => src}/Transformations/loops_splitter.cpp (100%) rename Sapfor/{_src => src}/Transformations/loops_splitter.h (100%) rename Sapfor/{_src => src}/Transformations/loops_unrolling.cpp (100%) rename Sapfor/{_src => src}/Transformations/loops_unrolling.h (100%) rename Sapfor/{_src => src}/Transformations/private_arrays_resizing.cpp (100%) rename Sapfor/{_src => src}/Transformations/private_arrays_resizing.h (100%) rename Sapfor/{_src => src}/Transformations/private_removing.cpp (100%) rename Sapfor/{_src => src}/Transformations/private_removing.h (100%) rename Sapfor/{_src => src}/Transformations/replace_dist_arrays_in_io.cpp (100%) rename Sapfor/{_src => src}/Transformations/replace_dist_arrays_in_io.h (100%) rename Sapfor/{_src => src}/Transformations/set_implicit_none.cpp (100%) rename Sapfor/{_src => src}/Transformations/set_implicit_none.h (100%) rename Sapfor/{_src => src}/Transformations/swap_array_dims.cpp (100%) rename Sapfor/{_src => src}/Transformations/swap_array_dims.h (100%) rename Sapfor/{_src => src}/Transformations/uniq_call_chain_dup.cpp (100%) rename Sapfor/{_src => src}/Transformations/uniq_call_chain_dup.h (100%) rename Sapfor/{_src => src}/Utils/AstWrapper.h (100%) rename Sapfor/{_src => src}/Utils/BoostStackTrace.cpp (100%) rename Sapfor/{_src => src}/Utils/CommonBlock.h (100%) rename Sapfor/{_src => src}/Utils/DefUseList.h (100%) rename Sapfor/{_src => src}/Utils/PassManager.h (100%) rename Sapfor/{_src => src}/Utils/RationalNum.cpp (100%) rename Sapfor/{_src => src}/Utils/RationalNum.h (100%) rename Sapfor/{_src => src}/Utils/SgUtils.cpp (100%) rename Sapfor/{_src => src}/Utils/SgUtils.h (100%) rename Sapfor/{_src => src}/Utils/errors.h (100%) rename Sapfor/{_src => src}/Utils/leak_detector.h (100%) rename Sapfor/{_src => src}/Utils/module_utils.cpp (100%) rename Sapfor/{_src => src}/Utils/module_utils.h (100%) rename Sapfor/{_src => src}/Utils/russian_errors_text.txt (100%) rename Sapfor/{_src => src}/Utils/types.h (100%) rename Sapfor/{_src => src}/Utils/utils.cpp (100%) rename Sapfor/{_src => src}/Utils/utils.h (100%) rename Sapfor/{_src => src}/Utils/version.h (100%) rename Sapfor/{_src => src}/VerificationCode/CorrectVarDecl.cpp (100%) rename Sapfor/{_src => src}/VerificationCode/IncludeChecker.cpp (100%) rename Sapfor/{_src => src}/VerificationCode/StructureChecker.cpp (100%) rename Sapfor/{_src => src}/VerificationCode/VerifySageStructures.cpp (100%) rename Sapfor/{_src => src}/VerificationCode/verifications.h (100%) rename Sapfor/{_src => src}/VisualizerCalls/BuildGraph.cpp (100%) rename Sapfor/{_src => src}/VisualizerCalls/BuildGraph.h (100%) rename Sapfor/{_src => src}/VisualizerCalls/SendMessage.cpp (100%) rename Sapfor/{_src => src}/VisualizerCalls/SendMessage.h (100%) rename Sapfor/{_src => src}/VisualizerCalls/get_information.cpp (100%) rename Sapfor/{_src => src}/VisualizerCalls/get_information.h (100%) rename Sapfor/{_src => src}/VisualizerCalls/graphLayout/algebra.cpp (100%) rename Sapfor/{_src => src}/VisualizerCalls/graphLayout/algebra.hpp (100%) rename Sapfor/{_src => src}/VisualizerCalls/graphLayout/fruchterman_reingold.cpp (100%) rename Sapfor/{_src => src}/VisualizerCalls/graphLayout/fruchterman_reingold.hpp (100%) rename Sapfor/{_src => src}/VisualizerCalls/graphLayout/kamada_kawai.cpp (100%) rename Sapfor/{_src => src}/VisualizerCalls/graphLayout/kamada_kawai.hpp (100%) rename Sapfor/{_src => src}/VisualizerCalls/graphLayout/layout.cpp (100%) rename Sapfor/{_src => src}/VisualizerCalls/graphLayout/layout.hpp (100%) rename Sapfor/{_src => src}/VisualizerCalls/graphLayout/nodesoup.cpp (100%) rename Sapfor/{_src => src}/VisualizerCalls/graphLayout/nodesoup.hpp (100%) rename Sapfor/{_test => tests}/inliner/alex.f (100%) rename Sapfor/{_test => tests}/inliner/array_sum.f (100%) rename Sapfor/{_test => tests}/inliner/inlineFunctionWithAllocatable.f90 (100%) rename Sapfor/{_test => tests}/inliner/sub.f (100%) rename Sapfor/{_test => tests}/inliner/test.f (100%) rename Sapfor/{_test => tests}/sapfor/PRINT_PAR_REGIONS_ERRORS/entry_err1.f (100%) rename Sapfor/{_test => tests}/sapfor/PRINT_PAR_REGIONS_ERRORS/entry_err2.f (100%) rename Sapfor/{_test => tests}/sapfor/PRINT_PAR_REGIONS_ERRORS/etnry_ok1.f (100%) rename Sapfor/{_test => tests}/sapfor/PRINT_PAR_REGIONS_ERRORS/etnry_ok2.f (100%) rename Sapfor/{_test => tests}/sapfor/PRINT_PAR_REGIONS_ERRORS/goto_err1.f (100%) rename Sapfor/{_test => tests}/sapfor/PRINT_PAR_REGIONS_ERRORS/goto_ok1.f (100%) rename Sapfor/{_test => tests}/sapfor/check_args_decl/arg_decl_test_err1.f (100%) rename Sapfor/{_test => tests}/sapfor/check_args_decl/arg_decl_test_err2.f (100%) rename Sapfor/{_test => tests}/sapfor/check_args_decl/arg_decl_test_err3.f (100%) rename Sapfor/{_test => tests}/sapfor/check_args_decl/arg_decl_test_ok1.f (100%) rename Sapfor/{_test => tests}/sapfor/check_args_decl/arg_decl_test_ok2.f (100%) rename Sapfor/{_test => tests}/sapfor/check_args_decl/arg_decl_test_ok3.f (100%) rename Sapfor/{_test => tests}/sapfor/check_args_decl/arg_decl_test_wr1.f (100%) rename Sapfor/{_test => tests}/sapfor/check_args_decl/arg_decl_test_wr3.f (100%) rename Sapfor/{_test => tests}/sapfor/checkpoint/checkpoint.f90 (100%) rename Sapfor/{_test => tests}/sapfor/checkpoint/checkpoint2.f90 (100%) rename Sapfor/{_test => tests}/sapfor/convert_assign_to_loop/anyArguments_fromLittleToBig.f90 (100%) rename Sapfor/{_test => tests}/sapfor/convert_assign_to_loop/assign_with_sections.f (100%) rename Sapfor/{_test => tests}/sapfor/convert_assign_to_loop/simple_assign.f (100%) rename Sapfor/{_test => tests}/sapfor/convert_assign_to_loop/two_dimensional_assign.f (100%) rename Sapfor/{_test => tests}/sapfor/convert_expr_to_loop/expr_with_sections.f (100%) rename Sapfor/{_test => tests}/sapfor/convert_expr_to_loop/simple_expr.f (100%) rename Sapfor/{_test => tests}/sapfor/convert_expr_to_loop/two_dimensional_expr.f (100%) rename Sapfor/{_test => tests}/sapfor/convert_sum_to_loop/simple_sum.f (100%) rename Sapfor/{_test => tests}/sapfor/convert_sum_to_loop/sum_with_sections.f (100%) rename Sapfor/{_test => tests}/sapfor/convert_sum_to_loop/two_dimensional_sum.f (100%) rename Sapfor/{_test => tests}/sapfor/convert_where_to_loop/simple_where.f (100%) rename Sapfor/{_test => tests}/sapfor/convert_where_to_loop/two_dimensional_where.f (100%) rename Sapfor/{_test => tests}/sapfor/convert_where_to_loop/where_with_sections.f (100%) rename Sapfor/{_test => tests}/sapfor/create_nested_loops/program.expected.f90 (100%) rename Sapfor/{_test => tests}/sapfor/create_nested_loops/program.f90 (100%) rename Sapfor/{_test => tests}/sapfor/create_nested_loops/test.bat (100%) rename Sapfor/{_test => tests}/sapfor/create_nested_loops/test.sh (100%) rename Sapfor/{_test => tests}/sapfor/fission_and_private_exp/fission_priv_exp.f90 (100%) rename Sapfor/{_test => tests}/sapfor/loops_combiner/test_1.for (100%) rename Sapfor/{_test => tests}/sapfor/loops_combiner/test_2.for (100%) rename Sapfor/{_test => tests}/sapfor/loops_combiner/test_3.for (100%) rename Sapfor/{_test => tests}/sapfor/loops_combiner/test_4.for (100%) rename Sapfor/{_test => tests}/sapfor/loops_combiner/test_5.for (100%) rename Sapfor/{_test => tests}/sapfor/merge_regions/array_read_before_write.in (100%) rename Sapfor/{_test => tests}/sapfor/merge_regions/array_read_before_write.out (100%) rename Sapfor/{_test => tests}/sapfor/merge_regions/read_before_read.in (100%) rename Sapfor/{_test => tests}/sapfor/merge_regions/read_before_read.out (100%) rename Sapfor/{_test => tests}/sapfor/merge_regions/read_in_loop_header.in (100%) rename Sapfor/{_test => tests}/sapfor/merge_regions/read_in_loop_header.out (100%) rename Sapfor/{_test => tests}/sapfor/merge_regions/var_modified_in_fun.in (100%) rename Sapfor/{_test => tests}/sapfor/merge_regions/var_modified_in_fun.out (100%) rename Sapfor/{_test => tests}/sapfor/merge_regions/var_read_before_write.in (100%) rename Sapfor/{_test => tests}/sapfor/merge_regions/var_read_before_write.out (100%) rename Sapfor/{_test => tests}/sapfor/merge_regions/write_before_read.in (100%) rename Sapfor/{_test => tests}/sapfor/merge_regions/write_before_read.out (100%) rename Sapfor/{_test => tests}/sapfor/merge_regions/write_before_write.in (100%) rename Sapfor/{_test => tests}/sapfor/merge_regions/write_before_write.out (100%) rename Sapfor/{_test => tests}/sapfor/parameter/magnit_3d.for (100%) rename Sapfor/{_test => tests}/sapfor/parameter/mycom.for (100%) rename Sapfor/{_test => tests}/sapfor/parameter/parameter.f90 (100%) rename Sapfor/{_test => tests}/sapfor/private_removing/test.f (100%) rename Sapfor/{_test => tests}/sapfor/private_removing/test_cannot_remove.f (100%) rename Sapfor/{_test => tests}/sapfor/private_removing/test_cascade.f (100%) rename Sapfor/{_test => tests}/sapfor/shrink/error.f (100%) rename Sapfor/{_test => tests}/sapfor/shrink/error2.f (100%) rename Sapfor/{_test => tests}/sapfor/shrink/error3.f (100%) rename Sapfor/{_test => tests}/sapfor/shrink/shrink.f (100%) rename Sapfor/{_test => tests}/sapfor/shrink/shrink2.f (100%) rename Sapfor/{_test => tests}/sapfor/shrink/shrink3.f (100%) diff --git a/Sapfor/CMakeLists.txt b/Sapfor/CMakeLists.txt index 90da4c5..86e51fd 100644 --- a/Sapfor/CMakeLists.txt +++ b/Sapfor/CMakeLists.txt @@ -13,24 +13,24 @@ add_definitions("-D YYDEBUG") set(CMAKE_CXX_STANDARD 17) -set(fdvm_include _projects/dvm/fdvm/trunk/include) -set(fdvm_sources _projects//dvm/fdvm/trunk/fdvm/) -set(sage_include_1 _projects/dvm/fdvm/trunk/Sage/lib/include) -set(sage_include_2 _projects/dvm/fdvm/trunk/Sage/h/) -set(libdb_sources _projects/dvm/fdvm/trunk/Sage/lib/oldsrc) -set(sage_sources _projects/dvm/fdvm/trunk/Sage/lib/newsrc) -set(sagepp_sources _projects/dvm/fdvm/trunk/Sage/Sage++) -set(parser_sources _projects/dvm/fdvm/trunk/parser) -set(pppa_sources _projects/dvm/tools/pppa/trunk/src) -set(zlib_sources _projects/dvm/tools/Zlib) +set(fdvm_include projects/dvm/fdvm/trunk/include) +set(fdvm_sources projects//dvm/fdvm/trunk/fdvm/) +set(sage_include_1 projects/dvm/fdvm/trunk/Sage/lib/include) +set(sage_include_2 projects/dvm/fdvm/trunk/Sage/h/) +set(libdb_sources projects/dvm/fdvm/trunk/Sage/lib/oldsrc) +set(sage_sources projects/dvm/fdvm/trunk/Sage/lib/newsrc) +set(sagepp_sources projects/dvm/fdvm/trunk/Sage/Sage++) +set(parser_sources projects/dvm/fdvm/trunk/parser) +set(pppa_sources projects/dvm/tools/pppa/trunk/src) +set(zlib_sources projects/dvm/tools/Zlib) # Read pathes to external sapfor directories -#if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/_projects/paths.txt") +#if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/projects/paths.txt") # message("Found paths.txt, using custom paths.") -# FILE(STRINGS ./_projects/paths.txt SAPFOR_PATHS) +# FILE(STRINGS ./projects/paths.txt SAPFOR_PATHS) #else () # message("Not found paths.txt, using default paths.") -# FILE(STRINGS ./_projects/paths.default.txt SAPFOR_PATHS) +# FILE(STRINGS ./projects/paths.default.txt SAPFOR_PATHS) #endif () foreach (NameAndValue ${SAPFOR_PATHS}) @@ -45,7 +45,7 @@ foreach (NameAndValue ${SAPFOR_PATHS}) message("Using ${Name} ${${Name}}") endforeach () -include_directories(_src) +include_directories(src) #Sage lib includes include_directories(${fdvm_include}) include_directories(${sage_include_1}) @@ -55,81 +55,81 @@ include_directories(${zlib_sources}/include) #PPPA includes include_directories(${pppa_sources}) -set(PR_PARAM _src/ProjectParameters/projectParameters.cpp - _src/ProjectParameters/projectParameters.h) +set(PR_PARAM src/ProjectParameters/projectParameters.cpp + src/ProjectParameters/projectParameters.h) -set(GR_LAYOUT _src/VisualizerCalls/graphLayout/algebra.cpp - _src/VisualizerCalls/graphLayout/algebra.hpp - _src/VisualizerCalls/graphLayout/fruchterman_reingold.cpp - _src/VisualizerCalls/graphLayout/fruchterman_reingold.hpp - _src/VisualizerCalls/graphLayout/kamada_kawai.cpp - _src/VisualizerCalls/graphLayout/kamada_kawai.hpp - _src/VisualizerCalls/graphLayout/layout.cpp - _src/VisualizerCalls/graphLayout/layout.hpp - _src/VisualizerCalls/graphLayout/nodesoup.cpp - _src/VisualizerCalls/graphLayout/nodesoup.hpp) +set(GR_LAYOUT src/VisualizerCalls/graphLayout/algebra.cpp + src/VisualizerCalls/graphLayout/algebra.hpp + src/VisualizerCalls/graphLayout/fruchterman_reingold.cpp + src/VisualizerCalls/graphLayout/fruchterman_reingold.hpp + src/VisualizerCalls/graphLayout/kamada_kawai.cpp + src/VisualizerCalls/graphLayout/kamada_kawai.hpp + src/VisualizerCalls/graphLayout/layout.cpp + src/VisualizerCalls/graphLayout/layout.hpp + src/VisualizerCalls/graphLayout/nodesoup.cpp + src/VisualizerCalls/graphLayout/nodesoup.hpp) -set(VS_CALLS _src/VisualizerCalls/get_information.cpp - _src/VisualizerCalls/get_information.h - _src/VisualizerCalls/SendMessage.cpp - _src/VisualizerCalls/SendMessage.h - _src/VisualizerCalls/BuildGraph.cpp - _src/VisualizerCalls/BuildGraph.h) +set(VS_CALLS src/VisualizerCalls/get_information.cpp + src/VisualizerCalls/get_information.h + src/VisualizerCalls/SendMessage.cpp + src/VisualizerCalls/SendMessage.h + src/VisualizerCalls/BuildGraph.cpp + src/VisualizerCalls/BuildGraph.h) -set(VERIF _src/VerificationCode/CorrectVarDecl.cpp - _src/VerificationCode/IncludeChecker.cpp - _src/VerificationCode/StructureChecker.cpp - _src/VerificationCode/VerifySageStructures.cpp - _src/VerificationCode/verifications.h) +set(VERIF src/VerificationCode/CorrectVarDecl.cpp + src/VerificationCode/IncludeChecker.cpp + src/VerificationCode/StructureChecker.cpp + src/VerificationCode/VerifySageStructures.cpp + src/VerificationCode/verifications.h) -set(UTILS _src/Utils/AstWrapper.h - _src/Utils/BoostStackTrace.cpp - _src/Utils/CommonBlock.h - _src/Utils/DefUseList.h - _src/Utils/errors.h - _src/Utils/leak_detector.h - _src/Utils/RationalNum.cpp - _src/Utils/RationalNum.h - _src/Utils/SgUtils.cpp - _src/Utils/SgUtils.h - _src/Utils/types.h - _src/Utils/utils.cpp - _src/Utils/utils.h - _src/Utils/version.h - _src/Utils/module_utils.h - _src/Utils/module_utils.cpp) +set(UTILS src/Utils/AstWrapper.h + src/Utils/BoostStackTrace.cpp + src/Utils/CommonBlock.h + src/Utils/DefUseList.h + src/Utils/errors.h + src/Utils/leak_detector.h + src/Utils/RationalNum.cpp + src/Utils/RationalNum.h + src/Utils/SgUtils.cpp + src/Utils/SgUtils.h + src/Utils/types.h + src/Utils/utils.cpp + src/Utils/utils.h + src/Utils/version.h + src/Utils/module_utils.h + src/Utils/module_utils.cpp) -set(OMEGA _src/SageAnalysisTool/OmegaForSage/add-assert.cpp - _src/SageAnalysisTool/OmegaForSage/affine.cpp - _src/SageAnalysisTool/OmegaForSage/cover.cpp - _src/SageAnalysisTool/OmegaForSage/ddomega-build.cpp - _src/SageAnalysisTool/OmegaForSage/ddomega-use.cpp - _src/SageAnalysisTool/OmegaForSage/ddomega.cpp - _src/SageAnalysisTool/OmegaForSage/debug.cpp - _src/SageAnalysisTool/OmegaForSage/ip.cpp - _src/SageAnalysisTool/OmegaForSage/kill.cpp - _src/SageAnalysisTool/OmegaForSage/refine.cpp - _src/SageAnalysisTool/OmegaForSage/sagedriver.cpp - _src/SageAnalysisTool/annotationDriver.cpp - _src/SageAnalysisTool/arrayRef.cpp - _src/SageAnalysisTool/computeInducVar.cpp - _src/SageAnalysisTool/constanteProp.cpp - _src/SageAnalysisTool/constanteSet.h - _src/SageAnalysisTool/controlFlow.cpp - _src/SageAnalysisTool/defUse.cpp - _src/SageAnalysisTool/dependence.cpp - _src/SageAnalysisTool/depGraph.cpp - _src/SageAnalysisTool/depInterface.cpp - _src/SageAnalysisTool/depInterfaceExt.h - _src/SageAnalysisTool/flowAnalysis.cpp - _src/SageAnalysisTool/inducVar.h - _src/SageAnalysisTool/intrinsic.cpp - _src/SageAnalysisTool/invariant.cpp - _src/SageAnalysisTool/loopTransform.cpp - _src/SageAnalysisTool/set.cpp) +set(OMEGA src/SageAnalysisTool/OmegaForSage/add-assert.cpp + src/SageAnalysisTool/OmegaForSage/affine.cpp + src/SageAnalysisTool/OmegaForSage/cover.cpp + src/SageAnalysisTool/OmegaForSage/ddomega-build.cpp + src/SageAnalysisTool/OmegaForSage/ddomega-use.cpp + src/SageAnalysisTool/OmegaForSage/ddomega.cpp + src/SageAnalysisTool/OmegaForSage/debug.cpp + src/SageAnalysisTool/OmegaForSage/ip.cpp + src/SageAnalysisTool/OmegaForSage/kill.cpp + src/SageAnalysisTool/OmegaForSage/refine.cpp + src/SageAnalysisTool/OmegaForSage/sagedriver.cpp + src/SageAnalysisTool/annotationDriver.cpp + src/SageAnalysisTool/arrayRef.cpp + src/SageAnalysisTool/computeInducVar.cpp + src/SageAnalysisTool/constanteProp.cpp + src/SageAnalysisTool/constanteSet.h + src/SageAnalysisTool/controlFlow.cpp + src/SageAnalysisTool/defUse.cpp + src/SageAnalysisTool/dependence.cpp + src/SageAnalysisTool/depGraph.cpp + src/SageAnalysisTool/depInterface.cpp + src/SageAnalysisTool/depInterfaceExt.h + src/SageAnalysisTool/flowAnalysis.cpp + src/SageAnalysisTool/inducVar.h + src/SageAnalysisTool/intrinsic.cpp + src/SageAnalysisTool/invariant.cpp + src/SageAnalysisTool/loopTransform.cpp + src/SageAnalysisTool/set.cpp) -set(PRIV _src/PrivateAnalyzer/private_analyzer.cpp - _src/PrivateAnalyzer/private_analyzer.h) +set(PRIV src/PrivateAnalyzer/private_analyzer.cpp + src/PrivateAnalyzer/private_analyzer.h) set(FDVM ${fdvm_sources}/acc.cpp ${fdvm_sources}/acc_across.cpp @@ -156,48 +156,48 @@ set(FDVM ${fdvm_sources}/acc.cpp ${fdvm_sources}/parloop.cpp ${fdvm_sources}/stmt.cpp) -set(PARALLEL_REG _src/ParallelizationRegions/ParRegions.cpp - _src/ParallelizationRegions/ParRegions.h - _src/ParallelizationRegions/ParRegions_func.h - _src/ParallelizationRegions/expand_extract_reg.cpp - _src/ParallelizationRegions/expand_extract_reg.h - _src/ParallelizationRegions/resolve_par_reg_conflicts.cpp - _src/ParallelizationRegions/resolve_par_reg_conflicts.h) +set(PARALLEL_REG src/ParallelizationRegions/ParRegions.cpp + src/ParallelizationRegions/ParRegions.h + src/ParallelizationRegions/ParRegions_func.h + src/ParallelizationRegions/expand_extract_reg.cpp + src/ParallelizationRegions/expand_extract_reg.h + src/ParallelizationRegions/resolve_par_reg_conflicts.cpp + src/ParallelizationRegions/resolve_par_reg_conflicts.h) -set(TR_DEAD_CODE _src/Transformations/dead_code.cpp - _src/Transformations/dead_code.h) -set(TR_CP _src/Transformations/checkpoints.cpp - _src/Transformations/checkpoints.h) -set(TR_VECTOR _src/Transformations/array_assign_to_loop.cpp - _src/Transformations/array_assign_to_loop.h) -set(TR_ENDDO_LOOP _src/Transformations/enddo_loop_converter.cpp - _src/Transformations/enddo_loop_converter.h) -set(TR_LOOP_NEST _src/Transformations/loop_transform.cpp - _src/Transformations/loop_transform.h) -set(TR_LOOP_COMB _src/Transformations/loops_combiner.cpp - _src/Transformations/loops_combiner.h) -set(TR_LOOP_SPLIT _src/Transformations/loops_splitter.cpp - _src/Transformations/loops_splitter.h) -set(TR_LOOP_UNROLL _src/Transformations/loops_unrolling.cpp - _src/Transformations/loops_unrolling.h) -set(TR_PRIV_BR _src/Transformations/private_arrays_resizing.cpp - _src/Transformations/private_arrays_resizing.h) -set(TR_PRIV_DEL _src/Transformations/private_removing.cpp - _src/Transformations/private_removing.h) -set(TR_SWAP_ARR_DIMS _src/Transformations/swap_array_dims.cpp - _src/Transformations/swap_array_dims.h) -set(TR_FUNC_DUP _src/Transformations/uniq_call_chain_dup.cpp - _src/Transformations/uniq_call_chain_dup.h) -set(TR_FUNC_PURE _src/Transformations/function_purifying.cpp - _src/Transformations/function_purifying.h) -set(TR_GV _src/Transformations/fix_common_blocks.cpp - _src/Transformations/fix_common_blocks.h) -set(TR_CONV _src/Transformations/convert_to_c.cpp - _src/Transformations/convert_to_c.h) -set(TR_IMPLICIT_NONE _src/Transformations/set_implicit_none.cpp - _src/Transformations/set_implicit_none.h) -set(TR_REPLACE_ARRAYS_IN_IO _src/Transformations/replace_dist_arrays_in_io.cpp - _src/Transformations/replace_dist_arrays_in_io.h) +set(TR_DEAD_CODE src/Transformations/dead_code.cpp + src/Transformations/dead_code.h) +set(TR_CP src/Transformations/checkpoints.cpp + src/Transformations/checkpoints.h) +set(TR_VECTOR src/Transformations/array_assign_to_loop.cpp + src/Transformations/array_assign_to_loop.h) +set(TR_ENDDO_LOOP src/Transformations/enddo_loop_converter.cpp + src/Transformations/enddo_loop_converter.h) +set(TR_LOOP_NEST src/Transformations/loop_transform.cpp + src/Transformations/loop_transform.h) +set(TR_LOOP_COMB src/Transformations/loops_combiner.cpp + src/Transformations/loops_combiner.h) +set(TR_LOOP_SPLIT src/Transformations/loops_splitter.cpp + src/Transformations/loops_splitter.h) +set(TR_LOOP_UNROLL src/Transformations/loops_unrolling.cpp + src/Transformations/loops_unrolling.h) +set(TR_PRIV_BR src/Transformations/private_arrays_resizing.cpp + src/Transformations/private_arrays_resizing.h) +set(TR_PRIV_DEL src/Transformations/private_removing.cpp + src/Transformations/private_removing.h) +set(TR_SWAP_ARR_DIMS src/Transformations/swap_array_dims.cpp + src/Transformations/swap_array_dims.h) +set(TR_FUNC_DUP src/Transformations/uniq_call_chain_dup.cpp + src/Transformations/uniq_call_chain_dup.h) +set(TR_FUNC_PURE src/Transformations/function_purifying.cpp + src/Transformations/function_purifying.h) +set(TR_GV src/Transformations/fix_common_blocks.cpp + src/Transformations/fix_common_blocks.h) +set(TR_CONV src/Transformations/convert_to_c.cpp + src/Transformations/convert_to_c.h) +set(TR_IMPLICIT_NONE src/Transformations/set_implicit_none.cpp + src/Transformations/set_implicit_none.h) +set(TR_REPLACE_ARRAYS_IN_IO src/Transformations/replace_dist_arrays_in_io.cpp + src/Transformations/replace_dist_arrays_in_io.h) set(TRANSFORMS ${TR_DEAD_CODE} @@ -219,129 +219,129 @@ set(TRANSFORMS ${TR_IMPLICIT_NONE} ${TR_REPLACE_ARRAYS_IN_IO}) -set(CFG _src/CFGraph/IR.cpp - _src/CFGraph/IR.h - _src/CFGraph/CFGraph.cpp - _src/CFGraph/CFGraph.h - _src/CFGraph/RD_subst.cpp - _src/CFGraph/RD_subst.h - _src/CFGraph/live_variable_analysis.cpp - _src/CFGraph/live_variable_analysis.h - _src/CFGraph/private_variables_analysis.cpp - _src/CFGraph/private_variables_analysis.h +set(CFG src/CFGraph/IR.cpp + src/CFGraph/IR.h + src/CFGraph/CFGraph.cpp + src/CFGraph/CFGraph.h + src/CFGraph/RD_subst.cpp + src/CFGraph/RD_subst.h + src/CFGraph/live_variable_analysis.cpp + src/CFGraph/live_variable_analysis.h + src/CFGraph/private_variables_analysis.cpp + src/CFGraph/private_variables_analysis.h ) set(DATA_FLOW - _src/CFGraph/DataFlow/data_flow.h - _src/CFGraph/DataFlow/data_flow_impl.h - _src/CFGraph/DataFlow/backward_data_flow.h - _src/CFGraph/DataFlow/backward_data_flow_impl.h + src/CFGraph/DataFlow/data_flow.h + src/CFGraph/DataFlow/data_flow_impl.h + src/CFGraph/DataFlow/backward_data_flow.h + src/CFGraph/DataFlow/backward_data_flow_impl.h ) -set(CREATE_INTER_T _src/CreateInterTree/CreateInterTree.cpp - _src/CreateInterTree/CreateInterTree.h) +set(CREATE_INTER_T src/CreateInterTree/CreateInterTree.cpp + src/CreateInterTree/CreateInterTree.h) -set(DIRA _src/DirectiveProcessing/directive_analyzer.cpp - _src/DirectiveProcessing/directive_analyzer.h - _src/DirectiveProcessing/directive_creator.cpp - _src/DirectiveProcessing/directive_creator_base.cpp - _src/DirectiveProcessing/directive_creator.h - _src/DirectiveProcessing/directive_parser.cpp - _src/DirectiveProcessing/directive_parser.h - _src/DirectiveProcessing/directive_omp_parser.cpp - _src/DirectiveProcessing/directive_omp_parser.h - _src/DirectiveProcessing/insert_directive.cpp - _src/DirectiveProcessing/insert_directive.h - _src/DirectiveProcessing/remote_access.cpp - _src/DirectiveProcessing/remote_access_base.cpp - _src/DirectiveProcessing/remote_access.h - _src/DirectiveProcessing/shadow.cpp - _src/DirectiveProcessing/shadow.h - _src/DirectiveProcessing/spf_directive_preproc.cpp) +set(DIRA src/DirectiveProcessing/directive_analyzer.cpp + src/DirectiveProcessing/directive_analyzer.h + src/DirectiveProcessing/directive_creator.cpp + src/DirectiveProcessing/directive_creator_base.cpp + src/DirectiveProcessing/directive_creator.h + src/DirectiveProcessing/directive_parser.cpp + src/DirectiveProcessing/directive_parser.h + src/DirectiveProcessing/directive_omp_parser.cpp + src/DirectiveProcessing/directive_omp_parser.h + src/DirectiveProcessing/insert_directive.cpp + src/DirectiveProcessing/insert_directive.h + src/DirectiveProcessing/remote_access.cpp + src/DirectiveProcessing/remote_access_base.cpp + src/DirectiveProcessing/remote_access.h + src/DirectiveProcessing/shadow.cpp + src/DirectiveProcessing/shadow.h + src/DirectiveProcessing/spf_directive_preproc.cpp) -set(DISTR _src/Distribution/Array.cpp - _src/Distribution/ArrayAnalysis.cpp - _src/Distribution/Array.h - _src/Distribution/Arrays.h - _src/Distribution/CreateDistributionDirs.cpp - _src/Distribution/CreateDistributionDirs.h - _src/Distribution/Cycle.cpp - _src/Distribution/Cycle.h - _src/Distribution/Distribution.cpp - _src/Distribution/Distribution.h - _src/Distribution/DvmhDirective.cpp - _src/Distribution/DvmhDirective.h - _src/Distribution/DvmhDirective_func.h - _src/Distribution/DvmhDirectiveBase.cpp - _src/Distribution/DvmhDirectiveBase.h - _src/Distribution/GraphCSR.cpp - _src/Distribution/GraphCSR.h) +set(DISTR src/Distribution/Array.cpp + src/Distribution/ArrayAnalysis.cpp + src/Distribution/Array.h + src/Distribution/Arrays.h + src/Distribution/CreateDistributionDirs.cpp + src/Distribution/CreateDistributionDirs.h + src/Distribution/Cycle.cpp + src/Distribution/Cycle.h + src/Distribution/Distribution.cpp + src/Distribution/Distribution.h + src/Distribution/DvmhDirective.cpp + src/Distribution/DvmhDirective.h + src/Distribution/DvmhDirective_func.h + src/Distribution/DvmhDirectiveBase.cpp + src/Distribution/DvmhDirectiveBase.h + src/Distribution/GraphCSR.cpp + src/Distribution/GraphCSR.h) -set(DVMH_REG _src/DvmhRegions/DvmhRegionInserter.cpp - _src/DvmhRegions/DvmhRegionInserter.h - _src/DvmhRegions/RegionsMerger.cpp - _src/DvmhRegions/RegionsMerger.h - _src/DvmhRegions/ReadWriteAnalyzer.cpp - _src/DvmhRegions/ReadWriteAnalyzer.h - _src/DvmhRegions/LoopChecker.cpp - _src/DvmhRegions/LoopChecker.h - _src/DvmhRegions/DvmhRegion.cpp - _src/DvmhRegions/DvmhRegion.h - _src/DvmhRegions/VarUsages.cpp - _src/DvmhRegions/VarUsages.h - _src/DvmhRegions/TypedSymbol.cpp - _src/DvmhRegions/TypedSymbol.h) +set(DVMH_REG src/DvmhRegions/DvmhRegionInserter.cpp + src/DvmhRegions/DvmhRegionInserter.h + src/DvmhRegions/RegionsMerger.cpp + src/DvmhRegions/RegionsMerger.h + src/DvmhRegions/ReadWriteAnalyzer.cpp + src/DvmhRegions/ReadWriteAnalyzer.h + src/DvmhRegions/LoopChecker.cpp + src/DvmhRegions/LoopChecker.h + src/DvmhRegions/DvmhRegion.cpp + src/DvmhRegions/DvmhRegion.h + src/DvmhRegions/VarUsages.cpp + src/DvmhRegions/VarUsages.h + src/DvmhRegions/TypedSymbol.cpp + src/DvmhRegions/TypedSymbol.h) -set(DYNA _src/DynamicAnalysis/createParallelRegions.cpp - _src/DynamicAnalysis/createParallelRegions.h - _src/DynamicAnalysis/gcov_info.cpp - _src/DynamicAnalysis/gcov_info.h - _src/DynamicAnalysis/gCov_parser.cpp - _src/DynamicAnalysis/gCov_parser_func.h) +set(DYNA src/DynamicAnalysis/createParallelRegions.cpp + src/DynamicAnalysis/createParallelRegions.h + src/DynamicAnalysis/gcov_info.cpp + src/DynamicAnalysis/gcov_info.h + src/DynamicAnalysis/gCov_parser.cpp + src/DynamicAnalysis/gCov_parser_func.h) -set(EXPR_TRANSFORM _src/ExpressionTransform/control_flow_graph_part.cpp - _src/ExpressionTransform/expr_transform.cpp - _src/ExpressionTransform/expr_transform.h) +set(EXPR_TRANSFORM src/ExpressionTransform/control_flow_graph_part.cpp + src/ExpressionTransform/expr_transform.cpp + src/ExpressionTransform/expr_transform.h) -set(GR_CALL _src/GraphCall/graph_calls.cpp - _src/GraphCall/graph_calls.h - _src/GraphCall/graph_calls_base.cpp - _src/GraphCall/graph_calls_func.h) +set(GR_CALL src/GraphCall/graph_calls.cpp + src/GraphCall/graph_calls.h + src/GraphCall/graph_calls_base.cpp + src/GraphCall/graph_calls_func.h) -set(GR_LOOP _src/GraphLoop/graph_loops_base.cpp - _src/GraphLoop/graph_loops.cpp - _src/GraphLoop/graph_loops.h - _src/GraphLoop/graph_loops_func.h) +set(GR_LOOP src/GraphLoop/graph_loops_base.cpp + src/GraphLoop/graph_loops.cpp + src/GraphLoop/graph_loops.h + src/GraphLoop/graph_loops_func.h) -set(INLINER _src/Inliner/inliner.cpp - _src/Inliner/inliner.h) +set(INLINER src/Inliner/inliner.cpp + src/Inliner/inliner.h) -set(LOOP_ANALYZER _src/LoopAnalyzer/allocations_prepoc.cpp - _src/LoopAnalyzer/dep_analyzer.cpp - _src/LoopAnalyzer/loop_analyzer.cpp - _src/LoopAnalyzer/loop_analyzer.h) +set(LOOP_ANALYZER src/LoopAnalyzer/allocations_prepoc.cpp + src/LoopAnalyzer/dep_analyzer.cpp + src/LoopAnalyzer/loop_analyzer.cpp + src/LoopAnalyzer/loop_analyzer.h) -set(RENAME_SYMBOLS _src/RenameSymbols/rename_symbols.cpp - _src/RenameSymbols/rename_symbols.h) +set(RENAME_SYMBOLS src/RenameSymbols/rename_symbols.cpp + src/RenameSymbols/rename_symbols.h) -set(MAIN _src/Sapfor.cpp - _src/Sapfor.h - _src/SapforData.h - _src/Utils/PassManager.h) +set(MAIN src/Sapfor.cpp + src/Sapfor.h + src/SapforData.h + src/Utils/PassManager.h) -set(PREDICTOR _src/Predictor/PredictScheme.cpp - _src/Predictor/PredictScheme.h) +set(PREDICTOR src/Predictor/PredictScheme.cpp + src/Predictor/PredictScheme.h) -set(PROJ_MAN _src/ProjectManipulation/ParseFiles.cpp - _src/ProjectManipulation/ParseFiles.h - _src/ProjectManipulation/StdCapture.h - _src/ProjectManipulation/PerfAnalyzer.cpp - _src/ProjectManipulation/PerfAnalyzer.h - _src/ProjectManipulation/FileInfo.cpp - _src/ProjectManipulation/FileInfo.h - _src/ProjectManipulation/ConvertFiles.cpp - _src/ProjectManipulation/ConvertFiles.h) +set(PROJ_MAN src/ProjectManipulation/ParseFiles.cpp + src/ProjectManipulation/ParseFiles.h + src/ProjectManipulation/StdCapture.h + src/ProjectManipulation/PerfAnalyzer.cpp + src/ProjectManipulation/PerfAnalyzer.h + src/ProjectManipulation/FileInfo.cpp + src/ProjectManipulation/FileInfo.h + src/ProjectManipulation/ConvertFiles.cpp + src/ProjectManipulation/ConvertFiles.h) set(PARSER ${parser_sources}/cftn.c ${parser_sources}/errors.c @@ -491,16 +491,16 @@ else() set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O2") endif() -add_subdirectory(_projects/FDVM) +add_subdirectory(projects/FDVM) add_definitions("-D __SPF") add_definitions("-D _CRT_SECURE_NO_WARNINGS") add_definitions("-D _CRT_NON_CONFORMING_SWPRINTFS") -add_subdirectory(_projects/SageOldSrc) -add_subdirectory(_projects/SageNewSrc) -add_subdirectory(_projects/SageLib) -add_subdirectory(_projects/Parser) +add_subdirectory(projects/SageOldSrc) +add_subdirectory(projects/SageNewSrc) +add_subdirectory(projects/SageLib) +add_subdirectory(projects/Parser) add_definitions("-D __SPF_BUILT_IN_FDVM") add_definitions("-D __SPF_BUILT_IN_PARSER") diff --git a/Sapfor/_projects/FDVM/CMakeLists.txt b/Sapfor/projects/FDVM/CMakeLists.txt similarity index 100% rename from Sapfor/_projects/FDVM/CMakeLists.txt rename to Sapfor/projects/FDVM/CMakeLists.txt diff --git a/Sapfor/_projects/Parser/CMakeLists.txt b/Sapfor/projects/Parser/CMakeLists.txt similarity index 100% rename from Sapfor/_projects/Parser/CMakeLists.txt rename to Sapfor/projects/Parser/CMakeLists.txt diff --git a/Sapfor/_projects/SageLib/CMakeLists.txt b/Sapfor/projects/SageLib/CMakeLists.txt similarity index 100% rename from Sapfor/_projects/SageLib/CMakeLists.txt rename to Sapfor/projects/SageLib/CMakeLists.txt diff --git a/Sapfor/_projects/SageNewSrc/CMakeLists.txt b/Sapfor/projects/SageNewSrc/CMakeLists.txt similarity index 100% rename from Sapfor/_projects/SageNewSrc/CMakeLists.txt rename to Sapfor/projects/SageNewSrc/CMakeLists.txt diff --git a/Sapfor/_projects/SageOldSrc/CMakeLists.txt b/Sapfor/projects/SageOldSrc/CMakeLists.txt similarity index 100% rename from Sapfor/_projects/SageOldSrc/CMakeLists.txt rename to Sapfor/projects/SageOldSrc/CMakeLists.txt diff --git a/Sapfor/_projects/Sapc++/Sapc++.sln b/Sapfor/projects/Sapc++/Sapc++.sln similarity index 100% rename from Sapfor/_projects/Sapc++/Sapc++.sln rename to Sapfor/projects/Sapc++/Sapc++.sln diff --git a/Sapfor/_projects/dvm/fdvm/CMakeLists.txt b/Sapfor/projects/dvm/fdvm/CMakeLists.txt similarity index 100% rename from Sapfor/_projects/dvm/fdvm/CMakeLists.txt rename to Sapfor/projects/dvm/fdvm/CMakeLists.txt diff --git a/Sapfor/_projects/dvm/fdvm/trunk/CMakeLists.txt b/Sapfor/projects/dvm/fdvm/trunk/CMakeLists.txt similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/CMakeLists.txt rename to Sapfor/projects/dvm/fdvm/trunk/CMakeLists.txt diff --git a/Sapfor/_projects/dvm/fdvm/trunk/InlineExpansion/CMakeLists.txt b/Sapfor/projects/dvm/fdvm/trunk/InlineExpansion/CMakeLists.txt similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/InlineExpansion/CMakeLists.txt rename to Sapfor/projects/dvm/fdvm/trunk/InlineExpansion/CMakeLists.txt diff --git a/Sapfor/_projects/dvm/fdvm/trunk/InlineExpansion/dvm_tag.h b/Sapfor/projects/dvm/fdvm/trunk/InlineExpansion/dvm_tag.h similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/InlineExpansion/dvm_tag.h rename to Sapfor/projects/dvm/fdvm/trunk/InlineExpansion/dvm_tag.h diff --git a/Sapfor/_projects/dvm/fdvm/trunk/InlineExpansion/hlp.cpp b/Sapfor/projects/dvm/fdvm/trunk/InlineExpansion/hlp.cpp similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/InlineExpansion/hlp.cpp rename to Sapfor/projects/dvm/fdvm/trunk/InlineExpansion/hlp.cpp diff --git a/Sapfor/_projects/dvm/fdvm/trunk/InlineExpansion/inl_exp.cpp b/Sapfor/projects/dvm/fdvm/trunk/InlineExpansion/inl_exp.cpp similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/InlineExpansion/inl_exp.cpp rename to Sapfor/projects/dvm/fdvm/trunk/InlineExpansion/inl_exp.cpp diff --git a/Sapfor/_projects/dvm/fdvm/trunk/InlineExpansion/inline.h b/Sapfor/projects/dvm/fdvm/trunk/InlineExpansion/inline.h similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/InlineExpansion/inline.h rename to Sapfor/projects/dvm/fdvm/trunk/InlineExpansion/inline.h diff --git a/Sapfor/_projects/dvm/fdvm/trunk/InlineExpansion/inliner.cpp b/Sapfor/projects/dvm/fdvm/trunk/InlineExpansion/inliner.cpp similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/InlineExpansion/inliner.cpp rename to Sapfor/projects/dvm/fdvm/trunk/InlineExpansion/inliner.cpp diff --git a/Sapfor/_projects/dvm/fdvm/trunk/InlineExpansion/intrinsic.h b/Sapfor/projects/dvm/fdvm/trunk/InlineExpansion/intrinsic.h similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/InlineExpansion/intrinsic.h rename to Sapfor/projects/dvm/fdvm/trunk/InlineExpansion/intrinsic.h diff --git a/Sapfor/_projects/dvm/fdvm/trunk/InlineExpansion/makefile.uni b/Sapfor/projects/dvm/fdvm/trunk/InlineExpansion/makefile.uni similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/InlineExpansion/makefile.uni rename to Sapfor/projects/dvm/fdvm/trunk/InlineExpansion/makefile.uni diff --git a/Sapfor/_projects/dvm/fdvm/trunk/InlineExpansion/makefile.win b/Sapfor/projects/dvm/fdvm/trunk/InlineExpansion/makefile.win similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/InlineExpansion/makefile.win rename to Sapfor/projects/dvm/fdvm/trunk/InlineExpansion/makefile.win diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Makefile b/Sapfor/projects/dvm/fdvm/trunk/Makefile similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Makefile rename to Sapfor/projects/dvm/fdvm/trunk/Makefile diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/CMakeLists.txt b/Sapfor/projects/dvm/fdvm/trunk/Sage/CMakeLists.txt similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/CMakeLists.txt rename to Sapfor/projects/dvm/fdvm/trunk/Sage/CMakeLists.txt diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/LICENSE b/Sapfor/projects/dvm/fdvm/trunk/Sage/LICENSE similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/LICENSE rename to Sapfor/projects/dvm/fdvm/trunk/Sage/LICENSE diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/Makefile b/Sapfor/projects/dvm/fdvm/trunk/Sage/Makefile similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/Makefile rename to Sapfor/projects/dvm/fdvm/trunk/Sage/Makefile diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/Sage++/CMakeLists.txt b/Sapfor/projects/dvm/fdvm/trunk/Sage/Sage++/CMakeLists.txt similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/Sage++/CMakeLists.txt rename to Sapfor/projects/dvm/fdvm/trunk/Sage/Sage++/CMakeLists.txt diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/Sage++/Makefile b/Sapfor/projects/dvm/fdvm/trunk/Sage/Sage++/Makefile similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/Sage++/Makefile rename to Sapfor/projects/dvm/fdvm/trunk/Sage/Sage++/Makefile diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/Sage++/libSage++.cpp b/Sapfor/projects/dvm/fdvm/trunk/Sage/Sage++/libSage++.cpp similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/Sage++/libSage++.cpp rename to Sapfor/projects/dvm/fdvm/trunk/Sage/Sage++/libSage++.cpp diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/Sage++/makefile.uni b/Sapfor/projects/dvm/fdvm/trunk/Sage/Sage++/makefile.uni similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/Sage++/makefile.uni rename to Sapfor/projects/dvm/fdvm/trunk/Sage/Sage++/makefile.uni diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/Sage++/makefile.win b/Sapfor/projects/dvm/fdvm/trunk/Sage/Sage++/makefile.win similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/Sage++/makefile.win rename to Sapfor/projects/dvm/fdvm/trunk/Sage/Sage++/makefile.win diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/h/Makefile b/Sapfor/projects/dvm/fdvm/trunk/Sage/h/Makefile similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/h/Makefile rename to Sapfor/projects/dvm/fdvm/trunk/Sage/h/Makefile diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/h/bif.h b/Sapfor/projects/dvm/fdvm/trunk/Sage/h/bif.h similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/h/bif.h rename to Sapfor/projects/dvm/fdvm/trunk/Sage/h/bif.h diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/h/compatible.h b/Sapfor/projects/dvm/fdvm/trunk/Sage/h/compatible.h similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/h/compatible.h rename to Sapfor/projects/dvm/fdvm/trunk/Sage/h/compatible.h diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/h/db.h b/Sapfor/projects/dvm/fdvm/trunk/Sage/h/db.h similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/h/db.h rename to Sapfor/projects/dvm/fdvm/trunk/Sage/h/db.h diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/h/db.new.h b/Sapfor/projects/dvm/fdvm/trunk/Sage/h/db.new.h similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/h/db.new.h rename to Sapfor/projects/dvm/fdvm/trunk/Sage/h/db.new.h diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/h/defines.h b/Sapfor/projects/dvm/fdvm/trunk/Sage/h/defines.h similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/h/defines.h rename to Sapfor/projects/dvm/fdvm/trunk/Sage/h/defines.h diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/h/defs.h b/Sapfor/projects/dvm/fdvm/trunk/Sage/h/defs.h similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/h/defs.h rename to Sapfor/projects/dvm/fdvm/trunk/Sage/h/defs.h diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/h/dep.h b/Sapfor/projects/dvm/fdvm/trunk/Sage/h/dep.h similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/h/dep.h rename to Sapfor/projects/dvm/fdvm/trunk/Sage/h/dep.h diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/h/dep_str.h b/Sapfor/projects/dvm/fdvm/trunk/Sage/h/dep_str.h similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/h/dep_str.h rename to Sapfor/projects/dvm/fdvm/trunk/Sage/h/dep_str.h diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/h/dep_struct.h b/Sapfor/projects/dvm/fdvm/trunk/Sage/h/dep_struct.h similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/h/dep_struct.h rename to Sapfor/projects/dvm/fdvm/trunk/Sage/h/dep_struct.h diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/h/elist.h b/Sapfor/projects/dvm/fdvm/trunk/Sage/h/elist.h similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/h/elist.h rename to Sapfor/projects/dvm/fdvm/trunk/Sage/h/elist.h diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/h/f90.h b/Sapfor/projects/dvm/fdvm/trunk/Sage/h/f90.h similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/h/f90.h rename to Sapfor/projects/dvm/fdvm/trunk/Sage/h/f90.h diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/h/fixcray.h b/Sapfor/projects/dvm/fdvm/trunk/Sage/h/fixcray.h similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/h/fixcray.h rename to Sapfor/projects/dvm/fdvm/trunk/Sage/h/fixcray.h diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/h/fm.h b/Sapfor/projects/dvm/fdvm/trunk/Sage/h/fm.h similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/h/fm.h rename to Sapfor/projects/dvm/fdvm/trunk/Sage/h/fm.h diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/h/head b/Sapfor/projects/dvm/fdvm/trunk/Sage/h/head similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/h/head rename to Sapfor/projects/dvm/fdvm/trunk/Sage/h/head diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/h/leak_detector.h b/Sapfor/projects/dvm/fdvm/trunk/Sage/h/leak_detector.h similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/h/leak_detector.h rename to Sapfor/projects/dvm/fdvm/trunk/Sage/h/leak_detector.h diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/h/list.h b/Sapfor/projects/dvm/fdvm/trunk/Sage/h/list.h similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/h/list.h rename to Sapfor/projects/dvm/fdvm/trunk/Sage/h/list.h diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/h/ll.h b/Sapfor/projects/dvm/fdvm/trunk/Sage/h/ll.h similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/h/ll.h rename to Sapfor/projects/dvm/fdvm/trunk/Sage/h/ll.h diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/h/prop.h b/Sapfor/projects/dvm/fdvm/trunk/Sage/h/prop.h similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/h/prop.h rename to Sapfor/projects/dvm/fdvm/trunk/Sage/h/prop.h diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/h/sage.h b/Sapfor/projects/dvm/fdvm/trunk/Sage/h/sage.h similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/h/sage.h rename to Sapfor/projects/dvm/fdvm/trunk/Sage/h/sage.h diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/h/sagearch.h b/Sapfor/projects/dvm/fdvm/trunk/Sage/h/sagearch.h similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/h/sagearch.h rename to Sapfor/projects/dvm/fdvm/trunk/Sage/h/sagearch.h diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/h/sageroot.h b/Sapfor/projects/dvm/fdvm/trunk/Sage/h/sageroot.h similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/h/sageroot.h rename to Sapfor/projects/dvm/fdvm/trunk/Sage/h/sageroot.h diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/h/sets.h b/Sapfor/projects/dvm/fdvm/trunk/Sage/h/sets.h similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/h/sets.h rename to Sapfor/projects/dvm/fdvm/trunk/Sage/h/sets.h diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/h/symb.h b/Sapfor/projects/dvm/fdvm/trunk/Sage/h/symb.h similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/h/symb.h rename to Sapfor/projects/dvm/fdvm/trunk/Sage/h/symb.h diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/h/symblob.h b/Sapfor/projects/dvm/fdvm/trunk/Sage/h/symblob.h similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/h/symblob.h rename to Sapfor/projects/dvm/fdvm/trunk/Sage/h/symblob.h diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/h/tag b/Sapfor/projects/dvm/fdvm/trunk/Sage/h/tag similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/h/tag rename to Sapfor/projects/dvm/fdvm/trunk/Sage/h/tag diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/h/tag.doc b/Sapfor/projects/dvm/fdvm/trunk/Sage/h/tag.doc similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/h/tag.doc rename to Sapfor/projects/dvm/fdvm/trunk/Sage/h/tag.doc diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/h/tag.h b/Sapfor/projects/dvm/fdvm/trunk/Sage/h/tag.h similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/h/tag.h rename to Sapfor/projects/dvm/fdvm/trunk/Sage/h/tag.h diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/h/tag_make b/Sapfor/projects/dvm/fdvm/trunk/Sage/h/tag_make similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/h/tag_make rename to Sapfor/projects/dvm/fdvm/trunk/Sage/h/tag_make diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/h/version.h b/Sapfor/projects/dvm/fdvm/trunk/Sage/h/version.h similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/h/version.h rename to Sapfor/projects/dvm/fdvm/trunk/Sage/h/version.h diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/h/vextern.h b/Sapfor/projects/dvm/fdvm/trunk/Sage/h/vextern.h similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/h/vextern.h rename to Sapfor/projects/dvm/fdvm/trunk/Sage/h/vextern.h diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/h/vparse.h b/Sapfor/projects/dvm/fdvm/trunk/Sage/h/vparse.h similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/h/vparse.h rename to Sapfor/projects/dvm/fdvm/trunk/Sage/h/vparse.h diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/h/vpc.h b/Sapfor/projects/dvm/fdvm/trunk/Sage/h/vpc.h similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/h/vpc.h rename to Sapfor/projects/dvm/fdvm/trunk/Sage/h/vpc.h diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/h/window.h b/Sapfor/projects/dvm/fdvm/trunk/Sage/h/window.h similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/h/window.h rename to Sapfor/projects/dvm/fdvm/trunk/Sage/h/window.h diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/CMakeLists.txt b/Sapfor/projects/dvm/fdvm/trunk/Sage/lib/CMakeLists.txt similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/CMakeLists.txt rename to Sapfor/projects/dvm/fdvm/trunk/Sage/lib/CMakeLists.txt diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/Makefile b/Sapfor/projects/dvm/fdvm/trunk/Sage/lib/Makefile similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/Makefile rename to Sapfor/projects/dvm/fdvm/trunk/Sage/lib/Makefile diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/include/attributes.h b/Sapfor/projects/dvm/fdvm/trunk/Sage/lib/include/attributes.h similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/include/attributes.h rename to Sapfor/projects/dvm/fdvm/trunk/Sage/lib/include/attributes.h diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/include/baseClasses.h b/Sapfor/projects/dvm/fdvm/trunk/Sage/lib/include/baseClasses.h similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/include/baseClasses.h rename to Sapfor/projects/dvm/fdvm/trunk/Sage/lib/include/baseClasses.h diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/include/bif_node.def b/Sapfor/projects/dvm/fdvm/trunk/Sage/lib/include/bif_node.def similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/include/bif_node.def rename to Sapfor/projects/dvm/fdvm/trunk/Sage/lib/include/bif_node.def diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/include/dependence.h b/Sapfor/projects/dvm/fdvm/trunk/Sage/lib/include/dependence.h similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/include/dependence.h rename to Sapfor/projects/dvm/fdvm/trunk/Sage/lib/include/dependence.h diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/include/ext_ann.h b/Sapfor/projects/dvm/fdvm/trunk/Sage/lib/include/ext_ann.h similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/include/ext_ann.h rename to Sapfor/projects/dvm/fdvm/trunk/Sage/lib/include/ext_ann.h diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/include/ext_high.h b/Sapfor/projects/dvm/fdvm/trunk/Sage/lib/include/ext_high.h similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/include/ext_high.h rename to Sapfor/projects/dvm/fdvm/trunk/Sage/lib/include/ext_high.h diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/include/ext_lib.h b/Sapfor/projects/dvm/fdvm/trunk/Sage/lib/include/ext_lib.h similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/include/ext_lib.h rename to Sapfor/projects/dvm/fdvm/trunk/Sage/lib/include/ext_lib.h diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/include/ext_low.h b/Sapfor/projects/dvm/fdvm/trunk/Sage/lib/include/ext_low.h similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/include/ext_low.h rename to Sapfor/projects/dvm/fdvm/trunk/Sage/lib/include/ext_low.h diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/include/ext_mid.h b/Sapfor/projects/dvm/fdvm/trunk/Sage/lib/include/ext_mid.h similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/include/ext_mid.h rename to Sapfor/projects/dvm/fdvm/trunk/Sage/lib/include/ext_mid.h diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/include/extcxx_low.h b/Sapfor/projects/dvm/fdvm/trunk/Sage/lib/include/extcxx_low.h similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/include/extcxx_low.h rename to Sapfor/projects/dvm/fdvm/trunk/Sage/lib/include/extcxx_low.h diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/include/libSage++.h b/Sapfor/projects/dvm/fdvm/trunk/Sage/lib/include/libSage++.h similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/include/libSage++.h rename to Sapfor/projects/dvm/fdvm/trunk/Sage/lib/include/libSage++.h diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/include/macro.h b/Sapfor/projects/dvm/fdvm/trunk/Sage/lib/include/macro.h similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/include/macro.h rename to Sapfor/projects/dvm/fdvm/trunk/Sage/lib/include/macro.h diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/include/sage++callgraph.h b/Sapfor/projects/dvm/fdvm/trunk/Sage/lib/include/sage++callgraph.h similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/include/sage++callgraph.h rename to Sapfor/projects/dvm/fdvm/trunk/Sage/lib/include/sage++callgraph.h diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/include/sage++classhierarchy.h b/Sapfor/projects/dvm/fdvm/trunk/Sage/lib/include/sage++classhierarchy.h similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/include/sage++classhierarchy.h rename to Sapfor/projects/dvm/fdvm/trunk/Sage/lib/include/sage++classhierarchy.h diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/include/sage++extern.h b/Sapfor/projects/dvm/fdvm/trunk/Sage/lib/include/sage++extern.h similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/include/sage++extern.h rename to Sapfor/projects/dvm/fdvm/trunk/Sage/lib/include/sage++extern.h diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/include/sage++proto.h b/Sapfor/projects/dvm/fdvm/trunk/Sage/lib/include/sage++proto.h similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/include/sage++proto.h rename to Sapfor/projects/dvm/fdvm/trunk/Sage/lib/include/sage++proto.h diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/include/sage++user.h b/Sapfor/projects/dvm/fdvm/trunk/Sage/lib/include/sage++user.h similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/include/sage++user.h rename to Sapfor/projects/dvm/fdvm/trunk/Sage/lib/include/sage++user.h diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/include/symb.def b/Sapfor/projects/dvm/fdvm/trunk/Sage/lib/include/symb.def similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/include/symb.def rename to Sapfor/projects/dvm/fdvm/trunk/Sage/lib/include/symb.def diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/include/type.def b/Sapfor/projects/dvm/fdvm/trunk/Sage/lib/include/type.def similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/include/type.def rename to Sapfor/projects/dvm/fdvm/trunk/Sage/lib/include/type.def diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/include/unparse.def b/Sapfor/projects/dvm/fdvm/trunk/Sage/lib/include/unparse.def similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/include/unparse.def rename to Sapfor/projects/dvm/fdvm/trunk/Sage/lib/include/unparse.def diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/include/unparseC++.def b/Sapfor/projects/dvm/fdvm/trunk/Sage/lib/include/unparseC++.def similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/include/unparseC++.def rename to Sapfor/projects/dvm/fdvm/trunk/Sage/lib/include/unparseC++.def diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/include/unparseDVM.def b/Sapfor/projects/dvm/fdvm/trunk/Sage/lib/include/unparseDVM.def similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/include/unparseDVM.def rename to Sapfor/projects/dvm/fdvm/trunk/Sage/lib/include/unparseDVM.def diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/makefile.uni b/Sapfor/projects/dvm/fdvm/trunk/Sage/lib/makefile.uni similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/makefile.uni rename to Sapfor/projects/dvm/fdvm/trunk/Sage/lib/makefile.uni diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/makefile.win b/Sapfor/projects/dvm/fdvm/trunk/Sage/lib/makefile.win similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/makefile.win rename to Sapfor/projects/dvm/fdvm/trunk/Sage/lib/makefile.win diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/newsrc/CMakeLists.txt b/Sapfor/projects/dvm/fdvm/trunk/Sage/lib/newsrc/CMakeLists.txt similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/newsrc/CMakeLists.txt rename to Sapfor/projects/dvm/fdvm/trunk/Sage/lib/newsrc/CMakeLists.txt diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/newsrc/Makefile b/Sapfor/projects/dvm/fdvm/trunk/Sage/lib/newsrc/Makefile similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/newsrc/Makefile rename to Sapfor/projects/dvm/fdvm/trunk/Sage/lib/newsrc/Makefile diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/newsrc/annotate.tab.c b/Sapfor/projects/dvm/fdvm/trunk/Sage/lib/newsrc/annotate.tab.c similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/newsrc/annotate.tab.c rename to Sapfor/projects/dvm/fdvm/trunk/Sage/lib/newsrc/annotate.tab.c diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/newsrc/annotate.tab.h b/Sapfor/projects/dvm/fdvm/trunk/Sage/lib/newsrc/annotate.tab.h similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/newsrc/annotate.tab.h rename to Sapfor/projects/dvm/fdvm/trunk/Sage/lib/newsrc/annotate.tab.h diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/newsrc/annotate.y b/Sapfor/projects/dvm/fdvm/trunk/Sage/lib/newsrc/annotate.y similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/newsrc/annotate.y rename to Sapfor/projects/dvm/fdvm/trunk/Sage/lib/newsrc/annotate.y diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/newsrc/comments.c b/Sapfor/projects/dvm/fdvm/trunk/Sage/lib/newsrc/comments.c similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/newsrc/comments.c rename to Sapfor/projects/dvm/fdvm/trunk/Sage/lib/newsrc/comments.c diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/newsrc/low_level.c b/Sapfor/projects/dvm/fdvm/trunk/Sage/lib/newsrc/low_level.c similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/newsrc/low_level.c rename to Sapfor/projects/dvm/fdvm/trunk/Sage/lib/newsrc/low_level.c diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/newsrc/makefile.uni b/Sapfor/projects/dvm/fdvm/trunk/Sage/lib/newsrc/makefile.uni similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/newsrc/makefile.uni rename to Sapfor/projects/dvm/fdvm/trunk/Sage/lib/newsrc/makefile.uni diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/newsrc/makefile.win b/Sapfor/projects/dvm/fdvm/trunk/Sage/lib/newsrc/makefile.win similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/newsrc/makefile.win rename to Sapfor/projects/dvm/fdvm/trunk/Sage/lib/newsrc/makefile.win diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/newsrc/toolsann.c b/Sapfor/projects/dvm/fdvm/trunk/Sage/lib/newsrc/toolsann.c similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/newsrc/toolsann.c rename to Sapfor/projects/dvm/fdvm/trunk/Sage/lib/newsrc/toolsann.c diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/newsrc/unparse.c b/Sapfor/projects/dvm/fdvm/trunk/Sage/lib/newsrc/unparse.c similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/newsrc/unparse.c rename to Sapfor/projects/dvm/fdvm/trunk/Sage/lib/newsrc/unparse.c diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/oldsrc/CMakeLists.txt b/Sapfor/projects/dvm/fdvm/trunk/Sage/lib/oldsrc/CMakeLists.txt similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/oldsrc/CMakeLists.txt rename to Sapfor/projects/dvm/fdvm/trunk/Sage/lib/oldsrc/CMakeLists.txt diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/oldsrc/Makefile b/Sapfor/projects/dvm/fdvm/trunk/Sage/lib/oldsrc/Makefile similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/oldsrc/Makefile rename to Sapfor/projects/dvm/fdvm/trunk/Sage/lib/oldsrc/Makefile diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/oldsrc/anal_ind.c b/Sapfor/projects/dvm/fdvm/trunk/Sage/lib/oldsrc/anal_ind.c similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/oldsrc/anal_ind.c rename to Sapfor/projects/dvm/fdvm/trunk/Sage/lib/oldsrc/anal_ind.c diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/oldsrc/db.c b/Sapfor/projects/dvm/fdvm/trunk/Sage/lib/oldsrc/db.c similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/oldsrc/db.c rename to Sapfor/projects/dvm/fdvm/trunk/Sage/lib/oldsrc/db.c diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/oldsrc/db_unp.c b/Sapfor/projects/dvm/fdvm/trunk/Sage/lib/oldsrc/db_unp.c similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/oldsrc/db_unp.c rename to Sapfor/projects/dvm/fdvm/trunk/Sage/lib/oldsrc/db_unp.c diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/oldsrc/db_unp_comm.c b/Sapfor/projects/dvm/fdvm/trunk/Sage/lib/oldsrc/db_unp_comm.c similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/oldsrc/db_unp_comm.c rename to Sapfor/projects/dvm/fdvm/trunk/Sage/lib/oldsrc/db_unp_comm.c diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/oldsrc/db_unp_vpc.c b/Sapfor/projects/dvm/fdvm/trunk/Sage/lib/oldsrc/db_unp_vpc.c similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/oldsrc/db_unp_vpc.c rename to Sapfor/projects/dvm/fdvm/trunk/Sage/lib/oldsrc/db_unp_vpc.c diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/oldsrc/dbutils.c b/Sapfor/projects/dvm/fdvm/trunk/Sage/lib/oldsrc/dbutils.c similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/oldsrc/dbutils.c rename to Sapfor/projects/dvm/fdvm/trunk/Sage/lib/oldsrc/dbutils.c diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/oldsrc/garb_coll.c b/Sapfor/projects/dvm/fdvm/trunk/Sage/lib/oldsrc/garb_coll.c similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/oldsrc/garb_coll.c rename to Sapfor/projects/dvm/fdvm/trunk/Sage/lib/oldsrc/garb_coll.c diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/oldsrc/glob_anal.c b/Sapfor/projects/dvm/fdvm/trunk/Sage/lib/oldsrc/glob_anal.c similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/oldsrc/glob_anal.c rename to Sapfor/projects/dvm/fdvm/trunk/Sage/lib/oldsrc/glob_anal.c diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/oldsrc/ker_fun.c b/Sapfor/projects/dvm/fdvm/trunk/Sage/lib/oldsrc/ker_fun.c similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/oldsrc/ker_fun.c rename to Sapfor/projects/dvm/fdvm/trunk/Sage/lib/oldsrc/ker_fun.c diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/oldsrc/list.c b/Sapfor/projects/dvm/fdvm/trunk/Sage/lib/oldsrc/list.c similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/oldsrc/list.c rename to Sapfor/projects/dvm/fdvm/trunk/Sage/lib/oldsrc/list.c diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/oldsrc/make_nodes.c b/Sapfor/projects/dvm/fdvm/trunk/Sage/lib/oldsrc/make_nodes.c similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/oldsrc/make_nodes.c rename to Sapfor/projects/dvm/fdvm/trunk/Sage/lib/oldsrc/make_nodes.c diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/oldsrc/makefile.uni b/Sapfor/projects/dvm/fdvm/trunk/Sage/lib/oldsrc/makefile.uni similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/oldsrc/makefile.uni rename to Sapfor/projects/dvm/fdvm/trunk/Sage/lib/oldsrc/makefile.uni diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/oldsrc/makefile.win b/Sapfor/projects/dvm/fdvm/trunk/Sage/lib/oldsrc/makefile.win similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/oldsrc/makefile.win rename to Sapfor/projects/dvm/fdvm/trunk/Sage/lib/oldsrc/makefile.win diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/oldsrc/mod_ref.c b/Sapfor/projects/dvm/fdvm/trunk/Sage/lib/oldsrc/mod_ref.c similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/oldsrc/mod_ref.c rename to Sapfor/projects/dvm/fdvm/trunk/Sage/lib/oldsrc/mod_ref.c diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/oldsrc/ndeps.c b/Sapfor/projects/dvm/fdvm/trunk/Sage/lib/oldsrc/ndeps.c similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/oldsrc/ndeps.c rename to Sapfor/projects/dvm/fdvm/trunk/Sage/lib/oldsrc/ndeps.c diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/oldsrc/readnodes.c b/Sapfor/projects/dvm/fdvm/trunk/Sage/lib/oldsrc/readnodes.c similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/oldsrc/readnodes.c rename to Sapfor/projects/dvm/fdvm/trunk/Sage/lib/oldsrc/readnodes.c diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/oldsrc/sets.c b/Sapfor/projects/dvm/fdvm/trunk/Sage/lib/oldsrc/sets.c similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/oldsrc/sets.c rename to Sapfor/projects/dvm/fdvm/trunk/Sage/lib/oldsrc/sets.c diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/oldsrc/setutils.c b/Sapfor/projects/dvm/fdvm/trunk/Sage/lib/oldsrc/setutils.c similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/oldsrc/setutils.c rename to Sapfor/projects/dvm/fdvm/trunk/Sage/lib/oldsrc/setutils.c diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/oldsrc/symb_alg.c b/Sapfor/projects/dvm/fdvm/trunk/Sage/lib/oldsrc/symb_alg.c similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/oldsrc/symb_alg.c rename to Sapfor/projects/dvm/fdvm/trunk/Sage/lib/oldsrc/symb_alg.c diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/oldsrc/writenodes.c b/Sapfor/projects/dvm/fdvm/trunk/Sage/lib/oldsrc/writenodes.c similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/lib/oldsrc/writenodes.c rename to Sapfor/projects/dvm/fdvm/trunk/Sage/lib/oldsrc/writenodes.c diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/makefile.uni b/Sapfor/projects/dvm/fdvm/trunk/Sage/makefile.uni similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/makefile.uni rename to Sapfor/projects/dvm/fdvm/trunk/Sage/makefile.uni diff --git a/Sapfor/_projects/dvm/fdvm/trunk/Sage/makefile.win b/Sapfor/projects/dvm/fdvm/trunk/Sage/makefile.win similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/Sage/makefile.win rename to Sapfor/projects/dvm/fdvm/trunk/Sage/makefile.win diff --git a/Sapfor/_projects/dvm/fdvm/trunk/VS2019proj_deprecated_move_to_sapfor/FDVM/CodeTransformer/CodeTransformer.vcxproj b/Sapfor/projects/dvm/fdvm/trunk/VS2019proj_deprecated_move_to_sapfor/FDVM/CodeTransformer/CodeTransformer.vcxproj similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/VS2019proj_deprecated_move_to_sapfor/FDVM/CodeTransformer/CodeTransformer.vcxproj rename to Sapfor/projects/dvm/fdvm/trunk/VS2019proj_deprecated_move_to_sapfor/FDVM/CodeTransformer/CodeTransformer.vcxproj diff --git a/Sapfor/_projects/dvm/fdvm/trunk/VS2019proj_deprecated_move_to_sapfor/FDVM/CodeTransformer/CodeTransformer.vcxproj.filters b/Sapfor/projects/dvm/fdvm/trunk/VS2019proj_deprecated_move_to_sapfor/FDVM/CodeTransformer/CodeTransformer.vcxproj.filters similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/VS2019proj_deprecated_move_to_sapfor/FDVM/CodeTransformer/CodeTransformer.vcxproj.filters rename to Sapfor/projects/dvm/fdvm/trunk/VS2019proj_deprecated_move_to_sapfor/FDVM/CodeTransformer/CodeTransformer.vcxproj.filters diff --git a/Sapfor/_projects/dvm/fdvm/trunk/VS2019proj_deprecated_move_to_sapfor/FDVM/FDVM.sln b/Sapfor/projects/dvm/fdvm/trunk/VS2019proj_deprecated_move_to_sapfor/FDVM/FDVM.sln similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/VS2019proj_deprecated_move_to_sapfor/FDVM/FDVM.sln rename to Sapfor/projects/dvm/fdvm/trunk/VS2019proj_deprecated_move_to_sapfor/FDVM/FDVM.sln diff --git a/Sapfor/_projects/dvm/fdvm/trunk/VS2019proj_deprecated_move_to_sapfor/FDVM/FDVM/FDVM.vcxproj b/Sapfor/projects/dvm/fdvm/trunk/VS2019proj_deprecated_move_to_sapfor/FDVM/FDVM/FDVM.vcxproj similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/VS2019proj_deprecated_move_to_sapfor/FDVM/FDVM/FDVM.vcxproj rename to Sapfor/projects/dvm/fdvm/trunk/VS2019proj_deprecated_move_to_sapfor/FDVM/FDVM/FDVM.vcxproj diff --git a/Sapfor/_projects/dvm/fdvm/trunk/VS2019proj_deprecated_move_to_sapfor/FDVM/FDVM/FDVM.vcxproj.filters b/Sapfor/projects/dvm/fdvm/trunk/VS2019proj_deprecated_move_to_sapfor/FDVM/FDVM/FDVM.vcxproj.filters similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/VS2019proj_deprecated_move_to_sapfor/FDVM/FDVM/FDVM.vcxproj.filters rename to Sapfor/projects/dvm/fdvm/trunk/VS2019proj_deprecated_move_to_sapfor/FDVM/FDVM/FDVM.vcxproj.filters diff --git a/Sapfor/_projects/dvm/fdvm/trunk/VS2019proj_deprecated_move_to_sapfor/FDVM/NEWsrc/NEWsrc.vcxproj b/Sapfor/projects/dvm/fdvm/trunk/VS2019proj_deprecated_move_to_sapfor/FDVM/NEWsrc/NEWsrc.vcxproj similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/VS2019proj_deprecated_move_to_sapfor/FDVM/NEWsrc/NEWsrc.vcxproj rename to Sapfor/projects/dvm/fdvm/trunk/VS2019proj_deprecated_move_to_sapfor/FDVM/NEWsrc/NEWsrc.vcxproj diff --git a/Sapfor/_projects/dvm/fdvm/trunk/VS2019proj_deprecated_move_to_sapfor/FDVM/NEWsrc/NEWsrc.vcxproj.filters b/Sapfor/projects/dvm/fdvm/trunk/VS2019proj_deprecated_move_to_sapfor/FDVM/NEWsrc/NEWsrc.vcxproj.filters similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/VS2019proj_deprecated_move_to_sapfor/FDVM/NEWsrc/NEWsrc.vcxproj.filters rename to Sapfor/projects/dvm/fdvm/trunk/VS2019proj_deprecated_move_to_sapfor/FDVM/NEWsrc/NEWsrc.vcxproj.filters diff --git a/Sapfor/_projects/dvm/fdvm/trunk/VS2019proj_deprecated_move_to_sapfor/FDVM/OLDsrc/OLDsrc.vcxproj b/Sapfor/projects/dvm/fdvm/trunk/VS2019proj_deprecated_move_to_sapfor/FDVM/OLDsrc/OLDsrc.vcxproj similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/VS2019proj_deprecated_move_to_sapfor/FDVM/OLDsrc/OLDsrc.vcxproj rename to Sapfor/projects/dvm/fdvm/trunk/VS2019proj_deprecated_move_to_sapfor/FDVM/OLDsrc/OLDsrc.vcxproj diff --git a/Sapfor/_projects/dvm/fdvm/trunk/VS2019proj_deprecated_move_to_sapfor/FDVM/OLDsrc/OLDsrc.vcxproj.filters b/Sapfor/projects/dvm/fdvm/trunk/VS2019proj_deprecated_move_to_sapfor/FDVM/OLDsrc/OLDsrc.vcxproj.filters similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/VS2019proj_deprecated_move_to_sapfor/FDVM/OLDsrc/OLDsrc.vcxproj.filters rename to Sapfor/projects/dvm/fdvm/trunk/VS2019proj_deprecated_move_to_sapfor/FDVM/OLDsrc/OLDsrc.vcxproj.filters diff --git a/Sapfor/_projects/dvm/fdvm/trunk/VS2019proj_deprecated_move_to_sapfor/FDVM/Parser/Parser.vcxproj b/Sapfor/projects/dvm/fdvm/trunk/VS2019proj_deprecated_move_to_sapfor/FDVM/Parser/Parser.vcxproj similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/VS2019proj_deprecated_move_to_sapfor/FDVM/Parser/Parser.vcxproj rename to Sapfor/projects/dvm/fdvm/trunk/VS2019proj_deprecated_move_to_sapfor/FDVM/Parser/Parser.vcxproj diff --git a/Sapfor/_projects/dvm/fdvm/trunk/VS2019proj_deprecated_move_to_sapfor/FDVM/Parser/Parser.vcxproj.filters b/Sapfor/projects/dvm/fdvm/trunk/VS2019proj_deprecated_move_to_sapfor/FDVM/Parser/Parser.vcxproj.filters similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/VS2019proj_deprecated_move_to_sapfor/FDVM/Parser/Parser.vcxproj.filters rename to Sapfor/projects/dvm/fdvm/trunk/VS2019proj_deprecated_move_to_sapfor/FDVM/Parser/Parser.vcxproj.filters diff --git a/Sapfor/_projects/dvm/fdvm/trunk/VS2019proj_deprecated_move_to_sapfor/FDVM/SageLib++/SageLib++.vcxproj b/Sapfor/projects/dvm/fdvm/trunk/VS2019proj_deprecated_move_to_sapfor/FDVM/SageLib++/SageLib++.vcxproj similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/VS2019proj_deprecated_move_to_sapfor/FDVM/SageLib++/SageLib++.vcxproj rename to Sapfor/projects/dvm/fdvm/trunk/VS2019proj_deprecated_move_to_sapfor/FDVM/SageLib++/SageLib++.vcxproj diff --git a/Sapfor/_projects/dvm/fdvm/trunk/VS2019proj_deprecated_move_to_sapfor/FDVM/SageLib++/SageLib++.vcxproj.filters b/Sapfor/projects/dvm/fdvm/trunk/VS2019proj_deprecated_move_to_sapfor/FDVM/SageLib++/SageLib++.vcxproj.filters similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/VS2019proj_deprecated_move_to_sapfor/FDVM/SageLib++/SageLib++.vcxproj.filters rename to Sapfor/projects/dvm/fdvm/trunk/VS2019proj_deprecated_move_to_sapfor/FDVM/SageLib++/SageLib++.vcxproj.filters diff --git a/Sapfor/_projects/dvm/fdvm/trunk/VS2019proj_deprecated_move_to_sapfor/FDVM/inlineExp/inlineExp.vcxproj b/Sapfor/projects/dvm/fdvm/trunk/VS2019proj_deprecated_move_to_sapfor/FDVM/inlineExp/inlineExp.vcxproj similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/VS2019proj_deprecated_move_to_sapfor/FDVM/inlineExp/inlineExp.vcxproj rename to Sapfor/projects/dvm/fdvm/trunk/VS2019proj_deprecated_move_to_sapfor/FDVM/inlineExp/inlineExp.vcxproj diff --git a/Sapfor/_projects/dvm/fdvm/trunk/VS2019proj_deprecated_move_to_sapfor/FDVM/inlineExp/inlineExp.vcxproj.filters b/Sapfor/projects/dvm/fdvm/trunk/VS2019proj_deprecated_move_to_sapfor/FDVM/inlineExp/inlineExp.vcxproj.filters similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/VS2019proj_deprecated_move_to_sapfor/FDVM/inlineExp/inlineExp.vcxproj.filters rename to Sapfor/projects/dvm/fdvm/trunk/VS2019proj_deprecated_move_to_sapfor/FDVM/inlineExp/inlineExp.vcxproj.filters diff --git a/Sapfor/_projects/dvm/fdvm/trunk/acrossDebugging/across.cpp b/Sapfor/projects/dvm/fdvm/trunk/acrossDebugging/across.cpp similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/acrossDebugging/across.cpp rename to Sapfor/projects/dvm/fdvm/trunk/acrossDebugging/across.cpp diff --git a/Sapfor/_projects/dvm/fdvm/trunk/examples/gausf.fdv b/Sapfor/projects/dvm/fdvm/trunk/examples/gausf.fdv similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/examples/gausf.fdv rename to Sapfor/projects/dvm/fdvm/trunk/examples/gausf.fdv diff --git a/Sapfor/_projects/dvm/fdvm/trunk/examples/gausgb.fdv b/Sapfor/projects/dvm/fdvm/trunk/examples/gausgb.fdv similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/examples/gausgb.fdv rename to Sapfor/projects/dvm/fdvm/trunk/examples/gausgb.fdv diff --git a/Sapfor/_projects/dvm/fdvm/trunk/examples/gaush.hpf b/Sapfor/projects/dvm/fdvm/trunk/examples/gaush.hpf similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/examples/gaush.hpf rename to Sapfor/projects/dvm/fdvm/trunk/examples/gaush.hpf diff --git a/Sapfor/_projects/dvm/fdvm/trunk/examples/gauswh.fdv b/Sapfor/projects/dvm/fdvm/trunk/examples/gauswh.fdv similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/examples/gauswh.fdv rename to Sapfor/projects/dvm/fdvm/trunk/examples/gauswh.fdv diff --git a/Sapfor/_projects/dvm/fdvm/trunk/examples/jac.fdv b/Sapfor/projects/dvm/fdvm/trunk/examples/jac.fdv similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/examples/jac.fdv rename to Sapfor/projects/dvm/fdvm/trunk/examples/jac.fdv diff --git a/Sapfor/_projects/dvm/fdvm/trunk/examples/jacas.fdv b/Sapfor/projects/dvm/fdvm/trunk/examples/jacas.fdv similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/examples/jacas.fdv rename to Sapfor/projects/dvm/fdvm/trunk/examples/jacas.fdv diff --git a/Sapfor/_projects/dvm/fdvm/trunk/examples/jach.hpf b/Sapfor/projects/dvm/fdvm/trunk/examples/jach.hpf similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/examples/jach.hpf rename to Sapfor/projects/dvm/fdvm/trunk/examples/jach.hpf diff --git a/Sapfor/_projects/dvm/fdvm/trunk/examples/redbf.fdv b/Sapfor/projects/dvm/fdvm/trunk/examples/redbf.fdv similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/examples/redbf.fdv rename to Sapfor/projects/dvm/fdvm/trunk/examples/redbf.fdv diff --git a/Sapfor/_projects/dvm/fdvm/trunk/examples/redbh.hpf b/Sapfor/projects/dvm/fdvm/trunk/examples/redbh.hpf similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/examples/redbh.hpf rename to Sapfor/projects/dvm/fdvm/trunk/examples/redbh.hpf diff --git a/Sapfor/_projects/dvm/fdvm/trunk/examples/sor.fdv b/Sapfor/projects/dvm/fdvm/trunk/examples/sor.fdv similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/examples/sor.fdv rename to Sapfor/projects/dvm/fdvm/trunk/examples/sor.fdv diff --git a/Sapfor/_projects/dvm/fdvm/trunk/examples/task2j.fdv b/Sapfor/projects/dvm/fdvm/trunk/examples/task2j.fdv similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/examples/task2j.fdv rename to Sapfor/projects/dvm/fdvm/trunk/examples/task2j.fdv diff --git a/Sapfor/_projects/dvm/fdvm/trunk/examples/tasks.fdv b/Sapfor/projects/dvm/fdvm/trunk/examples/tasks.fdv similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/examples/tasks.fdv rename to Sapfor/projects/dvm/fdvm/trunk/examples/tasks.fdv diff --git a/Sapfor/_projects/dvm/fdvm/trunk/examples/taskst.fdv b/Sapfor/projects/dvm/fdvm/trunk/examples/taskst.fdv similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/examples/taskst.fdv rename to Sapfor/projects/dvm/fdvm/trunk/examples/taskst.fdv diff --git a/Sapfor/_projects/dvm/fdvm/trunk/fdvm/CMakeLists.txt b/Sapfor/projects/dvm/fdvm/trunk/fdvm/CMakeLists.txt similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/fdvm/CMakeLists.txt rename to Sapfor/projects/dvm/fdvm/trunk/fdvm/CMakeLists.txt diff --git a/Sapfor/_projects/dvm/fdvm/trunk/fdvm/Makefile b/Sapfor/projects/dvm/fdvm/trunk/fdvm/Makefile similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/fdvm/Makefile rename to Sapfor/projects/dvm/fdvm/trunk/fdvm/Makefile diff --git a/Sapfor/_projects/dvm/fdvm/trunk/fdvm/acc.cpp b/Sapfor/projects/dvm/fdvm/trunk/fdvm/acc.cpp similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/fdvm/acc.cpp rename to Sapfor/projects/dvm/fdvm/trunk/fdvm/acc.cpp diff --git a/Sapfor/_projects/dvm/fdvm/trunk/fdvm/acc_across.cpp b/Sapfor/projects/dvm/fdvm/trunk/fdvm/acc_across.cpp similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/fdvm/acc_across.cpp rename to Sapfor/projects/dvm/fdvm/trunk/fdvm/acc_across.cpp diff --git a/Sapfor/_projects/dvm/fdvm/trunk/fdvm/acc_across_analyzer.cpp b/Sapfor/projects/dvm/fdvm/trunk/fdvm/acc_across_analyzer.cpp similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/fdvm/acc_across_analyzer.cpp rename to Sapfor/projects/dvm/fdvm/trunk/fdvm/acc_across_analyzer.cpp diff --git a/Sapfor/_projects/dvm/fdvm/trunk/fdvm/acc_analyzer.cpp b/Sapfor/projects/dvm/fdvm/trunk/fdvm/acc_analyzer.cpp similarity index 96% rename from Sapfor/_projects/dvm/fdvm/trunk/fdvm/acc_analyzer.cpp rename to Sapfor/projects/dvm/fdvm/trunk/fdvm/acc_analyzer.cpp index 428c0c9..57e9a36 100644 --- a/Sapfor/_projects/dvm/fdvm/trunk/fdvm/acc_analyzer.cpp +++ b/Sapfor/projects/dvm/fdvm/trunk/fdvm/acc_analyzer.cpp @@ -1,4325 +1,4325 @@ -#include "leak_detector.h" - -#include "dvm.h" -#include "acc_analyzer.h" -#include "calls.h" -#include -#include - -using std::string; -using std::vector; -using std::map; -using std::list; -using std::make_pair; -using std::set; -using std::pair; - -#if __SPF -using std::wstring; -#include "../_src/Utils/AstWrapper.h" -#include "../_src/Utils/utils.h" -#include "../_src/Utils/errors.h" - -static pair getText(const char *s, const wchar_t *s1, const char *t, int num, SgStatement *stmt, int &line) -{ - pair ret; - - wchar_t bufW[1024]; -#if _WIN32 - swprintf(bufW, s1, to_wstring(t).c_str()); -#else - swprintf(bufW, 1024, s1, to_wstring(t).c_str()); -#endif - ret.first = bufW; - - char buf[1024]; - sprintf(buf, s, t); - ret.second = buf; - - line = stmt->lineNumber(); - if (line == 0) - { - line = 1; - if (stmt->variant() == DVM_PARALLEL_ON_DIR) - { - line = stmt->lexNext()->lineNumber(); - ret.first += RR158_1; - ret.second += " for this loop"; - } - } - - if (stmt->variant() == SPF_ANALYSIS_DIR) - { - ret.first += RR158_1; - ret.second += " for this loop"; - } - - return ret; -} - -static inline bool ifVarIsLoopSymb(SgStatement *stmt, const string symb) -{ - bool ret = false; - if (stmt == NULL) - return ret; - - int var = stmt->variant(); - if (var == SPF_ANALYSIS_DIR || var == SPF_PARALLEL_DIR || var == SPF_TRANSFORM_DIR || var == SPF_PARALLEL_REG_DIR || var == SPF_END_PARALLEL_REG_DIR) - stmt = stmt->lexNext(); - - SgForStmt *forS = isSgForStmt(stmt); - if (forS) - { - SgStatement *end = forS->lastNodeOfStmt(); - for (; stmt != end && !ret; stmt = stmt->lexNext()) - if (stmt->variant() == FOR_NODE) - if (isSgForStmt(stmt)->symbol()->identifier() == symb) - ret = true; - } - - return ret; -} - - -template void fillPrivatesFromComment(Statement *st, std::set &privates, int type = -1); - -inline void Warning(const char *s, const wchar_t *s1, const char *t, int num, SgStatement *stmt) -{ - //TODO: is it correct? - if (stmt == NULL) - return; - - if (num == PRIVATE_ANALYSIS_REMOVE_VAR) - { - SgStatement *found = SgStatement::getStatementByFileAndLine(string(stmt->fileName()), stmt->lineNumber()); - if (found != NULL) - { - if (ifVarIsLoopSymb(found, t)) - return; - } - - set privates; - fillPrivatesFromComment(new Statement(stmt), privates); - if (privates.find(t) != privates.end()) - return; - } - - - int line; - auto retVal = getText(s, s1, t, num, stmt, line); - printLowLevelWarnings(stmt->fileName(), line, retVal.first.c_str(), retVal.second.c_str(), 1029); -} - -inline void Note(const char *s, const wchar_t *s1, const char *t, int num, SgStatement *stmt) -{ - int line; - auto retVal = getText(s, s1, t, num, stmt, line); - printLowLevelNote(stmt->fileName(), line, retVal.first.c_str(), retVal.second.c_str(), 1030); -} -#endif - -// local functions -static ControlFlowItem* getControlFlowList(SgStatement*, SgStatement*, ControlFlowItem**, SgStatement**, doLoops*, CallData*, CommonData*); -static ControlFlowItem* processOneStatement(SgStatement** stmt, ControlFlowItem** pred, ControlFlowItem **list, ControlFlowItem* oldcur, doLoops*, CallData*, CommonData*); -static ControlFlowItem* switchItem(SgStatement* stmt, ControlFlowItem* empty, SgStatement** lastAnStmt, doLoops* loops, CallData* calls, CommonData*); -static ControlFlowItem* ifItem(SgStatement*, ControlFlowItem*, SgStatement** lastAnStmt, doLoops* loops, bool ins, CallData*, CommonData*); -static void setLeaders(ControlFlowItem*); -static void clearList(ControlFlowItem*); -static void fillLabelJumps(ControlFlowItem*); -static SgExpression* GetProcedureArgument(bool isF, void* f, int i); -static int GetNumberOfArguments(bool isF, void* f); -#if ACCAN_DEBUG -static void printControlFlowList(ControlFlowItem*, ControlFlowItem* last = NULL); -#endif - -//static ControlFlowGraph* GetControlFlowGraphWithCalls(bool, SgStatement*, CallData*, CommonData*); -//static void FillCFGSets(ControlFlowGraph*); -static void FillPrivates(ControlFlowGraph*); -static ControlFlowItem* AddFunctionCalls(SgStatement*, CallData*, ControlFlowItem**, CommonData*); - -const char* is_correct = NULL; -const char* failed_proc_name = NULL; -static PrivateDelayedItem* privateDelayedList = NULL; -static AnalysedCallsList* currentProcedure = NULL; -static AnalysedCallsList* mainProcedure = NULL; -static DoLoopDataList* doLoopList = NULL; -static CommonData* pCommons; -static CallData* pCalls; - -int total_privates = 0; -int total_pl = 0; - -static const IntrinsicSubroutineData intrinsicData[] = { - {"date_and_time", 4, { {-1, "date", INTRINSIC_OUT}, {-1, "time", INTRINSIC_OUT }, {-1, "zone", INTRINSIC_OUT }, {-1, "values", INTRINSIC_OUT } } }, - {"mod", 2, { {1, NULL, INTRINSIC_IN}, {2, NULL, INTRINSIC_IN} } }, - {"dvtime", 0, {}}, - {"abs", 1, { {1, NULL, INTRINSIC_IN} } }, - {"max", 2, { {1, NULL, INTRINSIC_IN}, {2, NULL, INTRINSIC_IN} } }, - {"min", 2, { {1, NULL, INTRINSIC_IN}, {2, NULL, INTRINSIC_IN} } }, - {"wtime", 1, { {1, NULL, INTRINSIC_IN} } }, - {"dble", 1, { {1, NULL, INTRINSIC_IN } } }, - {"dabs", 1, { {1, NULL, INTRINSIC_IN } } }, - {"dmax1", 2, { {1, NULL, INTRINSIC_IN}, {2, NULL, INTRINSIC_IN } } }, - {"dmin1", 2, { {1, NULL, INTRINSIC_IN}, {2, NULL, INTRINSIC_IN } } }, - {"dsqrt", 1, { {1, NULL, INTRINSIC_IN} } }, - {"dcos", 1, { {1, NULL, INTRINSIC_IN} } }, - {"datan2", 2, { {1, NULL, INTRINSIC_IN}, {2, NULL, INTRINSIC_IN} } }, - {"dsign", 2, { {1, NULL, INTRINSIC_IN}, {2, NULL, INTRINSIC_IN} } }, - {"dlog", 1, { {1, NULL, INTRINSIC_IN} } }, - {"dexp", 1, { {1, NULL, INTRINSIC_IN} } }, - {"omp_get_wtime", 0, {}}, - {"sqrt", 1, { {1, NULL, INTRINSIC_IN} } }, - {"int", 1, { {1, NULL, INTRINSIC_IN} } }, - {"iabs", 1, { {1, NULL, INTRINSIC_IN} } }, - {"fnpr", 4, { {1, NULL, INTRINSIC_IN},{ 2, NULL, INTRINSIC_IN },{ 3, NULL, INTRINSIC_IN },{ 4, NULL, INTRINSIC_IN } } }, - {"isnan", 1, { {1, NULL, INTRINSIC_IN } } } -}; - -//TODO: it does not work -//static map> CFG_cache; - - -static bool isIntrinsicFunctionNameACC(char* name) -{ -#if USE_INTRINSIC_DVM_LIST - return isIntrinsicFunctionName(name); -#else - return false; -#endif -} - -int SwitchFile(int file_id) -{ - if (file_id == current_file_id || file_id == -1) - return file_id; - int stored_file_id = current_file_id; - current_file_id = file_id; - current_file = &(CurrentProject->file(current_file_id)); - return stored_file_id; -} - -SgStatement * lastStmtOfDoACC(SgStatement *stdo) -{ - // is a copied function - SgStatement *st; - // second version (change 04.03.08) - st = stdo; -RE: st = st->lastNodeOfStmt(); - if ((st->variant() == FOR_NODE) || (st->variant() == WHILE_NODE)) - goto RE; - - else if (st->variant() == LOGIF_NODE) - return(st->lexNext()); - - else - return(st); - -} - -#ifdef __SPF -bool IsPureProcedureACC(SgSymbol* s) -#else -static bool IsPureProcedureACC(SgSymbol* s) -#endif -{ - // is a copied function - SgSymbol *shedr = NULL; - - shedr = GetProcedureHeaderSymbol(s); - if (shedr) - return(shedr->attributes() & PURE_BIT); - else - return 0; -} - -static bool IsUserFunctionACC(SgSymbol* s) -{ - // is a copied function - return(s->attributes() & USER_PROCEDURE_BIT); -} - -static const IntrinsicSubroutineData* IsAnIntrinsicSubroutine(const char* name) -{ - for (int i = 0; i < sizeof(intrinsicData) / sizeof(intrinsicData[0]); i++) - if (strcmp(name, intrinsicData[i].name) == 0) - return &(intrinsicData[i]); - return NULL; -} - -static SgExpression* CheckIntrinsicParameterFlag(const char* name, int arg, SgExpression* p, unsigned char flag) -{ - const IntrinsicSubroutineData* info = IsAnIntrinsicSubroutine(name); - if (!info) - return NULL; //better avoid this - for (int i = 0; i < info->args; i++) - { - const IntrinsicParameterData* pd = &(info->parameters[i]); - if (pd->index == arg + 1) - return (pd->status & flag) != 0 ? p : NULL; - - SgKeywordArgExp* kw = isSgKeywordArgExp(p); - if (kw) - { - SgExpression* a = kw->arg(); - SgExpression* val = kw->value(); - if (pd->name && strcmp(a->unparse(), pd->name) == 0) - return (pd->status & flag) != 0 ? val : NULL; - } - } - return NULL; -} -/* -//For parameters replacements in expressions -//#ifdef __SPF - -VarsKeeper varsKeeper; - -SgExpression* GetValueOfVar(SgExpression* var) -{ - return varsKeeper.GetValueOfVar(var); -} - -void VarsKeeper::GatherVars(SgStatement* start) -{ - pCommons = &(data->commons); - pCalls = &(data->calls); - currentProcedure = data->calls.AddHeader(start, false, start->symbol()); - mainProcedure = currentProcedure; - //stage 1: preparing graph data - data->graph = GetControlFlowGraphWithCalls(true, start, &(data->calls), &(data->commons)); - data->calls.AssociateGraphWithHeader(start, data->graph); - data->commons.MarkEndOfCommon(currentProcedure); - //calls.printControlFlows(); - //stage 2: data flow analysis - FillCFGSets(data->graph); - //stage 3: fulfilling loop data - FillPrivates(data->graph); - - if (privateDelayedList) - delete privateDelayedList; - privateDelayedList = NULL; -} - -SgExpression* VarsKeeper::GetValueOfVar(SgExpression* var) -{ - FuncData* curData = data; -} - -//#endif -*/ - - - -void SetUpVars(CommonData* commons, CallData* calls, AnalysedCallsList* m, DoLoopDataList* list) -{ - pCommons = commons; - pCalls = calls; - currentProcedure = m; - mainProcedure = currentProcedure; - doLoopList = list; -} - -AnalysedCallsList* GetCurrentProcedure() -{ - return currentProcedure; -} -//interprocedural analysis, called for main procedure -void Private_Vars_Analyzer(SgStatement* start) -{ -#ifndef __SPF - if (!options.isOn(PRIVATE_ANALYSIS)) { - return; - } -#endif - CallData calls; - CommonData commons; - DoLoopDataList doloopList; - SetUpVars(&commons, &calls, calls.AddHeader(start, false, start->symbol(), current_file_id), &doloopList); - - //stage 1: preparing graph data - ControlFlowGraph* CGraph = GetControlFlowGraphWithCalls(true, start, &calls, &commons); - calls.AssociateGraphWithHeader(start, CGraph); - commons.MarkEndOfCommon(currentProcedure); - - currentProcedure->graph->getPrivate(); -#if ACCAN_DEBUG - calls.printControlFlows(); -#endif - //stage 2: data flow analysis - FillCFGSets(CGraph); - //stage 3: fulfilling loop data - FillPrivates(CGraph); - - //test: graphvis - /*std::fstream fs; - fs.open("graph_old.txt", std::fstream::out); - fs << CGraph->GetVisualGraph(&calls); - fs.close();*/ - -#if !__SPF - delete CGraph; -#endif - - if (privateDelayedList) - delete privateDelayedList; - privateDelayedList = NULL; -} - -CallData::~CallData() -{ -#if __SPF - removeFromCollection(this); - return; -#endif - /* - for (AnalysedCallsList* l = calls_list; l != NULL;) - { - if (!l->isIntrinsic && l->graph) - { - if (l->graph->RemoveRef() && !l->graph->IsMain()) - { - delete l->graph; - l->graph = NULL; - } - } - AnalysedCallsList *temp = l; - l = l->next; - delete temp; - temp = NULL; - }*/ -} - -CommonData::~CommonData() -{ -#if __SPF - removeFromCollection(this); - return; -#endif - for (CommonDataItem* i = list; i != NULL;) { - for (CommonVarInfo* info = i->info; info != NULL;) { - CommonVarInfo* t = info; - info = info->next; - delete t; - } - CommonDataItem* tp = i; - i = i->next; - delete tp; - } -} - -ControlFlowGraph::~ControlFlowGraph() -{ -#if __SPF - removeFromCollection(this); - return; -#endif - while (common_def != NULL) - { - CommonVarSet* t = common_def; - common_def = common_def->next; - delete t; - } - while (common_use != NULL) - { - CommonVarSet* t = common_use; - common_use = common_use->next; - delete t; - } - - if (def) - delete def; - - if (use) - delete use; - - if (!temp && pri) - delete pri; - - for (CBasicBlock *bb = first; bb != NULL;) - { - CBasicBlock *tmp = bb; - bb = bb->getLexNext(); - - delete tmp; - tmp = NULL; - } -} - -CBasicBlock::~CBasicBlock() -{ -#if __SPF - removeFromCollection(this); - return; -#endif - - CommonVarSet* d = getCommonDef(); - while (d != NULL) - { - CommonVarSet* t = d; - d = d->next; - delete t; - } - - d = getCommonUse(); - while (d != NULL) - { - CommonVarSet* t = d; - d = d->next; - delete t; - } - - for (BasicBlockItem* bbi = prev; bbi != NULL;) - { - BasicBlockItem *tmp = bbi; - bbi = bbi->next; - delete tmp; - tmp = NULL; - } - - for (BasicBlockItem *bbi = succ; bbi != NULL;) - { - BasicBlockItem *tmp = bbi; - bbi = bbi->next; - delete tmp; - tmp = NULL; - } - - if (def) - delete def; - - if (use) - delete use; - - if (old_mrd_out) - delete old_mrd_out; - - if (old_mrd_in) - delete old_mrd_in; - - if (mrd_in) - delete mrd_in; - - if (mrd_out) - delete mrd_out; - - if (old_lv_out) - delete old_lv_out; - - if (old_lv_in) - delete old_lv_in; - - if (lv_in) - delete lv_in; - - if (lv_out) - delete lv_out; -} - -doLoops::~doLoops() -{ -#if __SPF - removeFromCollection(this); - return; -#endif - for (doLoopItem *it = first; it != NULL; ) - { - doLoopItem *tmp = it; - it = it->getNext(); - delete tmp; - } -} - -PrivateDelayedItem::~PrivateDelayedItem() -{ -#if __SPF - removeFromCollection(this); - return; -#endif - if (delay) - delete delay; - if (next) - delete next; -} - -VarSet::~VarSet() -{ -#if __SPF - removeFromCollection(this); -#endif - for (VarItem* it = list; it != NULL;) - { - VarItem* tmp = it; - it = it->next; - if (tmp->var) - if (tmp->var->RemoveReference()) - delete tmp->var; - delete tmp; - } -} - -CommonVarSet::CommonVarSet(const CommonVarSet& c) -{ - cvd = c.cvd; - if (c.next) - next = new CommonVarSet(*c.next); - else - next = NULL; - -#if __SPF - addToCollection(__LINE__, __FILE__, this, 22); -#endif -} - -std::string ControlFlowGraph::GetVisualGraph(CallData* calls) -{ - std::string result; - result += "digraph "; - char tmp[512]; - AnalysedCallsList* cd = calls->GetDataForGraph(this); - //if (cd == NULL || cd->header == NULL) - sprintf(tmp, "g_%llx", (uintptr_t)this); - //else - // sprintf(tmp, "g_%500s", cd->header->symbol()); - result += tmp; - result += "{ \n"; - for (CBasicBlock* b = this->first; b != NULL; b = b->getLexNext()) { - if (!b->IsEmptyBlock()) { - result += '\t' + b->GetGraphVisDescription() + "[shape=box,label=\""; - result += b->GetGraphVisData() + "\"];\n"; - } - } - for (CBasicBlock* b = first; b != NULL; b = b->getLexNext()) { - if (!b->IsEmptyBlock()) - result += b->GetEdgesForBlock(b->GetGraphVisDescription(), true, ""); - } - result += '}'; - ResetDrawnStatusForAllItems(); - return result; -} - -void ControlFlowGraph::ResetDrawnStatusForAllItems() { - for (CBasicBlock* b = first; b != NULL; b = b->getLexNext()) { - for (ControlFlowItem* it = b->getStart(); it != NULL && (it->isLeader() == false || it == b->getStart()); it = it->getNext()) { - it->ResetDrawnStatus(); - } - } -} - -std::string GetConditionWithLineNumber(ControlFlowItem* eit) -{ - std::string res; - if (eit->getOriginalStatement()) { - char tmp[16]; - sprintf(tmp, "%d: ", eit->getOriginalStatement()->lineNumber()); - res = tmp; - } - return res + eit->getExpression()->unparse(); -} - -std::string GetActualCondition(ControlFlowItem** pItem) { - std::string res = ""; - ControlFlowItem* eit = *pItem; - while (true) - { - if (eit == NULL || eit->getJump() != NULL || eit->getStatement() != NULL) - { - if (eit && eit->getJump() != NULL) - { - if (eit->getExpression() != NULL) - { - *pItem = eit; - return GetConditionWithLineNumber(eit); - } - else - { - *pItem = NULL; - return res; - } - break; - } - *pItem = NULL; - return res; - } - eit = eit->GetPrev(); - } - return res; -} - -std::string CBasicBlock::GetEdgesForBlock(std::string name, bool original, std::string modifier) -{ - std::string result; - for (BasicBlockItem* it = getSucc(); it != NULL; it = it->next) { - if (it->drawn) - continue; - it->drawn = true; - char lo = original; - std::string cond; - ControlFlowItem* eit = NULL; - bool pf = false; - if (it->jmp != NULL) { - if (it->jmp->getExpression() != NULL) { - eit = it->jmp; - cond = GetConditionWithLineNumber(eit); - } - else { - pf = true; - eit = it->jmp->GetPrev(); - cond = GetActualCondition(&eit); - } - } - if (eit && eit->GetFriend()) { - lo = false; - eit = eit->GetFriend(); - } - if (!it->block->IsEmptyBlock() || cond.length() != 0) { - if (cond.length() != 0 && eit && !pf){ - char tmp[32]; - sprintf(tmp, "c_%llx", (uintptr_t)eit); - if (!eit->IsDrawn()) { - result += '\t'; - result += tmp; - result += "[shape=diamond,label=\""; - result += cond; - result += "\"];\n"; - } - if (it->cond_value && !pf) { - result += '\t' + name + "->"; - result += tmp; - result += modifier; - result += '\n'; - } - eit->SetIsDrawn(); - } - if (cond.length() != 0) { - if (lo) { - char tmp[32]; - sprintf(tmp, "c_%llx", (uintptr_t)eit); - if (!it->block->IsEmptyBlock()) { - result += '\t'; - result += tmp; - result += "->" + it->block->GetGraphVisDescription(); - result += "[label="; - result += (!pf && it->cond_value) ? "T]" : "F]"; - result += ";\n"; - } - else { - std::string n = tmp; - std::string label; - label += "[label="; - label += (!pf && it->cond_value) ? "T]" : "F]"; - result += it->block->GetEdgesForBlock(n, original, label); - } - } - } - else { - result += '\t' + name + " -> " + it->block->GetGraphVisDescription(); - result += modifier; - result += ";\n"; - } - - } - else { - result += it->block->GetEdgesForBlock(name, original, ""); - } - } - return result; -} - -std::string CBasicBlock::GetGraphVisDescription() -{ - if (visname.length() != 0) - return visname; - char tmp[16]; - sprintf(tmp, "%d", num); - visname = tmp; - return visname; -} - -std::string CBasicBlock::GetGraphVisData() -{ - if (visunparse.length() != 0) - return visunparse; - std::string result; - for (ControlFlowItem* it = start; it != NULL && (it->isLeader() == false || it == start); it = it->getNext()) { - if (it->getStatement() != NULL) { - int ln = it->GetLineNumber(); - char tmp[16]; - sprintf(tmp, "%d: ", ln); - result += tmp; - result += it->getStatement()->unparse(); - } - } - visunparse = result; - return result; -} - -int ControlFlowItem::GetLineNumber() -{ - if (getStatement() == NULL) - return 0; - if (getStatement()->lineNumber() == 0){ - if (getOriginalStatement() == NULL) - return 0; - return getOriginalStatement()->lineNumber(); - } - return getStatement()->lineNumber(); -} - -bool CBasicBlock::IsEmptyBlock() -{ - for (ControlFlowItem* it = start; it != NULL && (it->isLeader() == false || it == start); it = it->getNext()) { - if (!it->IsEmptyCFI()) - return false; - } - return true; -} - -AnalysedCallsList* CallData::GetDataForGraph(ControlFlowGraph* s) -{ - for (AnalysedCallsList* it = calls_list; it != NULL; it = it->next) { - if (it->graph == s) - return it; - } - return NULL; -} - -ControlFlowGraph* GetControlFlowGraphWithCalls(bool main, SgStatement* start, CallData* calls, CommonData* commons) -{ - if (start == NULL) - { - //is_correct = "no body for call found"; - return NULL; - } - - ControlFlowGraph *cfgRet = NULL; - /* -#if __SPF - auto itF = CFG_cache.find(start); - if (itF != CFG_cache.end()) - { - calls = std::get<1>(itF->second); - commons = std::get<2>(itF->second); - return std::get<0>(itF->second); - } -#endif*/ - doLoops l; - ControlFlowItem *funcGraph = getControlFlowList(start, start->lastNodeOfStmt(), NULL, NULL, &l, calls, commons); - fillLabelJumps(funcGraph); - setLeaders(funcGraph); - - - cfgRet = new ControlFlowGraph(false, main, funcGraph, NULL); - //CFG_cache[start] = std::make_tuple(cfgRet, calls, commons); - return cfgRet; -} - -void FillCFGSets(ControlFlowGraph* graph) -{ - graph->privateAnalyzer(); -} - -static void ClearMemoryAfterDelay(ActualDelayedData* d) -{ - while (d != NULL) { - CommonVarSet* cd = d->commons; - while (cd != NULL) { - CommonVarSet* t = cd; - cd = cd->next; - delete t; - } - delete d->buse; - ActualDelayedData* tmp = d; - d = d->next; - delete tmp; - } -} - -static void FillPrivates(ControlFlowGraph* graph) -{ - ActualDelayedData* d = graph->ProcessDelayedPrivates(pCommons, mainProcedure, NULL, NULL, false, -1); - ClearMemoryAfterDelay(d); - if (privateDelayedList) - privateDelayedList->PrintWarnings(); -} - -ActualDelayedData* CBasicBlock::GetDelayedDataForCall(CallAnalysisLog* log) -{ - for (ControlFlowItem* it = start; it != NULL && (!it->isLeader() || it == start); it = it->getNext()) - { - AnalysedCallsList* c = it->getCall(); - void* cf = it->getFunctionCall(); - bool isFun = true; - if (!cf) { - cf = it->getStatement(); - isFun = false; - } - if (c != NULL && c != (AnalysedCallsList*)(-1) && c != (AnalysedCallsList*)(-2) && c->graph != NULL) - return c->graph->ProcessDelayedPrivates(pCommons, c, log, cf, isFun, it->getProc()->file_id); - } - return NULL; -} - -void PrivateDelayedItem::MoveFromPrivateToLastPrivate(CVarEntryInfo* var) -{ - VarItem* el = detected->belongs(var); - if (el) { - eVariableType storedType = el->var->GetVarType(); - detected->remove(el->var); - lp->addToSet(var, NULL); - } -} - -void ActualDelayedData::RemoveVarFromCommonList(CommonVarSet* c) -{ - if (commons == NULL || c == NULL) - return; - if (c == commons) - { - commons = commons->next; - delete c; - return; - } - CommonVarSet* prev = c; - for (CommonVarSet* cur = c->next; cur != NULL; cur = cur->next) - { - if (cur == c) - { - prev->next = c->next; - delete c; - return; - } - else - prev = cur; - } -} - -void ActualDelayedData::MoveVarFromPrivateToLastPrivate(CVarEntryInfo* var, CommonVarSet* c, VarSet* vs) -{ - original->MoveFromPrivateToLastPrivate(var); - RemoveVarFromCommonList(c); - if (vs) - { - if (vs->belongs(var)) - vs->remove(var); - } -} - -int IsThisVariableAParameterOfSubroutine(AnalysedCallsList* lst, SgSymbol* s) -{ - if (!lst->header) - return -1; - int stored = SwitchFile(lst->file_id); - SgProcHedrStmt* h = isSgProcHedrStmt(lst->header); - if (!h) - return -1; - for (int i = 0; i < h->numberOfParameters(); i++) { - SgSymbol* par = h->parameter(i); - if (par == s) { - SwitchFile(stored); - return i; - } - } - SwitchFile(stored); - return -1; -} - -ActualDelayedData* ControlFlowGraph::ProcessDelayedPrivates(CommonData* commons, AnalysedCallsList* call, CallAnalysisLog* log, void* c, bool isFun, int file_id) -{ - for (CallAnalysisLog* i = log; i != NULL; i = i->prev) { - if (i->el == call) - { - //TODO: add name of common -#if __SPF - const wchar_t* rus = R158; - Warning("Recursion is not analyzed for privates in common blocks '%s'", rus, "TODO!", PRIVATE_ANALYSIS_NO_RECURSION_ANALYSIS, call->header); -#else - Warning("Recursion is not analyzed for privates in common blocks '%s'", "TODO!", PRIVATE_ANALYSIS_NO_RECURSION_ANALYSIS, call->header); -#endif - return NULL; - } - } - CallAnalysisLog* nl = new CallAnalysisLog(); - nl->el = call; - nl->prev = log; - if (log == NULL) - nl->depth = 0; - else - nl->depth = log->depth + 1; - log = nl; - ActualDelayedData* my = NULL; - for (CBasicBlock* bb = first; bb != NULL; bb = bb->getLexNext()) { - if (bb->containsParloopStart()) { - if (bb->GetDelayedData()) { - ActualDelayedData* data = new ActualDelayedData(); - data->original = bb->GetDelayedData(); - data->commons = commons->GetCommonsForVarSet(data->original->getDetected(), call); - VarSet* bu = new VarSet(); - bu->unite(data->original->getDelayed(), false); - VarSet* tbu = new VarSet(); - while (!bu->isEmpty()) { - if (IS_BY_USE(bu->getFirst()->var->GetSymbol())) - tbu->addToSet(bu->getFirst()->var, NULL); - else { - CVarEntryInfo* old = bu->getFirst()->var; - int arg_id = IsThisVariableAParameterOfSubroutine(call, bu->getFirst()->var->GetSymbol()); - if (arg_id != -1 && c != NULL) { - int stored = SwitchFile(file_id); - SgExpression* exp = GetProcedureArgument(isFun, c, arg_id); - if (isSgVarRefExp(exp) || isSgArrayRefExp(exp)) { - SgSymbol* sym = exp->symbol(); - CVarEntryInfo* v; - if (isSgVarRefExp(exp)) { - v = new CScalarVarEntryInfo(sym); - } - else { - v = old->Clone(sym); - } - tbu->addToSet(v, NULL, old); - } - SwitchFile(stored); - - } - } - bu->remove(bu->getFirst()->var); - } - data->buse = tbu; - delete bu; - data->next = my; - data->call = call; - my = data; - } - } - ActualDelayedData* calldata = bb->GetDelayedDataForCall(log); - while (calldata != NULL) { - CommonVarSet* nxt = NULL; - for (CommonVarSet* t = calldata->commons; t != NULL; t = nxt) { - nxt = t->next; - CommonVarInfo* cvd = t->cvd; - CommonDataItem* d = commons->IsThisCommonUsedInProcedure(cvd->parent, call); - if (!d || commons->CanHaveNonScalarVars(d)) - continue; - CommonVarInfo* j = cvd->parent->info; - CommonVarInfo* i = d->info; - while (j != cvd) { - j = j->next; - if (i) - i = i->next; - } - if (!i) - continue; - CVarEntryInfo* var = i->var; - if (bb->getLexNext()->getLiveIn()->belongs(var->GetSymbol()) && calldata->original->getDelayed()->belongs(cvd->var)) { - calldata->MoveVarFromPrivateToLastPrivate(cvd->var, t, NULL); - } - if (bb->IsVarDefinedAfterThisBlock(var, false)) { - calldata->RemoveVarFromCommonList(t); - } - - } - if (log->el->header == calldata->call->header) { - VarSet* pr = new VarSet(); - pr->unite(calldata->original->getDelayed(), false); - pr->intersect(bb->getLexNext()->getLiveIn(), false, true); - for (VarItem* exp = pr->getFirst(); exp != NULL; pr->getFirst()) { - calldata->MoveVarFromPrivateToLastPrivate(exp->var, NULL, NULL); - pr->remove(exp->var); - } - delete pr; - } - VarSet* tmp_use = new VarSet(); - tmp_use->unite(calldata->buse, false); - while (!tmp_use->isEmpty()) { - VarItem* v = tmp_use->getFirst(); - CVarEntryInfo* tmp = v->var->Clone(OriginalSymbol(v->var->GetSymbol())); - if (bb->getLexNext()->getLiveIn()->belongs(tmp->GetSymbol(), true)) { - calldata->MoveVarFromPrivateToLastPrivate(v->ov ? v->ov : v->var, NULL, calldata->buse); - } - if (bb->IsVarDefinedAfterThisBlock(v->var, true)) { - calldata->buse->remove(v->ov ? v->ov : v->var); - } - delete tmp; - tmp_use->remove(v->var); - } - delete tmp_use; - ActualDelayedData* tmp = calldata->next; - calldata->next = my; - my = calldata; - calldata = tmp; - } - } - nl = log; - log = log->prev; - - delete nl; - return my; -} - -extern graph_node* node_list; -void Private_Vars_Function_Analyzer(SgStatement* start); - -void Private_Vars_Project_Analyzer() -{ - graph_node* node = node_list; - while (node) { - if (node->st_header) { - int stored_file_id = SwitchFile(node->file_id); - Private_Vars_Function_Analyzer(node->st_header); - SwitchFile(stored_file_id); - } - node = node->next; - } -} - -// CALL function for PRIVATE analyzing -void Private_Vars_Function_Analyzer(SgStatement* start) -{ - //temporary state -#ifndef __SPF - if (!options.isOn(PRIVATE_ANALYSIS)){ - return; - } -#endif - - if (start->variant() == PROG_HEDR) { - Private_Vars_Analyzer(start); - } - /* - ControlFlowItem* funcGraph = getControlFlowList(start, start->lastNodeOfStmt(), NULL, NULL, new doLoops()); - fillLabelJumps(funcGraph); - setLeaders(funcGraph); -#if ACCAN_DEBUG - printControlFlowList(funcGraph); -#endif - ControlFlowItem* p = funcGraph; - ControlFlowItem* pl_start = NULL; - ControlFlowItem* pl_end = NULL; - ControlFlowGraph* graph = new ControlFlowGraph(funcGraph, NULL); - graph->privateAnalyzer(); - */ -} -/* -// CALL function for PRIVATE analyzing -void Private_Vars_Analyzer(SgStatement *firstSt, SgStatement *lastSt) -{ - // temporary state - //return; - SgExpression* par_des = firstSt->expr(2); - SgSymbol* l; - SgForStmt* chk; - int correct = 1; - firstSt = firstSt->lexNext(); - while (correct && (par_des != NULL) && (par_des->lhs() != NULL) && ((l = par_des->lhs()->symbol()) != NULL)){ - if (firstSt->variant() == FOR_NODE){ - chk = isSgForStmt(firstSt); - if (chk->symbol() != l) - correct = 0; - firstSt = firstSt->lexNext(); - par_des = par_des->rhs(); - } - else{ - correct = 0; - } - } - if (correct){ - doLoops* loops = new doLoops(); - ControlFlowItem* cfList = getControlFlowList(firstSt, lastSt, NULL, NULL, loops); - fillLabelJumps(cfList); - setLeaders(cfList); -#if ACCAN_DEBUG - printControlFlowList(cfList); -#endif - VarSet* priv = ControlFlowGraph(cfList, NULL).getPrivate(); -#if ACCAN_DEBUG - priv->print(); -#endif - clearList(cfList); - } -} -*/ - -static void fillLabelJumps(ControlFlowItem* cfList) -{ - if (cfList != NULL){ - ControlFlowItem* temp = cfList; - ControlFlowItem* temp2; - unsigned int label_no = 0; - while (temp != NULL){ - if (temp->getLabel() != NULL) - label_no++; - temp = temp->getNext(); - } - LabelCFI* table = new LabelCFI[label_no + 1]; - unsigned int li = 0; - for (temp = cfList; temp != NULL; temp = temp->getNext()){ - SgLabel* label; - if ((label = temp->getLabel()) != NULL){ - table[li].item = temp; - table[li++].l = label->id(); - } - temp2 = temp; - } - temp = new ControlFlowItem(currentProcedure); - temp2->AddNextItem(temp); - table[label_no].item = temp2; - table[label_no].l = -1; - for (temp = cfList; temp != NULL; temp = temp->getNext()){ - SgLabel* jump = temp->getLabelJump(); - int l; - if (jump != NULL){ - l = jump->id(); - for (unsigned int i = 0; i < label_no + 1; i++){ - if (table[i].l == l || i == label_no){ - temp->initJump(table[i].item); - break; - } - } - } - } - delete[] table; - } -} - -static void setLeaders(ControlFlowItem* cfList) -{ - if (cfList != NULL) - cfList->setLeader(); - while (cfList != NULL) - { - if (cfList->getJump() != NULL) - { - cfList->getJump()->setLeader(); - if (cfList->getNext() != NULL) - cfList->getNext()->setLeader(); - } - if (cfList->getCall() != NULL) - { - if (cfList->getNext() != NULL) - cfList->getNext()->setLeader(); - } - cfList = cfList->getNext(); - } -} - -static void clearList(ControlFlowItem *list) -{ - if (list != NULL) - { - if (list->getNext() != NULL) - clearList(list->getNext()); - - delete list; - } -} - -static ControlFlowItem* ifItem(SgStatement* stmt, ControlFlowItem* empty, SgStatement** lastAnStmt, doLoops* loops, bool ins, CallData* calls, CommonData* commons) -{ - if (stmt == NULL) - return empty; - SgIfStmt* cond; - if (stmt->variant() == ELSEIF_NODE) - cond = (SgIfStmt*)stmt; - if (stmt->variant() == ELSEIF_NODE || (!ins && (cond = isSgIfStmt(stmt)) != NULL)) - { - SgExpression* c = &(SgNotOp((cond->conditional()->copy()))); - ControlFlowItem *n, *j; - ControlFlowItem* last; - if ((n = getControlFlowList(cond->trueBody(), NULL, &last, lastAnStmt, loops, calls, commons)) == NULL) - return NULL; - j = ifItem(cond->falseBody(), empty, lastAnStmt, loops, cond->falseBody() != NULL ? cond->falseBody()->variant() == IF_NODE : false, calls, commons); - ControlFlowItem* gotoEmpty = new ControlFlowItem(NULL, empty, j, NULL, currentProcedure); - if (last != NULL) - last->AddNextItem(gotoEmpty); - else - n = gotoEmpty; - ControlFlowItem* tn = new ControlFlowItem(c, j, n, stmt->label(), currentProcedure); - tn->setOriginalStatement(stmt); - return tn; - } - else - { - ControlFlowItem* last; - ControlFlowItem* ret; - if ((ret = getControlFlowList(stmt, NULL, &last, lastAnStmt, loops, calls, commons)) == NULL) - return NULL; - last->AddNextItem(empty); - return ret; - } -} - -static ControlFlowItem* switchItem(SgStatement* stmt, ControlFlowItem* empty, SgStatement** lastAnStmt, doLoops* loops, CallData* calls, CommonData* commons) -{ - SgSwitchStmt* sw = isSgSwitchStmt(stmt); - SgExpression* sw_cond = (sw->selector()); - stmt = stmt->lexNext(); - *lastAnStmt = stmt; - ControlFlowItem* last_sw = NULL; - ControlFlowItem* first = NULL; - bool is_def_last = false; - SgStatement* not_def_last; - while (stmt->variant() == CASE_NODE || stmt->variant() == DEFAULT_NODE) - { - if (stmt->variant() == DEFAULT_NODE){ - while (stmt->variant() != CONTROL_END && stmt->variant() != CASE_NODE) - stmt = stmt->lexNext(); - if (stmt->variant() == CONTROL_END) - stmt = stmt->lexNext(); - is_def_last = true; - continue; - } - SgExpression* c = ((SgCaseOptionStmt*)stmt)->caseRange(0); - SgExpression *lhs = NULL; - SgExpression *rhs = NULL; - if (c->variant() == DDOT){ - lhs = c->lhs(); - rhs = c->rhs(); - if (rhs == NULL) - c = &(*lhs <= *sw_cond); - else if (lhs == NULL) - c = &(*sw_cond <= *rhs); - else - c = &(*lhs <= *sw_cond && *sw_cond <= *rhs); - } - else - c = &SgNeqOp(*sw_cond, *c); - ControlFlowItem *n, *j; - ControlFlowItem* last; - if ((n = getControlFlowList(stmt->lexNext(), NULL, &last, lastAnStmt, loops, calls, commons)) == NULL) - return NULL; - j = new ControlFlowItem(currentProcedure); - ControlFlowItem* gotoEmpty = new ControlFlowItem(NULL, empty, j, NULL, currentProcedure); - if (last != NULL) - last->AddNextItem(gotoEmpty); - else - n = gotoEmpty; - ControlFlowItem* cond = new ControlFlowItem(c, j, n, stmt->label(), currentProcedure); - cond->setOriginalStatement(stmt); - if (last_sw == NULL) - first = cond; - else - last_sw->AddNextItem(cond); - last_sw = j; - is_def_last = false; - not_def_last = *lastAnStmt; - stmt = *lastAnStmt; - } - SgStatement* def = sw->defOption(); - if (def != NULL){ - ControlFlowItem* last; - ControlFlowItem* n; - if ((n = getControlFlowList(def->lexNext(), NULL, &last, lastAnStmt, loops, calls, commons)) == NULL) - return NULL; - if (last != NULL) - last->AddNextItem(empty); - if (last_sw == NULL) - first = n; - else - last_sw->AddNextItem(n); - last_sw = last; - } - last_sw->AddNextItem(empty); - if (!is_def_last) - *lastAnStmt = not_def_last; - return first; -} - -static ControlFlowItem* getControlFlowList(SgStatement *firstSt, SgStatement *lastSt, ControlFlowItem **last, SgStatement **lastAnStmt, doLoops* loops, CallData* calls, CommonData* commons) -{ - ControlFlowItem *list = new ControlFlowItem(currentProcedure); - ControlFlowItem *cur = list; - ControlFlowItem *pred = list; - SgStatement *stmt; - for (stmt = firstSt; ( - stmt != lastSt - && stmt->variant() != CONTAINS_STMT - && (lastSt != NULL || stmt->variant() != ELSEIF_NODE) - && (lastSt != NULL || stmt->variant() != CASE_NODE) - && (lastSt != NULL || stmt->variant() != DEFAULT_NODE)); - stmt = stmt->lexNext()) - { - if (stmt->variant() == CONTROL_END) - { - if (isSgExecutableStatement(stmt)) - break; - } - - cur = processOneStatement(&stmt, &pred, &list, cur, loops, calls, commons); - if (cur == NULL) - { - clearList(list); - return NULL; - } - } - if (cur == NULL){ - cur = list = new ControlFlowItem(currentProcedure); - } - if (last != NULL) - *last = cur; - if (lastAnStmt != NULL) - *lastAnStmt = stmt; - return list; -} - -AnalysedCallsList* CallData::IsHeaderInList(SgStatement* header) -{ - if (header == NULL) - return NULL; - AnalysedCallsList* p = calls_list; - while (p != NULL) { - if (p->header == header) - return p; - p = p->next; - } - return NULL; -} - -void CallData::AssociateGraphWithHeader(SgStatement* st, ControlFlowGraph* gr) -{ - AnalysedCallsList* l = calls_list; - while (l != NULL) { - if (l->header == st) { - if (gr == l->graph && gr != NULL) - gr->AddRef(); - l->graph = gr; - return; - } - l = l->next; - } - delete gr; -} - -AnalysedCallsList* CallData::AddHeader(SgStatement* st, bool isFun, SgSymbol* name, int fid) -{ - //test - bool add_intr = IsAnIntrinsicSubroutine(name->identifier()) != NULL; - AnalysedCallsList* l = new AnalysedCallsList(st, (isIntrinsicFunctionNameACC(name->identifier()) || add_intr) && !IsUserFunctionACC(name), IsPureProcedureACC(name), isFun, name->identifier(), fid); - l->next = calls_list; - calls_list = l; - return l; -} - -extern int isStatementFunction(SgSymbol *s); - -AnalysedCallsList* CallData::getLinkToCall(SgExpression* e, SgStatement* s, CommonData* commons) -{ - SgStatement* header = NULL; - SgSymbol* name; - bool isFun; - graph_node* g = NULL; - if (e == NULL) { - //s - procedure call - SgCallStmt* f = isSgCallStmt(s); - SgSymbol* fdaf = f->name(); - if (ATTR_NODE(f->name()) != NULL) - g = GRAPHNODE(f->name()); - if (g == NULL) { - - is_correct = "no header for procedure"; - failed_proc_name = f->name()->identifier(); - return (AnalysedCallsList*)(-1); - - } - if (g) - header = isSgProcHedrStmt(g->st_header); - name = f->name(); - isFun = false; - //intr = isIntrinsicFunctionNameACC(f->name()->identifier()) && !IsUserFunctionACC(f->name()); - //IsPureProcedureACC(f->name()); - } - else { - //e - function call - SgFunctionCallExp* f = isSgFunctionCallExp(e); - if (isStatementFunction(f->funName())) - return (AnalysedCallsList*)(-2); - if (ATTR_NODE(f->funName()) != NULL) - g = GRAPHNODE(f->funName()); - if (g == NULL) { - is_correct = "no header for function"; - failed_proc_name = f->funName()->identifier(); - return (AnalysedCallsList*)(-1); - } - header = isSgFuncHedrStmt(g->st_header); - name = f->funName(); - isFun = true; - } - AnalysedCallsList* p; - if ((p = IsHeaderInList(header))) { - recursion_flag = recursion_flag || p->graph != NULL; - return p; - } - AnalysedCallsList* prev = currentProcedure; - currentProcedure = p = AddHeader(header, isFun, name, g->file_id); - if (!p->isIntrinsic) { - int stored = SwitchFile(g->file_id); - - ControlFlowGraph* graph = GetControlFlowGraphWithCalls(false, header, this, commons); - //if (graph == NULL) - //failed_proc_name = name->identifier(); - - SwitchFile(stored); - - AssociateGraphWithHeader(header, graph); - commons->MarkEndOfCommon(p); - } - currentProcedure = prev; - return p; -} - -static ControlFlowItem* GetFuncCallsForExpr(SgExpression* e, CallData* calls, ControlFlowItem** last, CommonData* commons, SgStatement* os) -{ - if (e == NULL) { - *last = NULL; - return NULL; - } - SgFunctionCallExp* f = isSgFunctionCallExp(e); - if (f) { - ControlFlowItem* head = new ControlFlowItem(NULL, NULL, currentProcedure, calls->getLinkToCall(e, NULL, commons)); - head->setOriginalStatement(os); - ControlFlowItem* curl = head; - head->setFunctionCall(f); - ControlFlowItem* l1, *l2; - ControlFlowItem* tail1 = GetFuncCallsForExpr(e->lhs(), calls, &l1, commons, os); - ControlFlowItem* tail2 = GetFuncCallsForExpr(e->rhs(), calls, &l2, commons, os); - *last = head; - if (tail2 != NULL) { - l2->AddNextItem(head); - head = tail2; - } - if (tail1 != NULL) { - l1->AddNextItem(head); - head = tail1; - } - - return head; - } - f = isSgFunctionCallExp(e->lhs()); - if (f) { - ControlFlowItem* head = new ControlFlowItem(NULL, NULL, currentProcedure, calls->getLinkToCall(e->lhs(), NULL, commons)); - head->setOriginalStatement(os); - head->setFunctionCall(f); - ControlFlowItem* l1, *l2, *l3; - ControlFlowItem* tail1 = GetFuncCallsForExpr(e->lhs()->lhs(), calls, &l1, commons, os); - ControlFlowItem* tail2 = GetFuncCallsForExpr(e->lhs()->rhs(), calls, &l2, commons, os); - ControlFlowItem* tail3 = GetFuncCallsForExpr(e->rhs(), calls, &l3, commons, os); - *last = head; - if (tail2 != NULL) { - l2->AddNextItem(head); - head = tail2; - } - if (tail1 != NULL) { - l1->AddNextItem(head); - head = tail1; - } - if (tail3 != NULL) { - (*last)->AddNextItem(tail3); - *last = l3; - } - return head; - } - return GetFuncCallsForExpr(e->rhs(), calls, last, commons, os); -} - -static ControlFlowItem* AddFunctionCalls(SgStatement* st, CallData* calls, ControlFlowItem** last, CommonData* commons) -{ - ControlFlowItem* retv = GetFuncCallsForExpr(st->expr(0), calls, last, commons, st); - ControlFlowItem* l2 = NULL; - ControlFlowItem* second = GetFuncCallsForExpr(st->expr(1), calls, &l2, commons, st); - if (retv == NULL) { - retv = second; - *last = l2; - } - else if (second != NULL) { - (*last)->AddNextItem(second); - *last = l2; - } - ControlFlowItem* l3 = NULL; - ControlFlowItem* third = GetFuncCallsForExpr(st->expr(2), calls, &l3, commons, st); - if (retv == NULL) { - retv = third; - *last = l3; - } - else if (third != NULL) { - (*last)->AddNextItem(third); - *last = l3; - } - return retv; -} - -void DoLoopDataList::AddLoop(int file_id, SgStatement* st, SgExpression* l, SgExpression* r, SgExpression* step, SgSymbol* lv) -{ - DoLoopDataItem* nt = new DoLoopDataItem(); - nt->file_id = file_id; - nt->statement = st; - nt->l = l; - nt->r = r; - nt->st = step; - nt->loop_var = lv; - nt->next = list; - list = nt; -} - -DoLoopDataList::~DoLoopDataList() -{ -#if __SPF - removeFromCollection(this); - return; -#endif - while (list != NULL) { - DoLoopDataItem* t = list->next; - delete list; - list = t; - } -} - -static ControlFlowItem* processOneStatement(SgStatement** stmt, ControlFlowItem** pred, ControlFlowItem **list, ControlFlowItem* oldcur, doLoops* loops, CallData* calls, CommonData* commons) -{ - ControlFlowItem* lastf; - ControlFlowItem* funcs = AddFunctionCalls(*stmt, calls, &lastf, commons); - if (funcs != NULL) { - if (*pred != NULL) - (*pred)->AddNextItem(funcs); - else - *list = funcs; - *pred = lastf; - } - - switch ((*stmt)->variant()) - { - case IF_NODE: - { - ControlFlowItem* emptyAfterIf = new ControlFlowItem(currentProcedure); //empty item to avoid second pass - /* - if ((*stmt)->hasLabel()){ - ControlFlowItem* emptyBeforeIf = new ControlFlowItem(); - emptyBeforeIf->setLabel((*stmt)->label()); - if (*pred != NULL) - (*pred)->AddNextItem(emptyBeforeIf); - else - *list = emptyBeforeIf; - *pred = emptyBeforeIf; - } - */ - ControlFlowItem* cur = ifItem(*stmt, emptyAfterIf, stmt, loops, false, calls, commons); - emptyAfterIf->setLabel((*stmt)->label()); - if (*pred != NULL) - (*pred)->AddNextItem(cur); - else - *list = cur; - return (*pred = emptyAfterIf); - } - case ASSIGN_STAT: - case POINTER_ASSIGN_STAT: - case PROC_STAT: - case PRINT_STAT: - case READ_STAT: - case WRITE_STAT: - case ALLOCATE_STMT: - case DEALLOCATE_STMT: - { - ControlFlowItem* cur = new ControlFlowItem(*stmt, NULL, currentProcedure, (*stmt)->variant() == PROC_STAT ? calls->getLinkToCall(NULL, *stmt, commons) : NULL); - if (*pred != NULL) - (*pred)->AddNextItem(cur); - else - *list = cur; - return (*pred = loops->checkStatementForLoopEnding(cur->getLabel() ? cur->getLabel()->id() : -1, cur)); - } - case LOGIF_NODE: - { - ControlFlowItem* emptyAfterIf = new ControlFlowItem(currentProcedure); //empty item to avoid second pass - SgLogIfStmt* cond = isSgLogIfStmt(*stmt); - SgLabel* lbl = (*stmt)->label(); - SgExpression* c = &(SgNotOp((cond->conditional()->copy()))); - ControlFlowItem* cur = new ControlFlowItem(c, emptyAfterIf, NULL, (*stmt)->label(), currentProcedure); - cur->setOriginalStatement(*stmt); - if (*pred != NULL) - (*pred)->AddNextItem(cur); - else - *list = cur; - *stmt = (*stmt)->lexNext(); - ControlFlowItem* body; - if ((body = processOneStatement(stmt, &cur, list, cur, loops, calls, commons)) == NULL){ - return NULL; - } - body->AddNextItem(emptyAfterIf); - return (*pred = loops->checkStatementForLoopEnding(lbl ? lbl->id() : -1, emptyAfterIf)); - } - case WHILE_NODE: - { - SgWhileStmt* cond = isSgWhileStmt(*stmt); - bool isEndDo = (*stmt)->lastNodeOfStmt()->variant() == CONTROL_END; - SgExpression* c; - if (cond->conditional()) - c = &(SgNotOp((cond->conditional()->copy()))); - else - c = new SgValueExp(1); - ControlFlowItem* emptyAfterWhile = new ControlFlowItem(currentProcedure); - ControlFlowItem* emptyBeforeBody = new ControlFlowItem(currentProcedure); - ControlFlowItem* cur = new ControlFlowItem(c, emptyAfterWhile, emptyBeforeBody, (*stmt)->label(), currentProcedure); - cur->setOriginalStatement(cond); - ControlFlowItem* gotoStart = new ControlFlowItem(NULL, cur, emptyAfterWhile, NULL, currentProcedure); - ControlFlowItem* emptyBefore = new ControlFlowItem(NULL, (ControlFlowItem*)NULL, cur, cond->label(), currentProcedure); - SgVarRefExp* doName = (isSgVarRefExp((*stmt)->expr(2))); - int lbl = -1; - if (!isEndDo){ - SgStatement* end = lastStmtOfDoACC(cond); - if (end->controlParent() && end->controlParent()->variant() == LOGIF_NODE) - lbl = end->controlParent()->label()->id(); - else - lbl = end->label()->id(); - } - loops->addLoop(lbl, doName ? doName->symbol() : NULL, gotoStart, emptyAfterWhile); - ControlFlowItem* n, *last; - if (isEndDo){ - if ((n = getControlFlowList((*stmt)->lexNext(), NULL, &last, stmt, loops, calls, commons)) == NULL) - return NULL; - emptyBeforeBody->AddNextItem(n); - loops->endLoop(last); - } - if (*pred != NULL) - (*pred)->AddNextItem(emptyBefore); - else - *list = emptyBefore; - if (isEndDo) - return (*pred = emptyAfterWhile); - return (*pred = emptyBeforeBody); - } - case FOR_NODE: - { - SgForStmt* fst = isSgForStmt(*stmt); -#if __SPF - SgStatement *p = NULL; - for (int i = 0; i < fst->numberOfAttributes(); ++i) - { - if (fst->attributeType(i) == SPF_ANALYSIS_DIR) - { - p = (SgStatement *)(fst->getAttribute(i)->getAttributeData()); - break; - } - } - bool isParLoop = (p && p->variant() == SPF_ANALYSIS_DIR); -#else - SgStatement* p = (*stmt)->lexPrev(); - bool isParLoop = (p && p->variant() == DVM_PARALLEL_ON_DIR); -#endif - SgExpression* pl = NULL; - SgExpression* pPl = NULL; - bool pl_flag = true; - if (isParLoop){ -#if __SPF - SgExpression* el = p->expr(0); -#else - SgExpression* el = p->expr(1); -#endif - pPl = el; - while (el != NULL) { - SgExpression* e = el->lhs(); - if (e->variant() == ACC_PRIVATE_OP) { - pl = e; - break; - } - pPl = el; - pl_flag = false; - el = el->rhs(); - } - //pl->unparsestdout(); - } - bool isEndDo = fst->isEnddoLoop(); - SgExpression* lh = new SgVarRefExp(fst->symbol()); - SgStatement* fa = new SgAssignStmt(*lh, *fst->start()); - bool needs_goto = true; -#if !__SPF - // create goto edge if can not calculate count of loop's iterations - if (fst->start()->variant() == INT_VAL && fst->end()->variant() == INT_VAL && fst->start()->valueInteger() < fst->end()->valueInteger()) - needs_goto = false; -#endif - //fa->setLabel(*(*stmt)->label()); - ControlFlowItem* last; - ControlFlowItem* emptyAfterDo = new ControlFlowItem(currentProcedure); - ControlFlowItem* emptyBeforeDo = new ControlFlowItem(currentProcedure); - ControlFlowItem* gotoEndInitial = NULL; - if (needs_goto) { - SgExpression* sendc = new SgExpression(GT_OP, new SgVarRefExp(fst->symbol()), fst->end(), NULL); - gotoEndInitial = new ControlFlowItem(sendc, emptyAfterDo, emptyBeforeDo, NULL, currentProcedure, true); - gotoEndInitial->setOriginalStatement(fst); - } - ControlFlowItem* stcf = new ControlFlowItem(fa, needs_goto ? gotoEndInitial : emptyBeforeDo, currentProcedure); - stcf->setOriginalStatement(fst); - stcf->setLabel((*stmt)->label()); - SgExpression* rh = new SgExpression(ADD_OP, new SgVarRefExp(fst->symbol()), new SgValueExp(1), NULL); - SgStatement* add = new SgAssignStmt(*lh, *rh); - SgExpression* endc = new SgExpression(GT_OP, new SgVarRefExp(fst->symbol()), fst->end(), NULL); - ControlFlowItem* gotoStart = new ControlFlowItem(NULL, emptyBeforeDo, emptyAfterDo, NULL, currentProcedure); - ControlFlowItem* gotoEnd = new ControlFlowItem(endc, emptyAfterDo, gotoStart, NULL, currentProcedure); - gotoEnd->setOriginalStatement(fst); - if (needs_goto) { - gotoEnd->SetConditionFriend(gotoEndInitial); - } - ControlFlowItem* loop_d = new ControlFlowItem(add, gotoEnd, currentProcedure); - loop_d->setOriginalStatement(fst); - ControlFlowItem* loop_emp = new ControlFlowItem(NULL, loop_d, currentProcedure); - SgVarRefExp* doName = (isSgVarRefExp((*stmt)->expr(2))); - int lbl = -1; - if (!isEndDo){ - SgStatement* end = lastStmtOfDoACC(fst); - if (end->variant() == LOGIF_NODE) - lbl = end->controlParent()->label()->id(); - else - lbl = end->label()->id(); - } - loops->addLoop(lbl, doName ? doName->symbol() : NULL, loop_emp, emptyAfterDo); - doLoopList->AddLoop(current_file_id, *stmt, fst->start(), fst->end(), fst->step(), fst->symbol()); - if (isParLoop) { -#if __SPF - // all loop has depth == 1 ? is it correct? - int k = 1; -#else - SgExpression* par_des = p->expr(2); - int k = 0; - while (par_des != NULL && par_des->lhs() != NULL) { - k++; - par_des = par_des->rhs(); - } -#endif - loops->setParallelDepth(k, pl, p, pPl, pl_flag); - } - - if (loops->isLastParallel()) { - SgExpression* ex = loops->getPrivateList(); - emptyBeforeDo->MakeParloopStart(); - bool f; - SgExpression* e = loops->getExpressionToModifyPrivateList(&f); - emptyBeforeDo->setPrivateList(ex, loops->GetParallelStatement(), e, f); - loop_d->MakeParloopEnd(); - } - if (isEndDo){ - ControlFlowItem* body; - if ((body = getControlFlowList(fst->body(), NULL, &last, stmt, loops, calls, commons)) == NULL) - return NULL; - emptyBeforeDo->AddNextItem(body); - loops->endLoop(last); - } - if (*pred != NULL) - (*pred)->AddNextItem(stcf); - else - *list = stcf; - if (isEndDo) - return (*pred = emptyAfterDo); - return (*pred = emptyBeforeDo); - } - case GOTO_NODE: - { - SgGotoStmt* gst = isSgGotoStmt(*stmt); - ControlFlowItem* gt = new ControlFlowItem(NULL, gst->branchLabel(), NULL, gst->label(), currentProcedure); - if (*pred != NULL) - (*pred)->AddNextItem(gt); - else - *list = gt; - return (*pred = gt); - } - case ARITHIF_NODE: - { - SgArithIfStmt* arif = (SgArithIfStmt*)(*stmt); - ControlFlowItem* gt3 = new ControlFlowItem(NULL, ((SgLabelRefExp*)(*stmt)->expr(1)->rhs()->rhs()->lhs())->label(), NULL, NULL, currentProcedure); - ControlFlowItem* gt2 = new ControlFlowItem(&SgEqOp(*(arif->conditional()), *new SgValueExp(0)), ((SgLabelRefExp*)(*stmt)->expr(1)->rhs()->lhs())->label(), gt3, NULL, currentProcedure); - gt2->setOriginalStatement(arif); - ControlFlowItem* gt1 = new ControlFlowItem(&(*arif->conditional() < *new SgValueExp(0)), ((SgLabelRefExp*)(*stmt)->expr(1)->lhs())->label(), gt2, (*stmt)->label(), currentProcedure); - gt1->setOriginalStatement(arif); - if (*pred != NULL) - (*pred)->AddNextItem(gt1); - else - *list = gt1; - return (*pred = gt3); - } - case COMGOTO_NODE: - { - SgComputedGotoStmt* cgt = (SgComputedGotoStmt*)(*stmt); - SgExpression* label = cgt->labelList(); - int i = 0; - SgLabel* lbl = ((SgLabelRefExp *)(label->lhs()))->label(); - ControlFlowItem* gt = new ControlFlowItem(&SgEqOp(*(cgt->exp()), *new SgValueExp(++i)), lbl, NULL, cgt->label(), currentProcedure); - gt->setOriginalStatement(cgt); - if (*pred != NULL) - (*pred)->AddNextItem(gt); - else - *list = gt; - ControlFlowItem* old = gt; - while ((label = label->rhs())) - { - lbl = ((SgLabelRefExp *)(label->lhs()))->label(); - gt = new ControlFlowItem(&SgEqOp(*(cgt->exp()), *new SgValueExp(++i)), lbl, NULL, NULL, currentProcedure); - gt->setOriginalStatement(cgt); - old->AddNextItem(gt); - old = gt; - } - return (*pred = gt); - } - case SWITCH_NODE: - { - ControlFlowItem* emptyAfterSwitch = new ControlFlowItem(currentProcedure); - ControlFlowItem* cur = switchItem(*stmt, emptyAfterSwitch, stmt, loops, calls, commons); - emptyAfterSwitch->setLabel((*stmt)->label()); - if (*pred != NULL) - (*pred)->AddNextItem(cur); - else - *list = cur; - return (*pred = emptyAfterSwitch); - } - case CONT_STAT: - { - ControlFlowItem* cur = new ControlFlowItem(NULL, (ControlFlowItem*)NULL, NULL, (*stmt)->label(), currentProcedure); - if (*pred != NULL) - (*pred)->AddNextItem(cur); - else - *list = cur; - return (*pred = loops->checkStatementForLoopEnding(cur->getLabel() ? cur->getLabel()->id() : -1, cur)); - } - case CYCLE_STMT: - { - SgSymbol* ref = (*stmt)->symbol(); - ControlFlowItem* cur = new ControlFlowItem(NULL, loops->getSourceForCycle(ref), NULL, (*stmt)->label(), currentProcedure); - if (*pred != NULL) - (*pred)->AddNextItem(cur); - else - *list = cur; - return (*pred = cur); - } - case EXIT_STMT: - { - SgSymbol* ref = (*stmt)->symbol(); - ControlFlowItem* cur = new ControlFlowItem(NULL, loops->getSourceForExit(ref), NULL, (*stmt)->label(), currentProcedure); - if (*pred != NULL) - (*pred)->AddNextItem(cur); - else - *list = cur; - return (*pred = cur); - } - case COMMENT_STAT: - return *pred; - case COMM_STAT: - { - commons->RegisterCommonBlock(*stmt, currentProcedure); - return *pred; - } - default: - return *pred; - //return NULL; - } -} - -ControlFlowGraph::ControlFlowGraph(bool t, bool m, ControlFlowItem* list, ControlFlowItem* end) : temp(t), main(m), refs(1), def(NULL), use(NULL), pri(NULL), common_def(NULL), common_use(NULL), hasBeenAnalyzed(false) -#ifdef __SPF -, pointers(set()) -#endif -{ -#if __SPF - addToCollection(__LINE__, __FILE__, this, 30); -#endif - int n = 0; - ControlFlowItem* orig = list; - CBasicBlock* prev = NULL; - CBasicBlock* start = NULL; - int stmtNo = 0; - bool ns = list->isEnumerated(); - if (list != NULL && !ns){ - while (list != NULL && list != end) - { - list->setStmtNo(++stmtNo); - list = list->getNext(); - } - } - ControlFlowItem* last_prev = NULL; - list = orig; - while (list != NULL && list != end) - { - CBasicBlock* bb = new CBasicBlock(t, list, ++n, this, list->getProc()); - last = bb; - bb->setPrev(prev); - if (prev != NULL){ - prev->setNext(bb); - if (!last_prev->isUnconditionalJump()){ - bb->addToPrev(prev, last_prev->IsForJumpFlagSet(), false, last_prev); - prev->addToSucc(bb, last_prev->IsForJumpFlagSet(), false, last_prev); - } - } - if (start == NULL) - start = bb; - prev = bb; - while (list->getNext() != NULL && list->getNext() != end && !list->getNext()->isLeader()){ - list->setBBno(n); - list = list->getNext(); - } - list->setBBno(n); - last_prev = list; - list = list->getNext(); - } - list = orig; - while (list != NULL && list != end) - { - ControlFlowItem* target; - if ((target = list->getJump()) != NULL) - { -// //no back edges -// if (target->getBBno() > list->getBBno()) -// { - CBasicBlock* tmp1 = start; - CBasicBlock* tmp2 = start; - for (int i = 1; i < target->getBBno() || i < list->getBBno(); i++) - { - if (i < list->getBBno()) { - tmp2 = tmp2->getLexNext(); - if (!tmp2) - break; - } - if (i < target->getBBno()) { - tmp1 = tmp1->getLexNext(); - if (!tmp1) - break; - } - } - if (tmp1 && tmp2) { - tmp1->addToPrev(tmp2, list->IsForJumpFlagSet(), true, list); - tmp2->addToSucc(tmp1, list->IsForJumpFlagSet(), true, list); - } -// } - } - list = list->getNext(); - } - start->markAsReached(); - first = start; - common_use = NULL; - cuf = false; - common_def = NULL; - cdf = false; -} - -CommonDataItem* CommonData::IsThisCommonVar(VarItem* item, AnalysedCallsList* call) -{ - for (CommonDataItem* it = list; it != NULL; it = it->next) { - if (it->proc == call) { - for (CommonVarInfo* inf = it->info; inf != NULL; inf = inf->next) { - if (inf->var && item->var && *inf->var == *item->var) - return it; - } - } - } - return NULL; -} - -CommonDataItem* CommonData::GetItemForName(const string &name, AnalysedCallsList *call) -{ - for (CommonDataItem* it = list; it != NULL; it = it->next) { - if (it->name == name && it->proc == call) - return it; - } - return NULL; -} - -void CommonData::RegisterCommonBlock(SgStatement *st, AnalysedCallsList *cur) -{ - //TODO: multiple common blocks in one procedure with same name - for (SgExpression *common = st->expr(0); common; common = common->rhs()) - { - bool newBlock = false; - SgExprListExp* vars = (SgExprListExp*)common->lhs(); - if (vars == NULL) - continue; - - const string currCommonName = (common->symbol()) ? common->symbol()->identifier() : "spf_unnamed"; - - CommonDataItem* it = GetItemForName(currCommonName, cur); - if (!it) { - it = new CommonDataItem(); - it->cb = st; - it->name = currCommonName; - it->isUsable = true; - it->proc = cur; - it->first = cur; - it->onlyScalars = true; - newBlock = true; - - for (CommonDataItem *i = list; i != NULL; i = i->next) - if (i->name == currCommonName && i->isUsable) - it->first = i->first; - } - it->commonRefs.push_back(common); - - for (int i = 0; i < vars->length(); ++i) - { - SgVarRefExp *e = isSgVarRefExp(vars->elem(i)); - if (e && !IS_ARRAY(e->symbol())) - { - CommonVarInfo* c = new CommonVarInfo(); - c->var = new CScalarVarEntryInfo(e->symbol()); - c->isPendingLastPrivate = false; - c->isInUse = false; - c->parent = it; - c->next = it->info; - it->info = c; - } - else if (isSgArrayRefExp(vars->elem(i))) { - it->onlyScalars = false; - } - else { - CommonVarInfo* c = new CommonVarInfo(); - c->var = new CArrayVarEntryInfo(vars->elem(i)->symbol(), isSgArrayRefExp(vars->elem(i))); - c->isPendingLastPrivate = false; - c->isInUse = false; - c->parent = it; - c->next = it->info; - it->info = c; - it->onlyScalars = false; - } - } - - if (newBlock) - { - it->next = list; - list = it; - } - } -} - -void CommonData::MarkEndOfCommon(AnalysedCallsList* cur) -{ - for (CommonDataItem* i = list; i != NULL; i = i->next) - { - if (i->first == cur) - i->isUsable = false; - } -} - -void CBasicBlock::markAsReached() -{ - prev_status = 1; - BasicBlockItem* s = succ; - while (s != NULL){ - CBasicBlock* b = s->block; - if (b->prev_status == -1) - b->markAsReached(); - s = s->next; - } -} - -bool ControlFlowGraph::ProcessOneParallelLoop(ControlFlowItem* lstart, CBasicBlock* of, CBasicBlock*& p, bool first) -{ - int stored_fid = SwitchFile(lstart->getProc()->file_id); - ControlFlowItem* lend; - if (is_correct != NULL) - { - const char* expanded_log; - char* tmp = NULL; - if (failed_proc_name) - { - tmp = new char[strlen(is_correct) + 2 + strlen(failed_proc_name) + 1]; - strcpy(tmp, is_correct); - strcat(tmp, ": "); - strcat(tmp, failed_proc_name); - expanded_log = tmp; - } - else - expanded_log = is_correct; -#if __SPF - const wchar_t* rus = R159; - Warning("Private analysis is not conducted for loop: '%s'", rus, expanded_log ? expanded_log : "", PRIVATE_ANALYSIS_NOT_CONDUCTED, lstart->getPrivateListStatement()); -#else - Warning("Private analysis is not conducted for loop: '%s'", expanded_log ? expanded_log : "", PRIVATE_ANALYSIS_NOT_CONDUCTED, lstart->getPrivateListStatement()); -#endif - if (tmp) - delete[] tmp; - - } - else - { - while ((lend = p->containsParloopEnd()) == NULL) - { - p->PrivateAnalysisForAllCalls(); - p = p->getLexNext(); - ControlFlowItem* mstart; - if ((mstart = p->containsParloopStart()) != NULL) - { - CBasicBlock* mp = p; - if (first) { - if (!ProcessOneParallelLoop(mstart, of, mp, false)) { - SwitchFile(stored_fid); - return false; - } - } - } - } - CBasicBlock* afterParLoop = p->getLexNext()->getLexNext(); - VarSet* l_pri = ControlFlowGraph(true, false, lstart, lend).getPrivate(); - if (is_correct != NULL) - { - const char* expanded_log; - char* tmp = NULL; - if (failed_proc_name) - { - tmp = new char[strlen(is_correct) + 2 + strlen(failed_proc_name) + 1]; - strcpy(tmp, is_correct); - strcat(tmp, ": "); - strcat(tmp, failed_proc_name); - expanded_log = tmp; - } - else - expanded_log = is_correct; - -#if __SPF - const wchar_t* rus = R159; - Warning("Private analysis is not conducted for loop: '%s'", rus, expanded_log ? expanded_log : "", PRIVATE_ANALYSIS_NOT_CONDUCTED, lstart->getPrivateListStatement()); -#else - Warning("Private analysis is not conducted for loop: '%s'", expanded_log ? expanded_log : "", PRIVATE_ANALYSIS_NOT_CONDUCTED, lstart->getPrivateListStatement()); -#endif - if (tmp) - delete[] tmp; - SwitchFile(stored_fid); - return false; - } - VarSet* p_pri = new VarSet(); - SgExpression* ex_p = lstart->getPrivateList(); - if (ex_p != NULL) - ex_p = ex_p->lhs(); - for (; ex_p != NULL; ex_p = ex_p->rhs()) - { - SgVarRefExp* pr; - if (pr = isSgVarRefExp(ex_p->lhs())) - { - CScalarVarEntryInfo* tmp = new CScalarVarEntryInfo(pr->symbol()); - p_pri->addToSet(tmp, NULL); - delete tmp; - } - SgArrayRefExp* ar; - if (ar = isSgArrayRefExp(ex_p->lhs())) - { - CArrayVarEntryInfo* tmp = new CArrayVarEntryInfo(ar->symbol(), ar); - p_pri->addToSet(tmp, NULL); - delete tmp; - } - } - - VarSet* live = afterParLoop->getLiveIn(); - VarSet* adef = afterParLoop->getDef(); - VarSet* pri = new VarSet(); - VarSet* tmp = new VarSet(); - VarSet* delay = new VarSet(); - tmp->unite(l_pri, false); - - for (VarItem* exp = tmp->getFirst(); exp != NULL; exp = tmp->getFirst()) - { - if (!afterParLoop->IsVarDefinedAfterThisBlock(exp->var, false)) - delay->addToSet(exp->var, NULL); - tmp->remove(exp->var); - } - delete tmp; - pri->unite(l_pri, false); - pri->minus(live, true); - privateDelayedList = new PrivateDelayedItem(pri, p_pri, l_pri, lstart, privateDelayedList, this, delay, current_file_id); - of->SetDelayedData(privateDelayedList); - } - SwitchFile(stored_fid); - return true; -} - -void ControlFlowGraph::privateAnalyzer() -{ - if (hasBeenAnalyzed) - return; - CBasicBlock* p = first; - /* - printf("GRAPH:\n"); - while (p != NULL){ - printf("block %d: ", p->getNum()); - if (p->containsParloopStart()) - printf("start"); - if (p->containsParloopEnd()) - printf("end"); - p->print(); - p = p->getLexNext(); - } - */ - p = first; - liveAnalysis(); - while (1) - { - ControlFlowItem* lstart; - CBasicBlock* of = p; - p->PrivateAnalysisForAllCalls(); - if ((lstart = p->containsParloopStart()) != NULL) - { - if (!ProcessOneParallelLoop(lstart, of, p, true)) - break; - } - if (p == last) - break; - p = p->getLexNext(); - } - hasBeenAnalyzed = true; -} - -/*#ifdef __SPF -void PrivateDelayedItem::PrintWarnings() -{ - if (next) - next->PrintWarnings(); - lp->minus(detected); - while (!detected->isEmpty()) { - SgVarRefExp* var = detected->getFirst(); - detected->remove(var); - Warning("Variable '%s' detected as private", var->unparse(), PRIVATE_ANALYSIS_ADD_VAR, lstart->getPrivateListStatement()); - } - while (!lp->isEmpty()) { - SgVarRefExp* var = lp->getFirst(); - lp->remove(var); - Warning("Variable '%s' detected as last private", var->unparse(), PRIVATE_ANALYSIS_ADD_VAR, lstart->getPrivateListStatement()); - } - if (detected) - delete detected; - if (original) - delete original; - if (lp) - delete lp; -} -#else*/ - -bool CArrayVarEntryInfo::HasActiveElements() const -{ - bool result = false; - if (disabled) - return false; - if (subscripts == 0) - return true; - for (int i = 0; i < subscripts; i++) - { - if (!data[i].defined) - return false; - if (data[i].left_bound != data[i].right_bound) - result = true; - if (data[i].left_bound == data[i].right_bound && data[i].bound_modifiers[0] <= data[i].bound_modifiers[1]) - result = true; - } - return result; -} - -void CArrayVarEntryInfo::MakeInactive() -{ - disabled = true; - for (int i = 0; i < subscripts; i++) - { - data[i].left_bound = data[i].right_bound = NULL; - data[i].bound_modifiers[0] = data[i].bound_modifiers[1] = 0; - } -} - -void PrivateDelayedItem::PrintWarnings() -{ - if (next) - next->PrintWarnings(); - int stored_fid = SwitchFile(file_id); - total_privates += detected->count(); - total_pl++; - lp->minus(detected); - detected->LeaveOnlyRecords(); - detected->RemoveDoubtfulCommonVars(lstart->getProc()); - VarSet* test1 = new VarSet(); - test1->unite(detected, false); - VarSet* test2 = new VarSet(); - test2->unite(original, false); - test2->minus(detected); - test1->minus(original); - int extra = 0, missing = 0; - SgExpression* prl = lstart->getPrivateList(); - SgStatement* prs = lstart->getPrivateListStatement(); - if (prl == NULL && !test1->isEmpty()) - { - SgExpression* lst = new SgExprListExp(); - prl = new SgExpression(ACC_PRIVATE_OP); - lst->setLhs(prl); - lst->setRhs(NULL); -#if __SPF - SgExpression* clauses = prs->expr(0); -#else - SgExpression* clauses = prs->expr(1); -#endif - if (clauses) { - while (clauses->rhs() != NULL) - clauses = clauses->rhs(); - clauses->setRhs(lst); - } - else { -#if __SPF - prs->setExpression(0, *lst); -#else - prs->setExpression(1, *lst); -#endif - } - } - SgExpression* op = prl; - - while (!test2->isEmpty()) { - //printf("EXTRA IN PRIVATE LIST: "); - //test2->print(); - extra = 1; - VarItem* var = test2->getFirst(); - CVarEntryInfo* syb = var->var->Clone(); - int change_fid = var->file_id; - test2->remove(var->var); - int stored_fid = SwitchFile(change_fid); - if (syb->GetVarType() != VAR_REF_ARRAY_EXP) - { -#if __SPF - const wchar_t* rus = R160; - Warning("var '%s' from private list wasn't classified as private", rus, syb->GetSymbol()->identifier(), PRIVATE_ANALYSIS_REMOVE_VAR, lstart->getPrivateListStatement()); -#else - Warning("var '%s' from private list wasn't classified as private", syb->GetSymbol()->identifier(), PRIVATE_ANALYSIS_REMOVE_VAR, lstart->getPrivateListStatement()); -#endif - } - else - { - CArrayVarEntryInfo* tt = (CArrayVarEntryInfo*)syb; - if (tt->HasActiveElements()) - { -#if __SPF - const wchar_t* rus = R161; - Warning("array '%s' from private list wasn't classified as private", rus, syb->GetSymbol()->identifier(), PRIVATE_ANALYSIS_REMOVE_VAR, lstart->getPrivateListStatement()); -#else - Warning("array '%s' from private list wasn't classified as private", syb->GetSymbol()->identifier(), PRIVATE_ANALYSIS_REMOVE_VAR, lstart->getPrivateListStatement()); -#endif - } - } - delete(syb); - SwitchFile(stored_fid); - } - while (!test1->isEmpty()) { - //printf("MISSING IN PRIVATE LIST: "); - //test1->print(); - missing = 1; - VarItem* var = test1->getFirst(); - CVarEntryInfo* syb = var->var->Clone(); - int change_fid = var->file_id; - test1->remove(var->var); - int stored_fid = SwitchFile(change_fid); - if (syb->GetVarType() != VAR_REF_ARRAY_EXP) { -#if __SPF - const wchar_t* rus = R162; - Note("add private scalar '%s'", rus, syb->GetSymbol()->identifier(), PRIVATE_ANALYSIS_ADD_VAR, lstart->getPrivateListStatement()); -#else - Warning("var '%s' was added to private list", syb->GetSymbol()->identifier(), PRIVATE_ANALYSIS_ADD_VAR, lstart->getPrivateListStatement()); -#endif - SgExprListExp* nls = new SgExprListExp(); - SgVarRefExp* nvr = new SgVarRefExp(syb->GetSymbol()); - nls->setLhs(nvr); - nls->setRhs(prl->lhs()); - prl->setLhs(nls); - } - else - { - CArrayVarEntryInfo* tt = (CArrayVarEntryInfo*)syb; - if (tt->HasActiveElements()) - { -#if __SPF - const wchar_t* rus = R163; - Note("add private array '%s'", rus, syb->GetSymbol()->identifier(), PRIVATE_ANALYSIS_ADD_VAR, lstart->getPrivateListStatement()); -#else - Warning("var '%s' was added to private list", syb->GetSymbol()->identifier(), PRIVATE_ANALYSIS_ADD_VAR, lstart->getPrivateListStatement()); -#endif - -// TODO: need to check all situation before commit it to release -#if !__SPF - SgExprListExp *nls = new SgExprListExp(); - SgArrayRefExp *nvr = new SgArrayRefExp(*syb->GetSymbol()); - nls->setLhs(nvr); - nls->setRhs(prl->lhs()); - prl->setLhs(nls); -#endif - } - } - delete(syb); - SwitchFile(stored_fid); - - /*printf("modified parallel stmt:\n"); - prs->unparsestdout(); - printf("\n");*/ - } - if (extra == 0 && missing == 0) { -#if ACCAN_DEBUG - Warning("Correct", "", 0, lstart->getPrivateListStatement()); -#endif - } - //printf("PRIVATE VARS: "); - //detected->print(); - //printf("DECLARATION: "); - //p_pri->print(); - //printf("LAST PRIVATE VARS: "); - //lp->print(); - if (test1) - delete test1; - - - if (test2) - delete test2; - - if (detected) - delete detected; - - if (original) - delete original; - - if (lp) - delete lp; - - SwitchFile(stored_fid); -} -//#endif - -ControlFlowItem* doLoops::checkStatementForLoopEnding(int label, ControlFlowItem* last) -{ - - if (current == NULL || label == -1 || label != current->getLabel()) - return last; - return checkStatementForLoopEnding(label, endLoop(last)); -} - -doLoopItem* doLoops::findLoop(SgSymbol* s) -{ - doLoopItem* l = first; - while (l != NULL){ - if (l->getName() == s) - return l; - l = l->getNext(); - } - return NULL; -} - -void doLoops::addLoop(int l, SgSymbol* s, ControlFlowItem* i, ControlFlowItem* e) -{ - doLoopItem* nl = new doLoopItem(l, s, i, e); - if (first == NULL) - first = current = nl; - else{ - current->setNext(nl); - nl->HandleNewItem(current); - current = nl; - } -} - -ControlFlowItem* doLoops::endLoop(ControlFlowItem* last) -{ - doLoopItem* removed = current; - if (first == current) - first = current = NULL; - else{ - doLoopItem* prev = first; - while (prev->getNext() != current) - prev = prev->getNext(); - prev->setNext(NULL); - current = prev; - } - last->AddNextItem(removed->getSourceForCycle()); - ControlFlowItem* empty = removed->getSourceForExit(); - delete removed; - return empty; -} - -VarSet* ControlFlowGraph::getPrivate() -{ - //printControlFlowList(first->getStart(), last->getStart()); - if (pri == NULL) - { - bool same = false; - int it = 0; - CBasicBlock* p = first; - /* - printf("GRAPH:\n"); - while (p != NULL){ - printf("block %d: ", p->getNum()); - p->print(); - p = p->getLexNext(); - } - */ - p = first; - while (!same){ - p = first; - same = true; - while (p != NULL){ - same = p->stepMrdIn(false) && same; - same = p->stepMrdOut(false) && same; - p = p->getLexNext(); - } - it++; - //printf("iters: %d\n", it); - } - p = first; - while (p != NULL) { - p->stepMrdIn(true); - p->stepMrdOut(true); - //p->getMrdIn(false)->print(); - p = p->getLexNext(); - } - - p = first; - VarSet* res = new VarSet(); - VarSet* loc = new VarSet(); - bool il = false; - while (p != NULL) - { - res->unite(p->getUse(), false); - loc->unite(p->getDef(), false); - p = p->getLexNext(); - } - //printf("USE: "); - //res->print(); - //printf("LOC: "); - //loc->print(); - res->unite(loc, false); - //printf("GETUSE: "); - //getUse()->print(); - - //res->minus(getUse()); //test! - res->minusFinalize(getUse(), true); - pri = res; - } - return pri; -} - -void ControlFlowGraph::liveAnalysis() -{ - bool same = false; - int it = 0; - CBasicBlock* p = first; - p = first; - while (!same){ - p = last; - same = true; - while (p != NULL){ - same = p->stepLVOut() && same; - same = p->stepLVIn() && same; - p = p->getLexPrev(); - } - it++; - //printf("iters: %d\n", it); - } -} - -VarSet* ControlFlowGraph::getUse() -{ - if (use == NULL) - { - CBasicBlock* p = first; - VarSet* res = new VarSet(); - while (p != NULL) - { - VarSet* tmp = new VarSet(); - tmp->unite(p->getUse(), false); - tmp->minus(p->getMrdIn(false)); - //printf("BLOCK %d INSTR %d USE: ", p->getNum(), p->getStart()->getStmtNo()); - //tmp->print(); - res->unite(tmp, false); - delete tmp; - p = p->getLexNext(); - } - use = res; - - } - if (!cuf) - { - AnalysedCallsList* call = first->getStart()->getProc(); - cuf = true; - if (call) { - CommonVarSet* s = pCommons->GetCommonsForVarSet(use, call); - common_use = s; - for (CBasicBlock* i = first; i != NULL; i = i->getLexNext()){ - for (CommonVarSet* c = i->getCommonUse(); c != NULL; c = c->next) { - /* - CommonVarSet* n = new CommonVarSet(); - n->cvd = c->cvd; - n->cvd->refs++; - */ - CommonVarSet* n = new CommonVarSet(*c); - CommonVarSet* t; - for (t = n; t->next != NULL; t = t->next); - t->next = common_use; - common_use = n; - } - } - } - } - return use; -} - -VarSet* ControlFlowGraph::getDef() -{ - if (def == NULL) { - def = new VarSet(); - def->unite(last->getMrdOut(false), true); - } - if (!cdf) - { - AnalysedCallsList* call = first->getStart()->getProc(); - if (call) { - cdf = true; - CommonVarSet* s = pCommons->GetCommonsForVarSet(def, call); - common_def = s; - for (CBasicBlock* i = first; i != NULL; i = i->getLexNext()) { - for (CommonVarSet* c = i->getCommonDef(); c != NULL; c = c->next) { - /* - CommonVarSet* n = new CommonVarSet(); - n->cvd = c->cvd; - n->cvd->refs++; - */ - CommonVarSet *n = new CommonVarSet(*c); - CommonVarSet* t; - for (t = n; t->next != NULL; t = t->next); - t->next = common_def; - common_def = n; - } - } - } - } - return def; -} - -CommonVarSet* CommonData::GetCommonsForVarSet(VarSet* set, AnalysedCallsList* call) -{ - CommonVarSet* res = NULL; - for (CommonDataItem* i = list; i != NULL; i = i->next) { - if (i->proc == call) { - for (CommonVarInfo* v = i->info; v != NULL; v = v->next) { - if (set->belongs(v->var)) { - CommonVarSet* n = new CommonVarSet(); - n->cvd = v; - n->next = res; - res = n; - } - } - } - } - return res; -} - -void CBasicBlock::PrivateAnalysisForAllCalls() -{ - ControlFlowItem* p = start; - while (p != NULL && (p == start || !p->isLeader())) { - AnalysedCallsList* c = p->getCall(); - const char* oic = is_correct; - const char* fpn = failed_proc_name; - is_correct = NULL; - failed_proc_name = NULL; - if (c != NULL && c != (AnalysedCallsList*)(-1) && c != (AnalysedCallsList*)(-2) && c->header != NULL && !c->hasBeenAnalysed) { - c->hasBeenAnalysed = true; - - int stored_fid = SwitchFile(c->file_id); - - c->graph->privateAnalyzer(); - - SwitchFile(stored_fid); - - } - is_correct = oic; - failed_proc_name = fpn; - p = p->getNext(); - } - return; -} - -ControlFlowItem* CBasicBlock::containsParloopEnd() -{ - ControlFlowItem* p = start; - while (p != NULL && (p == start || !p->isLeader())){ - if (p->IsParloopEnd()) - return p; - p = p->getNext(); - } - return NULL; -} - -ControlFlowItem* CBasicBlock::containsParloopStart() -{ - ControlFlowItem* p = start; - while (p != NULL && (p == start || !p->isLeader())){ - if (p->IsParloopStart()) - return p; - p = p->getNext(); - } - return NULL; -} - -void CBasicBlock::print() -{ - printf("block %d: prev: ", num); - BasicBlockItem* p = prev; - while (p != NULL){ - printf("%d ", p->block->num); - p = p->next; - } - printf("\n"); -} - -ControlFlowItem* CBasicBlock::getStart() -{ - return start; -} - -ControlFlowItem* CBasicBlock::getEnd() -{ - ControlFlowItem* p = start; - ControlFlowItem* end = p; - while (p != NULL && (p == start || !p->isLeader())){ - end = p; - p = p->getNext(); - } - return end; -} - -VarSet* CBasicBlock::getLVOut() -{ - if (lv_out == NULL) - { - VarSet* res = new VarSet(); - BasicBlockItem* p = succ; - bool first = true; - while (p != NULL) - { - CBasicBlock* b = p->block; - if (b != NULL && !b->lv_undef) - { - res->unite(b->getLVIn(), false); - } - p = p->next; - } - lv_out = res; - } - return lv_out; -} - -VarSet* CBasicBlock::getLVIn() -{ - if (lv_in == NULL) - { - VarSet* res = new VarSet(); - res->unite(getLVOut(), false); - res->minus(getDef()); - res->unite(getUse(), false); - lv_in = res; - } - return lv_in; -} - -bool CBasicBlock::IsVarDefinedAfterThisBlock(CVarEntryInfo* var, bool os) -{ - findentity = var; - if (def->belongs(var, os)) { - findentity = NULL; - return true; - } - BasicBlockItem* p = succ; - while (p != NULL) - { - CBasicBlock* b = p->block; - if (b->ShouldThisBlockBeCheckedAgain(var) && b->IsVarDefinedAfterThisBlock(var, os)) { - findentity = NULL; - return true; - } - p = p->next; - } - findentity = NULL; - return false; -} - -bool CBasicBlock::stepLVOut() -{ - if (old_lv_out) - delete old_lv_out; - - old_lv_out = lv_out; - lv_out = NULL; - getLVOut(); - lv_undef = false; - //printf("block %d\n", num); - //old_mrd_out->print(); - //mrd_out->print(); - return (lv_out->equal(old_lv_out)); - //return true; -} - -bool CBasicBlock::stepLVIn() -{ - if (old_lv_in) - delete old_lv_in; - - old_lv_in = lv_in; - lv_in = NULL; - getLVIn(); - return (lv_in->equal(old_lv_in)); - //return true; -} - -VarSet* CBasicBlock::getMrdIn(bool la) -{ - if (mrd_in == NULL) - { - VarSet* res = new VarSet(); - BasicBlockItem* p = prev; - bool first = true; - - while (p != NULL) - { - CBasicBlock* b = p->block; - if (b != NULL && !b->undef && b->hasPrev()) - { - if (first) { - res->unite(b->getMrdOut(la), la); - first = false; - } - else - res->intersect(b->getMrdOut(la), la, true); - } - p = p->next; - } - mrd_in = res; - } - return mrd_in; -} - -bool CBasicBlock::hasPrev() -{ - return prev_status == 1; -} - -VarSet* CBasicBlock::getMrdOut(bool la) -{ - if (mrd_out == NULL) - { - VarSet* res = new VarSet(); - res->unite(getMrdIn(la), la); - res->unite(getDef(), la); - mrd_out = res; - //printf("BLOCK %d INSTR %d MRDOUT: ", num, start->getStmtNo()); - //mrd_out->print(); - //print(); - } - return mrd_out; -} - -bool CBasicBlock::stepMrdOut(bool la) -{ - if (old_mrd_out) - delete old_mrd_out; - - old_mrd_out = mrd_out; - mrd_out = NULL; - getMrdOut(la); - undef = false; - //printf("block %d\n", num); - //old_mrd_out->print(); - //mrd_out->print(); - return (mrd_out->equal(old_mrd_out)); - //return true; -} - -bool CBasicBlock::stepMrdIn(bool la) -{ - if (old_mrd_in) - delete old_mrd_in; - - old_mrd_in = mrd_in; - mrd_in = NULL; - getMrdIn(la); - return (mrd_in->equal(old_mrd_in)); - //return true; -} - -bool IsPresentInExprList(SgExpression* ex, CExprList* lst) -{ - while (lst != NULL) { - if (lst->entry == ex) - return true; - lst = lst->next; - } - return false; -} - -CRecordVarEntryInfo* AddRecordVarRef(SgRecordRefExp* ref) -{ - if (isSgRecordRefExp(ref->lhs())) { - CVarEntryInfo* parent = AddRecordVarRef(isSgRecordRefExp(ref->lhs())); - if (parent) - return new CRecordVarEntryInfo(ref->rhs()->symbol(), parent); - return NULL; - } - if (isSgVarRefExp(ref->lhs())) { - CVarEntryInfo* parent = new CScalarVarEntryInfo(isSgVarRefExp(ref->lhs())->symbol()); - return new CRecordVarEntryInfo(ref->rhs()->symbol(), parent); - } - if (isSgArrayRefExp(ref->lhs())) { - CVarEntryInfo* parent = new CArrayVarEntryInfo(isSgArrayRefExp(ref->lhs())->symbol(), isSgArrayRefExp(ref->lhs())); - return new CRecordVarEntryInfo(ref->rhs()->symbol(), parent); - } - return NULL; -} - -void CBasicBlock::AddOneExpressionToUse(SgExpression* ex, SgStatement* st, CArrayVarEntryInfo* v) -{ - CVarEntryInfo* var = NULL; - SgVarRefExp* r; - if ((r = isSgVarRefExp(ex))) - var = new CScalarVarEntryInfo(r->symbol()); - SgArrayRefExp* ar; - if ((ar = isSgArrayRefExp(ex))) { - if (!v) - var = new CArrayVarEntryInfo(ar->symbol(), ar); - else { - var = v->Clone(); - var->SwitchSymbol(ar->symbol()); - } - } - SgRecordRefExp* rr; - if ((rr = isSgRecordRefExp(ex))) - var = AddRecordVarRef(rr); - if (var) { - var->RegisterUsage(def, use, st); - delete var; - } -} - -void CBasicBlock::AddOneExpressionToDef(SgExpression* ex, SgStatement* st, CArrayVarEntryInfo* v) -{ - CVarEntryInfo* var = NULL; - SgVarRefExp* r; - if ((r = isSgVarRefExp(ex))) - var = new CScalarVarEntryInfo(r->symbol()); - SgRecordRefExp* rr; - if ((rr = isSgRecordRefExp(ex))) - var = AddRecordVarRef(rr); - SgArrayRefExp* ar; - if ((ar = isSgArrayRefExp(ex))) { - if (!v) - var = new CArrayVarEntryInfo(ar->symbol(), ar); - else { - var = v->Clone(); - var->SwitchSymbol(ar->symbol()); - } - } - if (var) { - var->RegisterDefinition(def, use, st); - delete var; - } -} - -void CBasicBlock::addExprToUse(SgExpression* ex, CArrayVarEntryInfo* v = NULL, CExprList* lst = NULL) -{ - if (ex != NULL) - { - CExprList* cur = new CExprList(); - cur->entry = ex; - cur->next = lst; - SgFunctionCallExp* f = isSgFunctionCallExp(ex); - if (!f) { - if (!IsPresentInExprList(ex->lhs(), cur)) - addExprToUse(ex->lhs(), v, cur); - if (!isSgUnaryExp(ex)) - if (!IsPresentInExprList(ex->rhs(), cur)) - addExprToUse(ex->rhs(), v, cur); - AddOneExpressionToUse(ex, NULL, v); - } - delete cur; - /* - SgVarRefExp* r; - //printf(" %s\n", f->funName()->identifier()); - bool intr = isIntrinsicFunctionNameACC(f->funName()->identifier()) && !IsUserFunctionACC(f->funName()); - bool pure = IsPureProcedureACC(f->funName()); - if (!intr && !pure){ - printf("function not intristic or pure: %s\n", f->funName()->identifier()); - is_correct = false; - return; - } - if (intr) { - ProcessIntristicProcedure(true, f->numberOfArgs(), f); - return; - } - ProcessProcedureHeader(true, isSgProcHedrStmt(GRAPHNODE(f->funName())->st_header), f); - */ - } -} - -void CBasicBlock::ProcessIntrinsicProcedure(bool isF, int narg, void* f, const char* name) -{ - for (int i = 0; i < narg; i++) { - SgExpression* ar = GetProcedureArgument(isF, f, i); - if (IsAnIntrinsicSubroutine(name)) - { - SgExpression* v = CheckIntrinsicParameterFlag(name, i, ar, INTRINSIC_IN); - if (v) - addExprToUse(v); - } - else - addExprToUse(ar); - - AddOneExpressionToDef(CheckIntrinsicParameterFlag(name, i, ar, INTRINSIC_OUT), NULL, NULL); - } -} - -void CBasicBlock::ProcessProcedureWithoutBody(bool isF, void* f, bool out) -{ - for (int i = 0; i < GetNumberOfArguments(isF, f); i++){ - addExprToUse(GetProcedureArgument(isF, f, i)); - if (out) - AddOneExpressionToDef(GetProcedureArgument(isF, f, i), NULL, NULL); - } -} - -SgSymbol* CBasicBlock::GetProcedureName(bool isFunc, void* f) -{ - if (isFunc) { - SgFunctionCallExp* fc = (SgFunctionCallExp*)f; - return fc->funName(); - } - SgCallStmt* pc = (SgCallStmt*)f; - return pc->name(); -} - -int GetNumberOfArguments(bool isF, void* f) -{ - if (isF) { - SgFunctionCallExp* fc = (SgFunctionCallExp*)f; - return fc->numberOfArgs(); - } - SgCallStmt* pc = (SgCallStmt*)f; - return pc->numberOfArgs(); -} - -SgExpression* GetProcedureArgument(bool isF, void *f, const int i) -{ - SgExpression *arg = NULL; - if (isF) - { - SgFunctionCallExp* fc = (SgFunctionCallExp*)f; - arg = fc->arg(i); - } - else - { - SgCallStmt *pc = (SgCallStmt*)f; - arg = pc->arg(i); - } - return arg; -} - -void CBasicBlock::ProcessProcedureHeader(bool isF, SgProcHedrStmt *header, void *f, const char* name) -{ - if (!header) - { - is_correct = "no header found"; - failed_proc_name = name; - return; - } - - for (int i = 0; i < header->numberOfParameters(); ++i) - { - int stored = SwitchFile(header->getFileId()); - SgSymbol *arg = header->parameter(i); - SwitchFile(stored); - - if (arg->attributes() & (IN_BIT)) - { - SgExpression *ar = GetProcedureArgument(isF, f, i); - addExprToUse(ar); - } - else if (arg->attributes() & (INOUT_BIT)) - { - addExprToUse(GetProcedureArgument(isF, f, i)); - AddOneExpressionToDef(GetProcedureArgument(isF, f, i), NULL, NULL); - } - else if (arg->attributes() & (OUT_BIT)) - AddOneExpressionToDef(GetProcedureArgument(isF, f, i), NULL, NULL); - else - { - is_correct = "no bitflag set for pure procedure"; - break; - } - } -} - -bool AnalysedCallsList::isArgIn(int i, CArrayVarEntryInfo** p) -{ - int stored = SwitchFile(this->file_id); - SgProcHedrStmt* h = isSgProcHedrStmt(header); - VarSet* use = graph->getUse(); - SgSymbol* par = h->parameter(i); - /* - CScalarVarEntryInfo* var = new CScalarVarEntryInfo(par); - bool result = false; - if (use->belongs(var)) - result = true; - delete var; - */ - VarItem* result = use->belongs(par); - if (result && result->var->GetVarType() == VAR_REF_ARRAY_EXP && p) - *p = (CArrayVarEntryInfo*)result->var; - SwitchFile(stored); - - return result; -} - -bool AnalysedCallsList::isArgOut(int i, CArrayVarEntryInfo** p) -{ - int stored = SwitchFile(this->file_id); - SgProcHedrStmt* h = isSgProcHedrStmt(header); - graph->privateAnalyzer(); - VarSet* def = graph->getDef(); - SgSymbol* par = h->parameter(i); - /* - CScalarVarEntryInfo* var = new CScalarVarEntryInfo(par); - bool result = false; - if (def->belongs(var)) - result = true; - delete var; - */ - VarItem* result = def->belongs(par); - if (result && result->var->GetVarType() == VAR_REF_ARRAY_EXP && p) - *p = (CArrayVarEntryInfo*)result->var; - SwitchFile(stored); - - return result; -} - -void CommonData::MarkAsUsed(VarSet* use, AnalysedCallsList* lst) -{ - for (CommonDataItem* it = list; it != NULL; it = it->next) { - if (it->proc == lst) { - for (CommonVarInfo* v = it->info; v != NULL; v = v->next) { - CVarEntryInfo* r = v->var; - if (use->belongs(r)) - v->isInUse = true; - } - } - } -} - -void CBasicBlock::ProcessUserProcedure(bool isFun, void* call, AnalysedCallsList* c) -{ - /* - if (c == NULL || c->graph == NULL) { - is_correct = "no body found for procedure"; - if (c != NULL) - failed_proc_name = c->funName; - else - failed_proc_name = NULL; - return; - } - */ - if (c != (AnalysedCallsList*)(-1) && c != (AnalysedCallsList*)(-2) && c != NULL && c->graph != NULL) - { - int stored_file_id = SwitchFile(c->file_id); - c->graph->getPrivate(); //all sets actually - SgStatement *cp = c->header->controlParent(); - SwitchFile(stored_file_id); - - if (proc && proc->header->variant() == PROC_HEDR && cp == proc->header) { - VarSet* use_c = new VarSet(); - use_c->unite(c->graph->getUse(), false); - for (VarItem* exp = use_c->getFirst(); exp != NULL; exp = use_c->getFirst()) { - if (exp->var->GetSymbol()->scope() == proc->header) { - addExprToUse(new SgVarRefExp(exp->var->GetSymbol())); // TESTING - } - use_c->remove(exp->var); - } - delete use_c; - VarSet* def_c = new VarSet(); - def_c->unite(c->graph->getDef(), true); - for (VarItem* exp = def_c->getFirst(); exp != NULL; exp = def_c->getFirst()) { - if (exp->var->GetSymbol()->scope() == proc->header) { - def->addToSet(exp->var, NULL); - } - def_c->remove(exp->var); - } - delete def_c; - } - - pCommons->MarkAsUsed(c->graph->getUse(), c); - SgProcHedrStmt* header = isSgProcHedrStmt(c->header); - if (!header) { - is_correct = "no header for procedure"; - failed_proc_name = c->funName; - return; - } - } - - for (int i = 0; i < GetNumberOfArguments(isFun, call); i++) - { - SgExpression* ar = GetProcedureArgument(isFun, call, i); - CArrayVarEntryInfo* tp = NULL; - if (c == (AnalysedCallsList*)(-1) || c == (AnalysedCallsList*)(-2) || c == NULL || c->graph == NULL || c->isArgIn(i, &tp)) - addExprToUse(ar, tp); - tp = NULL; - if (c == (AnalysedCallsList*)(-1) || c == NULL || c->graph == NULL || c->isArgOut(i, &tp)) - AddOneExpressionToDef(GetProcedureArgument(isFun, call, i), NULL, tp); - } - - if (c != (AnalysedCallsList*)(-1) && c != (AnalysedCallsList*)(-2) && c != NULL && c->graph != NULL) { - for (CommonVarSet* cu = c->graph->getCommonUse(); cu != NULL; cu = cu->next) { - CommonVarInfo* v = cu->cvd; - AnalysedCallsList* tp = start->getProc(); - CommonDataItem* p = v->parent; - if (CommonDataItem* it = pCommons->IsThisCommonUsedInProcedure(p, tp)) { - if (pCommons->CanHaveNonScalarVars(it)) - continue; - CommonVarInfo* i = it->info; - CommonVarInfo* j = p->info; - while (j != v) { - j = j->next; - if (i) - i = i->next; - else - continue; - } - if (!i) - continue; - SgVarRefExp* var = new SgVarRefExp(i->var->GetSymbol()); - addExprToUse(var); - } - else { - common_use = new CommonVarSet(*cu); - } - } - for (CommonVarSet* cd = c->graph->getCommonDef(); cd != NULL; cd = cd->next) { - CommonVarInfo* v = cd->cvd; - AnalysedCallsList* tp = start->getProc(); - CommonDataItem* p = v->parent; - if (CommonDataItem* it = pCommons->IsThisCommonUsedInProcedure(p, tp)) { - if (pCommons->CanHaveNonScalarVars(it)) - continue; - CommonVarInfo* i = it->info; - CommonVarInfo* j = p->info; - while (j != v) { - j = j->next; - if (i) - i = i->next; - } - if (!i) - continue; - def->addToSet(i->var, NULL); - } - else { - common_def = new CommonVarSet(*cd); - } - } - } - -} - -bool CommonData::CanHaveNonScalarVars(CommonDataItem* item) -{ - for (CommonDataItem* it = list; it != NULL; it = it->next) { - if (it->name == item->name && it->first == item->first && !it->onlyScalars) - return true; - } - bool res = !item->onlyScalars; - //printf("CommonData::CanHaveNonScalarVars: %d\n", res); - return res; -} - -CommonDataItem* CommonData::IsThisCommonUsedInProcedure(CommonDataItem* item, AnalysedCallsList* p) -{ - for (CommonDataItem* it = list; it != NULL; it = it->next) { - if (it->proc == p) { - if (it->name == item->name) - return it; - } - } - return NULL; -} - -void CBasicBlock::setDefAndUse() -{ - ControlFlowItem* p = start; - while (p != NULL && (p == start || !p->isLeader())) - { - if (p->getJump() == NULL) - { - SgStatement* st = p->getStatement(); - SgFunctionCallExp* f = p->getFunctionCall(); - - if (f != NULL) - { - bool add_intr = IsAnIntrinsicSubroutine(f->funName()->identifier()) != NULL; // strcmp(f->funName()->identifier(), "date_and_time") == 0; - bool intr = (isIntrinsicFunctionNameACC(f->funName()->identifier()) || add_intr) && !IsUserFunctionACC(f->funName()); - bool pure = IsPureProcedureACC(f->funName()); - AnalysedCallsList* c = p->getCall(); - if (!intr && !pure && c && c != (AnalysedCallsList*)(-1) && c != (AnalysedCallsList*)(-2) && !(c->IsIntrinsic())) { - - if (c->header == NULL) { - is_correct = "no header for procedure"; - failed_proc_name = c->funName; - } - else { - //graph_node* oldgn = currentGraphNode; - //graph_node* newgn = GRAPHNODE(f->funName())->file_id; - //currentGraphNode = newgn; - ProcessUserProcedure(true, f, c); - //currentGraphNode = oldgn; - - } - } - else if (c == (AnalysedCallsList*)(-1) || c == (AnalysedCallsList*)(-2)) - ProcessProcedureWithoutBody(true, f, c == (AnalysedCallsList*)(-1)); - else if (intr || (c && c->IsIntrinsic())) { - ProcessIntrinsicProcedure(true, f->numberOfArgs(), f, f->funName()->identifier()); - }else - ProcessProcedureHeader(true, isSgProcHedrStmt(GRAPHNODE(f->funName())->st_header), f, f->funName()->identifier()); - } - - - if (st != NULL) - { - switch (st->variant()) - { - case ASSIGN_STAT: - { - SgAssignStmt* s = isSgAssignStmt(st); - SgExpression* l = s->lhs(); - SgExpression* r = s->rhs(); - addExprToUse(r); - AddOneExpressionToDef(l, st, NULL); - break; - } - case PRINT_STAT: - case WRITE_STAT: - case READ_STAT: - { - SgInputOutputStmt* s = isSgInputOutputStmt(st); - if (s) { - SgExpression* ex = s->itemList(); - while (ex && ex->lhs()) { - if (st->variant() == READ_STAT) { - AddOneExpressionToDef(ex->lhs(), st, NULL); - } - else { - addExprToUse(ex->lhs()); - } - ex = ex->rhs(); - } - } - break; - } - case PROC_STAT: - { - SgCallStmt* f = isSgCallStmt(st); - bool add_intr = IsAnIntrinsicSubroutine(f->name()->identifier()) != NULL; - bool intr = (isIntrinsicFunctionNameACC(f->name()->identifier()) || add_intr) && !IsUserFunctionACC(f->name()); - bool pure = IsPureProcedureACC(f->name()); - if (!intr && !pure) { - AnalysedCallsList* c = p->getCall(); - //graph_node* oldgn = currentGraphNode; - //graph_node* newgn = GRAPHNODE(f->name()); - //currentGraphNode = newgn; - ProcessUserProcedure(false, f, c); - //currentGraphNode = oldgn; - break; - } - if (intr) { - ProcessIntrinsicProcedure(false, f->numberOfArgs(), f, f->name()->identifier()); - break; - } - ProcessProcedureHeader(false, isSgProcHedrStmt(GRAPHNODE(f->name())->st_header), f, f->name()->identifier()); - } - default: - break; - } - } - } - else - addExprToUse(p->getExpression()); - p = p->getNext(); - } -} - -VarSet* CBasicBlock::getDef() -{ - if (def == NULL) - { - def = new VarSet(); - use = new VarSet(); - setDefAndUse(); - } - return def; -} - -VarSet* CBasicBlock::getUse() -{ - if (use == NULL) - { - use = new VarSet(); - def = new VarSet(); - setDefAndUse(); - } - return use; -} - -#ifdef __SPF -template -const vector getAttributes(IN_TYPE st, const set dataType); -#endif - -DoLoopDataItem* DoLoopDataList::FindLoop(SgStatement* st) -{ - DoLoopDataItem* it = list; - while (it != NULL) { - if (it->statement == st) - return it; - it = it->next; - } - return NULL; -} - -bool GetExpressionAndCoefficientOfBound(SgExpression* exp, SgExpression** end, int* coef) -{ - if (exp->variant() == SUBT_OP) { - if (exp->rhs() && exp->rhs()->variant() == INT_VAL) { - *end = exp->lhs(); - *coef = -exp->rhs()->valueInteger(); - return true; - } - } - if (exp->variant() == ADD_OP) { - if (exp->lhs() && exp->lhs()->variant() == INT_VAL) { - *end = exp->rhs(); - *coef = exp->lhs()->valueInteger(); - return true; - } - if (exp->rhs() && exp->rhs()->variant() == INT_VAL) { - *end = exp->lhs(); - *coef = exp->lhs()->valueInteger(); - return true; - } - } - return false; -} - -CArrayVarEntryInfo::CArrayVarEntryInfo(SgSymbol* s, SgArrayRefExp* r) : CVarEntryInfo(s) -{ -#if __SPF - addToCollection(__LINE__, __FILE__, this, 16); -#endif - // TODO: need to check all alhorithm!! - disabled = true; - - if (!r) - subscripts = 0; - else - subscripts = r->numberOfSubscripts(); - if (subscripts) - data.resize(subscripts); - - for (int i = 0; i < subscripts; i++) - { - data[i].defined = false; - data[i].bound_modifiers[0] = data[i].bound_modifiers[1] = 0; - data[i].step = 1; - data[i].left_bound = data[i].right_bound = NULL; - data[i].coefs[0] = data[i].coefs[1] = 0; - data[i].loop = NULL; -#if __SPF - const vector coefs = getAttributes(r->subscript(i), set{ INT_VAL }); - const vector fs = getAttributes(r->subscript(i), set{ FOR_NODE }); - if (fs.size() == 1) - { - if (data[i].loop != NULL) - { - if (coefs.size() == 1) - { - data[i].defined = true; - data[i].bound_modifiers[0] = data[i].bound_modifiers[1] = coefs[0][1]; - data[i].coefs[0] = coefs[0][0]; - data[i].coefs[1] = coefs[0][1]; - data[i].step = coefs[0][0]; - int tmp; - - SgExpression *et; - if (GetExpressionAndCoefficientOfBound(data[i].loop->l, &et, &tmp)) - { - data[i].left_bound = et; - data[i].bound_modifiers[0] += tmp; - } - else - data[i].left_bound = data[i].loop->l; - - if (GetExpressionAndCoefficientOfBound(data[i].loop->r, &et, &tmp)) - { - data[i].right_bound = et; - data[i].bound_modifiers[1] += tmp; - } - else - data[i].right_bound = data[i].loop->r; - } - } - } -#endif - if (!data[i].defined) - { - SgExpression* ex = r->subscript(i); - if (ex->variant() == INT_VAL) - { - data[i].bound_modifiers[0] = ex->valueInteger(); - data[i].bound_modifiers[1] = ex->valueInteger(); - data[i].defined = true; - } - else - { - data[i].bound_modifiers[0] = 0; - data[i].bound_modifiers[1] = 0; - data[i].left_bound = data[i].right_bound = ex; - data[i].defined = true; - } - } - } -} - -CArrayVarEntryInfo::CArrayVarEntryInfo(SgSymbol *s, int sub, int ds, const vector &d) - : CVarEntryInfo(s), subscripts(sub), disabled(ds) -{ -#if __SPF - addToCollection(__LINE__, __FILE__, this, 16); -#endif - if (sub > 0) - data = d; -} - -VarItem* VarSet::GetArrayRef(CArrayVarEntryInfo* info) -{ - VarItem* it = list; - while (it != NULL) { - CVarEntryInfo* v = it->var; - if (v->GetVarType() == VAR_REF_ARRAY_EXP) { - if (OriginalSymbol(info->GetSymbol()) == OriginalSymbol(v->GetSymbol())) - return it; - } - it = it->next; - } - return NULL; -} - -void CArrayVarEntryInfo::RegisterUsage(VarSet *def, VarSet *use, SgStatement *st) -{ - VarItem *it = def->GetArrayRef(this); - CArrayVarEntryInfo *add = this; - if (it != NULL) - add = *this - *(CArrayVarEntryInfo*)(it->var); - - if (use != NULL && add != NULL && add->HasActiveElements()) - use->addToSet(add, st); - - if (add != this) - delete add; -} - -CArrayVarEntryInfo& CArrayVarEntryInfo::operator-=(const CArrayVarEntryInfo& b) -{ - if (subscripts == 0) - { - if (b.HasActiveElements()) - disabled = true; - return *this; - } - - if (b.subscripts == 0) - { - if (HasActiveElements()) - MakeInactive(); - return *this; - } - - if (subscripts != b.subscripts || !data.size() || !b.data.size() || !(data[0].defined) || !(b.data[0].defined)) - return *this; - - for (int i = 0; i < subscripts; i++) - { - if (b.data[i].left_bound == NULL) - { - if (data[i].left_bound && data[i].left_bound->variant() == INT_VAL) - { - if (data[i].left_bound->valueInteger() + data[i].bound_modifiers[0] == b.data[i].bound_modifiers[0]) - { - data[i].bound_modifiers[0]++; - continue; - } - } - } - - if (data[i].left_bound == NULL && b.data[i].left_bound == NULL && - data[i].right_bound == NULL && b.data[i].right_bound == NULL) - { - if (data[i].bound_modifiers[0] < b.data[i].bound_modifiers[0]) - { - data[i].bound_modifiers[1] = b.data[i].bound_modifiers[0] - 1; - continue; - } - - if (data[i].bound_modifiers[1] > b.data[i].bound_modifiers[1]) - { - data[i].bound_modifiers[0] = b.data[i].bound_modifiers[1] + 1; - continue; - } - data[i].defined = false; - } - - if (data[i].left_bound == b.data[i].left_bound && data[i].bound_modifiers[0] < b.data[i].bound_modifiers[0]) - { - data[i].bound_modifiers[0] = data[i].bound_modifiers[0]; - data[i].bound_modifiers[1] = b.data[i].bound_modifiers[0] - 1; - data[i].right_bound = data[i].left_bound; - } - - if (data[i].right_bound == b.data[i].right_bound && data[i].bound_modifiers[1] > b.data[i].bound_modifiers[1]) - { - data[i].bound_modifiers[0] = b.data[i].bound_modifiers[1] + 1; - data[i].bound_modifiers[1] = data[i].bound_modifiers[1]; - data[i].left_bound = data[i].right_bound; - } - - if (b.data[i].left_bound == NULL && b.data[i].right_bound == NULL && - (data[i].left_bound != NULL || data[i].right_bound != NULL)) - continue; - else - { - data[i].bound_modifiers[0] = data[i].bound_modifiers[1] = 0; - data[i].left_bound = NULL; - data[i].right_bound = NULL; - data[i].defined = false; - //empty set - } - } - return *this; -} - -CArrayVarEntryInfo* operator-(const CArrayVarEntryInfo& a, const CArrayVarEntryInfo& b) -{ - //return NULL; - CArrayVarEntryInfo* nv = (CArrayVarEntryInfo*)a.Clone(); - *nv -= b; - return nv; -} - -CArrayVarEntryInfo* operator+(const CArrayVarEntryInfo& a, const CArrayVarEntryInfo& b) -{ - CArrayVarEntryInfo* nv = (CArrayVarEntryInfo*)a.Clone(); - *nv += b; - return nv; -} - -void CArrayVarEntryInfo::RegisterDefinition(VarSet* def, VarSet* use, SgStatement* st) -{ - def->addToSet(this, st); - use->PossiblyAffectArrayEntry(this); -} - -void VarSet::PossiblyAffectArrayEntry(CArrayVarEntryInfo* var) -{ - VarItem* it = GetArrayRef(var); - if (!it) - return; - ((CArrayVarEntryInfo*)(it->var))->ProcessChangesToUsedEntry(var); -} - -void CArrayVarEntryInfo::ProcessChangesToUsedEntry(CArrayVarEntryInfo* var) -{ - if (disabled || var->disabled || subscripts != var->subscripts) - return; - for (int i = 0; i < subscripts; i++) - { - if (!data[i].defined) - continue; - - if (data[i].loop == var->data[i].loop && data[i].loop != NULL) - { - if (data[i].coefs[0] == var->data[i].coefs[0]) - { - if (data[i].coefs[1] < var->data[i].coefs[1]) - { - if (data[i].left_bound && data[i].left_bound->variant() == INT_VAL) - { - data[i].bound_modifiers[0] = data[i].left_bound->valueInteger() + data[i].bound_modifiers[0]; - data[i].bound_modifiers[1] = data[i].left_bound->valueInteger() + var->data[i].coefs[1] - 1; - data[i].left_bound = data[i].right_bound = NULL; - } - else - { - //maybe add something, not sure - } - } - } - } - } -} - -CArrayVarEntryInfo& CArrayVarEntryInfo::operator*=(const CArrayVarEntryInfo& b) -{ - if (subscripts == 0) - { - if (b.HasActiveElements()) - disabled = true; - return *this; - } - - if (b.subscripts == 0) - { - if (HasActiveElements()) - MakeInactive(); - return *this; - } - - //return *this; - if (subscripts != b.subscripts || subscripts == 0 || b.subscripts == 0 || !data.size() || !b.data.size() || !(data[0].defined) || !(b.data[0].defined)) - return *this; - - for (int i = 0; i < subscripts; i++) - { - if (b.disabled) - data[i].left_bound = data[i].right_bound = NULL; - - if (data[i].left_bound == b.data[i].left_bound) - data[i].bound_modifiers[0] = std::max(data[i].bound_modifiers[0], b.data[i].bound_modifiers[0]); - - if (data[i].right_bound == b.data[i].right_bound) - data[i].bound_modifiers[1] = std::min(data[i].bound_modifiers[1], b.data[i].bound_modifiers[1]); - } - return *this; -} - -CArrayVarEntryInfo& CArrayVarEntryInfo::operator+=(const CArrayVarEntryInfo& b) -{ - if (subscripts == 0) - { - if (b.HasActiveElements()) - disabled = true; - return *this; - } - - if (b.subscripts == 0) - { - if (HasActiveElements()) - MakeInactive(); - return *this; - } - - //return *this; - if (disabled && !b.disabled && b.data.size()) - { - for (int i = 0; i < subscripts; i++) - data[i] = b.data[i]; - disabled = false; - return *this; - } - - if (subscripts != b.subscripts || subscripts == 0 || b.subscripts == 0 || !data.size() || !b.data.size() || disabled || b.disabled) - return *this; - - for (int i = 0; i < subscripts; i++) - { - - if (data[i].left_bound == b.data[i].left_bound) - data[i].bound_modifiers[0] = std::min(data[i].bound_modifiers[0], b.data[i].bound_modifiers[0]); - - if (data[i].right_bound == b.data[i].right_bound) - data[i].bound_modifiers[1] = std::max(data[i].bound_modifiers[1], b.data[i].bound_modifiers[1]); - - if (data[i].left_bound == NULL && data[i].right_bound == NULL && (b.data[i].left_bound != NULL || b.data[i].right_bound != NULL)) - { - const ArraySubscriptData &tmp = data[i]; - data[i] = b.data[i]; - if (data[i].left_bound && data[i].left_bound->variant() == INT_VAL) - { - if (tmp.bound_modifiers[1] == data[i].left_bound->valueInteger() + data[i].bound_modifiers[0] - 1) - data[i].bound_modifiers[0] -= (1 + tmp.bound_modifiers[1] - tmp.bound_modifiers[0]); - - } - - if (data[i].right_bound && data[i].right_bound->variant() == INT_VAL) - { - if (tmp.bound_modifiers[0] == data[i].left_bound->valueInteger() + data[i].bound_modifiers[1] + 1) - data[i].bound_modifiers[1] += (1 + tmp.bound_modifiers[1] - tmp.bound_modifiers[0]); - } - } - } - return *this; -} - -void VarSet::RemoveDoubtfulCommonVars(AnalysedCallsList* call) -{ - VarItem* it = list; - VarItem* prev = NULL; - while (it != NULL) { - CommonDataItem* d = pCommons->IsThisCommonVar(it, call); - if (d && pCommons->CanHaveNonScalarVars(d)) { - if (prev == NULL) { - it = it->next; - delete list; - list = it; - } - else { - prev->next = it->next; - delete it; - it = prev->next; - } - continue; - } - prev = it; - it = it->next; - } -} - -int VarSet::count() -{ - VarItem* it = list; - int t = 0; - while (it != NULL) { - it = it->next; - t++; - } - return t; -} - -void VarSet::LeaveOnlyRecords() -{ - VarItem* p = list; - VarItem* prev = NULL; - while (p != NULL) { - if (p->var->GetVarType() == VAR_REF_RECORD_EXP) { - CVarEntryInfo* rrec = p->var->GetLeftmostParent(); - CVarEntryInfo* old = p->var; - if (old->RemoveReference()) - delete old; - if (!belongs(rrec)) { - p->var = rrec; - prev = p; - } - else { - if (prev == NULL) - list = list->next; - else - { - prev->next = p->next; - delete(p); - p = prev; - } - } - } - else { - prev = p; - } - p = p->next; - } -} - -VarItem* VarSet::belongs(const CVarEntryInfo* var, bool os) -{ - VarItem* l = list; - while (l != NULL) - { - if ((*l->var == *var)) - return l; - if (os && OriginalSymbol(l->var->GetSymbol()) == OriginalSymbol(var->GetSymbol())) - return l; - l = l->next; - } - return NULL; -} - -VarItem* VarSet::belongs(SgSymbol* s, bool os) -{ - VarItem* l = list; - while (l != NULL) - { - if ((l->var->GetSymbol() == s)) - if (l->var->GetVarType() == VAR_REF_ARRAY_EXP) - return ((CArrayVarEntryInfo*)(l->var))->HasActiveElements() ? l : NULL; - return l; - if (os && OriginalSymbol(l->var->GetSymbol()) == OriginalSymbol(s)) - return l; - l = l->next; - } - return NULL; -} - -/* -VarItem* VarSet::belongs(SgVarRefExp* var, bool os) -{ - return belongs(var->symbol(), os); -} -*/ - -bool VarSet::equal(VarSet* p2) -{ - if (p2 == NULL) - return false; - VarItem* p = list; - VarItem* prev = NULL; - while (p != NULL) - { - if (!p2->belongs(p->var) && (p->var->GetVarType() != VAR_REF_ARRAY_EXP || ((CArrayVarEntryInfo*)(p->var))->HasActiveElements())) - return false; - p = p->next; - } - p = p2->list; - while (p != NULL) { - if (!belongs(p->var) && (p->var->GetVarType() != VAR_REF_ARRAY_EXP || ((CArrayVarEntryInfo*)(p->var))->HasActiveElements())) - return false; - p = p->next; - } - return true; -} - -void VarSet::print() -{ - VarItem* l = list; - while (l != NULL) - { - if (l->var->GetVarType() != VAR_REF_ARRAY_EXP || ((CArrayVarEntryInfo*)(l->var))->HasActiveElements()) - printf("%s ", l->var->GetSymbol()->identifier()); -#if PRIVATE_GET_LAST_ASSIGN - printf("last assignments: %d\n", l->lastAssignments.size()); - for (list::iterator it = l->lastAssignments.begin(); it != l->lastAssignments.end(); it++){ - if (*it) - printf("%s", (*it)->unparse()); - } -#endif - l = l->next; - } - putchar('\n'); -} - -void VarSet::addToSet(CVarEntryInfo* var, SgStatement* source, CVarEntryInfo* ov) -{ - bool add = false; - if (var->GetVarType() != VAR_REF_ARRAY_EXP) { - VarItem* p = belongs(var, false); - add = p == NULL; -#if PRIVATE_GET_LAST_ASSIGN - p->lastAssignments.clear(); - p->lastAssignments.push_back(source); -#endif - //delete p->lastAssignments; - //p->lastAssignments = new CLAStatementItem(); - //p->lastAssignments->stmt = source; - //p->lastAssignments->next = NULL; - } - else { - CArrayVarEntryInfo* av = (CArrayVarEntryInfo*)var; - VarItem* p = GetArrayRef(av); - if (p == NULL) - add = true; - else { - CArrayVarEntryInfo* fv = (CArrayVarEntryInfo*)p->var; - *fv += *av; - } - } - if (add) { - VarItem* p = new VarItem(); - p->var = var->Clone(); - p->ov = ov; - p->next = list; - p->file_id = current_file_id; - list = p; - } -} - -void VarSet::intersect(VarSet* set, bool la, bool array_mode = false) -{ - VarItem* p = list; - VarItem* prev = NULL; - while (p != NULL) - { - VarItem* n = set->belongs(p->var); - if (!n) - { - if (!array_mode || p->var->GetVarType() == VAR_REF_VAR_EXP) { - if (prev == NULL) - list = list->next; - else - { - prev->next = p->next; - delete(p); - p = prev; - } - } - } - else { -#if PRIVATE_GET_LAST_ASSIGN - if (la) - p->lastAssignments.insert(p->lastAssignments.end(), n->lastAssignments.begin(), n->lastAssignments.end()); -#endif - if (p->var->GetVarType() == VAR_REF_ARRAY_EXP) { - if (!array_mode) - *(CArrayVarEntryInfo*)(p->var) *= *(CArrayVarEntryInfo*)(n->var); - else - *(CArrayVarEntryInfo*)(p->var) += *(CArrayVarEntryInfo*)(n->var); - } - prev = p; - } - p = p->next; - } - -} - -VarItem* VarSet::getFirst() -{ - return list; -} - -void VarSet::remove(const CVarEntryInfo* var) -{ - VarItem* p = list; - VarItem* prev = NULL; - while (p != NULL) - { - if (var == (p->var)) - { - if (prev == NULL) { - VarItem* t = list; - list = list->next; - delete(t); - p = list; - - } - else - { - prev->next = p->next; - delete(p); - p = prev->next; - } - } - else { - prev = p; - p = p->next; - } - } -} - -void VarSet::minus(VarSet* set, bool complete) -{ - VarItem* p = list; - VarItem* prev = NULL; - while (p != NULL) - { - VarItem* d = set->belongs(p->var); - if (d && (p->var->GetVarType() != VAR_REF_ARRAY_EXP || ((CArrayVarEntryInfo*)(d->var))->HasActiveElements())) - { - if (p->var->GetVarType() == VAR_REF_ARRAY_EXP && !complete) { - *(CArrayVarEntryInfo*)(p->var) -= *(CArrayVarEntryInfo*)(d->var); - prev = p; - } - else if (prev == NULL) - list = list->next; - else - { - prev->next = p->next; - delete(p); - p = prev; - } - } - else - prev = p; - - p = p->next; - } -} - -bool VarSet::RecordBelong(CVarEntryInfo* rec) -{ - if (rec->GetVarType() != VAR_REF_RECORD_EXP) - return false; - CRecordVarEntryInfo* rrec = static_cast(rec); - CVarEntryInfo* lm = rrec->GetLeftmostParent(); - VarItem* p = list; - while (p != NULL) { - if (*lm == *(p->var->GetLeftmostParent())) - return true; - p = p->next; - } - return false; -} - -void VarSet::minusFinalize(VarSet* set, bool complete) -{ - minus(set, complete); - VarItem* p = list; - VarItem* prev = NULL; - while (p != NULL) - { - if (set->RecordBelong(p->var)) { - { - if (prev == NULL) - list = list->next; - else - { - prev->next = p->next; - delete(p); - p = prev; - } - } - } - else - prev = p; - - p = p->next; - } -} - -unsigned int counter = 0; - -CLAStatementItem::~CLAStatementItem() -{ -#if __SPF - removeFromCollection(this); -#endif - if (next) - delete next; -} - -CLAStatementItem* CLAStatementItem::GetLast() -{ - if (next == NULL) - return this; - return next->GetLast(); -} - -void VarSet::unite(VarSet* set, bool la) -{ - VarItem* arg2 = set->list; - while (arg2 != NULL) - { - VarItem* n = belongs(arg2->var); - if (!n) - { - n = new VarItem(); - if (arg2->var->GetVarType() == VAR_REF_ARRAY_EXP) - n->var = arg2->var->Clone(); - else { - n->var = arg2->var; - n->var->AddReference(); - } - n->ov = arg2->ov; - n->next = list; - n->file_id = arg2->file_id; -#if PRIVATE_GET_LAST_ASSIGN - if (la) - n->lastAssignments = arg2->lastAssignments; -#endif - list = n; - } - else { -#if PRIVATE_GET_LAST_ASSIGN - if (la) { - //n->lastAssignments.insert(n->lastAssignments.end(), arg2->lastAssignments.begin(), arg2->lastAssignments.end()); - //n->lastAssignments.splice(n->lastAssignments.end(), arg2->lastAssignments); - //n->lastAssignments->GetLast()->next = arg2->lastAssignments; - n->lastAssignments = arg2->lastAssignments; - } -#endif - //counter++; - //if (counter % 100 == 0) - //printf("%d!\n", counter); - if (n->var->GetVarType() == VAR_REF_ARRAY_EXP) { - *(CArrayVarEntryInfo*)(n->var) += *(CArrayVarEntryInfo*)(arg2->var); - } - } - arg2 = arg2->next; - } -} - - - -void CBasicBlock::addToPrev(CBasicBlock* bb, bool for_jump_flag, bool c, ControlFlowItem* check) -{ - BasicBlockItem* n = new BasicBlockItem(); - n->block = bb; - n->next = prev; - n->for_jump_flag = for_jump_flag; - n->cond_value = c; - n->jmp = check; - prev = n; -} - -void CBasicBlock::addToSucc(CBasicBlock* bb, bool for_jump_flag, bool c, ControlFlowItem* check) -{ - BasicBlockItem* n = new BasicBlockItem(); - n->block = bb; - n->for_jump_flag = for_jump_flag; - n->next = succ; - n->cond_value = c; - n->jmp = check; - succ = n; -} - -#if ACCAN_DEBUG - -void ControlFlowItem::printDebugInfo() -{ - if (jmp == NULL && stmt == NULL && func != NULL) - printf("FUNCTION CALL: %s\n", func->unparse()); - if (jmp == NULL) - if (stmt != NULL) - if (label != NULL) - printf("%d: %s %s %s lab %4d %s", stmtNo, this->isLeader() ? "L" : " ", this->IsParloopStart() ? "S" : " ", this->IsParloopEnd() ? "E" : " ", label->id(), stmt->unparse()); - else - printf("%d: %s %s %s %s", stmtNo, this->isLeader() ? "L" : " ", this->IsParloopStart() ? "S" : " ", this->IsParloopEnd() ? "E" : " ", stmt->unparse()); - else - if (label != NULL) - printf("%d: %s %s %s lab %4d \n", stmtNo, this->isLeader() ? "L" : " ", this->IsParloopStart() ? "S" : " ", this->IsParloopEnd() ? "E" : " ", label->id()); - else - printf("%d: %s %s %s \n", stmtNo, this->isLeader() ? "L" : " ", this->IsParloopStart() ? "S" : " ", this->IsParloopEnd() ? "E" : " "); - else - if (expr == NULL) - if (label != NULL) - printf("%d: %s %s %s lab %4d goto %d\n", stmtNo, this->isLeader() ? "L" : " ", this->IsParloopStart() ? "S" : " ", this->IsParloopEnd() ? "E" : " ", label->id(), jmp->getStmtNo()); - else - printf("%d: %s %s %s goto %d\n", stmtNo, this->isLeader() ? "L" : " ", this->IsParloopStart() ? "S" : " ", this->IsParloopEnd() ? "E" : " ", jmp->getStmtNo()); - else - if (label != NULL) - printf("%d: %s %s %s lab %4d if %s goto %d\n", stmtNo, this->isLeader() ? "L" : " ", this->IsParloopStart() ? "S" : " ", this->IsParloopEnd() ? "E" : " ", label->id(), expr->unparse(), jmp->getStmtNo()); - else - printf("%d: %s %s %s if %s goto %d\n", stmtNo, this->isLeader() ? "L" : " ", this->IsParloopStart() ? "S" : " ", this->IsParloopEnd() ? "E" : " ", expr->unparse(), jmp->getStmtNo()); -} - -static void printControlFlowList(ControlFlowItem* list, ControlFlowItem* last) -{ - - printf("DEBUG PRINT START\n"); - unsigned int stmtNo = 0; - ControlFlowItem* list_copy = list; - while (list != NULL ) - { - list->setStmtNo(++stmtNo); - if (list == last) - break; - list = list->getNext(); - } - - list = list_copy; - while (list != NULL) - { - list->printDebugInfo(); - if (list == last) - break; - list = list->getNext(); - } - printf("DEBUG PRINT END\n\n"); -} -#endif - -void CallData::printControlFlows() -{ -#if ACCAN_DEBUG - AnalysedCallsList* l = calls_list; - while (l != NULL) { - if (!l->isIntrinsic && l->graph != NULL && l->header != NULL) { - ControlFlowGraph* g = l->graph; - SgStatement* h = l->header; - printf("CFI for %s\n\n" ,h->symbol()->identifier()); - if (g != NULL) { - printControlFlowList(g->getCFI()); - } - else - printf("ERROR: DOES NOT HAVE CFI\n"); - } - l = l->next; - } -#endif -} +#include "leak_detector.h" + +#include "dvm.h" +#include "acc_analyzer.h" +#include "calls.h" +#include +#include + +using std::string; +using std::vector; +using std::map; +using std::list; +using std::make_pair; +using std::set; +using std::pair; + +#if __SPF +using std::wstring; +#include "Utils/AstWrapper.h" +#include "Utils/utils.h" +#include "Utils/errors.h" + +static pair getText(const char *s, const wchar_t *s1, const char *t, int num, SgStatement *stmt, int &line) +{ + pair ret; + + wchar_t bufW[1024]; +#if _WIN32 + swprintf(bufW, s1, to_wstring(t).c_str()); +#else + swprintf(bufW, 1024, s1, to_wstring(t).c_str()); +#endif + ret.first = bufW; + + char buf[1024]; + sprintf(buf, s, t); + ret.second = buf; + + line = stmt->lineNumber(); + if (line == 0) + { + line = 1; + if (stmt->variant() == DVM_PARALLEL_ON_DIR) + { + line = stmt->lexNext()->lineNumber(); + ret.first += RR158_1; + ret.second += " for this loop"; + } + } + + if (stmt->variant() == SPF_ANALYSIS_DIR) + { + ret.first += RR158_1; + ret.second += " for this loop"; + } + + return ret; +} + +static inline bool ifVarIsLoopSymb(SgStatement *stmt, const string symb) +{ + bool ret = false; + if (stmt == NULL) + return ret; + + int var = stmt->variant(); + if (var == SPF_ANALYSIS_DIR || var == SPF_PARALLEL_DIR || var == SPF_TRANSFORM_DIR || var == SPF_PARALLEL_REG_DIR || var == SPF_END_PARALLEL_REG_DIR) + stmt = stmt->lexNext(); + + SgForStmt *forS = isSgForStmt(stmt); + if (forS) + { + SgStatement *end = forS->lastNodeOfStmt(); + for (; stmt != end && !ret; stmt = stmt->lexNext()) + if (stmt->variant() == FOR_NODE) + if (isSgForStmt(stmt)->symbol()->identifier() == symb) + ret = true; + } + + return ret; +} + + +template void fillPrivatesFromComment(Statement *st, std::set &privates, int type = -1); + +inline void Warning(const char *s, const wchar_t *s1, const char *t, int num, SgStatement *stmt) +{ + //TODO: is it correct? + if (stmt == NULL) + return; + + if (num == PRIVATE_ANALYSIS_REMOVE_VAR) + { + SgStatement *found = SgStatement::getStatementByFileAndLine(string(stmt->fileName()), stmt->lineNumber()); + if (found != NULL) + { + if (ifVarIsLoopSymb(found, t)) + return; + } + + set privates; + fillPrivatesFromComment(new Statement(stmt), privates); + if (privates.find(t) != privates.end()) + return; + } + + + int line; + auto retVal = getText(s, s1, t, num, stmt, line); + printLowLevelWarnings(stmt->fileName(), line, retVal.first.c_str(), retVal.second.c_str(), 1029); +} + +inline void Note(const char *s, const wchar_t *s1, const char *t, int num, SgStatement *stmt) +{ + int line; + auto retVal = getText(s, s1, t, num, stmt, line); + printLowLevelNote(stmt->fileName(), line, retVal.first.c_str(), retVal.second.c_str(), 1030); +} +#endif + +// local functions +static ControlFlowItem* getControlFlowList(SgStatement*, SgStatement*, ControlFlowItem**, SgStatement**, doLoops*, CallData*, CommonData*); +static ControlFlowItem* processOneStatement(SgStatement** stmt, ControlFlowItem** pred, ControlFlowItem **list, ControlFlowItem* oldcur, doLoops*, CallData*, CommonData*); +static ControlFlowItem* switchItem(SgStatement* stmt, ControlFlowItem* empty, SgStatement** lastAnStmt, doLoops* loops, CallData* calls, CommonData*); +static ControlFlowItem* ifItem(SgStatement*, ControlFlowItem*, SgStatement** lastAnStmt, doLoops* loops, bool ins, CallData*, CommonData*); +static void setLeaders(ControlFlowItem*); +static void clearList(ControlFlowItem*); +static void fillLabelJumps(ControlFlowItem*); +static SgExpression* GetProcedureArgument(bool isF, void* f, int i); +static int GetNumberOfArguments(bool isF, void* f); +#if ACCAN_DEBUG +static void printControlFlowList(ControlFlowItem*, ControlFlowItem* last = NULL); +#endif + +//static ControlFlowGraph* GetControlFlowGraphWithCalls(bool, SgStatement*, CallData*, CommonData*); +//static void FillCFGSets(ControlFlowGraph*); +static void FillPrivates(ControlFlowGraph*); +static ControlFlowItem* AddFunctionCalls(SgStatement*, CallData*, ControlFlowItem**, CommonData*); + +const char* is_correct = NULL; +const char* failed_proc_name = NULL; +static PrivateDelayedItem* privateDelayedList = NULL; +static AnalysedCallsList* currentProcedure = NULL; +static AnalysedCallsList* mainProcedure = NULL; +static DoLoopDataList* doLoopList = NULL; +static CommonData* pCommons; +static CallData* pCalls; + +int total_privates = 0; +int total_pl = 0; + +static const IntrinsicSubroutineData intrinsicData[] = { + {"date_and_time", 4, { {-1, "date", INTRINSIC_OUT}, {-1, "time", INTRINSIC_OUT }, {-1, "zone", INTRINSIC_OUT }, {-1, "values", INTRINSIC_OUT } } }, + {"mod", 2, { {1, NULL, INTRINSIC_IN}, {2, NULL, INTRINSIC_IN} } }, + {"dvtime", 0, {}}, + {"abs", 1, { {1, NULL, INTRINSIC_IN} } }, + {"max", 2, { {1, NULL, INTRINSIC_IN}, {2, NULL, INTRINSIC_IN} } }, + {"min", 2, { {1, NULL, INTRINSIC_IN}, {2, NULL, INTRINSIC_IN} } }, + {"wtime", 1, { {1, NULL, INTRINSIC_IN} } }, + {"dble", 1, { {1, NULL, INTRINSIC_IN } } }, + {"dabs", 1, { {1, NULL, INTRINSIC_IN } } }, + {"dmax1", 2, { {1, NULL, INTRINSIC_IN}, {2, NULL, INTRINSIC_IN } } }, + {"dmin1", 2, { {1, NULL, INTRINSIC_IN}, {2, NULL, INTRINSIC_IN } } }, + {"dsqrt", 1, { {1, NULL, INTRINSIC_IN} } }, + {"dcos", 1, { {1, NULL, INTRINSIC_IN} } }, + {"datan2", 2, { {1, NULL, INTRINSIC_IN}, {2, NULL, INTRINSIC_IN} } }, + {"dsign", 2, { {1, NULL, INTRINSIC_IN}, {2, NULL, INTRINSIC_IN} } }, + {"dlog", 1, { {1, NULL, INTRINSIC_IN} } }, + {"dexp", 1, { {1, NULL, INTRINSIC_IN} } }, + {"omp_get_wtime", 0, {}}, + {"sqrt", 1, { {1, NULL, INTRINSIC_IN} } }, + {"int", 1, { {1, NULL, INTRINSIC_IN} } }, + {"iabs", 1, { {1, NULL, INTRINSIC_IN} } }, + {"fnpr", 4, { {1, NULL, INTRINSIC_IN},{ 2, NULL, INTRINSIC_IN },{ 3, NULL, INTRINSIC_IN },{ 4, NULL, INTRINSIC_IN } } }, + {"isnan", 1, { {1, NULL, INTRINSIC_IN } } } +}; + +//TODO: it does not work +//static map> CFG_cache; + + +static bool isIntrinsicFunctionNameACC(char* name) +{ +#if USE_INTRINSIC_DVM_LIST + return isIntrinsicFunctionName(name); +#else + return false; +#endif +} + +int SwitchFile(int file_id) +{ + if (file_id == current_file_id || file_id == -1) + return file_id; + int stored_file_id = current_file_id; + current_file_id = file_id; + current_file = &(CurrentProject->file(current_file_id)); + return stored_file_id; +} + +SgStatement * lastStmtOfDoACC(SgStatement *stdo) +{ + // is a copied function + SgStatement *st; + // second version (change 04.03.08) + st = stdo; +RE: st = st->lastNodeOfStmt(); + if ((st->variant() == FOR_NODE) || (st->variant() == WHILE_NODE)) + goto RE; + + else if (st->variant() == LOGIF_NODE) + return(st->lexNext()); + + else + return(st); + +} + +#ifdef __SPF +bool IsPureProcedureACC(SgSymbol* s) +#else +static bool IsPureProcedureACC(SgSymbol* s) +#endif +{ + // is a copied function + SgSymbol *shedr = NULL; + + shedr = GetProcedureHeaderSymbol(s); + if (shedr) + return(shedr->attributes() & PURE_BIT); + else + return 0; +} + +static bool IsUserFunctionACC(SgSymbol* s) +{ + // is a copied function + return(s->attributes() & USER_PROCEDURE_BIT); +} + +static const IntrinsicSubroutineData* IsAnIntrinsicSubroutine(const char* name) +{ + for (int i = 0; i < sizeof(intrinsicData) / sizeof(intrinsicData[0]); i++) + if (strcmp(name, intrinsicData[i].name) == 0) + return &(intrinsicData[i]); + return NULL; +} + +static SgExpression* CheckIntrinsicParameterFlag(const char* name, int arg, SgExpression* p, unsigned char flag) +{ + const IntrinsicSubroutineData* info = IsAnIntrinsicSubroutine(name); + if (!info) + return NULL; //better avoid this + for (int i = 0; i < info->args; i++) + { + const IntrinsicParameterData* pd = &(info->parameters[i]); + if (pd->index == arg + 1) + return (pd->status & flag) != 0 ? p : NULL; + + SgKeywordArgExp* kw = isSgKeywordArgExp(p); + if (kw) + { + SgExpression* a = kw->arg(); + SgExpression* val = kw->value(); + if (pd->name && strcmp(a->unparse(), pd->name) == 0) + return (pd->status & flag) != 0 ? val : NULL; + } + } + return NULL; +} +/* +//For parameters replacements in expressions +//#ifdef __SPF + +VarsKeeper varsKeeper; + +SgExpression* GetValueOfVar(SgExpression* var) +{ + return varsKeeper.GetValueOfVar(var); +} + +void VarsKeeper::GatherVars(SgStatement* start) +{ + pCommons = &(data->commons); + pCalls = &(data->calls); + currentProcedure = data->calls.AddHeader(start, false, start->symbol()); + mainProcedure = currentProcedure; + //stage 1: preparing graph data + data->graph = GetControlFlowGraphWithCalls(true, start, &(data->calls), &(data->commons)); + data->calls.AssociateGraphWithHeader(start, data->graph); + data->commons.MarkEndOfCommon(currentProcedure); + //calls.printControlFlows(); + //stage 2: data flow analysis + FillCFGSets(data->graph); + //stage 3: fulfilling loop data + FillPrivates(data->graph); + + if (privateDelayedList) + delete privateDelayedList; + privateDelayedList = NULL; +} + +SgExpression* VarsKeeper::GetValueOfVar(SgExpression* var) +{ + FuncData* curData = data; +} + +//#endif +*/ + + + +void SetUpVars(CommonData* commons, CallData* calls, AnalysedCallsList* m, DoLoopDataList* list) +{ + pCommons = commons; + pCalls = calls; + currentProcedure = m; + mainProcedure = currentProcedure; + doLoopList = list; +} + +AnalysedCallsList* GetCurrentProcedure() +{ + return currentProcedure; +} +//interprocedural analysis, called for main procedure +void Private_Vars_Analyzer(SgStatement* start) +{ +#ifndef __SPF + if (!options.isOn(PRIVATE_ANALYSIS)) { + return; + } +#endif + CallData calls; + CommonData commons; + DoLoopDataList doloopList; + SetUpVars(&commons, &calls, calls.AddHeader(start, false, start->symbol(), current_file_id), &doloopList); + + //stage 1: preparing graph data + ControlFlowGraph* CGraph = GetControlFlowGraphWithCalls(true, start, &calls, &commons); + calls.AssociateGraphWithHeader(start, CGraph); + commons.MarkEndOfCommon(currentProcedure); + + currentProcedure->graph->getPrivate(); +#if ACCAN_DEBUG + calls.printControlFlows(); +#endif + //stage 2: data flow analysis + FillCFGSets(CGraph); + //stage 3: fulfilling loop data + FillPrivates(CGraph); + + //test: graphvis + /*std::fstream fs; + fs.open("graph_old.txt", std::fstream::out); + fs << CGraph->GetVisualGraph(&calls); + fs.close();*/ + +#if !__SPF + delete CGraph; +#endif + + if (privateDelayedList) + delete privateDelayedList; + privateDelayedList = NULL; +} + +CallData::~CallData() +{ +#if __SPF + removeFromCollection(this); + return; +#endif + /* + for (AnalysedCallsList* l = calls_list; l != NULL;) + { + if (!l->isIntrinsic && l->graph) + { + if (l->graph->RemoveRef() && !l->graph->IsMain()) + { + delete l->graph; + l->graph = NULL; + } + } + AnalysedCallsList *temp = l; + l = l->next; + delete temp; + temp = NULL; + }*/ +} + +CommonData::~CommonData() +{ +#if __SPF + removeFromCollection(this); + return; +#endif + for (CommonDataItem* i = list; i != NULL;) { + for (CommonVarInfo* info = i->info; info != NULL;) { + CommonVarInfo* t = info; + info = info->next; + delete t; + } + CommonDataItem* tp = i; + i = i->next; + delete tp; + } +} + +ControlFlowGraph::~ControlFlowGraph() +{ +#if __SPF + removeFromCollection(this); + return; +#endif + while (common_def != NULL) + { + CommonVarSet* t = common_def; + common_def = common_def->next; + delete t; + } + while (common_use != NULL) + { + CommonVarSet* t = common_use; + common_use = common_use->next; + delete t; + } + + if (def) + delete def; + + if (use) + delete use; + + if (!temp && pri) + delete pri; + + for (CBasicBlock *bb = first; bb != NULL;) + { + CBasicBlock *tmp = bb; + bb = bb->getLexNext(); + + delete tmp; + tmp = NULL; + } +} + +CBasicBlock::~CBasicBlock() +{ +#if __SPF + removeFromCollection(this); + return; +#endif + + CommonVarSet* d = getCommonDef(); + while (d != NULL) + { + CommonVarSet* t = d; + d = d->next; + delete t; + } + + d = getCommonUse(); + while (d != NULL) + { + CommonVarSet* t = d; + d = d->next; + delete t; + } + + for (BasicBlockItem* bbi = prev; bbi != NULL;) + { + BasicBlockItem *tmp = bbi; + bbi = bbi->next; + delete tmp; + tmp = NULL; + } + + for (BasicBlockItem *bbi = succ; bbi != NULL;) + { + BasicBlockItem *tmp = bbi; + bbi = bbi->next; + delete tmp; + tmp = NULL; + } + + if (def) + delete def; + + if (use) + delete use; + + if (old_mrd_out) + delete old_mrd_out; + + if (old_mrd_in) + delete old_mrd_in; + + if (mrd_in) + delete mrd_in; + + if (mrd_out) + delete mrd_out; + + if (old_lv_out) + delete old_lv_out; + + if (old_lv_in) + delete old_lv_in; + + if (lv_in) + delete lv_in; + + if (lv_out) + delete lv_out; +} + +doLoops::~doLoops() +{ +#if __SPF + removeFromCollection(this); + return; +#endif + for (doLoopItem *it = first; it != NULL; ) + { + doLoopItem *tmp = it; + it = it->getNext(); + delete tmp; + } +} + +PrivateDelayedItem::~PrivateDelayedItem() +{ +#if __SPF + removeFromCollection(this); + return; +#endif + if (delay) + delete delay; + if (next) + delete next; +} + +VarSet::~VarSet() +{ +#if __SPF + removeFromCollection(this); +#endif + for (VarItem* it = list; it != NULL;) + { + VarItem* tmp = it; + it = it->next; + if (tmp->var) + if (tmp->var->RemoveReference()) + delete tmp->var; + delete tmp; + } +} + +CommonVarSet::CommonVarSet(const CommonVarSet& c) +{ + cvd = c.cvd; + if (c.next) + next = new CommonVarSet(*c.next); + else + next = NULL; + +#if __SPF + addToCollection(__LINE__, __FILE__, this, 22); +#endif +} + +std::string ControlFlowGraph::GetVisualGraph(CallData* calls) +{ + std::string result; + result += "digraph "; + char tmp[512]; + AnalysedCallsList* cd = calls->GetDataForGraph(this); + //if (cd == NULL || cd->header == NULL) + sprintf(tmp, "g_%llx", (uintptr_t)this); + //else + // sprintf(tmp, "g_%500s", cd->header->symbol()); + result += tmp; + result += "{ \n"; + for (CBasicBlock* b = this->first; b != NULL; b = b->getLexNext()) { + if (!b->IsEmptyBlock()) { + result += '\t' + b->GetGraphVisDescription() + "[shape=box,label=\""; + result += b->GetGraphVisData() + "\"];\n"; + } + } + for (CBasicBlock* b = first; b != NULL; b = b->getLexNext()) { + if (!b->IsEmptyBlock()) + result += b->GetEdgesForBlock(b->GetGraphVisDescription(), true, ""); + } + result += '}'; + ResetDrawnStatusForAllItems(); + return result; +} + +void ControlFlowGraph::ResetDrawnStatusForAllItems() { + for (CBasicBlock* b = first; b != NULL; b = b->getLexNext()) { + for (ControlFlowItem* it = b->getStart(); it != NULL && (it->isLeader() == false || it == b->getStart()); it = it->getNext()) { + it->ResetDrawnStatus(); + } + } +} + +std::string GetConditionWithLineNumber(ControlFlowItem* eit) +{ + std::string res; + if (eit->getOriginalStatement()) { + char tmp[16]; + sprintf(tmp, "%d: ", eit->getOriginalStatement()->lineNumber()); + res = tmp; + } + return res + eit->getExpression()->unparse(); +} + +std::string GetActualCondition(ControlFlowItem** pItem) { + std::string res = ""; + ControlFlowItem* eit = *pItem; + while (true) + { + if (eit == NULL || eit->getJump() != NULL || eit->getStatement() != NULL) + { + if (eit && eit->getJump() != NULL) + { + if (eit->getExpression() != NULL) + { + *pItem = eit; + return GetConditionWithLineNumber(eit); + } + else + { + *pItem = NULL; + return res; + } + break; + } + *pItem = NULL; + return res; + } + eit = eit->GetPrev(); + } + return res; +} + +std::string CBasicBlock::GetEdgesForBlock(std::string name, bool original, std::string modifier) +{ + std::string result; + for (BasicBlockItem* it = getSucc(); it != NULL; it = it->next) { + if (it->drawn) + continue; + it->drawn = true; + char lo = original; + std::string cond; + ControlFlowItem* eit = NULL; + bool pf = false; + if (it->jmp != NULL) { + if (it->jmp->getExpression() != NULL) { + eit = it->jmp; + cond = GetConditionWithLineNumber(eit); + } + else { + pf = true; + eit = it->jmp->GetPrev(); + cond = GetActualCondition(&eit); + } + } + if (eit && eit->GetFriend()) { + lo = false; + eit = eit->GetFriend(); + } + if (!it->block->IsEmptyBlock() || cond.length() != 0) { + if (cond.length() != 0 && eit && !pf){ + char tmp[32]; + sprintf(tmp, "c_%llx", (uintptr_t)eit); + if (!eit->IsDrawn()) { + result += '\t'; + result += tmp; + result += "[shape=diamond,label=\""; + result += cond; + result += "\"];\n"; + } + if (it->cond_value && !pf) { + result += '\t' + name + "->"; + result += tmp; + result += modifier; + result += '\n'; + } + eit->SetIsDrawn(); + } + if (cond.length() != 0) { + if (lo) { + char tmp[32]; + sprintf(tmp, "c_%llx", (uintptr_t)eit); + if (!it->block->IsEmptyBlock()) { + result += '\t'; + result += tmp; + result += "->" + it->block->GetGraphVisDescription(); + result += "[label="; + result += (!pf && it->cond_value) ? "T]" : "F]"; + result += ";\n"; + } + else { + std::string n = tmp; + std::string label; + label += "[label="; + label += (!pf && it->cond_value) ? "T]" : "F]"; + result += it->block->GetEdgesForBlock(n, original, label); + } + } + } + else { + result += '\t' + name + " -> " + it->block->GetGraphVisDescription(); + result += modifier; + result += ";\n"; + } + + } + else { + result += it->block->GetEdgesForBlock(name, original, ""); + } + } + return result; +} + +std::string CBasicBlock::GetGraphVisDescription() +{ + if (visname.length() != 0) + return visname; + char tmp[16]; + sprintf(tmp, "%d", num); + visname = tmp; + return visname; +} + +std::string CBasicBlock::GetGraphVisData() +{ + if (visunparse.length() != 0) + return visunparse; + std::string result; + for (ControlFlowItem* it = start; it != NULL && (it->isLeader() == false || it == start); it = it->getNext()) { + if (it->getStatement() != NULL) { + int ln = it->GetLineNumber(); + char tmp[16]; + sprintf(tmp, "%d: ", ln); + result += tmp; + result += it->getStatement()->unparse(); + } + } + visunparse = result; + return result; +} + +int ControlFlowItem::GetLineNumber() +{ + if (getStatement() == NULL) + return 0; + if (getStatement()->lineNumber() == 0){ + if (getOriginalStatement() == NULL) + return 0; + return getOriginalStatement()->lineNumber(); + } + return getStatement()->lineNumber(); +} + +bool CBasicBlock::IsEmptyBlock() +{ + for (ControlFlowItem* it = start; it != NULL && (it->isLeader() == false || it == start); it = it->getNext()) { + if (!it->IsEmptyCFI()) + return false; + } + return true; +} + +AnalysedCallsList* CallData::GetDataForGraph(ControlFlowGraph* s) +{ + for (AnalysedCallsList* it = calls_list; it != NULL; it = it->next) { + if (it->graph == s) + return it; + } + return NULL; +} + +ControlFlowGraph* GetControlFlowGraphWithCalls(bool main, SgStatement* start, CallData* calls, CommonData* commons) +{ + if (start == NULL) + { + //is_correct = "no body for call found"; + return NULL; + } + + ControlFlowGraph *cfgRet = NULL; + /* +#if __SPF + auto itF = CFG_cache.find(start); + if (itF != CFG_cache.end()) + { + calls = std::get<1>(itF->second); + commons = std::get<2>(itF->second); + return std::get<0>(itF->second); + } +#endif*/ + doLoops l; + ControlFlowItem *funcGraph = getControlFlowList(start, start->lastNodeOfStmt(), NULL, NULL, &l, calls, commons); + fillLabelJumps(funcGraph); + setLeaders(funcGraph); + + + cfgRet = new ControlFlowGraph(false, main, funcGraph, NULL); + //CFG_cache[start] = std::make_tuple(cfgRet, calls, commons); + return cfgRet; +} + +void FillCFGSets(ControlFlowGraph* graph) +{ + graph->privateAnalyzer(); +} + +static void ClearMemoryAfterDelay(ActualDelayedData* d) +{ + while (d != NULL) { + CommonVarSet* cd = d->commons; + while (cd != NULL) { + CommonVarSet* t = cd; + cd = cd->next; + delete t; + } + delete d->buse; + ActualDelayedData* tmp = d; + d = d->next; + delete tmp; + } +} + +static void FillPrivates(ControlFlowGraph* graph) +{ + ActualDelayedData* d = graph->ProcessDelayedPrivates(pCommons, mainProcedure, NULL, NULL, false, -1); + ClearMemoryAfterDelay(d); + if (privateDelayedList) + privateDelayedList->PrintWarnings(); +} + +ActualDelayedData* CBasicBlock::GetDelayedDataForCall(CallAnalysisLog* log) +{ + for (ControlFlowItem* it = start; it != NULL && (!it->isLeader() || it == start); it = it->getNext()) + { + AnalysedCallsList* c = it->getCall(); + void* cf = it->getFunctionCall(); + bool isFun = true; + if (!cf) { + cf = it->getStatement(); + isFun = false; + } + if (c != NULL && c != (AnalysedCallsList*)(-1) && c != (AnalysedCallsList*)(-2) && c->graph != NULL) + return c->graph->ProcessDelayedPrivates(pCommons, c, log, cf, isFun, it->getProc()->file_id); + } + return NULL; +} + +void PrivateDelayedItem::MoveFromPrivateToLastPrivate(CVarEntryInfo* var) +{ + VarItem* el = detected->belongs(var); + if (el) { + eVariableType storedType = el->var->GetVarType(); + detected->remove(el->var); + lp->addToSet(var, NULL); + } +} + +void ActualDelayedData::RemoveVarFromCommonList(CommonVarSet* c) +{ + if (commons == NULL || c == NULL) + return; + if (c == commons) + { + commons = commons->next; + delete c; + return; + } + CommonVarSet* prev = c; + for (CommonVarSet* cur = c->next; cur != NULL; cur = cur->next) + { + if (cur == c) + { + prev->next = c->next; + delete c; + return; + } + else + prev = cur; + } +} + +void ActualDelayedData::MoveVarFromPrivateToLastPrivate(CVarEntryInfo* var, CommonVarSet* c, VarSet* vs) +{ + original->MoveFromPrivateToLastPrivate(var); + RemoveVarFromCommonList(c); + if (vs) + { + if (vs->belongs(var)) + vs->remove(var); + } +} + +int IsThisVariableAParameterOfSubroutine(AnalysedCallsList* lst, SgSymbol* s) +{ + if (!lst->header) + return -1; + int stored = SwitchFile(lst->file_id); + SgProcHedrStmt* h = isSgProcHedrStmt(lst->header); + if (!h) + return -1; + for (int i = 0; i < h->numberOfParameters(); i++) { + SgSymbol* par = h->parameter(i); + if (par == s) { + SwitchFile(stored); + return i; + } + } + SwitchFile(stored); + return -1; +} + +ActualDelayedData* ControlFlowGraph::ProcessDelayedPrivates(CommonData* commons, AnalysedCallsList* call, CallAnalysisLog* log, void* c, bool isFun, int file_id) +{ + for (CallAnalysisLog* i = log; i != NULL; i = i->prev) { + if (i->el == call) + { + //TODO: add name of common +#if __SPF + const wchar_t* rus = R158; + Warning("Recursion is not analyzed for privates in common blocks '%s'", rus, "TODO!", PRIVATE_ANALYSIS_NO_RECURSION_ANALYSIS, call->header); +#else + Warning("Recursion is not analyzed for privates in common blocks '%s'", "TODO!", PRIVATE_ANALYSIS_NO_RECURSION_ANALYSIS, call->header); +#endif + return NULL; + } + } + CallAnalysisLog* nl = new CallAnalysisLog(); + nl->el = call; + nl->prev = log; + if (log == NULL) + nl->depth = 0; + else + nl->depth = log->depth + 1; + log = nl; + ActualDelayedData* my = NULL; + for (CBasicBlock* bb = first; bb != NULL; bb = bb->getLexNext()) { + if (bb->containsParloopStart()) { + if (bb->GetDelayedData()) { + ActualDelayedData* data = new ActualDelayedData(); + data->original = bb->GetDelayedData(); + data->commons = commons->GetCommonsForVarSet(data->original->getDetected(), call); + VarSet* bu = new VarSet(); + bu->unite(data->original->getDelayed(), false); + VarSet* tbu = new VarSet(); + while (!bu->isEmpty()) { + if (IS_BY_USE(bu->getFirst()->var->GetSymbol())) + tbu->addToSet(bu->getFirst()->var, NULL); + else { + CVarEntryInfo* old = bu->getFirst()->var; + int arg_id = IsThisVariableAParameterOfSubroutine(call, bu->getFirst()->var->GetSymbol()); + if (arg_id != -1 && c != NULL) { + int stored = SwitchFile(file_id); + SgExpression* exp = GetProcedureArgument(isFun, c, arg_id); + if (isSgVarRefExp(exp) || isSgArrayRefExp(exp)) { + SgSymbol* sym = exp->symbol(); + CVarEntryInfo* v; + if (isSgVarRefExp(exp)) { + v = new CScalarVarEntryInfo(sym); + } + else { + v = old->Clone(sym); + } + tbu->addToSet(v, NULL, old); + } + SwitchFile(stored); + + } + } + bu->remove(bu->getFirst()->var); + } + data->buse = tbu; + delete bu; + data->next = my; + data->call = call; + my = data; + } + } + ActualDelayedData* calldata = bb->GetDelayedDataForCall(log); + while (calldata != NULL) { + CommonVarSet* nxt = NULL; + for (CommonVarSet* t = calldata->commons; t != NULL; t = nxt) { + nxt = t->next; + CommonVarInfo* cvd = t->cvd; + CommonDataItem* d = commons->IsThisCommonUsedInProcedure(cvd->parent, call); + if (!d || commons->CanHaveNonScalarVars(d)) + continue; + CommonVarInfo* j = cvd->parent->info; + CommonVarInfo* i = d->info; + while (j != cvd) { + j = j->next; + if (i) + i = i->next; + } + if (!i) + continue; + CVarEntryInfo* var = i->var; + if (bb->getLexNext()->getLiveIn()->belongs(var->GetSymbol()) && calldata->original->getDelayed()->belongs(cvd->var)) { + calldata->MoveVarFromPrivateToLastPrivate(cvd->var, t, NULL); + } + if (bb->IsVarDefinedAfterThisBlock(var, false)) { + calldata->RemoveVarFromCommonList(t); + } + + } + if (log->el->header == calldata->call->header) { + VarSet* pr = new VarSet(); + pr->unite(calldata->original->getDelayed(), false); + pr->intersect(bb->getLexNext()->getLiveIn(), false, true); + for (VarItem* exp = pr->getFirst(); exp != NULL; pr->getFirst()) { + calldata->MoveVarFromPrivateToLastPrivate(exp->var, NULL, NULL); + pr->remove(exp->var); + } + delete pr; + } + VarSet* tmp_use = new VarSet(); + tmp_use->unite(calldata->buse, false); + while (!tmp_use->isEmpty()) { + VarItem* v = tmp_use->getFirst(); + CVarEntryInfo* tmp = v->var->Clone(OriginalSymbol(v->var->GetSymbol())); + if (bb->getLexNext()->getLiveIn()->belongs(tmp->GetSymbol(), true)) { + calldata->MoveVarFromPrivateToLastPrivate(v->ov ? v->ov : v->var, NULL, calldata->buse); + } + if (bb->IsVarDefinedAfterThisBlock(v->var, true)) { + calldata->buse->remove(v->ov ? v->ov : v->var); + } + delete tmp; + tmp_use->remove(v->var); + } + delete tmp_use; + ActualDelayedData* tmp = calldata->next; + calldata->next = my; + my = calldata; + calldata = tmp; + } + } + nl = log; + log = log->prev; + + delete nl; + return my; +} + +extern graph_node* node_list; +void Private_Vars_Function_Analyzer(SgStatement* start); + +void Private_Vars_Project_Analyzer() +{ + graph_node* node = node_list; + while (node) { + if (node->st_header) { + int stored_file_id = SwitchFile(node->file_id); + Private_Vars_Function_Analyzer(node->st_header); + SwitchFile(stored_file_id); + } + node = node->next; + } +} + +// CALL function for PRIVATE analyzing +void Private_Vars_Function_Analyzer(SgStatement* start) +{ + //temporary state +#ifndef __SPF + if (!options.isOn(PRIVATE_ANALYSIS)){ + return; + } +#endif + + if (start->variant() == PROG_HEDR) { + Private_Vars_Analyzer(start); + } + /* + ControlFlowItem* funcGraph = getControlFlowList(start, start->lastNodeOfStmt(), NULL, NULL, new doLoops()); + fillLabelJumps(funcGraph); + setLeaders(funcGraph); +#if ACCAN_DEBUG + printControlFlowList(funcGraph); +#endif + ControlFlowItem* p = funcGraph; + ControlFlowItem* pl_start = NULL; + ControlFlowItem* pl_end = NULL; + ControlFlowGraph* graph = new ControlFlowGraph(funcGraph, NULL); + graph->privateAnalyzer(); + */ +} +/* +// CALL function for PRIVATE analyzing +void Private_Vars_Analyzer(SgStatement *firstSt, SgStatement *lastSt) +{ + // temporary state + //return; + SgExpression* par_des = firstSt->expr(2); + SgSymbol* l; + SgForStmt* chk; + int correct = 1; + firstSt = firstSt->lexNext(); + while (correct && (par_des != NULL) && (par_des->lhs() != NULL) && ((l = par_des->lhs()->symbol()) != NULL)){ + if (firstSt->variant() == FOR_NODE){ + chk = isSgForStmt(firstSt); + if (chk->symbol() != l) + correct = 0; + firstSt = firstSt->lexNext(); + par_des = par_des->rhs(); + } + else{ + correct = 0; + } + } + if (correct){ + doLoops* loops = new doLoops(); + ControlFlowItem* cfList = getControlFlowList(firstSt, lastSt, NULL, NULL, loops); + fillLabelJumps(cfList); + setLeaders(cfList); +#if ACCAN_DEBUG + printControlFlowList(cfList); +#endif + VarSet* priv = ControlFlowGraph(cfList, NULL).getPrivate(); +#if ACCAN_DEBUG + priv->print(); +#endif + clearList(cfList); + } +} +*/ + +static void fillLabelJumps(ControlFlowItem* cfList) +{ + if (cfList != NULL){ + ControlFlowItem* temp = cfList; + ControlFlowItem* temp2; + unsigned int label_no = 0; + while (temp != NULL){ + if (temp->getLabel() != NULL) + label_no++; + temp = temp->getNext(); + } + LabelCFI* table = new LabelCFI[label_no + 1]; + unsigned int li = 0; + for (temp = cfList; temp != NULL; temp = temp->getNext()){ + SgLabel* label; + if ((label = temp->getLabel()) != NULL){ + table[li].item = temp; + table[li++].l = label->id(); + } + temp2 = temp; + } + temp = new ControlFlowItem(currentProcedure); + temp2->AddNextItem(temp); + table[label_no].item = temp2; + table[label_no].l = -1; + for (temp = cfList; temp != NULL; temp = temp->getNext()){ + SgLabel* jump = temp->getLabelJump(); + int l; + if (jump != NULL){ + l = jump->id(); + for (unsigned int i = 0; i < label_no + 1; i++){ + if (table[i].l == l || i == label_no){ + temp->initJump(table[i].item); + break; + } + } + } + } + delete[] table; + } +} + +static void setLeaders(ControlFlowItem* cfList) +{ + if (cfList != NULL) + cfList->setLeader(); + while (cfList != NULL) + { + if (cfList->getJump() != NULL) + { + cfList->getJump()->setLeader(); + if (cfList->getNext() != NULL) + cfList->getNext()->setLeader(); + } + if (cfList->getCall() != NULL) + { + if (cfList->getNext() != NULL) + cfList->getNext()->setLeader(); + } + cfList = cfList->getNext(); + } +} + +static void clearList(ControlFlowItem *list) +{ + if (list != NULL) + { + if (list->getNext() != NULL) + clearList(list->getNext()); + + delete list; + } +} + +static ControlFlowItem* ifItem(SgStatement* stmt, ControlFlowItem* empty, SgStatement** lastAnStmt, doLoops* loops, bool ins, CallData* calls, CommonData* commons) +{ + if (stmt == NULL) + return empty; + SgIfStmt* cond; + if (stmt->variant() == ELSEIF_NODE) + cond = (SgIfStmt*)stmt; + if (stmt->variant() == ELSEIF_NODE || (!ins && (cond = isSgIfStmt(stmt)) != NULL)) + { + SgExpression* c = &(SgNotOp((cond->conditional()->copy()))); + ControlFlowItem *n, *j; + ControlFlowItem* last; + if ((n = getControlFlowList(cond->trueBody(), NULL, &last, lastAnStmt, loops, calls, commons)) == NULL) + return NULL; + j = ifItem(cond->falseBody(), empty, lastAnStmt, loops, cond->falseBody() != NULL ? cond->falseBody()->variant() == IF_NODE : false, calls, commons); + ControlFlowItem* gotoEmpty = new ControlFlowItem(NULL, empty, j, NULL, currentProcedure); + if (last != NULL) + last->AddNextItem(gotoEmpty); + else + n = gotoEmpty; + ControlFlowItem* tn = new ControlFlowItem(c, j, n, stmt->label(), currentProcedure); + tn->setOriginalStatement(stmt); + return tn; + } + else + { + ControlFlowItem* last; + ControlFlowItem* ret; + if ((ret = getControlFlowList(stmt, NULL, &last, lastAnStmt, loops, calls, commons)) == NULL) + return NULL; + last->AddNextItem(empty); + return ret; + } +} + +static ControlFlowItem* switchItem(SgStatement* stmt, ControlFlowItem* empty, SgStatement** lastAnStmt, doLoops* loops, CallData* calls, CommonData* commons) +{ + SgSwitchStmt* sw = isSgSwitchStmt(stmt); + SgExpression* sw_cond = (sw->selector()); + stmt = stmt->lexNext(); + *lastAnStmt = stmt; + ControlFlowItem* last_sw = NULL; + ControlFlowItem* first = NULL; + bool is_def_last = false; + SgStatement* not_def_last; + while (stmt->variant() == CASE_NODE || stmt->variant() == DEFAULT_NODE) + { + if (stmt->variant() == DEFAULT_NODE){ + while (stmt->variant() != CONTROL_END && stmt->variant() != CASE_NODE) + stmt = stmt->lexNext(); + if (stmt->variant() == CONTROL_END) + stmt = stmt->lexNext(); + is_def_last = true; + continue; + } + SgExpression* c = ((SgCaseOptionStmt*)stmt)->caseRange(0); + SgExpression *lhs = NULL; + SgExpression *rhs = NULL; + if (c->variant() == DDOT){ + lhs = c->lhs(); + rhs = c->rhs(); + if (rhs == NULL) + c = &(*lhs <= *sw_cond); + else if (lhs == NULL) + c = &(*sw_cond <= *rhs); + else + c = &(*lhs <= *sw_cond && *sw_cond <= *rhs); + } + else + c = &SgNeqOp(*sw_cond, *c); + ControlFlowItem *n, *j; + ControlFlowItem* last; + if ((n = getControlFlowList(stmt->lexNext(), NULL, &last, lastAnStmt, loops, calls, commons)) == NULL) + return NULL; + j = new ControlFlowItem(currentProcedure); + ControlFlowItem* gotoEmpty = new ControlFlowItem(NULL, empty, j, NULL, currentProcedure); + if (last != NULL) + last->AddNextItem(gotoEmpty); + else + n = gotoEmpty; + ControlFlowItem* cond = new ControlFlowItem(c, j, n, stmt->label(), currentProcedure); + cond->setOriginalStatement(stmt); + if (last_sw == NULL) + first = cond; + else + last_sw->AddNextItem(cond); + last_sw = j; + is_def_last = false; + not_def_last = *lastAnStmt; + stmt = *lastAnStmt; + } + SgStatement* def = sw->defOption(); + if (def != NULL){ + ControlFlowItem* last; + ControlFlowItem* n; + if ((n = getControlFlowList(def->lexNext(), NULL, &last, lastAnStmt, loops, calls, commons)) == NULL) + return NULL; + if (last != NULL) + last->AddNextItem(empty); + if (last_sw == NULL) + first = n; + else + last_sw->AddNextItem(n); + last_sw = last; + } + last_sw->AddNextItem(empty); + if (!is_def_last) + *lastAnStmt = not_def_last; + return first; +} + +static ControlFlowItem* getControlFlowList(SgStatement *firstSt, SgStatement *lastSt, ControlFlowItem **last, SgStatement **lastAnStmt, doLoops* loops, CallData* calls, CommonData* commons) +{ + ControlFlowItem *list = new ControlFlowItem(currentProcedure); + ControlFlowItem *cur = list; + ControlFlowItem *pred = list; + SgStatement *stmt; + for (stmt = firstSt; ( + stmt != lastSt + && stmt->variant() != CONTAINS_STMT + && (lastSt != NULL || stmt->variant() != ELSEIF_NODE) + && (lastSt != NULL || stmt->variant() != CASE_NODE) + && (lastSt != NULL || stmt->variant() != DEFAULT_NODE)); + stmt = stmt->lexNext()) + { + if (stmt->variant() == CONTROL_END) + { + if (isSgExecutableStatement(stmt)) + break; + } + + cur = processOneStatement(&stmt, &pred, &list, cur, loops, calls, commons); + if (cur == NULL) + { + clearList(list); + return NULL; + } + } + if (cur == NULL){ + cur = list = new ControlFlowItem(currentProcedure); + } + if (last != NULL) + *last = cur; + if (lastAnStmt != NULL) + *lastAnStmt = stmt; + return list; +} + +AnalysedCallsList* CallData::IsHeaderInList(SgStatement* header) +{ + if (header == NULL) + return NULL; + AnalysedCallsList* p = calls_list; + while (p != NULL) { + if (p->header == header) + return p; + p = p->next; + } + return NULL; +} + +void CallData::AssociateGraphWithHeader(SgStatement* st, ControlFlowGraph* gr) +{ + AnalysedCallsList* l = calls_list; + while (l != NULL) { + if (l->header == st) { + if (gr == l->graph && gr != NULL) + gr->AddRef(); + l->graph = gr; + return; + } + l = l->next; + } + delete gr; +} + +AnalysedCallsList* CallData::AddHeader(SgStatement* st, bool isFun, SgSymbol* name, int fid) +{ + //test + bool add_intr = IsAnIntrinsicSubroutine(name->identifier()) != NULL; + AnalysedCallsList* l = new AnalysedCallsList(st, (isIntrinsicFunctionNameACC(name->identifier()) || add_intr) && !IsUserFunctionACC(name), IsPureProcedureACC(name), isFun, name->identifier(), fid); + l->next = calls_list; + calls_list = l; + return l; +} + +extern int isStatementFunction(SgSymbol *s); + +AnalysedCallsList* CallData::getLinkToCall(SgExpression* e, SgStatement* s, CommonData* commons) +{ + SgStatement* header = NULL; + SgSymbol* name; + bool isFun; + graph_node* g = NULL; + if (e == NULL) { + //s - procedure call + SgCallStmt* f = isSgCallStmt(s); + SgSymbol* fdaf = f->name(); + if (ATTR_NODE(f->name()) != NULL) + g = GRAPHNODE(f->name()); + if (g == NULL) { + + is_correct = "no header for procedure"; + failed_proc_name = f->name()->identifier(); + return (AnalysedCallsList*)(-1); + + } + if (g) + header = isSgProcHedrStmt(g->st_header); + name = f->name(); + isFun = false; + //intr = isIntrinsicFunctionNameACC(f->name()->identifier()) && !IsUserFunctionACC(f->name()); + //IsPureProcedureACC(f->name()); + } + else { + //e - function call + SgFunctionCallExp* f = isSgFunctionCallExp(e); + if (isStatementFunction(f->funName())) + return (AnalysedCallsList*)(-2); + if (ATTR_NODE(f->funName()) != NULL) + g = GRAPHNODE(f->funName()); + if (g == NULL) { + is_correct = "no header for function"; + failed_proc_name = f->funName()->identifier(); + return (AnalysedCallsList*)(-1); + } + header = isSgFuncHedrStmt(g->st_header); + name = f->funName(); + isFun = true; + } + AnalysedCallsList* p; + if ((p = IsHeaderInList(header))) { + recursion_flag = recursion_flag || p->graph != NULL; + return p; + } + AnalysedCallsList* prev = currentProcedure; + currentProcedure = p = AddHeader(header, isFun, name, g->file_id); + if (!p->isIntrinsic) { + int stored = SwitchFile(g->file_id); + + ControlFlowGraph* graph = GetControlFlowGraphWithCalls(false, header, this, commons); + //if (graph == NULL) + //failed_proc_name = name->identifier(); + + SwitchFile(stored); + + AssociateGraphWithHeader(header, graph); + commons->MarkEndOfCommon(p); + } + currentProcedure = prev; + return p; +} + +static ControlFlowItem* GetFuncCallsForExpr(SgExpression* e, CallData* calls, ControlFlowItem** last, CommonData* commons, SgStatement* os) +{ + if (e == NULL) { + *last = NULL; + return NULL; + } + SgFunctionCallExp* f = isSgFunctionCallExp(e); + if (f) { + ControlFlowItem* head = new ControlFlowItem(NULL, NULL, currentProcedure, calls->getLinkToCall(e, NULL, commons)); + head->setOriginalStatement(os); + ControlFlowItem* curl = head; + head->setFunctionCall(f); + ControlFlowItem* l1, *l2; + ControlFlowItem* tail1 = GetFuncCallsForExpr(e->lhs(), calls, &l1, commons, os); + ControlFlowItem* tail2 = GetFuncCallsForExpr(e->rhs(), calls, &l2, commons, os); + *last = head; + if (tail2 != NULL) { + l2->AddNextItem(head); + head = tail2; + } + if (tail1 != NULL) { + l1->AddNextItem(head); + head = tail1; + } + + return head; + } + f = isSgFunctionCallExp(e->lhs()); + if (f) { + ControlFlowItem* head = new ControlFlowItem(NULL, NULL, currentProcedure, calls->getLinkToCall(e->lhs(), NULL, commons)); + head->setOriginalStatement(os); + head->setFunctionCall(f); + ControlFlowItem* l1, *l2, *l3; + ControlFlowItem* tail1 = GetFuncCallsForExpr(e->lhs()->lhs(), calls, &l1, commons, os); + ControlFlowItem* tail2 = GetFuncCallsForExpr(e->lhs()->rhs(), calls, &l2, commons, os); + ControlFlowItem* tail3 = GetFuncCallsForExpr(e->rhs(), calls, &l3, commons, os); + *last = head; + if (tail2 != NULL) { + l2->AddNextItem(head); + head = tail2; + } + if (tail1 != NULL) { + l1->AddNextItem(head); + head = tail1; + } + if (tail3 != NULL) { + (*last)->AddNextItem(tail3); + *last = l3; + } + return head; + } + return GetFuncCallsForExpr(e->rhs(), calls, last, commons, os); +} + +static ControlFlowItem* AddFunctionCalls(SgStatement* st, CallData* calls, ControlFlowItem** last, CommonData* commons) +{ + ControlFlowItem* retv = GetFuncCallsForExpr(st->expr(0), calls, last, commons, st); + ControlFlowItem* l2 = NULL; + ControlFlowItem* second = GetFuncCallsForExpr(st->expr(1), calls, &l2, commons, st); + if (retv == NULL) { + retv = second; + *last = l2; + } + else if (second != NULL) { + (*last)->AddNextItem(second); + *last = l2; + } + ControlFlowItem* l3 = NULL; + ControlFlowItem* third = GetFuncCallsForExpr(st->expr(2), calls, &l3, commons, st); + if (retv == NULL) { + retv = third; + *last = l3; + } + else if (third != NULL) { + (*last)->AddNextItem(third); + *last = l3; + } + return retv; +} + +void DoLoopDataList::AddLoop(int file_id, SgStatement* st, SgExpression* l, SgExpression* r, SgExpression* step, SgSymbol* lv) +{ + DoLoopDataItem* nt = new DoLoopDataItem(); + nt->file_id = file_id; + nt->statement = st; + nt->l = l; + nt->r = r; + nt->st = step; + nt->loop_var = lv; + nt->next = list; + list = nt; +} + +DoLoopDataList::~DoLoopDataList() +{ +#if __SPF + removeFromCollection(this); + return; +#endif + while (list != NULL) { + DoLoopDataItem* t = list->next; + delete list; + list = t; + } +} + +static ControlFlowItem* processOneStatement(SgStatement** stmt, ControlFlowItem** pred, ControlFlowItem **list, ControlFlowItem* oldcur, doLoops* loops, CallData* calls, CommonData* commons) +{ + ControlFlowItem* lastf; + ControlFlowItem* funcs = AddFunctionCalls(*stmt, calls, &lastf, commons); + if (funcs != NULL) { + if (*pred != NULL) + (*pred)->AddNextItem(funcs); + else + *list = funcs; + *pred = lastf; + } + + switch ((*stmt)->variant()) + { + case IF_NODE: + { + ControlFlowItem* emptyAfterIf = new ControlFlowItem(currentProcedure); //empty item to avoid second pass + /* + if ((*stmt)->hasLabel()){ + ControlFlowItem* emptyBeforeIf = new ControlFlowItem(); + emptyBeforeIf->setLabel((*stmt)->label()); + if (*pred != NULL) + (*pred)->AddNextItem(emptyBeforeIf); + else + *list = emptyBeforeIf; + *pred = emptyBeforeIf; + } + */ + ControlFlowItem* cur = ifItem(*stmt, emptyAfterIf, stmt, loops, false, calls, commons); + emptyAfterIf->setLabel((*stmt)->label()); + if (*pred != NULL) + (*pred)->AddNextItem(cur); + else + *list = cur; + return (*pred = emptyAfterIf); + } + case ASSIGN_STAT: + case POINTER_ASSIGN_STAT: + case PROC_STAT: + case PRINT_STAT: + case READ_STAT: + case WRITE_STAT: + case ALLOCATE_STMT: + case DEALLOCATE_STMT: + { + ControlFlowItem* cur = new ControlFlowItem(*stmt, NULL, currentProcedure, (*stmt)->variant() == PROC_STAT ? calls->getLinkToCall(NULL, *stmt, commons) : NULL); + if (*pred != NULL) + (*pred)->AddNextItem(cur); + else + *list = cur; + return (*pred = loops->checkStatementForLoopEnding(cur->getLabel() ? cur->getLabel()->id() : -1, cur)); + } + case LOGIF_NODE: + { + ControlFlowItem* emptyAfterIf = new ControlFlowItem(currentProcedure); //empty item to avoid second pass + SgLogIfStmt* cond = isSgLogIfStmt(*stmt); + SgLabel* lbl = (*stmt)->label(); + SgExpression* c = &(SgNotOp((cond->conditional()->copy()))); + ControlFlowItem* cur = new ControlFlowItem(c, emptyAfterIf, NULL, (*stmt)->label(), currentProcedure); + cur->setOriginalStatement(*stmt); + if (*pred != NULL) + (*pred)->AddNextItem(cur); + else + *list = cur; + *stmt = (*stmt)->lexNext(); + ControlFlowItem* body; + if ((body = processOneStatement(stmt, &cur, list, cur, loops, calls, commons)) == NULL){ + return NULL; + } + body->AddNextItem(emptyAfterIf); + return (*pred = loops->checkStatementForLoopEnding(lbl ? lbl->id() : -1, emptyAfterIf)); + } + case WHILE_NODE: + { + SgWhileStmt* cond = isSgWhileStmt(*stmt); + bool isEndDo = (*stmt)->lastNodeOfStmt()->variant() == CONTROL_END; + SgExpression* c; + if (cond->conditional()) + c = &(SgNotOp((cond->conditional()->copy()))); + else + c = new SgValueExp(1); + ControlFlowItem* emptyAfterWhile = new ControlFlowItem(currentProcedure); + ControlFlowItem* emptyBeforeBody = new ControlFlowItem(currentProcedure); + ControlFlowItem* cur = new ControlFlowItem(c, emptyAfterWhile, emptyBeforeBody, (*stmt)->label(), currentProcedure); + cur->setOriginalStatement(cond); + ControlFlowItem* gotoStart = new ControlFlowItem(NULL, cur, emptyAfterWhile, NULL, currentProcedure); + ControlFlowItem* emptyBefore = new ControlFlowItem(NULL, (ControlFlowItem*)NULL, cur, cond->label(), currentProcedure); + SgVarRefExp* doName = (isSgVarRefExp((*stmt)->expr(2))); + int lbl = -1; + if (!isEndDo){ + SgStatement* end = lastStmtOfDoACC(cond); + if (end->controlParent() && end->controlParent()->variant() == LOGIF_NODE) + lbl = end->controlParent()->label()->id(); + else + lbl = end->label()->id(); + } + loops->addLoop(lbl, doName ? doName->symbol() : NULL, gotoStart, emptyAfterWhile); + ControlFlowItem* n, *last; + if (isEndDo){ + if ((n = getControlFlowList((*stmt)->lexNext(), NULL, &last, stmt, loops, calls, commons)) == NULL) + return NULL; + emptyBeforeBody->AddNextItem(n); + loops->endLoop(last); + } + if (*pred != NULL) + (*pred)->AddNextItem(emptyBefore); + else + *list = emptyBefore; + if (isEndDo) + return (*pred = emptyAfterWhile); + return (*pred = emptyBeforeBody); + } + case FOR_NODE: + { + SgForStmt* fst = isSgForStmt(*stmt); +#if __SPF + SgStatement *p = NULL; + for (int i = 0; i < fst->numberOfAttributes(); ++i) + { + if (fst->attributeType(i) == SPF_ANALYSIS_DIR) + { + p = (SgStatement *)(fst->getAttribute(i)->getAttributeData()); + break; + } + } + bool isParLoop = (p && p->variant() == SPF_ANALYSIS_DIR); +#else + SgStatement* p = (*stmt)->lexPrev(); + bool isParLoop = (p && p->variant() == DVM_PARALLEL_ON_DIR); +#endif + SgExpression* pl = NULL; + SgExpression* pPl = NULL; + bool pl_flag = true; + if (isParLoop){ +#if __SPF + SgExpression* el = p->expr(0); +#else + SgExpression* el = p->expr(1); +#endif + pPl = el; + while (el != NULL) { + SgExpression* e = el->lhs(); + if (e->variant() == ACC_PRIVATE_OP) { + pl = e; + break; + } + pPl = el; + pl_flag = false; + el = el->rhs(); + } + //pl->unparsestdout(); + } + bool isEndDo = fst->isEnddoLoop(); + SgExpression* lh = new SgVarRefExp(fst->symbol()); + SgStatement* fa = new SgAssignStmt(*lh, *fst->start()); + bool needs_goto = true; +#if !__SPF + // create goto edge if can not calculate count of loop's iterations + if (fst->start()->variant() == INT_VAL && fst->end()->variant() == INT_VAL && fst->start()->valueInteger() < fst->end()->valueInteger()) + needs_goto = false; +#endif + //fa->setLabel(*(*stmt)->label()); + ControlFlowItem* last; + ControlFlowItem* emptyAfterDo = new ControlFlowItem(currentProcedure); + ControlFlowItem* emptyBeforeDo = new ControlFlowItem(currentProcedure); + ControlFlowItem* gotoEndInitial = NULL; + if (needs_goto) { + SgExpression* sendc = new SgExpression(GT_OP, new SgVarRefExp(fst->symbol()), fst->end(), NULL); + gotoEndInitial = new ControlFlowItem(sendc, emptyAfterDo, emptyBeforeDo, NULL, currentProcedure, true); + gotoEndInitial->setOriginalStatement(fst); + } + ControlFlowItem* stcf = new ControlFlowItem(fa, needs_goto ? gotoEndInitial : emptyBeforeDo, currentProcedure); + stcf->setOriginalStatement(fst); + stcf->setLabel((*stmt)->label()); + SgExpression* rh = new SgExpression(ADD_OP, new SgVarRefExp(fst->symbol()), new SgValueExp(1), NULL); + SgStatement* add = new SgAssignStmt(*lh, *rh); + SgExpression* endc = new SgExpression(GT_OP, new SgVarRefExp(fst->symbol()), fst->end(), NULL); + ControlFlowItem* gotoStart = new ControlFlowItem(NULL, emptyBeforeDo, emptyAfterDo, NULL, currentProcedure); + ControlFlowItem* gotoEnd = new ControlFlowItem(endc, emptyAfterDo, gotoStart, NULL, currentProcedure); + gotoEnd->setOriginalStatement(fst); + if (needs_goto) { + gotoEnd->SetConditionFriend(gotoEndInitial); + } + ControlFlowItem* loop_d = new ControlFlowItem(add, gotoEnd, currentProcedure); + loop_d->setOriginalStatement(fst); + ControlFlowItem* loop_emp = new ControlFlowItem(NULL, loop_d, currentProcedure); + SgVarRefExp* doName = (isSgVarRefExp((*stmt)->expr(2))); + int lbl = -1; + if (!isEndDo){ + SgStatement* end = lastStmtOfDoACC(fst); + if (end->variant() == LOGIF_NODE) + lbl = end->controlParent()->label()->id(); + else + lbl = end->label()->id(); + } + loops->addLoop(lbl, doName ? doName->symbol() : NULL, loop_emp, emptyAfterDo); + doLoopList->AddLoop(current_file_id, *stmt, fst->start(), fst->end(), fst->step(), fst->symbol()); + if (isParLoop) { +#if __SPF + // all loop has depth == 1 ? is it correct? + int k = 1; +#else + SgExpression* par_des = p->expr(2); + int k = 0; + while (par_des != NULL && par_des->lhs() != NULL) { + k++; + par_des = par_des->rhs(); + } +#endif + loops->setParallelDepth(k, pl, p, pPl, pl_flag); + } + + if (loops->isLastParallel()) { + SgExpression* ex = loops->getPrivateList(); + emptyBeforeDo->MakeParloopStart(); + bool f; + SgExpression* e = loops->getExpressionToModifyPrivateList(&f); + emptyBeforeDo->setPrivateList(ex, loops->GetParallelStatement(), e, f); + loop_d->MakeParloopEnd(); + } + if (isEndDo){ + ControlFlowItem* body; + if ((body = getControlFlowList(fst->body(), NULL, &last, stmt, loops, calls, commons)) == NULL) + return NULL; + emptyBeforeDo->AddNextItem(body); + loops->endLoop(last); + } + if (*pred != NULL) + (*pred)->AddNextItem(stcf); + else + *list = stcf; + if (isEndDo) + return (*pred = emptyAfterDo); + return (*pred = emptyBeforeDo); + } + case GOTO_NODE: + { + SgGotoStmt* gst = isSgGotoStmt(*stmt); + ControlFlowItem* gt = new ControlFlowItem(NULL, gst->branchLabel(), NULL, gst->label(), currentProcedure); + if (*pred != NULL) + (*pred)->AddNextItem(gt); + else + *list = gt; + return (*pred = gt); + } + case ARITHIF_NODE: + { + SgArithIfStmt* arif = (SgArithIfStmt*)(*stmt); + ControlFlowItem* gt3 = new ControlFlowItem(NULL, ((SgLabelRefExp*)(*stmt)->expr(1)->rhs()->rhs()->lhs())->label(), NULL, NULL, currentProcedure); + ControlFlowItem* gt2 = new ControlFlowItem(&SgEqOp(*(arif->conditional()), *new SgValueExp(0)), ((SgLabelRefExp*)(*stmt)->expr(1)->rhs()->lhs())->label(), gt3, NULL, currentProcedure); + gt2->setOriginalStatement(arif); + ControlFlowItem* gt1 = new ControlFlowItem(&(*arif->conditional() < *new SgValueExp(0)), ((SgLabelRefExp*)(*stmt)->expr(1)->lhs())->label(), gt2, (*stmt)->label(), currentProcedure); + gt1->setOriginalStatement(arif); + if (*pred != NULL) + (*pred)->AddNextItem(gt1); + else + *list = gt1; + return (*pred = gt3); + } + case COMGOTO_NODE: + { + SgComputedGotoStmt* cgt = (SgComputedGotoStmt*)(*stmt); + SgExpression* label = cgt->labelList(); + int i = 0; + SgLabel* lbl = ((SgLabelRefExp *)(label->lhs()))->label(); + ControlFlowItem* gt = new ControlFlowItem(&SgEqOp(*(cgt->exp()), *new SgValueExp(++i)), lbl, NULL, cgt->label(), currentProcedure); + gt->setOriginalStatement(cgt); + if (*pred != NULL) + (*pred)->AddNextItem(gt); + else + *list = gt; + ControlFlowItem* old = gt; + while ((label = label->rhs())) + { + lbl = ((SgLabelRefExp *)(label->lhs()))->label(); + gt = new ControlFlowItem(&SgEqOp(*(cgt->exp()), *new SgValueExp(++i)), lbl, NULL, NULL, currentProcedure); + gt->setOriginalStatement(cgt); + old->AddNextItem(gt); + old = gt; + } + return (*pred = gt); + } + case SWITCH_NODE: + { + ControlFlowItem* emptyAfterSwitch = new ControlFlowItem(currentProcedure); + ControlFlowItem* cur = switchItem(*stmt, emptyAfterSwitch, stmt, loops, calls, commons); + emptyAfterSwitch->setLabel((*stmt)->label()); + if (*pred != NULL) + (*pred)->AddNextItem(cur); + else + *list = cur; + return (*pred = emptyAfterSwitch); + } + case CONT_STAT: + { + ControlFlowItem* cur = new ControlFlowItem(NULL, (ControlFlowItem*)NULL, NULL, (*stmt)->label(), currentProcedure); + if (*pred != NULL) + (*pred)->AddNextItem(cur); + else + *list = cur; + return (*pred = loops->checkStatementForLoopEnding(cur->getLabel() ? cur->getLabel()->id() : -1, cur)); + } + case CYCLE_STMT: + { + SgSymbol* ref = (*stmt)->symbol(); + ControlFlowItem* cur = new ControlFlowItem(NULL, loops->getSourceForCycle(ref), NULL, (*stmt)->label(), currentProcedure); + if (*pred != NULL) + (*pred)->AddNextItem(cur); + else + *list = cur; + return (*pred = cur); + } + case EXIT_STMT: + { + SgSymbol* ref = (*stmt)->symbol(); + ControlFlowItem* cur = new ControlFlowItem(NULL, loops->getSourceForExit(ref), NULL, (*stmt)->label(), currentProcedure); + if (*pred != NULL) + (*pred)->AddNextItem(cur); + else + *list = cur; + return (*pred = cur); + } + case COMMENT_STAT: + return *pred; + case COMM_STAT: + { + commons->RegisterCommonBlock(*stmt, currentProcedure); + return *pred; + } + default: + return *pred; + //return NULL; + } +} + +ControlFlowGraph::ControlFlowGraph(bool t, bool m, ControlFlowItem* list, ControlFlowItem* end) : temp(t), main(m), refs(1), def(NULL), use(NULL), pri(NULL), common_def(NULL), common_use(NULL), hasBeenAnalyzed(false) +#ifdef __SPF +, pointers(set()) +#endif +{ +#if __SPF + addToCollection(__LINE__, __FILE__, this, 30); +#endif + int n = 0; + ControlFlowItem* orig = list; + CBasicBlock* prev = NULL; + CBasicBlock* start = NULL; + int stmtNo = 0; + bool ns = list->isEnumerated(); + if (list != NULL && !ns){ + while (list != NULL && list != end) + { + list->setStmtNo(++stmtNo); + list = list->getNext(); + } + } + ControlFlowItem* last_prev = NULL; + list = orig; + while (list != NULL && list != end) + { + CBasicBlock* bb = new CBasicBlock(t, list, ++n, this, list->getProc()); + last = bb; + bb->setPrev(prev); + if (prev != NULL){ + prev->setNext(bb); + if (!last_prev->isUnconditionalJump()){ + bb->addToPrev(prev, last_prev->IsForJumpFlagSet(), false, last_prev); + prev->addToSucc(bb, last_prev->IsForJumpFlagSet(), false, last_prev); + } + } + if (start == NULL) + start = bb; + prev = bb; + while (list->getNext() != NULL && list->getNext() != end && !list->getNext()->isLeader()){ + list->setBBno(n); + list = list->getNext(); + } + list->setBBno(n); + last_prev = list; + list = list->getNext(); + } + list = orig; + while (list != NULL && list != end) + { + ControlFlowItem* target; + if ((target = list->getJump()) != NULL) + { +// //no back edges +// if (target->getBBno() > list->getBBno()) +// { + CBasicBlock* tmp1 = start; + CBasicBlock* tmp2 = start; + for (int i = 1; i < target->getBBno() || i < list->getBBno(); i++) + { + if (i < list->getBBno()) { + tmp2 = tmp2->getLexNext(); + if (!tmp2) + break; + } + if (i < target->getBBno()) { + tmp1 = tmp1->getLexNext(); + if (!tmp1) + break; + } + } + if (tmp1 && tmp2) { + tmp1->addToPrev(tmp2, list->IsForJumpFlagSet(), true, list); + tmp2->addToSucc(tmp1, list->IsForJumpFlagSet(), true, list); + } +// } + } + list = list->getNext(); + } + start->markAsReached(); + first = start; + common_use = NULL; + cuf = false; + common_def = NULL; + cdf = false; +} + +CommonDataItem* CommonData::IsThisCommonVar(VarItem* item, AnalysedCallsList* call) +{ + for (CommonDataItem* it = list; it != NULL; it = it->next) { + if (it->proc == call) { + for (CommonVarInfo* inf = it->info; inf != NULL; inf = inf->next) { + if (inf->var && item->var && *inf->var == *item->var) + return it; + } + } + } + return NULL; +} + +CommonDataItem* CommonData::GetItemForName(const string &name, AnalysedCallsList *call) +{ + for (CommonDataItem* it = list; it != NULL; it = it->next) { + if (it->name == name && it->proc == call) + return it; + } + return NULL; +} + +void CommonData::RegisterCommonBlock(SgStatement *st, AnalysedCallsList *cur) +{ + //TODO: multiple common blocks in one procedure with same name + for (SgExpression *common = st->expr(0); common; common = common->rhs()) + { + bool newBlock = false; + SgExprListExp* vars = (SgExprListExp*)common->lhs(); + if (vars == NULL) + continue; + + const string currCommonName = (common->symbol()) ? common->symbol()->identifier() : "spf_unnamed"; + + CommonDataItem* it = GetItemForName(currCommonName, cur); + if (!it) { + it = new CommonDataItem(); + it->cb = st; + it->name = currCommonName; + it->isUsable = true; + it->proc = cur; + it->first = cur; + it->onlyScalars = true; + newBlock = true; + + for (CommonDataItem *i = list; i != NULL; i = i->next) + if (i->name == currCommonName && i->isUsable) + it->first = i->first; + } + it->commonRefs.push_back(common); + + for (int i = 0; i < vars->length(); ++i) + { + SgVarRefExp *e = isSgVarRefExp(vars->elem(i)); + if (e && !IS_ARRAY(e->symbol())) + { + CommonVarInfo* c = new CommonVarInfo(); + c->var = new CScalarVarEntryInfo(e->symbol()); + c->isPendingLastPrivate = false; + c->isInUse = false; + c->parent = it; + c->next = it->info; + it->info = c; + } + else if (isSgArrayRefExp(vars->elem(i))) { + it->onlyScalars = false; + } + else { + CommonVarInfo* c = new CommonVarInfo(); + c->var = new CArrayVarEntryInfo(vars->elem(i)->symbol(), isSgArrayRefExp(vars->elem(i))); + c->isPendingLastPrivate = false; + c->isInUse = false; + c->parent = it; + c->next = it->info; + it->info = c; + it->onlyScalars = false; + } + } + + if (newBlock) + { + it->next = list; + list = it; + } + } +} + +void CommonData::MarkEndOfCommon(AnalysedCallsList* cur) +{ + for (CommonDataItem* i = list; i != NULL; i = i->next) + { + if (i->first == cur) + i->isUsable = false; + } +} + +void CBasicBlock::markAsReached() +{ + prev_status = 1; + BasicBlockItem* s = succ; + while (s != NULL){ + CBasicBlock* b = s->block; + if (b->prev_status == -1) + b->markAsReached(); + s = s->next; + } +} + +bool ControlFlowGraph::ProcessOneParallelLoop(ControlFlowItem* lstart, CBasicBlock* of, CBasicBlock*& p, bool first) +{ + int stored_fid = SwitchFile(lstart->getProc()->file_id); + ControlFlowItem* lend; + if (is_correct != NULL) + { + const char* expanded_log; + char* tmp = NULL; + if (failed_proc_name) + { + tmp = new char[strlen(is_correct) + 2 + strlen(failed_proc_name) + 1]; + strcpy(tmp, is_correct); + strcat(tmp, ": "); + strcat(tmp, failed_proc_name); + expanded_log = tmp; + } + else + expanded_log = is_correct; +#if __SPF + const wchar_t* rus = R159; + Warning("Private analysis is not conducted for loop: '%s'", rus, expanded_log ? expanded_log : "", PRIVATE_ANALYSIS_NOT_CONDUCTED, lstart->getPrivateListStatement()); +#else + Warning("Private analysis is not conducted for loop: '%s'", expanded_log ? expanded_log : "", PRIVATE_ANALYSIS_NOT_CONDUCTED, lstart->getPrivateListStatement()); +#endif + if (tmp) + delete[] tmp; + + } + else + { + while ((lend = p->containsParloopEnd()) == NULL) + { + p->PrivateAnalysisForAllCalls(); + p = p->getLexNext(); + ControlFlowItem* mstart; + if ((mstart = p->containsParloopStart()) != NULL) + { + CBasicBlock* mp = p; + if (first) { + if (!ProcessOneParallelLoop(mstart, of, mp, false)) { + SwitchFile(stored_fid); + return false; + } + } + } + } + CBasicBlock* afterParLoop = p->getLexNext()->getLexNext(); + VarSet* l_pri = ControlFlowGraph(true, false, lstart, lend).getPrivate(); + if (is_correct != NULL) + { + const char* expanded_log; + char* tmp = NULL; + if (failed_proc_name) + { + tmp = new char[strlen(is_correct) + 2 + strlen(failed_proc_name) + 1]; + strcpy(tmp, is_correct); + strcat(tmp, ": "); + strcat(tmp, failed_proc_name); + expanded_log = tmp; + } + else + expanded_log = is_correct; + +#if __SPF + const wchar_t* rus = R159; + Warning("Private analysis is not conducted for loop: '%s'", rus, expanded_log ? expanded_log : "", PRIVATE_ANALYSIS_NOT_CONDUCTED, lstart->getPrivateListStatement()); +#else + Warning("Private analysis is not conducted for loop: '%s'", expanded_log ? expanded_log : "", PRIVATE_ANALYSIS_NOT_CONDUCTED, lstart->getPrivateListStatement()); +#endif + if (tmp) + delete[] tmp; + SwitchFile(stored_fid); + return false; + } + VarSet* p_pri = new VarSet(); + SgExpression* ex_p = lstart->getPrivateList(); + if (ex_p != NULL) + ex_p = ex_p->lhs(); + for (; ex_p != NULL; ex_p = ex_p->rhs()) + { + SgVarRefExp* pr; + if (pr = isSgVarRefExp(ex_p->lhs())) + { + CScalarVarEntryInfo* tmp = new CScalarVarEntryInfo(pr->symbol()); + p_pri->addToSet(tmp, NULL); + delete tmp; + } + SgArrayRefExp* ar; + if (ar = isSgArrayRefExp(ex_p->lhs())) + { + CArrayVarEntryInfo* tmp = new CArrayVarEntryInfo(ar->symbol(), ar); + p_pri->addToSet(tmp, NULL); + delete tmp; + } + } + + VarSet* live = afterParLoop->getLiveIn(); + VarSet* adef = afterParLoop->getDef(); + VarSet* pri = new VarSet(); + VarSet* tmp = new VarSet(); + VarSet* delay = new VarSet(); + tmp->unite(l_pri, false); + + for (VarItem* exp = tmp->getFirst(); exp != NULL; exp = tmp->getFirst()) + { + if (!afterParLoop->IsVarDefinedAfterThisBlock(exp->var, false)) + delay->addToSet(exp->var, NULL); + tmp->remove(exp->var); + } + delete tmp; + pri->unite(l_pri, false); + pri->minus(live, true); + privateDelayedList = new PrivateDelayedItem(pri, p_pri, l_pri, lstart, privateDelayedList, this, delay, current_file_id); + of->SetDelayedData(privateDelayedList); + } + SwitchFile(stored_fid); + return true; +} + +void ControlFlowGraph::privateAnalyzer() +{ + if (hasBeenAnalyzed) + return; + CBasicBlock* p = first; + /* + printf("GRAPH:\n"); + while (p != NULL){ + printf("block %d: ", p->getNum()); + if (p->containsParloopStart()) + printf("start"); + if (p->containsParloopEnd()) + printf("end"); + p->print(); + p = p->getLexNext(); + } + */ + p = first; + liveAnalysis(); + while (1) + { + ControlFlowItem* lstart; + CBasicBlock* of = p; + p->PrivateAnalysisForAllCalls(); + if ((lstart = p->containsParloopStart()) != NULL) + { + if (!ProcessOneParallelLoop(lstart, of, p, true)) + break; + } + if (p == last) + break; + p = p->getLexNext(); + } + hasBeenAnalyzed = true; +} + +/*#ifdef __SPF +void PrivateDelayedItem::PrintWarnings() +{ + if (next) + next->PrintWarnings(); + lp->minus(detected); + while (!detected->isEmpty()) { + SgVarRefExp* var = detected->getFirst(); + detected->remove(var); + Warning("Variable '%s' detected as private", var->unparse(), PRIVATE_ANALYSIS_ADD_VAR, lstart->getPrivateListStatement()); + } + while (!lp->isEmpty()) { + SgVarRefExp* var = lp->getFirst(); + lp->remove(var); + Warning("Variable '%s' detected as last private", var->unparse(), PRIVATE_ANALYSIS_ADD_VAR, lstart->getPrivateListStatement()); + } + if (detected) + delete detected; + if (original) + delete original; + if (lp) + delete lp; +} +#else*/ + +bool CArrayVarEntryInfo::HasActiveElements() const +{ + bool result = false; + if (disabled) + return false; + if (subscripts == 0) + return true; + for (int i = 0; i < subscripts; i++) + { + if (!data[i].defined) + return false; + if (data[i].left_bound != data[i].right_bound) + result = true; + if (data[i].left_bound == data[i].right_bound && data[i].bound_modifiers[0] <= data[i].bound_modifiers[1]) + result = true; + } + return result; +} + +void CArrayVarEntryInfo::MakeInactive() +{ + disabled = true; + for (int i = 0; i < subscripts; i++) + { + data[i].left_bound = data[i].right_bound = NULL; + data[i].bound_modifiers[0] = data[i].bound_modifiers[1] = 0; + } +} + +void PrivateDelayedItem::PrintWarnings() +{ + if (next) + next->PrintWarnings(); + int stored_fid = SwitchFile(file_id); + total_privates += detected->count(); + total_pl++; + lp->minus(detected); + detected->LeaveOnlyRecords(); + detected->RemoveDoubtfulCommonVars(lstart->getProc()); + VarSet* test1 = new VarSet(); + test1->unite(detected, false); + VarSet* test2 = new VarSet(); + test2->unite(original, false); + test2->minus(detected); + test1->minus(original); + int extra = 0, missing = 0; + SgExpression* prl = lstart->getPrivateList(); + SgStatement* prs = lstart->getPrivateListStatement(); + if (prl == NULL && !test1->isEmpty()) + { + SgExpression* lst = new SgExprListExp(); + prl = new SgExpression(ACC_PRIVATE_OP); + lst->setLhs(prl); + lst->setRhs(NULL); +#if __SPF + SgExpression* clauses = prs->expr(0); +#else + SgExpression* clauses = prs->expr(1); +#endif + if (clauses) { + while (clauses->rhs() != NULL) + clauses = clauses->rhs(); + clauses->setRhs(lst); + } + else { +#if __SPF + prs->setExpression(0, *lst); +#else + prs->setExpression(1, *lst); +#endif + } + } + SgExpression* op = prl; + + while (!test2->isEmpty()) { + //printf("EXTRA IN PRIVATE LIST: "); + //test2->print(); + extra = 1; + VarItem* var = test2->getFirst(); + CVarEntryInfo* syb = var->var->Clone(); + int change_fid = var->file_id; + test2->remove(var->var); + int stored_fid = SwitchFile(change_fid); + if (syb->GetVarType() != VAR_REF_ARRAY_EXP) + { +#if __SPF + const wchar_t* rus = R160; + Warning("var '%s' from private list wasn't classified as private", rus, syb->GetSymbol()->identifier(), PRIVATE_ANALYSIS_REMOVE_VAR, lstart->getPrivateListStatement()); +#else + Warning("var '%s' from private list wasn't classified as private", syb->GetSymbol()->identifier(), PRIVATE_ANALYSIS_REMOVE_VAR, lstart->getPrivateListStatement()); +#endif + } + else + { + CArrayVarEntryInfo* tt = (CArrayVarEntryInfo*)syb; + if (tt->HasActiveElements()) + { +#if __SPF + const wchar_t* rus = R161; + Warning("array '%s' from private list wasn't classified as private", rus, syb->GetSymbol()->identifier(), PRIVATE_ANALYSIS_REMOVE_VAR, lstart->getPrivateListStatement()); +#else + Warning("array '%s' from private list wasn't classified as private", syb->GetSymbol()->identifier(), PRIVATE_ANALYSIS_REMOVE_VAR, lstart->getPrivateListStatement()); +#endif + } + } + delete(syb); + SwitchFile(stored_fid); + } + while (!test1->isEmpty()) { + //printf("MISSING IN PRIVATE LIST: "); + //test1->print(); + missing = 1; + VarItem* var = test1->getFirst(); + CVarEntryInfo* syb = var->var->Clone(); + int change_fid = var->file_id; + test1->remove(var->var); + int stored_fid = SwitchFile(change_fid); + if (syb->GetVarType() != VAR_REF_ARRAY_EXP) { +#if __SPF + const wchar_t* rus = R162; + Note("add private scalar '%s'", rus, syb->GetSymbol()->identifier(), PRIVATE_ANALYSIS_ADD_VAR, lstart->getPrivateListStatement()); +#else + Warning("var '%s' was added to private list", syb->GetSymbol()->identifier(), PRIVATE_ANALYSIS_ADD_VAR, lstart->getPrivateListStatement()); +#endif + SgExprListExp* nls = new SgExprListExp(); + SgVarRefExp* nvr = new SgVarRefExp(syb->GetSymbol()); + nls->setLhs(nvr); + nls->setRhs(prl->lhs()); + prl->setLhs(nls); + } + else + { + CArrayVarEntryInfo* tt = (CArrayVarEntryInfo*)syb; + if (tt->HasActiveElements()) + { +#if __SPF + const wchar_t* rus = R163; + Note("add private array '%s'", rus, syb->GetSymbol()->identifier(), PRIVATE_ANALYSIS_ADD_VAR, lstart->getPrivateListStatement()); +#else + Warning("var '%s' was added to private list", syb->GetSymbol()->identifier(), PRIVATE_ANALYSIS_ADD_VAR, lstart->getPrivateListStatement()); +#endif + +// TODO: need to check all situation before commit it to release +#if !__SPF + SgExprListExp *nls = new SgExprListExp(); + SgArrayRefExp *nvr = new SgArrayRefExp(*syb->GetSymbol()); + nls->setLhs(nvr); + nls->setRhs(prl->lhs()); + prl->setLhs(nls); +#endif + } + } + delete(syb); + SwitchFile(stored_fid); + + /*printf("modified parallel stmt:\n"); + prs->unparsestdout(); + printf("\n");*/ + } + if (extra == 0 && missing == 0) { +#if ACCAN_DEBUG + Warning("Correct", "", 0, lstart->getPrivateListStatement()); +#endif + } + //printf("PRIVATE VARS: "); + //detected->print(); + //printf("DECLARATION: "); + //p_pri->print(); + //printf("LAST PRIVATE VARS: "); + //lp->print(); + if (test1) + delete test1; + + + if (test2) + delete test2; + + if (detected) + delete detected; + + if (original) + delete original; + + if (lp) + delete lp; + + SwitchFile(stored_fid); +} +//#endif + +ControlFlowItem* doLoops::checkStatementForLoopEnding(int label, ControlFlowItem* last) +{ + + if (current == NULL || label == -1 || label != current->getLabel()) + return last; + return checkStatementForLoopEnding(label, endLoop(last)); +} + +doLoopItem* doLoops::findLoop(SgSymbol* s) +{ + doLoopItem* l = first; + while (l != NULL){ + if (l->getName() == s) + return l; + l = l->getNext(); + } + return NULL; +} + +void doLoops::addLoop(int l, SgSymbol* s, ControlFlowItem* i, ControlFlowItem* e) +{ + doLoopItem* nl = new doLoopItem(l, s, i, e); + if (first == NULL) + first = current = nl; + else{ + current->setNext(nl); + nl->HandleNewItem(current); + current = nl; + } +} + +ControlFlowItem* doLoops::endLoop(ControlFlowItem* last) +{ + doLoopItem* removed = current; + if (first == current) + first = current = NULL; + else{ + doLoopItem* prev = first; + while (prev->getNext() != current) + prev = prev->getNext(); + prev->setNext(NULL); + current = prev; + } + last->AddNextItem(removed->getSourceForCycle()); + ControlFlowItem* empty = removed->getSourceForExit(); + delete removed; + return empty; +} + +VarSet* ControlFlowGraph::getPrivate() +{ + //printControlFlowList(first->getStart(), last->getStart()); + if (pri == NULL) + { + bool same = false; + int it = 0; + CBasicBlock* p = first; + /* + printf("GRAPH:\n"); + while (p != NULL){ + printf("block %d: ", p->getNum()); + p->print(); + p = p->getLexNext(); + } + */ + p = first; + while (!same){ + p = first; + same = true; + while (p != NULL){ + same = p->stepMrdIn(false) && same; + same = p->stepMrdOut(false) && same; + p = p->getLexNext(); + } + it++; + //printf("iters: %d\n", it); + } + p = first; + while (p != NULL) { + p->stepMrdIn(true); + p->stepMrdOut(true); + //p->getMrdIn(false)->print(); + p = p->getLexNext(); + } + + p = first; + VarSet* res = new VarSet(); + VarSet* loc = new VarSet(); + bool il = false; + while (p != NULL) + { + res->unite(p->getUse(), false); + loc->unite(p->getDef(), false); + p = p->getLexNext(); + } + //printf("USE: "); + //res->print(); + //printf("LOC: "); + //loc->print(); + res->unite(loc, false); + //printf("GETUSE: "); + //getUse()->print(); + + //res->minus(getUse()); //test! + res->minusFinalize(getUse(), true); + pri = res; + } + return pri; +} + +void ControlFlowGraph::liveAnalysis() +{ + bool same = false; + int it = 0; + CBasicBlock* p = first; + p = first; + while (!same){ + p = last; + same = true; + while (p != NULL){ + same = p->stepLVOut() && same; + same = p->stepLVIn() && same; + p = p->getLexPrev(); + } + it++; + //printf("iters: %d\n", it); + } +} + +VarSet* ControlFlowGraph::getUse() +{ + if (use == NULL) + { + CBasicBlock* p = first; + VarSet* res = new VarSet(); + while (p != NULL) + { + VarSet* tmp = new VarSet(); + tmp->unite(p->getUse(), false); + tmp->minus(p->getMrdIn(false)); + //printf("BLOCK %d INSTR %d USE: ", p->getNum(), p->getStart()->getStmtNo()); + //tmp->print(); + res->unite(tmp, false); + delete tmp; + p = p->getLexNext(); + } + use = res; + + } + if (!cuf) + { + AnalysedCallsList* call = first->getStart()->getProc(); + cuf = true; + if (call) { + CommonVarSet* s = pCommons->GetCommonsForVarSet(use, call); + common_use = s; + for (CBasicBlock* i = first; i != NULL; i = i->getLexNext()){ + for (CommonVarSet* c = i->getCommonUse(); c != NULL; c = c->next) { + /* + CommonVarSet* n = new CommonVarSet(); + n->cvd = c->cvd; + n->cvd->refs++; + */ + CommonVarSet* n = new CommonVarSet(*c); + CommonVarSet* t; + for (t = n; t->next != NULL; t = t->next); + t->next = common_use; + common_use = n; + } + } + } + } + return use; +} + +VarSet* ControlFlowGraph::getDef() +{ + if (def == NULL) { + def = new VarSet(); + def->unite(last->getMrdOut(false), true); + } + if (!cdf) + { + AnalysedCallsList* call = first->getStart()->getProc(); + if (call) { + cdf = true; + CommonVarSet* s = pCommons->GetCommonsForVarSet(def, call); + common_def = s; + for (CBasicBlock* i = first; i != NULL; i = i->getLexNext()) { + for (CommonVarSet* c = i->getCommonDef(); c != NULL; c = c->next) { + /* + CommonVarSet* n = new CommonVarSet(); + n->cvd = c->cvd; + n->cvd->refs++; + */ + CommonVarSet *n = new CommonVarSet(*c); + CommonVarSet* t; + for (t = n; t->next != NULL; t = t->next); + t->next = common_def; + common_def = n; + } + } + } + } + return def; +} + +CommonVarSet* CommonData::GetCommonsForVarSet(VarSet* set, AnalysedCallsList* call) +{ + CommonVarSet* res = NULL; + for (CommonDataItem* i = list; i != NULL; i = i->next) { + if (i->proc == call) { + for (CommonVarInfo* v = i->info; v != NULL; v = v->next) { + if (set->belongs(v->var)) { + CommonVarSet* n = new CommonVarSet(); + n->cvd = v; + n->next = res; + res = n; + } + } + } + } + return res; +} + +void CBasicBlock::PrivateAnalysisForAllCalls() +{ + ControlFlowItem* p = start; + while (p != NULL && (p == start || !p->isLeader())) { + AnalysedCallsList* c = p->getCall(); + const char* oic = is_correct; + const char* fpn = failed_proc_name; + is_correct = NULL; + failed_proc_name = NULL; + if (c != NULL && c != (AnalysedCallsList*)(-1) && c != (AnalysedCallsList*)(-2) && c->header != NULL && !c->hasBeenAnalysed) { + c->hasBeenAnalysed = true; + + int stored_fid = SwitchFile(c->file_id); + + c->graph->privateAnalyzer(); + + SwitchFile(stored_fid); + + } + is_correct = oic; + failed_proc_name = fpn; + p = p->getNext(); + } + return; +} + +ControlFlowItem* CBasicBlock::containsParloopEnd() +{ + ControlFlowItem* p = start; + while (p != NULL && (p == start || !p->isLeader())){ + if (p->IsParloopEnd()) + return p; + p = p->getNext(); + } + return NULL; +} + +ControlFlowItem* CBasicBlock::containsParloopStart() +{ + ControlFlowItem* p = start; + while (p != NULL && (p == start || !p->isLeader())){ + if (p->IsParloopStart()) + return p; + p = p->getNext(); + } + return NULL; +} + +void CBasicBlock::print() +{ + printf("block %d: prev: ", num); + BasicBlockItem* p = prev; + while (p != NULL){ + printf("%d ", p->block->num); + p = p->next; + } + printf("\n"); +} + +ControlFlowItem* CBasicBlock::getStart() +{ + return start; +} + +ControlFlowItem* CBasicBlock::getEnd() +{ + ControlFlowItem* p = start; + ControlFlowItem* end = p; + while (p != NULL && (p == start || !p->isLeader())){ + end = p; + p = p->getNext(); + } + return end; +} + +VarSet* CBasicBlock::getLVOut() +{ + if (lv_out == NULL) + { + VarSet* res = new VarSet(); + BasicBlockItem* p = succ; + bool first = true; + while (p != NULL) + { + CBasicBlock* b = p->block; + if (b != NULL && !b->lv_undef) + { + res->unite(b->getLVIn(), false); + } + p = p->next; + } + lv_out = res; + } + return lv_out; +} + +VarSet* CBasicBlock::getLVIn() +{ + if (lv_in == NULL) + { + VarSet* res = new VarSet(); + res->unite(getLVOut(), false); + res->minus(getDef()); + res->unite(getUse(), false); + lv_in = res; + } + return lv_in; +} + +bool CBasicBlock::IsVarDefinedAfterThisBlock(CVarEntryInfo* var, bool os) +{ + findentity = var; + if (def->belongs(var, os)) { + findentity = NULL; + return true; + } + BasicBlockItem* p = succ; + while (p != NULL) + { + CBasicBlock* b = p->block; + if (b->ShouldThisBlockBeCheckedAgain(var) && b->IsVarDefinedAfterThisBlock(var, os)) { + findentity = NULL; + return true; + } + p = p->next; + } + findentity = NULL; + return false; +} + +bool CBasicBlock::stepLVOut() +{ + if (old_lv_out) + delete old_lv_out; + + old_lv_out = lv_out; + lv_out = NULL; + getLVOut(); + lv_undef = false; + //printf("block %d\n", num); + //old_mrd_out->print(); + //mrd_out->print(); + return (lv_out->equal(old_lv_out)); + //return true; +} + +bool CBasicBlock::stepLVIn() +{ + if (old_lv_in) + delete old_lv_in; + + old_lv_in = lv_in; + lv_in = NULL; + getLVIn(); + return (lv_in->equal(old_lv_in)); + //return true; +} + +VarSet* CBasicBlock::getMrdIn(bool la) +{ + if (mrd_in == NULL) + { + VarSet* res = new VarSet(); + BasicBlockItem* p = prev; + bool first = true; + + while (p != NULL) + { + CBasicBlock* b = p->block; + if (b != NULL && !b->undef && b->hasPrev()) + { + if (first) { + res->unite(b->getMrdOut(la), la); + first = false; + } + else + res->intersect(b->getMrdOut(la), la, true); + } + p = p->next; + } + mrd_in = res; + } + return mrd_in; +} + +bool CBasicBlock::hasPrev() +{ + return prev_status == 1; +} + +VarSet* CBasicBlock::getMrdOut(bool la) +{ + if (mrd_out == NULL) + { + VarSet* res = new VarSet(); + res->unite(getMrdIn(la), la); + res->unite(getDef(), la); + mrd_out = res; + //printf("BLOCK %d INSTR %d MRDOUT: ", num, start->getStmtNo()); + //mrd_out->print(); + //print(); + } + return mrd_out; +} + +bool CBasicBlock::stepMrdOut(bool la) +{ + if (old_mrd_out) + delete old_mrd_out; + + old_mrd_out = mrd_out; + mrd_out = NULL; + getMrdOut(la); + undef = false; + //printf("block %d\n", num); + //old_mrd_out->print(); + //mrd_out->print(); + return (mrd_out->equal(old_mrd_out)); + //return true; +} + +bool CBasicBlock::stepMrdIn(bool la) +{ + if (old_mrd_in) + delete old_mrd_in; + + old_mrd_in = mrd_in; + mrd_in = NULL; + getMrdIn(la); + return (mrd_in->equal(old_mrd_in)); + //return true; +} + +bool IsPresentInExprList(SgExpression* ex, CExprList* lst) +{ + while (lst != NULL) { + if (lst->entry == ex) + return true; + lst = lst->next; + } + return false; +} + +CRecordVarEntryInfo* AddRecordVarRef(SgRecordRefExp* ref) +{ + if (isSgRecordRefExp(ref->lhs())) { + CVarEntryInfo* parent = AddRecordVarRef(isSgRecordRefExp(ref->lhs())); + if (parent) + return new CRecordVarEntryInfo(ref->rhs()->symbol(), parent); + return NULL; + } + if (isSgVarRefExp(ref->lhs())) { + CVarEntryInfo* parent = new CScalarVarEntryInfo(isSgVarRefExp(ref->lhs())->symbol()); + return new CRecordVarEntryInfo(ref->rhs()->symbol(), parent); + } + if (isSgArrayRefExp(ref->lhs())) { + CVarEntryInfo* parent = new CArrayVarEntryInfo(isSgArrayRefExp(ref->lhs())->symbol(), isSgArrayRefExp(ref->lhs())); + return new CRecordVarEntryInfo(ref->rhs()->symbol(), parent); + } + return NULL; +} + +void CBasicBlock::AddOneExpressionToUse(SgExpression* ex, SgStatement* st, CArrayVarEntryInfo* v) +{ + CVarEntryInfo* var = NULL; + SgVarRefExp* r; + if ((r = isSgVarRefExp(ex))) + var = new CScalarVarEntryInfo(r->symbol()); + SgArrayRefExp* ar; + if ((ar = isSgArrayRefExp(ex))) { + if (!v) + var = new CArrayVarEntryInfo(ar->symbol(), ar); + else { + var = v->Clone(); + var->SwitchSymbol(ar->symbol()); + } + } + SgRecordRefExp* rr; + if ((rr = isSgRecordRefExp(ex))) + var = AddRecordVarRef(rr); + if (var) { + var->RegisterUsage(def, use, st); + delete var; + } +} + +void CBasicBlock::AddOneExpressionToDef(SgExpression* ex, SgStatement* st, CArrayVarEntryInfo* v) +{ + CVarEntryInfo* var = NULL; + SgVarRefExp* r; + if ((r = isSgVarRefExp(ex))) + var = new CScalarVarEntryInfo(r->symbol()); + SgRecordRefExp* rr; + if ((rr = isSgRecordRefExp(ex))) + var = AddRecordVarRef(rr); + SgArrayRefExp* ar; + if ((ar = isSgArrayRefExp(ex))) { + if (!v) + var = new CArrayVarEntryInfo(ar->symbol(), ar); + else { + var = v->Clone(); + var->SwitchSymbol(ar->symbol()); + } + } + if (var) { + var->RegisterDefinition(def, use, st); + delete var; + } +} + +void CBasicBlock::addExprToUse(SgExpression* ex, CArrayVarEntryInfo* v = NULL, CExprList* lst = NULL) +{ + if (ex != NULL) + { + CExprList* cur = new CExprList(); + cur->entry = ex; + cur->next = lst; + SgFunctionCallExp* f = isSgFunctionCallExp(ex); + if (!f) { + if (!IsPresentInExprList(ex->lhs(), cur)) + addExprToUse(ex->lhs(), v, cur); + if (!isSgUnaryExp(ex)) + if (!IsPresentInExprList(ex->rhs(), cur)) + addExprToUse(ex->rhs(), v, cur); + AddOneExpressionToUse(ex, NULL, v); + } + delete cur; + /* + SgVarRefExp* r; + //printf(" %s\n", f->funName()->identifier()); + bool intr = isIntrinsicFunctionNameACC(f->funName()->identifier()) && !IsUserFunctionACC(f->funName()); + bool pure = IsPureProcedureACC(f->funName()); + if (!intr && !pure){ + printf("function not intristic or pure: %s\n", f->funName()->identifier()); + is_correct = false; + return; + } + if (intr) { + ProcessIntristicProcedure(true, f->numberOfArgs(), f); + return; + } + ProcessProcedureHeader(true, isSgProcHedrStmt(GRAPHNODE(f->funName())->st_header), f); + */ + } +} + +void CBasicBlock::ProcessIntrinsicProcedure(bool isF, int narg, void* f, const char* name) +{ + for (int i = 0; i < narg; i++) { + SgExpression* ar = GetProcedureArgument(isF, f, i); + if (IsAnIntrinsicSubroutine(name)) + { + SgExpression* v = CheckIntrinsicParameterFlag(name, i, ar, INTRINSIC_IN); + if (v) + addExprToUse(v); + } + else + addExprToUse(ar); + + AddOneExpressionToDef(CheckIntrinsicParameterFlag(name, i, ar, INTRINSIC_OUT), NULL, NULL); + } +} + +void CBasicBlock::ProcessProcedureWithoutBody(bool isF, void* f, bool out) +{ + for (int i = 0; i < GetNumberOfArguments(isF, f); i++){ + addExprToUse(GetProcedureArgument(isF, f, i)); + if (out) + AddOneExpressionToDef(GetProcedureArgument(isF, f, i), NULL, NULL); + } +} + +SgSymbol* CBasicBlock::GetProcedureName(bool isFunc, void* f) +{ + if (isFunc) { + SgFunctionCallExp* fc = (SgFunctionCallExp*)f; + return fc->funName(); + } + SgCallStmt* pc = (SgCallStmt*)f; + return pc->name(); +} + +int GetNumberOfArguments(bool isF, void* f) +{ + if (isF) { + SgFunctionCallExp* fc = (SgFunctionCallExp*)f; + return fc->numberOfArgs(); + } + SgCallStmt* pc = (SgCallStmt*)f; + return pc->numberOfArgs(); +} + +SgExpression* GetProcedureArgument(bool isF, void *f, const int i) +{ + SgExpression *arg = NULL; + if (isF) + { + SgFunctionCallExp* fc = (SgFunctionCallExp*)f; + arg = fc->arg(i); + } + else + { + SgCallStmt *pc = (SgCallStmt*)f; + arg = pc->arg(i); + } + return arg; +} + +void CBasicBlock::ProcessProcedureHeader(bool isF, SgProcHedrStmt *header, void *f, const char* name) +{ + if (!header) + { + is_correct = "no header found"; + failed_proc_name = name; + return; + } + + for (int i = 0; i < header->numberOfParameters(); ++i) + { + int stored = SwitchFile(header->getFileId()); + SgSymbol *arg = header->parameter(i); + SwitchFile(stored); + + if (arg->attributes() & (IN_BIT)) + { + SgExpression *ar = GetProcedureArgument(isF, f, i); + addExprToUse(ar); + } + else if (arg->attributes() & (INOUT_BIT)) + { + addExprToUse(GetProcedureArgument(isF, f, i)); + AddOneExpressionToDef(GetProcedureArgument(isF, f, i), NULL, NULL); + } + else if (arg->attributes() & (OUT_BIT)) + AddOneExpressionToDef(GetProcedureArgument(isF, f, i), NULL, NULL); + else + { + is_correct = "no bitflag set for pure procedure"; + break; + } + } +} + +bool AnalysedCallsList::isArgIn(int i, CArrayVarEntryInfo** p) +{ + int stored = SwitchFile(this->file_id); + SgProcHedrStmt* h = isSgProcHedrStmt(header); + VarSet* use = graph->getUse(); + SgSymbol* par = h->parameter(i); + /* + CScalarVarEntryInfo* var = new CScalarVarEntryInfo(par); + bool result = false; + if (use->belongs(var)) + result = true; + delete var; + */ + VarItem* result = use->belongs(par); + if (result && result->var->GetVarType() == VAR_REF_ARRAY_EXP && p) + *p = (CArrayVarEntryInfo*)result->var; + SwitchFile(stored); + + return result; +} + +bool AnalysedCallsList::isArgOut(int i, CArrayVarEntryInfo** p) +{ + int stored = SwitchFile(this->file_id); + SgProcHedrStmt* h = isSgProcHedrStmt(header); + graph->privateAnalyzer(); + VarSet* def = graph->getDef(); + SgSymbol* par = h->parameter(i); + /* + CScalarVarEntryInfo* var = new CScalarVarEntryInfo(par); + bool result = false; + if (def->belongs(var)) + result = true; + delete var; + */ + VarItem* result = def->belongs(par); + if (result && result->var->GetVarType() == VAR_REF_ARRAY_EXP && p) + *p = (CArrayVarEntryInfo*)result->var; + SwitchFile(stored); + + return result; +} + +void CommonData::MarkAsUsed(VarSet* use, AnalysedCallsList* lst) +{ + for (CommonDataItem* it = list; it != NULL; it = it->next) { + if (it->proc == lst) { + for (CommonVarInfo* v = it->info; v != NULL; v = v->next) { + CVarEntryInfo* r = v->var; + if (use->belongs(r)) + v->isInUse = true; + } + } + } +} + +void CBasicBlock::ProcessUserProcedure(bool isFun, void* call, AnalysedCallsList* c) +{ + /* + if (c == NULL || c->graph == NULL) { + is_correct = "no body found for procedure"; + if (c != NULL) + failed_proc_name = c->funName; + else + failed_proc_name = NULL; + return; + } + */ + if (c != (AnalysedCallsList*)(-1) && c != (AnalysedCallsList*)(-2) && c != NULL && c->graph != NULL) + { + int stored_file_id = SwitchFile(c->file_id); + c->graph->getPrivate(); //all sets actually + SgStatement *cp = c->header->controlParent(); + SwitchFile(stored_file_id); + + if (proc && proc->header->variant() == PROC_HEDR && cp == proc->header) { + VarSet* use_c = new VarSet(); + use_c->unite(c->graph->getUse(), false); + for (VarItem* exp = use_c->getFirst(); exp != NULL; exp = use_c->getFirst()) { + if (exp->var->GetSymbol()->scope() == proc->header) { + addExprToUse(new SgVarRefExp(exp->var->GetSymbol())); // TESTING + } + use_c->remove(exp->var); + } + delete use_c; + VarSet* def_c = new VarSet(); + def_c->unite(c->graph->getDef(), true); + for (VarItem* exp = def_c->getFirst(); exp != NULL; exp = def_c->getFirst()) { + if (exp->var->GetSymbol()->scope() == proc->header) { + def->addToSet(exp->var, NULL); + } + def_c->remove(exp->var); + } + delete def_c; + } + + pCommons->MarkAsUsed(c->graph->getUse(), c); + SgProcHedrStmt* header = isSgProcHedrStmt(c->header); + if (!header) { + is_correct = "no header for procedure"; + failed_proc_name = c->funName; + return; + } + } + + for (int i = 0; i < GetNumberOfArguments(isFun, call); i++) + { + SgExpression* ar = GetProcedureArgument(isFun, call, i); + CArrayVarEntryInfo* tp = NULL; + if (c == (AnalysedCallsList*)(-1) || c == (AnalysedCallsList*)(-2) || c == NULL || c->graph == NULL || c->isArgIn(i, &tp)) + addExprToUse(ar, tp); + tp = NULL; + if (c == (AnalysedCallsList*)(-1) || c == NULL || c->graph == NULL || c->isArgOut(i, &tp)) + AddOneExpressionToDef(GetProcedureArgument(isFun, call, i), NULL, tp); + } + + if (c != (AnalysedCallsList*)(-1) && c != (AnalysedCallsList*)(-2) && c != NULL && c->graph != NULL) { + for (CommonVarSet* cu = c->graph->getCommonUse(); cu != NULL; cu = cu->next) { + CommonVarInfo* v = cu->cvd; + AnalysedCallsList* tp = start->getProc(); + CommonDataItem* p = v->parent; + if (CommonDataItem* it = pCommons->IsThisCommonUsedInProcedure(p, tp)) { + if (pCommons->CanHaveNonScalarVars(it)) + continue; + CommonVarInfo* i = it->info; + CommonVarInfo* j = p->info; + while (j != v) { + j = j->next; + if (i) + i = i->next; + else + continue; + } + if (!i) + continue; + SgVarRefExp* var = new SgVarRefExp(i->var->GetSymbol()); + addExprToUse(var); + } + else { + common_use = new CommonVarSet(*cu); + } + } + for (CommonVarSet* cd = c->graph->getCommonDef(); cd != NULL; cd = cd->next) { + CommonVarInfo* v = cd->cvd; + AnalysedCallsList* tp = start->getProc(); + CommonDataItem* p = v->parent; + if (CommonDataItem* it = pCommons->IsThisCommonUsedInProcedure(p, tp)) { + if (pCommons->CanHaveNonScalarVars(it)) + continue; + CommonVarInfo* i = it->info; + CommonVarInfo* j = p->info; + while (j != v) { + j = j->next; + if (i) + i = i->next; + } + if (!i) + continue; + def->addToSet(i->var, NULL); + } + else { + common_def = new CommonVarSet(*cd); + } + } + } + +} + +bool CommonData::CanHaveNonScalarVars(CommonDataItem* item) +{ + for (CommonDataItem* it = list; it != NULL; it = it->next) { + if (it->name == item->name && it->first == item->first && !it->onlyScalars) + return true; + } + bool res = !item->onlyScalars; + //printf("CommonData::CanHaveNonScalarVars: %d\n", res); + return res; +} + +CommonDataItem* CommonData::IsThisCommonUsedInProcedure(CommonDataItem* item, AnalysedCallsList* p) +{ + for (CommonDataItem* it = list; it != NULL; it = it->next) { + if (it->proc == p) { + if (it->name == item->name) + return it; + } + } + return NULL; +} + +void CBasicBlock::setDefAndUse() +{ + ControlFlowItem* p = start; + while (p != NULL && (p == start || !p->isLeader())) + { + if (p->getJump() == NULL) + { + SgStatement* st = p->getStatement(); + SgFunctionCallExp* f = p->getFunctionCall(); + + if (f != NULL) + { + bool add_intr = IsAnIntrinsicSubroutine(f->funName()->identifier()) != NULL; // strcmp(f->funName()->identifier(), "date_and_time") == 0; + bool intr = (isIntrinsicFunctionNameACC(f->funName()->identifier()) || add_intr) && !IsUserFunctionACC(f->funName()); + bool pure = IsPureProcedureACC(f->funName()); + AnalysedCallsList* c = p->getCall(); + if (!intr && !pure && c && c != (AnalysedCallsList*)(-1) && c != (AnalysedCallsList*)(-2) && !(c->IsIntrinsic())) { + + if (c->header == NULL) { + is_correct = "no header for procedure"; + failed_proc_name = c->funName; + } + else { + //graph_node* oldgn = currentGraphNode; + //graph_node* newgn = GRAPHNODE(f->funName())->file_id; + //currentGraphNode = newgn; + ProcessUserProcedure(true, f, c); + //currentGraphNode = oldgn; + + } + } + else if (c == (AnalysedCallsList*)(-1) || c == (AnalysedCallsList*)(-2)) + ProcessProcedureWithoutBody(true, f, c == (AnalysedCallsList*)(-1)); + else if (intr || (c && c->IsIntrinsic())) { + ProcessIntrinsicProcedure(true, f->numberOfArgs(), f, f->funName()->identifier()); + }else + ProcessProcedureHeader(true, isSgProcHedrStmt(GRAPHNODE(f->funName())->st_header), f, f->funName()->identifier()); + } + + + if (st != NULL) + { + switch (st->variant()) + { + case ASSIGN_STAT: + { + SgAssignStmt* s = isSgAssignStmt(st); + SgExpression* l = s->lhs(); + SgExpression* r = s->rhs(); + addExprToUse(r); + AddOneExpressionToDef(l, st, NULL); + break; + } + case PRINT_STAT: + case WRITE_STAT: + case READ_STAT: + { + SgInputOutputStmt* s = isSgInputOutputStmt(st); + if (s) { + SgExpression* ex = s->itemList(); + while (ex && ex->lhs()) { + if (st->variant() == READ_STAT) { + AddOneExpressionToDef(ex->lhs(), st, NULL); + } + else { + addExprToUse(ex->lhs()); + } + ex = ex->rhs(); + } + } + break; + } + case PROC_STAT: + { + SgCallStmt* f = isSgCallStmt(st); + bool add_intr = IsAnIntrinsicSubroutine(f->name()->identifier()) != NULL; + bool intr = (isIntrinsicFunctionNameACC(f->name()->identifier()) || add_intr) && !IsUserFunctionACC(f->name()); + bool pure = IsPureProcedureACC(f->name()); + if (!intr && !pure) { + AnalysedCallsList* c = p->getCall(); + //graph_node* oldgn = currentGraphNode; + //graph_node* newgn = GRAPHNODE(f->name()); + //currentGraphNode = newgn; + ProcessUserProcedure(false, f, c); + //currentGraphNode = oldgn; + break; + } + if (intr) { + ProcessIntrinsicProcedure(false, f->numberOfArgs(), f, f->name()->identifier()); + break; + } + ProcessProcedureHeader(false, isSgProcHedrStmt(GRAPHNODE(f->name())->st_header), f, f->name()->identifier()); + } + default: + break; + } + } + } + else + addExprToUse(p->getExpression()); + p = p->getNext(); + } +} + +VarSet* CBasicBlock::getDef() +{ + if (def == NULL) + { + def = new VarSet(); + use = new VarSet(); + setDefAndUse(); + } + return def; +} + +VarSet* CBasicBlock::getUse() +{ + if (use == NULL) + { + use = new VarSet(); + def = new VarSet(); + setDefAndUse(); + } + return use; +} + +#ifdef __SPF +template +const vector getAttributes(IN_TYPE st, const set dataType); +#endif + +DoLoopDataItem* DoLoopDataList::FindLoop(SgStatement* st) +{ + DoLoopDataItem* it = list; + while (it != NULL) { + if (it->statement == st) + return it; + it = it->next; + } + return NULL; +} + +bool GetExpressionAndCoefficientOfBound(SgExpression* exp, SgExpression** end, int* coef) +{ + if (exp->variant() == SUBT_OP) { + if (exp->rhs() && exp->rhs()->variant() == INT_VAL) { + *end = exp->lhs(); + *coef = -exp->rhs()->valueInteger(); + return true; + } + } + if (exp->variant() == ADD_OP) { + if (exp->lhs() && exp->lhs()->variant() == INT_VAL) { + *end = exp->rhs(); + *coef = exp->lhs()->valueInteger(); + return true; + } + if (exp->rhs() && exp->rhs()->variant() == INT_VAL) { + *end = exp->lhs(); + *coef = exp->lhs()->valueInteger(); + return true; + } + } + return false; +} + +CArrayVarEntryInfo::CArrayVarEntryInfo(SgSymbol* s, SgArrayRefExp* r) : CVarEntryInfo(s) +{ +#if __SPF + addToCollection(__LINE__, __FILE__, this, 16); +#endif + // TODO: need to check all alhorithm!! + disabled = true; + + if (!r) + subscripts = 0; + else + subscripts = r->numberOfSubscripts(); + if (subscripts) + data.resize(subscripts); + + for (int i = 0; i < subscripts; i++) + { + data[i].defined = false; + data[i].bound_modifiers[0] = data[i].bound_modifiers[1] = 0; + data[i].step = 1; + data[i].left_bound = data[i].right_bound = NULL; + data[i].coefs[0] = data[i].coefs[1] = 0; + data[i].loop = NULL; +#if __SPF + const vector coefs = getAttributes(r->subscript(i), set{ INT_VAL }); + const vector fs = getAttributes(r->subscript(i), set{ FOR_NODE }); + if (fs.size() == 1) + { + if (data[i].loop != NULL) + { + if (coefs.size() == 1) + { + data[i].defined = true; + data[i].bound_modifiers[0] = data[i].bound_modifiers[1] = coefs[0][1]; + data[i].coefs[0] = coefs[0][0]; + data[i].coefs[1] = coefs[0][1]; + data[i].step = coefs[0][0]; + int tmp; + + SgExpression *et; + if (GetExpressionAndCoefficientOfBound(data[i].loop->l, &et, &tmp)) + { + data[i].left_bound = et; + data[i].bound_modifiers[0] += tmp; + } + else + data[i].left_bound = data[i].loop->l; + + if (GetExpressionAndCoefficientOfBound(data[i].loop->r, &et, &tmp)) + { + data[i].right_bound = et; + data[i].bound_modifiers[1] += tmp; + } + else + data[i].right_bound = data[i].loop->r; + } + } + } +#endif + if (!data[i].defined) + { + SgExpression* ex = r->subscript(i); + if (ex->variant() == INT_VAL) + { + data[i].bound_modifiers[0] = ex->valueInteger(); + data[i].bound_modifiers[1] = ex->valueInteger(); + data[i].defined = true; + } + else + { + data[i].bound_modifiers[0] = 0; + data[i].bound_modifiers[1] = 0; + data[i].left_bound = data[i].right_bound = ex; + data[i].defined = true; + } + } + } +} + +CArrayVarEntryInfo::CArrayVarEntryInfo(SgSymbol *s, int sub, int ds, const vector &d) + : CVarEntryInfo(s), subscripts(sub), disabled(ds) +{ +#if __SPF + addToCollection(__LINE__, __FILE__, this, 16); +#endif + if (sub > 0) + data = d; +} + +VarItem* VarSet::GetArrayRef(CArrayVarEntryInfo* info) +{ + VarItem* it = list; + while (it != NULL) { + CVarEntryInfo* v = it->var; + if (v->GetVarType() == VAR_REF_ARRAY_EXP) { + if (OriginalSymbol(info->GetSymbol()) == OriginalSymbol(v->GetSymbol())) + return it; + } + it = it->next; + } + return NULL; +} + +void CArrayVarEntryInfo::RegisterUsage(VarSet *def, VarSet *use, SgStatement *st) +{ + VarItem *it = def->GetArrayRef(this); + CArrayVarEntryInfo *add = this; + if (it != NULL) + add = *this - *(CArrayVarEntryInfo*)(it->var); + + if (use != NULL && add != NULL && add->HasActiveElements()) + use->addToSet(add, st); + + if (add != this) + delete add; +} + +CArrayVarEntryInfo& CArrayVarEntryInfo::operator-=(const CArrayVarEntryInfo& b) +{ + if (subscripts == 0) + { + if (b.HasActiveElements()) + disabled = true; + return *this; + } + + if (b.subscripts == 0) + { + if (HasActiveElements()) + MakeInactive(); + return *this; + } + + if (subscripts != b.subscripts || !data.size() || !b.data.size() || !(data[0].defined) || !(b.data[0].defined)) + return *this; + + for (int i = 0; i < subscripts; i++) + { + if (b.data[i].left_bound == NULL) + { + if (data[i].left_bound && data[i].left_bound->variant() == INT_VAL) + { + if (data[i].left_bound->valueInteger() + data[i].bound_modifiers[0] == b.data[i].bound_modifiers[0]) + { + data[i].bound_modifiers[0]++; + continue; + } + } + } + + if (data[i].left_bound == NULL && b.data[i].left_bound == NULL && + data[i].right_bound == NULL && b.data[i].right_bound == NULL) + { + if (data[i].bound_modifiers[0] < b.data[i].bound_modifiers[0]) + { + data[i].bound_modifiers[1] = b.data[i].bound_modifiers[0] - 1; + continue; + } + + if (data[i].bound_modifiers[1] > b.data[i].bound_modifiers[1]) + { + data[i].bound_modifiers[0] = b.data[i].bound_modifiers[1] + 1; + continue; + } + data[i].defined = false; + } + + if (data[i].left_bound == b.data[i].left_bound && data[i].bound_modifiers[0] < b.data[i].bound_modifiers[0]) + { + data[i].bound_modifiers[0] = data[i].bound_modifiers[0]; + data[i].bound_modifiers[1] = b.data[i].bound_modifiers[0] - 1; + data[i].right_bound = data[i].left_bound; + } + + if (data[i].right_bound == b.data[i].right_bound && data[i].bound_modifiers[1] > b.data[i].bound_modifiers[1]) + { + data[i].bound_modifiers[0] = b.data[i].bound_modifiers[1] + 1; + data[i].bound_modifiers[1] = data[i].bound_modifiers[1]; + data[i].left_bound = data[i].right_bound; + } + + if (b.data[i].left_bound == NULL && b.data[i].right_bound == NULL && + (data[i].left_bound != NULL || data[i].right_bound != NULL)) + continue; + else + { + data[i].bound_modifiers[0] = data[i].bound_modifiers[1] = 0; + data[i].left_bound = NULL; + data[i].right_bound = NULL; + data[i].defined = false; + //empty set + } + } + return *this; +} + +CArrayVarEntryInfo* operator-(const CArrayVarEntryInfo& a, const CArrayVarEntryInfo& b) +{ + //return NULL; + CArrayVarEntryInfo* nv = (CArrayVarEntryInfo*)a.Clone(); + *nv -= b; + return nv; +} + +CArrayVarEntryInfo* operator+(const CArrayVarEntryInfo& a, const CArrayVarEntryInfo& b) +{ + CArrayVarEntryInfo* nv = (CArrayVarEntryInfo*)a.Clone(); + *nv += b; + return nv; +} + +void CArrayVarEntryInfo::RegisterDefinition(VarSet* def, VarSet* use, SgStatement* st) +{ + def->addToSet(this, st); + use->PossiblyAffectArrayEntry(this); +} + +void VarSet::PossiblyAffectArrayEntry(CArrayVarEntryInfo* var) +{ + VarItem* it = GetArrayRef(var); + if (!it) + return; + ((CArrayVarEntryInfo*)(it->var))->ProcessChangesToUsedEntry(var); +} + +void CArrayVarEntryInfo::ProcessChangesToUsedEntry(CArrayVarEntryInfo* var) +{ + if (disabled || var->disabled || subscripts != var->subscripts) + return; + for (int i = 0; i < subscripts; i++) + { + if (!data[i].defined) + continue; + + if (data[i].loop == var->data[i].loop && data[i].loop != NULL) + { + if (data[i].coefs[0] == var->data[i].coefs[0]) + { + if (data[i].coefs[1] < var->data[i].coefs[1]) + { + if (data[i].left_bound && data[i].left_bound->variant() == INT_VAL) + { + data[i].bound_modifiers[0] = data[i].left_bound->valueInteger() + data[i].bound_modifiers[0]; + data[i].bound_modifiers[1] = data[i].left_bound->valueInteger() + var->data[i].coefs[1] - 1; + data[i].left_bound = data[i].right_bound = NULL; + } + else + { + //maybe add something, not sure + } + } + } + } + } +} + +CArrayVarEntryInfo& CArrayVarEntryInfo::operator*=(const CArrayVarEntryInfo& b) +{ + if (subscripts == 0) + { + if (b.HasActiveElements()) + disabled = true; + return *this; + } + + if (b.subscripts == 0) + { + if (HasActiveElements()) + MakeInactive(); + return *this; + } + + //return *this; + if (subscripts != b.subscripts || subscripts == 0 || b.subscripts == 0 || !data.size() || !b.data.size() || !(data[0].defined) || !(b.data[0].defined)) + return *this; + + for (int i = 0; i < subscripts; i++) + { + if (b.disabled) + data[i].left_bound = data[i].right_bound = NULL; + + if (data[i].left_bound == b.data[i].left_bound) + data[i].bound_modifiers[0] = std::max(data[i].bound_modifiers[0], b.data[i].bound_modifiers[0]); + + if (data[i].right_bound == b.data[i].right_bound) + data[i].bound_modifiers[1] = std::min(data[i].bound_modifiers[1], b.data[i].bound_modifiers[1]); + } + return *this; +} + +CArrayVarEntryInfo& CArrayVarEntryInfo::operator+=(const CArrayVarEntryInfo& b) +{ + if (subscripts == 0) + { + if (b.HasActiveElements()) + disabled = true; + return *this; + } + + if (b.subscripts == 0) + { + if (HasActiveElements()) + MakeInactive(); + return *this; + } + + //return *this; + if (disabled && !b.disabled && b.data.size()) + { + for (int i = 0; i < subscripts; i++) + data[i] = b.data[i]; + disabled = false; + return *this; + } + + if (subscripts != b.subscripts || subscripts == 0 || b.subscripts == 0 || !data.size() || !b.data.size() || disabled || b.disabled) + return *this; + + for (int i = 0; i < subscripts; i++) + { + + if (data[i].left_bound == b.data[i].left_bound) + data[i].bound_modifiers[0] = std::min(data[i].bound_modifiers[0], b.data[i].bound_modifiers[0]); + + if (data[i].right_bound == b.data[i].right_bound) + data[i].bound_modifiers[1] = std::max(data[i].bound_modifiers[1], b.data[i].bound_modifiers[1]); + + if (data[i].left_bound == NULL && data[i].right_bound == NULL && (b.data[i].left_bound != NULL || b.data[i].right_bound != NULL)) + { + const ArraySubscriptData &tmp = data[i]; + data[i] = b.data[i]; + if (data[i].left_bound && data[i].left_bound->variant() == INT_VAL) + { + if (tmp.bound_modifiers[1] == data[i].left_bound->valueInteger() + data[i].bound_modifiers[0] - 1) + data[i].bound_modifiers[0] -= (1 + tmp.bound_modifiers[1] - tmp.bound_modifiers[0]); + + } + + if (data[i].right_bound && data[i].right_bound->variant() == INT_VAL) + { + if (tmp.bound_modifiers[0] == data[i].left_bound->valueInteger() + data[i].bound_modifiers[1] + 1) + data[i].bound_modifiers[1] += (1 + tmp.bound_modifiers[1] - tmp.bound_modifiers[0]); + } + } + } + return *this; +} + +void VarSet::RemoveDoubtfulCommonVars(AnalysedCallsList* call) +{ + VarItem* it = list; + VarItem* prev = NULL; + while (it != NULL) { + CommonDataItem* d = pCommons->IsThisCommonVar(it, call); + if (d && pCommons->CanHaveNonScalarVars(d)) { + if (prev == NULL) { + it = it->next; + delete list; + list = it; + } + else { + prev->next = it->next; + delete it; + it = prev->next; + } + continue; + } + prev = it; + it = it->next; + } +} + +int VarSet::count() +{ + VarItem* it = list; + int t = 0; + while (it != NULL) { + it = it->next; + t++; + } + return t; +} + +void VarSet::LeaveOnlyRecords() +{ + VarItem* p = list; + VarItem* prev = NULL; + while (p != NULL) { + if (p->var->GetVarType() == VAR_REF_RECORD_EXP) { + CVarEntryInfo* rrec = p->var->GetLeftmostParent(); + CVarEntryInfo* old = p->var; + if (old->RemoveReference()) + delete old; + if (!belongs(rrec)) { + p->var = rrec; + prev = p; + } + else { + if (prev == NULL) + list = list->next; + else + { + prev->next = p->next; + delete(p); + p = prev; + } + } + } + else { + prev = p; + } + p = p->next; + } +} + +VarItem* VarSet::belongs(const CVarEntryInfo* var, bool os) +{ + VarItem* l = list; + while (l != NULL) + { + if ((*l->var == *var)) + return l; + if (os && OriginalSymbol(l->var->GetSymbol()) == OriginalSymbol(var->GetSymbol())) + return l; + l = l->next; + } + return NULL; +} + +VarItem* VarSet::belongs(SgSymbol* s, bool os) +{ + VarItem* l = list; + while (l != NULL) + { + if ((l->var->GetSymbol() == s)) + if (l->var->GetVarType() == VAR_REF_ARRAY_EXP) + return ((CArrayVarEntryInfo*)(l->var))->HasActiveElements() ? l : NULL; + return l; + if (os && OriginalSymbol(l->var->GetSymbol()) == OriginalSymbol(s)) + return l; + l = l->next; + } + return NULL; +} + +/* +VarItem* VarSet::belongs(SgVarRefExp* var, bool os) +{ + return belongs(var->symbol(), os); +} +*/ + +bool VarSet::equal(VarSet* p2) +{ + if (p2 == NULL) + return false; + VarItem* p = list; + VarItem* prev = NULL; + while (p != NULL) + { + if (!p2->belongs(p->var) && (p->var->GetVarType() != VAR_REF_ARRAY_EXP || ((CArrayVarEntryInfo*)(p->var))->HasActiveElements())) + return false; + p = p->next; + } + p = p2->list; + while (p != NULL) { + if (!belongs(p->var) && (p->var->GetVarType() != VAR_REF_ARRAY_EXP || ((CArrayVarEntryInfo*)(p->var))->HasActiveElements())) + return false; + p = p->next; + } + return true; +} + +void VarSet::print() +{ + VarItem* l = list; + while (l != NULL) + { + if (l->var->GetVarType() != VAR_REF_ARRAY_EXP || ((CArrayVarEntryInfo*)(l->var))->HasActiveElements()) + printf("%s ", l->var->GetSymbol()->identifier()); +#if PRIVATE_GET_LAST_ASSIGN + printf("last assignments: %d\n", l->lastAssignments.size()); + for (list::iterator it = l->lastAssignments.begin(); it != l->lastAssignments.end(); it++){ + if (*it) + printf("%s", (*it)->unparse()); + } +#endif + l = l->next; + } + putchar('\n'); +} + +void VarSet::addToSet(CVarEntryInfo* var, SgStatement* source, CVarEntryInfo* ov) +{ + bool add = false; + if (var->GetVarType() != VAR_REF_ARRAY_EXP) { + VarItem* p = belongs(var, false); + add = p == NULL; +#if PRIVATE_GET_LAST_ASSIGN + p->lastAssignments.clear(); + p->lastAssignments.push_back(source); +#endif + //delete p->lastAssignments; + //p->lastAssignments = new CLAStatementItem(); + //p->lastAssignments->stmt = source; + //p->lastAssignments->next = NULL; + } + else { + CArrayVarEntryInfo* av = (CArrayVarEntryInfo*)var; + VarItem* p = GetArrayRef(av); + if (p == NULL) + add = true; + else { + CArrayVarEntryInfo* fv = (CArrayVarEntryInfo*)p->var; + *fv += *av; + } + } + if (add) { + VarItem* p = new VarItem(); + p->var = var->Clone(); + p->ov = ov; + p->next = list; + p->file_id = current_file_id; + list = p; + } +} + +void VarSet::intersect(VarSet* set, bool la, bool array_mode = false) +{ + VarItem* p = list; + VarItem* prev = NULL; + while (p != NULL) + { + VarItem* n = set->belongs(p->var); + if (!n) + { + if (!array_mode || p->var->GetVarType() == VAR_REF_VAR_EXP) { + if (prev == NULL) + list = list->next; + else + { + prev->next = p->next; + delete(p); + p = prev; + } + } + } + else { +#if PRIVATE_GET_LAST_ASSIGN + if (la) + p->lastAssignments.insert(p->lastAssignments.end(), n->lastAssignments.begin(), n->lastAssignments.end()); +#endif + if (p->var->GetVarType() == VAR_REF_ARRAY_EXP) { + if (!array_mode) + *(CArrayVarEntryInfo*)(p->var) *= *(CArrayVarEntryInfo*)(n->var); + else + *(CArrayVarEntryInfo*)(p->var) += *(CArrayVarEntryInfo*)(n->var); + } + prev = p; + } + p = p->next; + } + +} + +VarItem* VarSet::getFirst() +{ + return list; +} + +void VarSet::remove(const CVarEntryInfo* var) +{ + VarItem* p = list; + VarItem* prev = NULL; + while (p != NULL) + { + if (var == (p->var)) + { + if (prev == NULL) { + VarItem* t = list; + list = list->next; + delete(t); + p = list; + + } + else + { + prev->next = p->next; + delete(p); + p = prev->next; + } + } + else { + prev = p; + p = p->next; + } + } +} + +void VarSet::minus(VarSet* set, bool complete) +{ + VarItem* p = list; + VarItem* prev = NULL; + while (p != NULL) + { + VarItem* d = set->belongs(p->var); + if (d && (p->var->GetVarType() != VAR_REF_ARRAY_EXP || ((CArrayVarEntryInfo*)(d->var))->HasActiveElements())) + { + if (p->var->GetVarType() == VAR_REF_ARRAY_EXP && !complete) { + *(CArrayVarEntryInfo*)(p->var) -= *(CArrayVarEntryInfo*)(d->var); + prev = p; + } + else if (prev == NULL) + list = list->next; + else + { + prev->next = p->next; + delete(p); + p = prev; + } + } + else + prev = p; + + p = p->next; + } +} + +bool VarSet::RecordBelong(CVarEntryInfo* rec) +{ + if (rec->GetVarType() != VAR_REF_RECORD_EXP) + return false; + CRecordVarEntryInfo* rrec = static_cast(rec); + CVarEntryInfo* lm = rrec->GetLeftmostParent(); + VarItem* p = list; + while (p != NULL) { + if (*lm == *(p->var->GetLeftmostParent())) + return true; + p = p->next; + } + return false; +} + +void VarSet::minusFinalize(VarSet* set, bool complete) +{ + minus(set, complete); + VarItem* p = list; + VarItem* prev = NULL; + while (p != NULL) + { + if (set->RecordBelong(p->var)) { + { + if (prev == NULL) + list = list->next; + else + { + prev->next = p->next; + delete(p); + p = prev; + } + } + } + else + prev = p; + + p = p->next; + } +} + +unsigned int counter = 0; + +CLAStatementItem::~CLAStatementItem() +{ +#if __SPF + removeFromCollection(this); +#endif + if (next) + delete next; +} + +CLAStatementItem* CLAStatementItem::GetLast() +{ + if (next == NULL) + return this; + return next->GetLast(); +} + +void VarSet::unite(VarSet* set, bool la) +{ + VarItem* arg2 = set->list; + while (arg2 != NULL) + { + VarItem* n = belongs(arg2->var); + if (!n) + { + n = new VarItem(); + if (arg2->var->GetVarType() == VAR_REF_ARRAY_EXP) + n->var = arg2->var->Clone(); + else { + n->var = arg2->var; + n->var->AddReference(); + } + n->ov = arg2->ov; + n->next = list; + n->file_id = arg2->file_id; +#if PRIVATE_GET_LAST_ASSIGN + if (la) + n->lastAssignments = arg2->lastAssignments; +#endif + list = n; + } + else { +#if PRIVATE_GET_LAST_ASSIGN + if (la) { + //n->lastAssignments.insert(n->lastAssignments.end(), arg2->lastAssignments.begin(), arg2->lastAssignments.end()); + //n->lastAssignments.splice(n->lastAssignments.end(), arg2->lastAssignments); + //n->lastAssignments->GetLast()->next = arg2->lastAssignments; + n->lastAssignments = arg2->lastAssignments; + } +#endif + //counter++; + //if (counter % 100 == 0) + //printf("%d!\n", counter); + if (n->var->GetVarType() == VAR_REF_ARRAY_EXP) { + *(CArrayVarEntryInfo*)(n->var) += *(CArrayVarEntryInfo*)(arg2->var); + } + } + arg2 = arg2->next; + } +} + + + +void CBasicBlock::addToPrev(CBasicBlock* bb, bool for_jump_flag, bool c, ControlFlowItem* check) +{ + BasicBlockItem* n = new BasicBlockItem(); + n->block = bb; + n->next = prev; + n->for_jump_flag = for_jump_flag; + n->cond_value = c; + n->jmp = check; + prev = n; +} + +void CBasicBlock::addToSucc(CBasicBlock* bb, bool for_jump_flag, bool c, ControlFlowItem* check) +{ + BasicBlockItem* n = new BasicBlockItem(); + n->block = bb; + n->for_jump_flag = for_jump_flag; + n->next = succ; + n->cond_value = c; + n->jmp = check; + succ = n; +} + +#if ACCAN_DEBUG + +void ControlFlowItem::printDebugInfo() +{ + if (jmp == NULL && stmt == NULL && func != NULL) + printf("FUNCTION CALL: %s\n", func->unparse()); + if (jmp == NULL) + if (stmt != NULL) + if (label != NULL) + printf("%d: %s %s %s lab %4d %s", stmtNo, this->isLeader() ? "L" : " ", this->IsParloopStart() ? "S" : " ", this->IsParloopEnd() ? "E" : " ", label->id(), stmt->unparse()); + else + printf("%d: %s %s %s %s", stmtNo, this->isLeader() ? "L" : " ", this->IsParloopStart() ? "S" : " ", this->IsParloopEnd() ? "E" : " ", stmt->unparse()); + else + if (label != NULL) + printf("%d: %s %s %s lab %4d \n", stmtNo, this->isLeader() ? "L" : " ", this->IsParloopStart() ? "S" : " ", this->IsParloopEnd() ? "E" : " ", label->id()); + else + printf("%d: %s %s %s \n", stmtNo, this->isLeader() ? "L" : " ", this->IsParloopStart() ? "S" : " ", this->IsParloopEnd() ? "E" : " "); + else + if (expr == NULL) + if (label != NULL) + printf("%d: %s %s %s lab %4d goto %d\n", stmtNo, this->isLeader() ? "L" : " ", this->IsParloopStart() ? "S" : " ", this->IsParloopEnd() ? "E" : " ", label->id(), jmp->getStmtNo()); + else + printf("%d: %s %s %s goto %d\n", stmtNo, this->isLeader() ? "L" : " ", this->IsParloopStart() ? "S" : " ", this->IsParloopEnd() ? "E" : " ", jmp->getStmtNo()); + else + if (label != NULL) + printf("%d: %s %s %s lab %4d if %s goto %d\n", stmtNo, this->isLeader() ? "L" : " ", this->IsParloopStart() ? "S" : " ", this->IsParloopEnd() ? "E" : " ", label->id(), expr->unparse(), jmp->getStmtNo()); + else + printf("%d: %s %s %s if %s goto %d\n", stmtNo, this->isLeader() ? "L" : " ", this->IsParloopStart() ? "S" : " ", this->IsParloopEnd() ? "E" : " ", expr->unparse(), jmp->getStmtNo()); +} + +static void printControlFlowList(ControlFlowItem* list, ControlFlowItem* last) +{ + + printf("DEBUG PRINT START\n"); + unsigned int stmtNo = 0; + ControlFlowItem* list_copy = list; + while (list != NULL ) + { + list->setStmtNo(++stmtNo); + if (list == last) + break; + list = list->getNext(); + } + + list = list_copy; + while (list != NULL) + { + list->printDebugInfo(); + if (list == last) + break; + list = list->getNext(); + } + printf("DEBUG PRINT END\n\n"); +} +#endif + +void CallData::printControlFlows() +{ +#if ACCAN_DEBUG + AnalysedCallsList* l = calls_list; + while (l != NULL) { + if (!l->isIntrinsic && l->graph != NULL && l->header != NULL) { + ControlFlowGraph* g = l->graph; + SgStatement* h = l->header; + printf("CFI for %s\n\n" ,h->symbol()->identifier()); + if (g != NULL) { + printControlFlowList(g->getCFI()); + } + else + printf("ERROR: DOES NOT HAVE CFI\n"); + } + l = l->next; + } +#endif +} diff --git a/Sapfor/_projects/dvm/fdvm/trunk/fdvm/acc_data.cpp b/Sapfor/projects/dvm/fdvm/trunk/fdvm/acc_data.cpp similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/fdvm/acc_data.cpp rename to Sapfor/projects/dvm/fdvm/trunk/fdvm/acc_data.cpp diff --git a/Sapfor/_projects/dvm/fdvm/trunk/fdvm/acc_f2c.cpp b/Sapfor/projects/dvm/fdvm/trunk/fdvm/acc_f2c.cpp similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/fdvm/acc_f2c.cpp rename to Sapfor/projects/dvm/fdvm/trunk/fdvm/acc_f2c.cpp diff --git a/Sapfor/_projects/dvm/fdvm/trunk/fdvm/acc_f2c_handlers.cpp b/Sapfor/projects/dvm/fdvm/trunk/fdvm/acc_f2c_handlers.cpp similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/fdvm/acc_f2c_handlers.cpp rename to Sapfor/projects/dvm/fdvm/trunk/fdvm/acc_f2c_handlers.cpp diff --git a/Sapfor/_projects/dvm/fdvm/trunk/fdvm/acc_index_analyzer.cpp b/Sapfor/projects/dvm/fdvm/trunk/fdvm/acc_index_analyzer.cpp similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/fdvm/acc_index_analyzer.cpp rename to Sapfor/projects/dvm/fdvm/trunk/fdvm/acc_index_analyzer.cpp diff --git a/Sapfor/_projects/dvm/fdvm/trunk/fdvm/acc_rtc.cpp b/Sapfor/projects/dvm/fdvm/trunk/fdvm/acc_rtc.cpp similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/fdvm/acc_rtc.cpp rename to Sapfor/projects/dvm/fdvm/trunk/fdvm/acc_rtc.cpp diff --git a/Sapfor/_projects/dvm/fdvm/trunk/fdvm/acc_unused_code.cpp b/Sapfor/projects/dvm/fdvm/trunk/fdvm/acc_unused_code.cpp similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/fdvm/acc_unused_code.cpp rename to Sapfor/projects/dvm/fdvm/trunk/fdvm/acc_unused_code.cpp diff --git a/Sapfor/_projects/dvm/fdvm/trunk/fdvm/acc_utilities.cpp b/Sapfor/projects/dvm/fdvm/trunk/fdvm/acc_utilities.cpp similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/fdvm/acc_utilities.cpp rename to Sapfor/projects/dvm/fdvm/trunk/fdvm/acc_utilities.cpp diff --git a/Sapfor/_projects/dvm/fdvm/trunk/fdvm/aks_analyzeLoops.cpp b/Sapfor/projects/dvm/fdvm/trunk/fdvm/aks_analyzeLoops.cpp similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/fdvm/aks_analyzeLoops.cpp rename to Sapfor/projects/dvm/fdvm/trunk/fdvm/aks_analyzeLoops.cpp diff --git a/Sapfor/_projects/dvm/fdvm/trunk/fdvm/aks_loopStructure.cpp b/Sapfor/projects/dvm/fdvm/trunk/fdvm/aks_loopStructure.cpp similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/fdvm/aks_loopStructure.cpp rename to Sapfor/projects/dvm/fdvm/trunk/fdvm/aks_loopStructure.cpp diff --git a/Sapfor/_projects/dvm/fdvm/trunk/fdvm/aks_structs.cpp b/Sapfor/projects/dvm/fdvm/trunk/fdvm/aks_structs.cpp similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/fdvm/aks_structs.cpp rename to Sapfor/projects/dvm/fdvm/trunk/fdvm/aks_structs.cpp diff --git a/Sapfor/_projects/dvm/fdvm/trunk/fdvm/calls.cpp b/Sapfor/projects/dvm/fdvm/trunk/fdvm/calls.cpp similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/fdvm/calls.cpp rename to Sapfor/projects/dvm/fdvm/trunk/fdvm/calls.cpp diff --git a/Sapfor/_projects/dvm/fdvm/trunk/fdvm/checkpoint.cpp b/Sapfor/projects/dvm/fdvm/trunk/fdvm/checkpoint.cpp similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/fdvm/checkpoint.cpp rename to Sapfor/projects/dvm/fdvm/trunk/fdvm/checkpoint.cpp diff --git a/Sapfor/_projects/dvm/fdvm/trunk/fdvm/debug.cpp b/Sapfor/projects/dvm/fdvm/trunk/fdvm/debug.cpp similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/fdvm/debug.cpp rename to Sapfor/projects/dvm/fdvm/trunk/fdvm/debug.cpp diff --git a/Sapfor/_projects/dvm/fdvm/trunk/fdvm/dvm.cpp b/Sapfor/projects/dvm/fdvm/trunk/fdvm/dvm.cpp similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/fdvm/dvm.cpp rename to Sapfor/projects/dvm/fdvm/trunk/fdvm/dvm.cpp diff --git a/Sapfor/_projects/dvm/fdvm/trunk/fdvm/funcall.cpp b/Sapfor/projects/dvm/fdvm/trunk/fdvm/funcall.cpp similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/fdvm/funcall.cpp rename to Sapfor/projects/dvm/fdvm/trunk/fdvm/funcall.cpp diff --git a/Sapfor/_projects/dvm/fdvm/trunk/fdvm/help.cpp b/Sapfor/projects/dvm/fdvm/trunk/fdvm/help.cpp similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/fdvm/help.cpp rename to Sapfor/projects/dvm/fdvm/trunk/fdvm/help.cpp diff --git a/Sapfor/_projects/dvm/fdvm/trunk/fdvm/hpf.cpp b/Sapfor/projects/dvm/fdvm/trunk/fdvm/hpf.cpp similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/fdvm/hpf.cpp rename to Sapfor/projects/dvm/fdvm/trunk/fdvm/hpf.cpp diff --git a/Sapfor/_projects/dvm/fdvm/trunk/fdvm/io.cpp b/Sapfor/projects/dvm/fdvm/trunk/fdvm/io.cpp similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/fdvm/io.cpp rename to Sapfor/projects/dvm/fdvm/trunk/fdvm/io.cpp diff --git a/Sapfor/_projects/dvm/fdvm/trunk/fdvm/makefile.uni b/Sapfor/projects/dvm/fdvm/trunk/fdvm/makefile.uni similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/fdvm/makefile.uni rename to Sapfor/projects/dvm/fdvm/trunk/fdvm/makefile.uni diff --git a/Sapfor/_projects/dvm/fdvm/trunk/fdvm/makefile.win b/Sapfor/projects/dvm/fdvm/trunk/fdvm/makefile.win similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/fdvm/makefile.win rename to Sapfor/projects/dvm/fdvm/trunk/fdvm/makefile.win diff --git a/Sapfor/_projects/dvm/fdvm/trunk/fdvm/omp.cpp b/Sapfor/projects/dvm/fdvm/trunk/fdvm/omp.cpp similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/fdvm/omp.cpp rename to Sapfor/projects/dvm/fdvm/trunk/fdvm/omp.cpp diff --git a/Sapfor/_projects/dvm/fdvm/trunk/fdvm/ompdebug.cpp b/Sapfor/projects/dvm/fdvm/trunk/fdvm/ompdebug.cpp similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/fdvm/ompdebug.cpp rename to Sapfor/projects/dvm/fdvm/trunk/fdvm/ompdebug.cpp diff --git a/Sapfor/_projects/dvm/fdvm/trunk/fdvm/parloop.cpp b/Sapfor/projects/dvm/fdvm/trunk/fdvm/parloop.cpp similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/fdvm/parloop.cpp rename to Sapfor/projects/dvm/fdvm/trunk/fdvm/parloop.cpp diff --git a/Sapfor/_projects/dvm/fdvm/trunk/fdvm/stmt.cpp b/Sapfor/projects/dvm/fdvm/trunk/fdvm/stmt.cpp similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/fdvm/stmt.cpp rename to Sapfor/projects/dvm/fdvm/trunk/fdvm/stmt.cpp diff --git a/Sapfor/_projects/dvm/fdvm/trunk/include/acc_across_analyzer.h b/Sapfor/projects/dvm/fdvm/trunk/include/acc_across_analyzer.h similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/include/acc_across_analyzer.h rename to Sapfor/projects/dvm/fdvm/trunk/include/acc_across_analyzer.h diff --git a/Sapfor/_projects/dvm/fdvm/trunk/include/acc_analyzer.h b/Sapfor/projects/dvm/fdvm/trunk/include/acc_analyzer.h similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/include/acc_analyzer.h rename to Sapfor/projects/dvm/fdvm/trunk/include/acc_analyzer.h diff --git a/Sapfor/_projects/dvm/fdvm/trunk/include/acc_data.h b/Sapfor/projects/dvm/fdvm/trunk/include/acc_data.h similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/include/acc_data.h rename to Sapfor/projects/dvm/fdvm/trunk/include/acc_data.h diff --git a/Sapfor/_projects/dvm/fdvm/trunk/include/aks_loopStructure.h b/Sapfor/projects/dvm/fdvm/trunk/include/aks_loopStructure.h similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/include/aks_loopStructure.h rename to Sapfor/projects/dvm/fdvm/trunk/include/aks_loopStructure.h diff --git a/Sapfor/_projects/dvm/fdvm/trunk/include/aks_structs.h b/Sapfor/projects/dvm/fdvm/trunk/include/aks_structs.h similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/include/aks_structs.h rename to Sapfor/projects/dvm/fdvm/trunk/include/aks_structs.h diff --git a/Sapfor/_projects/dvm/fdvm/trunk/include/calls.h b/Sapfor/projects/dvm/fdvm/trunk/include/calls.h similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/include/calls.h rename to Sapfor/projects/dvm/fdvm/trunk/include/calls.h diff --git a/Sapfor/_projects/dvm/fdvm/trunk/include/dvm.h b/Sapfor/projects/dvm/fdvm/trunk/include/dvm.h similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/include/dvm.h rename to Sapfor/projects/dvm/fdvm/trunk/include/dvm.h diff --git a/Sapfor/_projects/dvm/fdvm/trunk/include/dvm_tag.h b/Sapfor/projects/dvm/fdvm/trunk/include/dvm_tag.h similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/include/dvm_tag.h rename to Sapfor/projects/dvm/fdvm/trunk/include/dvm_tag.h diff --git a/Sapfor/_projects/dvm/fdvm/trunk/include/extern.h b/Sapfor/projects/dvm/fdvm/trunk/include/extern.h similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/include/extern.h rename to Sapfor/projects/dvm/fdvm/trunk/include/extern.h diff --git a/Sapfor/_projects/dvm/fdvm/trunk/include/fdvm.h b/Sapfor/projects/dvm/fdvm/trunk/include/fdvm.h similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/include/fdvm.h rename to Sapfor/projects/dvm/fdvm/trunk/include/fdvm.h diff --git a/Sapfor/_projects/dvm/fdvm/trunk/include/fdvm_version.h b/Sapfor/projects/dvm/fdvm/trunk/include/fdvm_version.h similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/include/fdvm_version.h rename to Sapfor/projects/dvm/fdvm/trunk/include/fdvm_version.h diff --git a/Sapfor/_projects/dvm/fdvm/trunk/include/inc.h b/Sapfor/projects/dvm/fdvm/trunk/include/inc.h similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/include/inc.h rename to Sapfor/projects/dvm/fdvm/trunk/include/inc.h diff --git a/Sapfor/_projects/dvm/fdvm/trunk/include/leak_detector.h b/Sapfor/projects/dvm/fdvm/trunk/include/leak_detector.h similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/include/leak_detector.h rename to Sapfor/projects/dvm/fdvm/trunk/include/leak_detector.h diff --git a/Sapfor/_projects/dvm/fdvm/trunk/include/libSageOMP.h b/Sapfor/projects/dvm/fdvm/trunk/include/libSageOMP.h similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/include/libSageOMP.h rename to Sapfor/projects/dvm/fdvm/trunk/include/libSageOMP.h diff --git a/Sapfor/_projects/dvm/fdvm/trunk/include/libdvm.h b/Sapfor/projects/dvm/fdvm/trunk/include/libdvm.h similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/include/libdvm.h rename to Sapfor/projects/dvm/fdvm/trunk/include/libdvm.h diff --git a/Sapfor/_projects/dvm/fdvm/trunk/include/libnum.h b/Sapfor/projects/dvm/fdvm/trunk/include/libnum.h similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/include/libnum.h rename to Sapfor/projects/dvm/fdvm/trunk/include/libnum.h diff --git a/Sapfor/_projects/dvm/fdvm/trunk/include/unparse.hpf b/Sapfor/projects/dvm/fdvm/trunk/include/unparse.hpf similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/include/unparse.hpf rename to Sapfor/projects/dvm/fdvm/trunk/include/unparse.hpf diff --git a/Sapfor/_projects/dvm/fdvm/trunk/include/unparse1.hpf b/Sapfor/projects/dvm/fdvm/trunk/include/unparse1.hpf similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/include/unparse1.hpf rename to Sapfor/projects/dvm/fdvm/trunk/include/unparse1.hpf diff --git a/Sapfor/_projects/dvm/fdvm/trunk/include/user.h b/Sapfor/projects/dvm/fdvm/trunk/include/user.h similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/include/user.h rename to Sapfor/projects/dvm/fdvm/trunk/include/user.h diff --git a/Sapfor/_projects/dvm/fdvm/trunk/makefile.uni b/Sapfor/projects/dvm/fdvm/trunk/makefile.uni similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/makefile.uni rename to Sapfor/projects/dvm/fdvm/trunk/makefile.uni diff --git a/Sapfor/_projects/dvm/fdvm/trunk/makefile.win b/Sapfor/projects/dvm/fdvm/trunk/makefile.win similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/makefile.win rename to Sapfor/projects/dvm/fdvm/trunk/makefile.win diff --git a/Sapfor/_projects/dvm/fdvm/trunk/parser/CMakeLists.txt b/Sapfor/projects/dvm/fdvm/trunk/parser/CMakeLists.txt similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/parser/CMakeLists.txt rename to Sapfor/projects/dvm/fdvm/trunk/parser/CMakeLists.txt diff --git a/Sapfor/_projects/dvm/fdvm/trunk/parser/Makefile b/Sapfor/projects/dvm/fdvm/trunk/parser/Makefile similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/parser/Makefile rename to Sapfor/projects/dvm/fdvm/trunk/parser/Makefile diff --git a/Sapfor/_projects/dvm/fdvm/trunk/parser/cftn.c b/Sapfor/projects/dvm/fdvm/trunk/parser/cftn.c similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/parser/cftn.c rename to Sapfor/projects/dvm/fdvm/trunk/parser/cftn.c diff --git a/Sapfor/_projects/dvm/fdvm/trunk/parser/errors.c b/Sapfor/projects/dvm/fdvm/trunk/parser/errors.c similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/parser/errors.c rename to Sapfor/projects/dvm/fdvm/trunk/parser/errors.c diff --git a/Sapfor/_projects/dvm/fdvm/trunk/parser/facc.gram b/Sapfor/projects/dvm/fdvm/trunk/parser/facc.gram similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/parser/facc.gram rename to Sapfor/projects/dvm/fdvm/trunk/parser/facc.gram diff --git a/Sapfor/_projects/dvm/fdvm/trunk/parser/fdvm.gram b/Sapfor/projects/dvm/fdvm/trunk/parser/fdvm.gram similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/parser/fdvm.gram rename to Sapfor/projects/dvm/fdvm/trunk/parser/fdvm.gram diff --git a/Sapfor/_projects/dvm/fdvm/trunk/parser/fomp.gram b/Sapfor/projects/dvm/fdvm/trunk/parser/fomp.gram similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/parser/fomp.gram rename to Sapfor/projects/dvm/fdvm/trunk/parser/fomp.gram diff --git a/Sapfor/_projects/dvm/fdvm/trunk/parser/fspf.gram b/Sapfor/projects/dvm/fdvm/trunk/parser/fspf.gram similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/parser/fspf.gram rename to Sapfor/projects/dvm/fdvm/trunk/parser/fspf.gram diff --git a/Sapfor/_projects/dvm/fdvm/trunk/parser/ftn.gram b/Sapfor/projects/dvm/fdvm/trunk/parser/ftn.gram similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/parser/ftn.gram rename to Sapfor/projects/dvm/fdvm/trunk/parser/ftn.gram diff --git a/Sapfor/_projects/dvm/fdvm/trunk/parser/gram1.tab.c b/Sapfor/projects/dvm/fdvm/trunk/parser/gram1.tab.c similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/parser/gram1.tab.c rename to Sapfor/projects/dvm/fdvm/trunk/parser/gram1.tab.c diff --git a/Sapfor/_projects/dvm/fdvm/trunk/parser/gram1.tab.h b/Sapfor/projects/dvm/fdvm/trunk/parser/gram1.tab.h similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/parser/gram1.tab.h rename to Sapfor/projects/dvm/fdvm/trunk/parser/gram1.tab.h diff --git a/Sapfor/_projects/dvm/fdvm/trunk/parser/gram1.y b/Sapfor/projects/dvm/fdvm/trunk/parser/gram1.y similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/parser/gram1.y rename to Sapfor/projects/dvm/fdvm/trunk/parser/gram1.y diff --git a/Sapfor/_projects/dvm/fdvm/trunk/parser/hash.c b/Sapfor/projects/dvm/fdvm/trunk/parser/hash.c similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/parser/hash.c rename to Sapfor/projects/dvm/fdvm/trunk/parser/hash.c diff --git a/Sapfor/_projects/dvm/fdvm/trunk/parser/head b/Sapfor/projects/dvm/fdvm/trunk/parser/head similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/parser/head rename to Sapfor/projects/dvm/fdvm/trunk/parser/head diff --git a/Sapfor/_projects/dvm/fdvm/trunk/parser/init.c b/Sapfor/projects/dvm/fdvm/trunk/parser/init.c similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/parser/init.c rename to Sapfor/projects/dvm/fdvm/trunk/parser/init.c diff --git a/Sapfor/_projects/dvm/fdvm/trunk/parser/lexfdvm.c b/Sapfor/projects/dvm/fdvm/trunk/parser/lexfdvm.c similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/parser/lexfdvm.c rename to Sapfor/projects/dvm/fdvm/trunk/parser/lexfdvm.c diff --git a/Sapfor/_projects/dvm/fdvm/trunk/parser/lists.c b/Sapfor/projects/dvm/fdvm/trunk/parser/lists.c similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/parser/lists.c rename to Sapfor/projects/dvm/fdvm/trunk/parser/lists.c diff --git a/Sapfor/_projects/dvm/fdvm/trunk/parser/low_hpf.c b/Sapfor/projects/dvm/fdvm/trunk/parser/low_hpf.c similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/parser/low_hpf.c rename to Sapfor/projects/dvm/fdvm/trunk/parser/low_hpf.c diff --git a/Sapfor/_projects/dvm/fdvm/trunk/parser/makefile.uni b/Sapfor/projects/dvm/fdvm/trunk/parser/makefile.uni similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/parser/makefile.uni rename to Sapfor/projects/dvm/fdvm/trunk/parser/makefile.uni diff --git a/Sapfor/_projects/dvm/fdvm/trunk/parser/makefile.win b/Sapfor/projects/dvm/fdvm/trunk/parser/makefile.win similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/parser/makefile.win rename to Sapfor/projects/dvm/fdvm/trunk/parser/makefile.win diff --git a/Sapfor/_projects/dvm/fdvm/trunk/parser/misc.c b/Sapfor/projects/dvm/fdvm/trunk/parser/misc.c similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/parser/misc.c rename to Sapfor/projects/dvm/fdvm/trunk/parser/misc.c diff --git a/Sapfor/_projects/dvm/fdvm/trunk/parser/stat.c b/Sapfor/projects/dvm/fdvm/trunk/parser/stat.c similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/parser/stat.c rename to Sapfor/projects/dvm/fdvm/trunk/parser/stat.c diff --git a/Sapfor/_projects/dvm/fdvm/trunk/parser/sym.c b/Sapfor/projects/dvm/fdvm/trunk/parser/sym.c similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/parser/sym.c rename to Sapfor/projects/dvm/fdvm/trunk/parser/sym.c diff --git a/Sapfor/_projects/dvm/fdvm/trunk/parser/tag b/Sapfor/projects/dvm/fdvm/trunk/parser/tag similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/parser/tag rename to Sapfor/projects/dvm/fdvm/trunk/parser/tag diff --git a/Sapfor/_projects/dvm/fdvm/trunk/parser/tag.h b/Sapfor/projects/dvm/fdvm/trunk/parser/tag.h similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/parser/tag.h rename to Sapfor/projects/dvm/fdvm/trunk/parser/tag.h diff --git a/Sapfor/_projects/dvm/fdvm/trunk/parser/tokdefs.h b/Sapfor/projects/dvm/fdvm/trunk/parser/tokdefs.h similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/parser/tokdefs.h rename to Sapfor/projects/dvm/fdvm/trunk/parser/tokdefs.h diff --git a/Sapfor/_projects/dvm/fdvm/trunk/parser/tokens b/Sapfor/projects/dvm/fdvm/trunk/parser/tokens similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/parser/tokens rename to Sapfor/projects/dvm/fdvm/trunk/parser/tokens diff --git a/Sapfor/_projects/dvm/fdvm/trunk/parser/types.c b/Sapfor/projects/dvm/fdvm/trunk/parser/types.c similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/parser/types.c rename to Sapfor/projects/dvm/fdvm/trunk/parser/types.c diff --git a/Sapfor/_projects/dvm/fdvm/trunk/parser/unparse_hpf.c b/Sapfor/projects/dvm/fdvm/trunk/parser/unparse_hpf.c similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/parser/unparse_hpf.c rename to Sapfor/projects/dvm/fdvm/trunk/parser/unparse_hpf.c diff --git a/Sapfor/_projects/dvm/fdvm/trunk/sageExample/SwapFors.cpp b/Sapfor/projects/dvm/fdvm/trunk/sageExample/SwapFors.cpp similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/sageExample/SwapFors.cpp rename to Sapfor/projects/dvm/fdvm/trunk/sageExample/SwapFors.cpp diff --git a/Sapfor/_projects/dvm/fdvm/trunk/sageExample/makefile.uni b/Sapfor/projects/dvm/fdvm/trunk/sageExample/makefile.uni similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/sageExample/makefile.uni rename to Sapfor/projects/dvm/fdvm/trunk/sageExample/makefile.uni diff --git a/Sapfor/_projects/dvm/fdvm/trunk/sageExample/makefile.win b/Sapfor/projects/dvm/fdvm/trunk/sageExample/makefile.win similarity index 100% rename from Sapfor/_projects/dvm/fdvm/trunk/sageExample/makefile.win rename to Sapfor/projects/dvm/fdvm/trunk/sageExample/makefile.win diff --git a/Sapfor/_projects/dvm/tools/Zlib/CMakeLists.txt b/Sapfor/projects/dvm/tools/Zlib/CMakeLists.txt similarity index 100% rename from Sapfor/_projects/dvm/tools/Zlib/CMakeLists.txt rename to Sapfor/projects/dvm/tools/Zlib/CMakeLists.txt diff --git a/Sapfor/_projects/dvm/tools/Zlib/include/deflate.h b/Sapfor/projects/dvm/tools/Zlib/include/deflate.h similarity index 100% rename from Sapfor/_projects/dvm/tools/Zlib/include/deflate.h rename to Sapfor/projects/dvm/tools/Zlib/include/deflate.h diff --git a/Sapfor/_projects/dvm/tools/Zlib/include/infblock.h b/Sapfor/projects/dvm/tools/Zlib/include/infblock.h similarity index 100% rename from Sapfor/_projects/dvm/tools/Zlib/include/infblock.h rename to Sapfor/projects/dvm/tools/Zlib/include/infblock.h diff --git a/Sapfor/_projects/dvm/tools/Zlib/include/infcodes.h b/Sapfor/projects/dvm/tools/Zlib/include/infcodes.h similarity index 100% rename from Sapfor/_projects/dvm/tools/Zlib/include/infcodes.h rename to Sapfor/projects/dvm/tools/Zlib/include/infcodes.h diff --git a/Sapfor/_projects/dvm/tools/Zlib/include/inffast.h b/Sapfor/projects/dvm/tools/Zlib/include/inffast.h similarity index 100% rename from Sapfor/_projects/dvm/tools/Zlib/include/inffast.h rename to Sapfor/projects/dvm/tools/Zlib/include/inffast.h diff --git a/Sapfor/_projects/dvm/tools/Zlib/include/inffixed.h b/Sapfor/projects/dvm/tools/Zlib/include/inffixed.h similarity index 100% rename from Sapfor/_projects/dvm/tools/Zlib/include/inffixed.h rename to Sapfor/projects/dvm/tools/Zlib/include/inffixed.h diff --git a/Sapfor/_projects/dvm/tools/Zlib/include/inftrees.h b/Sapfor/projects/dvm/tools/Zlib/include/inftrees.h similarity index 100% rename from Sapfor/_projects/dvm/tools/Zlib/include/inftrees.h rename to Sapfor/projects/dvm/tools/Zlib/include/inftrees.h diff --git a/Sapfor/_projects/dvm/tools/Zlib/include/infutil.h b/Sapfor/projects/dvm/tools/Zlib/include/infutil.h similarity index 100% rename from Sapfor/_projects/dvm/tools/Zlib/include/infutil.h rename to Sapfor/projects/dvm/tools/Zlib/include/infutil.h diff --git a/Sapfor/_projects/dvm/tools/Zlib/include/trees.h b/Sapfor/projects/dvm/tools/Zlib/include/trees.h similarity index 100% rename from Sapfor/_projects/dvm/tools/Zlib/include/trees.h rename to Sapfor/projects/dvm/tools/Zlib/include/trees.h diff --git a/Sapfor/_projects/dvm/tools/Zlib/include/zconf.h b/Sapfor/projects/dvm/tools/Zlib/include/zconf.h similarity index 100% rename from Sapfor/_projects/dvm/tools/Zlib/include/zconf.h rename to Sapfor/projects/dvm/tools/Zlib/include/zconf.h diff --git a/Sapfor/_projects/dvm/tools/Zlib/include/zlib.h b/Sapfor/projects/dvm/tools/Zlib/include/zlib.h similarity index 100% rename from Sapfor/_projects/dvm/tools/Zlib/include/zlib.h rename to Sapfor/projects/dvm/tools/Zlib/include/zlib.h diff --git a/Sapfor/_projects/dvm/tools/Zlib/include/zutil.h b/Sapfor/projects/dvm/tools/Zlib/include/zutil.h similarity index 100% rename from Sapfor/_projects/dvm/tools/Zlib/include/zutil.h rename to Sapfor/projects/dvm/tools/Zlib/include/zutil.h diff --git a/Sapfor/_projects/dvm/tools/Zlib/makefile.uni b/Sapfor/projects/dvm/tools/Zlib/makefile.uni similarity index 100% rename from Sapfor/_projects/dvm/tools/Zlib/makefile.uni rename to Sapfor/projects/dvm/tools/Zlib/makefile.uni diff --git a/Sapfor/_projects/dvm/tools/Zlib/makefile.win b/Sapfor/projects/dvm/tools/Zlib/makefile.win similarity index 100% rename from Sapfor/_projects/dvm/tools/Zlib/makefile.win rename to Sapfor/projects/dvm/tools/Zlib/makefile.win diff --git a/Sapfor/_projects/dvm/tools/Zlib/src/CMakeLists.txt b/Sapfor/projects/dvm/tools/Zlib/src/CMakeLists.txt similarity index 100% rename from Sapfor/_projects/dvm/tools/Zlib/src/CMakeLists.txt rename to Sapfor/projects/dvm/tools/Zlib/src/CMakeLists.txt diff --git a/Sapfor/_projects/dvm/tools/Zlib/src/adler32.c b/Sapfor/projects/dvm/tools/Zlib/src/adler32.c similarity index 100% rename from Sapfor/_projects/dvm/tools/Zlib/src/adler32.c rename to Sapfor/projects/dvm/tools/Zlib/src/adler32.c diff --git a/Sapfor/_projects/dvm/tools/Zlib/src/compress.c b/Sapfor/projects/dvm/tools/Zlib/src/compress.c similarity index 100% rename from Sapfor/_projects/dvm/tools/Zlib/src/compress.c rename to Sapfor/projects/dvm/tools/Zlib/src/compress.c diff --git a/Sapfor/_projects/dvm/tools/Zlib/src/crc32.c b/Sapfor/projects/dvm/tools/Zlib/src/crc32.c similarity index 100% rename from Sapfor/_projects/dvm/tools/Zlib/src/crc32.c rename to Sapfor/projects/dvm/tools/Zlib/src/crc32.c diff --git a/Sapfor/_projects/dvm/tools/Zlib/src/deflate.c b/Sapfor/projects/dvm/tools/Zlib/src/deflate.c similarity index 100% rename from Sapfor/_projects/dvm/tools/Zlib/src/deflate.c rename to Sapfor/projects/dvm/tools/Zlib/src/deflate.c diff --git a/Sapfor/_projects/dvm/tools/Zlib/src/example.c b/Sapfor/projects/dvm/tools/Zlib/src/example.c similarity index 100% rename from Sapfor/_projects/dvm/tools/Zlib/src/example.c rename to Sapfor/projects/dvm/tools/Zlib/src/example.c diff --git a/Sapfor/_projects/dvm/tools/Zlib/src/gzio.c b/Sapfor/projects/dvm/tools/Zlib/src/gzio.c similarity index 100% rename from Sapfor/_projects/dvm/tools/Zlib/src/gzio.c rename to Sapfor/projects/dvm/tools/Zlib/src/gzio.c diff --git a/Sapfor/_projects/dvm/tools/Zlib/src/infblock.c b/Sapfor/projects/dvm/tools/Zlib/src/infblock.c similarity index 100% rename from Sapfor/_projects/dvm/tools/Zlib/src/infblock.c rename to Sapfor/projects/dvm/tools/Zlib/src/infblock.c diff --git a/Sapfor/_projects/dvm/tools/Zlib/src/infcodes.c b/Sapfor/projects/dvm/tools/Zlib/src/infcodes.c similarity index 100% rename from Sapfor/_projects/dvm/tools/Zlib/src/infcodes.c rename to Sapfor/projects/dvm/tools/Zlib/src/infcodes.c diff --git a/Sapfor/_projects/dvm/tools/Zlib/src/inffast.c b/Sapfor/projects/dvm/tools/Zlib/src/inffast.c similarity index 100% rename from Sapfor/_projects/dvm/tools/Zlib/src/inffast.c rename to Sapfor/projects/dvm/tools/Zlib/src/inffast.c diff --git a/Sapfor/_projects/dvm/tools/Zlib/src/inflate.c b/Sapfor/projects/dvm/tools/Zlib/src/inflate.c similarity index 100% rename from Sapfor/_projects/dvm/tools/Zlib/src/inflate.c rename to Sapfor/projects/dvm/tools/Zlib/src/inflate.c diff --git a/Sapfor/_projects/dvm/tools/Zlib/src/inftrees.c b/Sapfor/projects/dvm/tools/Zlib/src/inftrees.c similarity index 100% rename from Sapfor/_projects/dvm/tools/Zlib/src/inftrees.c rename to Sapfor/projects/dvm/tools/Zlib/src/inftrees.c diff --git a/Sapfor/_projects/dvm/tools/Zlib/src/infutil.c b/Sapfor/projects/dvm/tools/Zlib/src/infutil.c similarity index 100% rename from Sapfor/_projects/dvm/tools/Zlib/src/infutil.c rename to Sapfor/projects/dvm/tools/Zlib/src/infutil.c diff --git a/Sapfor/_projects/dvm/tools/Zlib/src/maketree.c b/Sapfor/projects/dvm/tools/Zlib/src/maketree.c similarity index 100% rename from Sapfor/_projects/dvm/tools/Zlib/src/maketree.c rename to Sapfor/projects/dvm/tools/Zlib/src/maketree.c diff --git a/Sapfor/_projects/dvm/tools/Zlib/src/minigzip.c b/Sapfor/projects/dvm/tools/Zlib/src/minigzip.c similarity index 100% rename from Sapfor/_projects/dvm/tools/Zlib/src/minigzip.c rename to Sapfor/projects/dvm/tools/Zlib/src/minigzip.c diff --git a/Sapfor/_projects/dvm/tools/Zlib/src/trees.c b/Sapfor/projects/dvm/tools/Zlib/src/trees.c similarity index 100% rename from Sapfor/_projects/dvm/tools/Zlib/src/trees.c rename to Sapfor/projects/dvm/tools/Zlib/src/trees.c diff --git a/Sapfor/_projects/dvm/tools/Zlib/src/uncompr.c b/Sapfor/projects/dvm/tools/Zlib/src/uncompr.c similarity index 100% rename from Sapfor/_projects/dvm/tools/Zlib/src/uncompr.c rename to Sapfor/projects/dvm/tools/Zlib/src/uncompr.c diff --git a/Sapfor/_projects/dvm/tools/Zlib/src/zutil.c b/Sapfor/projects/dvm/tools/Zlib/src/zutil.c similarity index 100% rename from Sapfor/_projects/dvm/tools/Zlib/src/zutil.c rename to Sapfor/projects/dvm/tools/Zlib/src/zutil.c diff --git a/Sapfor/_projects/dvm/tools/pppa/branches/dvm4.07/makefile.uni b/Sapfor/projects/dvm/tools/pppa/branches/dvm4.07/makefile.uni similarity index 100% rename from Sapfor/_projects/dvm/tools/pppa/branches/dvm4.07/makefile.uni rename to Sapfor/projects/dvm/tools/pppa/branches/dvm4.07/makefile.uni diff --git a/Sapfor/_projects/dvm/tools/pppa/branches/dvm4.07/makefile.win b/Sapfor/projects/dvm/tools/pppa/branches/dvm4.07/makefile.win similarity index 100% rename from Sapfor/_projects/dvm/tools/pppa/branches/dvm4.07/makefile.win rename to Sapfor/projects/dvm/tools/pppa/branches/dvm4.07/makefile.win diff --git a/Sapfor/_projects/dvm/tools/pppa/branches/dvm4.07/src/bool.h b/Sapfor/projects/dvm/tools/pppa/branches/dvm4.07/src/bool.h similarity index 100% rename from Sapfor/_projects/dvm/tools/pppa/branches/dvm4.07/src/bool.h rename to Sapfor/projects/dvm/tools/pppa/branches/dvm4.07/src/bool.h diff --git a/Sapfor/_projects/dvm/tools/pppa/branches/dvm4.07/src/dvmvers.h b/Sapfor/projects/dvm/tools/pppa/branches/dvm4.07/src/dvmvers.h similarity index 100% rename from Sapfor/_projects/dvm/tools/pppa/branches/dvm4.07/src/dvmvers.h rename to Sapfor/projects/dvm/tools/pppa/branches/dvm4.07/src/dvmvers.h diff --git a/Sapfor/_projects/dvm/tools/pppa/branches/dvm4.07/src/inter.cpp b/Sapfor/projects/dvm/tools/pppa/branches/dvm4.07/src/inter.cpp similarity index 100% rename from Sapfor/_projects/dvm/tools/pppa/branches/dvm4.07/src/inter.cpp rename to Sapfor/projects/dvm/tools/pppa/branches/dvm4.07/src/inter.cpp diff --git a/Sapfor/_projects/dvm/tools/pppa/branches/dvm4.07/src/inter.h b/Sapfor/projects/dvm/tools/pppa/branches/dvm4.07/src/inter.h similarity index 100% rename from Sapfor/_projects/dvm/tools/pppa/branches/dvm4.07/src/inter.h rename to Sapfor/projects/dvm/tools/pppa/branches/dvm4.07/src/inter.h diff --git a/Sapfor/_projects/dvm/tools/pppa/branches/dvm4.07/src/makefile.uni b/Sapfor/projects/dvm/tools/pppa/branches/dvm4.07/src/makefile.uni similarity index 100% rename from Sapfor/_projects/dvm/tools/pppa/branches/dvm4.07/src/makefile.uni rename to Sapfor/projects/dvm/tools/pppa/branches/dvm4.07/src/makefile.uni diff --git a/Sapfor/_projects/dvm/tools/pppa/branches/dvm4.07/src/makefile.win b/Sapfor/projects/dvm/tools/pppa/branches/dvm4.07/src/makefile.win similarity index 100% rename from Sapfor/_projects/dvm/tools/pppa/branches/dvm4.07/src/makefile.win rename to Sapfor/projects/dvm/tools/pppa/branches/dvm4.07/src/makefile.win diff --git a/Sapfor/_projects/dvm/tools/pppa/branches/dvm4.07/src/potensyn.cpp b/Sapfor/projects/dvm/tools/pppa/branches/dvm4.07/src/potensyn.cpp similarity index 100% rename from Sapfor/_projects/dvm/tools/pppa/branches/dvm4.07/src/potensyn.cpp rename to Sapfor/projects/dvm/tools/pppa/branches/dvm4.07/src/potensyn.cpp diff --git a/Sapfor/_projects/dvm/tools/pppa/branches/dvm4.07/src/potensyn.h b/Sapfor/projects/dvm/tools/pppa/branches/dvm4.07/src/potensyn.h similarity index 100% rename from Sapfor/_projects/dvm/tools/pppa/branches/dvm4.07/src/potensyn.h rename to Sapfor/projects/dvm/tools/pppa/branches/dvm4.07/src/potensyn.h diff --git a/Sapfor/_projects/dvm/tools/pppa/branches/dvm4.07/src/statfile.cpp b/Sapfor/projects/dvm/tools/pppa/branches/dvm4.07/src/statfile.cpp similarity index 100% rename from Sapfor/_projects/dvm/tools/pppa/branches/dvm4.07/src/statfile.cpp rename to Sapfor/projects/dvm/tools/pppa/branches/dvm4.07/src/statfile.cpp diff --git a/Sapfor/_projects/dvm/tools/pppa/branches/dvm4.07/src/statist.h b/Sapfor/projects/dvm/tools/pppa/branches/dvm4.07/src/statist.h similarity index 100% rename from Sapfor/_projects/dvm/tools/pppa/branches/dvm4.07/src/statist.h rename to Sapfor/projects/dvm/tools/pppa/branches/dvm4.07/src/statist.h diff --git a/Sapfor/_projects/dvm/tools/pppa/branches/dvm4.07/src/statprintf.cpp b/Sapfor/projects/dvm/tools/pppa/branches/dvm4.07/src/statprintf.cpp similarity index 100% rename from Sapfor/_projects/dvm/tools/pppa/branches/dvm4.07/src/statprintf.cpp rename to Sapfor/projects/dvm/tools/pppa/branches/dvm4.07/src/statprintf.cpp diff --git a/Sapfor/_projects/dvm/tools/pppa/branches/dvm4.07/src/statprintf.h b/Sapfor/projects/dvm/tools/pppa/branches/dvm4.07/src/statprintf.h similarity index 100% rename from Sapfor/_projects/dvm/tools/pppa/branches/dvm4.07/src/statprintf.h rename to Sapfor/projects/dvm/tools/pppa/branches/dvm4.07/src/statprintf.h diff --git a/Sapfor/_projects/dvm/tools/pppa/branches/dvm4.07/src/statread.cpp b/Sapfor/projects/dvm/tools/pppa/branches/dvm4.07/src/statread.cpp similarity index 100% rename from Sapfor/_projects/dvm/tools/pppa/branches/dvm4.07/src/statread.cpp rename to Sapfor/projects/dvm/tools/pppa/branches/dvm4.07/src/statread.cpp diff --git a/Sapfor/_projects/dvm/tools/pppa/branches/dvm4.07/src/statread.h b/Sapfor/projects/dvm/tools/pppa/branches/dvm4.07/src/statread.h similarity index 100% rename from Sapfor/_projects/dvm/tools/pppa/branches/dvm4.07/src/statread.h rename to Sapfor/projects/dvm/tools/pppa/branches/dvm4.07/src/statread.h diff --git a/Sapfor/_projects/dvm/tools/pppa/branches/dvm4.07/src/strall.h b/Sapfor/projects/dvm/tools/pppa/branches/dvm4.07/src/strall.h similarity index 100% rename from Sapfor/_projects/dvm/tools/pppa/branches/dvm4.07/src/strall.h rename to Sapfor/projects/dvm/tools/pppa/branches/dvm4.07/src/strall.h diff --git a/Sapfor/_projects/dvm/tools/pppa/branches/dvm4.07/src/sysstat.h b/Sapfor/projects/dvm/tools/pppa/branches/dvm4.07/src/sysstat.h similarity index 100% rename from Sapfor/_projects/dvm/tools/pppa/branches/dvm4.07/src/sysstat.h rename to Sapfor/projects/dvm/tools/pppa/branches/dvm4.07/src/sysstat.h diff --git a/Sapfor/_projects/dvm/tools/pppa/branches/dvm4.07/src/treeinter.cpp b/Sapfor/projects/dvm/tools/pppa/branches/dvm4.07/src/treeinter.cpp similarity index 100% rename from Sapfor/_projects/dvm/tools/pppa/branches/dvm4.07/src/treeinter.cpp rename to Sapfor/projects/dvm/tools/pppa/branches/dvm4.07/src/treeinter.cpp diff --git a/Sapfor/_projects/dvm/tools/pppa/branches/dvm4.07/src/treeinter.h b/Sapfor/projects/dvm/tools/pppa/branches/dvm4.07/src/treeinter.h similarity index 100% rename from Sapfor/_projects/dvm/tools/pppa/branches/dvm4.07/src/treeinter.h rename to Sapfor/projects/dvm/tools/pppa/branches/dvm4.07/src/treeinter.h diff --git a/Sapfor/_projects/dvm/tools/pppa/branches/dvm4.07/src/ver.h b/Sapfor/projects/dvm/tools/pppa/branches/dvm4.07/src/ver.h similarity index 100% rename from Sapfor/_projects/dvm/tools/pppa/branches/dvm4.07/src/ver.h rename to Sapfor/projects/dvm/tools/pppa/branches/dvm4.07/src/ver.h diff --git a/Sapfor/_projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Include/deflate.h b/Sapfor/projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Include/deflate.h similarity index 100% rename from Sapfor/_projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Include/deflate.h rename to Sapfor/projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Include/deflate.h diff --git a/Sapfor/_projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Include/infblock.h b/Sapfor/projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Include/infblock.h similarity index 100% rename from Sapfor/_projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Include/infblock.h rename to Sapfor/projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Include/infblock.h diff --git a/Sapfor/_projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Include/infcodes.h b/Sapfor/projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Include/infcodes.h similarity index 100% rename from Sapfor/_projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Include/infcodes.h rename to Sapfor/projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Include/infcodes.h diff --git a/Sapfor/_projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Include/inffast.h b/Sapfor/projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Include/inffast.h similarity index 100% rename from Sapfor/_projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Include/inffast.h rename to Sapfor/projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Include/inffast.h diff --git a/Sapfor/_projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Include/inffixed.h b/Sapfor/projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Include/inffixed.h similarity index 100% rename from Sapfor/_projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Include/inffixed.h rename to Sapfor/projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Include/inffixed.h diff --git a/Sapfor/_projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Include/inftrees.h b/Sapfor/projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Include/inftrees.h similarity index 100% rename from Sapfor/_projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Include/inftrees.h rename to Sapfor/projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Include/inftrees.h diff --git a/Sapfor/_projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Include/infutil.h b/Sapfor/projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Include/infutil.h similarity index 100% rename from Sapfor/_projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Include/infutil.h rename to Sapfor/projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Include/infutil.h diff --git a/Sapfor/_projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Include/trees.h b/Sapfor/projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Include/trees.h similarity index 100% rename from Sapfor/_projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Include/trees.h rename to Sapfor/projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Include/trees.h diff --git a/Sapfor/_projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Include/zconf.h b/Sapfor/projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Include/zconf.h similarity index 100% rename from Sapfor/_projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Include/zconf.h rename to Sapfor/projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Include/zconf.h diff --git a/Sapfor/_projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Include/zlib.h b/Sapfor/projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Include/zlib.h similarity index 100% rename from Sapfor/_projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Include/zlib.h rename to Sapfor/projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Include/zlib.h diff --git a/Sapfor/_projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Include/zutil.h b/Sapfor/projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Include/zutil.h similarity index 100% rename from Sapfor/_projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Include/zutil.h rename to Sapfor/projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Include/zutil.h diff --git a/Sapfor/_projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/Makefile b/Sapfor/projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/Makefile similarity index 100% rename from Sapfor/_projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/Makefile rename to Sapfor/projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/Makefile diff --git a/Sapfor/_projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/Makefile.1 b/Sapfor/projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/Makefile.1 similarity index 100% rename from Sapfor/_projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/Makefile.1 rename to Sapfor/projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/Makefile.1 diff --git a/Sapfor/_projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/adler32.c b/Sapfor/projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/adler32.c similarity index 100% rename from Sapfor/_projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/adler32.c rename to Sapfor/projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/adler32.c diff --git a/Sapfor/_projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/compress.c b/Sapfor/projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/compress.c similarity index 100% rename from Sapfor/_projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/compress.c rename to Sapfor/projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/compress.c diff --git a/Sapfor/_projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/crc32.c b/Sapfor/projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/crc32.c similarity index 100% rename from Sapfor/_projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/crc32.c rename to Sapfor/projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/crc32.c diff --git a/Sapfor/_projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/deflate.c b/Sapfor/projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/deflate.c similarity index 100% rename from Sapfor/_projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/deflate.c rename to Sapfor/projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/deflate.c diff --git a/Sapfor/_projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/example.c b/Sapfor/projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/example.c similarity index 100% rename from Sapfor/_projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/example.c rename to Sapfor/projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/example.c diff --git a/Sapfor/_projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/gzio.c b/Sapfor/projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/gzio.c similarity index 100% rename from Sapfor/_projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/gzio.c rename to Sapfor/projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/gzio.c diff --git a/Sapfor/_projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/infblock.c b/Sapfor/projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/infblock.c similarity index 100% rename from Sapfor/_projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/infblock.c rename to Sapfor/projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/infblock.c diff --git a/Sapfor/_projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/infcodes.c b/Sapfor/projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/infcodes.c similarity index 100% rename from Sapfor/_projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/infcodes.c rename to Sapfor/projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/infcodes.c diff --git a/Sapfor/_projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/inffast.c b/Sapfor/projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/inffast.c similarity index 100% rename from Sapfor/_projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/inffast.c rename to Sapfor/projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/inffast.c diff --git a/Sapfor/_projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/inflate.c b/Sapfor/projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/inflate.c similarity index 100% rename from Sapfor/_projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/inflate.c rename to Sapfor/projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/inflate.c diff --git a/Sapfor/_projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/inftrees.c b/Sapfor/projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/inftrees.c similarity index 100% rename from Sapfor/_projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/inftrees.c rename to Sapfor/projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/inftrees.c diff --git a/Sapfor/_projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/infutil.c b/Sapfor/projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/infutil.c similarity index 100% rename from Sapfor/_projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/infutil.c rename to Sapfor/projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/infutil.c diff --git a/Sapfor/_projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/makefile.uni b/Sapfor/projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/makefile.uni similarity index 100% rename from Sapfor/_projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/makefile.uni rename to Sapfor/projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/makefile.uni diff --git a/Sapfor/_projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/maketree.c b/Sapfor/projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/maketree.c similarity index 100% rename from Sapfor/_projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/maketree.c rename to Sapfor/projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/maketree.c diff --git a/Sapfor/_projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/minigzip.c b/Sapfor/projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/minigzip.c similarity index 100% rename from Sapfor/_projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/minigzip.c rename to Sapfor/projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/minigzip.c diff --git a/Sapfor/_projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/trees.c b/Sapfor/projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/trees.c similarity index 100% rename from Sapfor/_projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/trees.c rename to Sapfor/projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/trees.c diff --git a/Sapfor/_projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/uncompr.c b/Sapfor/projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/uncompr.c similarity index 100% rename from Sapfor/_projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/uncompr.c rename to Sapfor/projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/uncompr.c diff --git a/Sapfor/_projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/zutil.c b/Sapfor/projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/zutil.c similarity index 100% rename from Sapfor/_projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/zutil.c rename to Sapfor/projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Src/zutil.c diff --git a/Sapfor/_projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Zlib.mak b/Sapfor/projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Zlib.mak similarity index 100% rename from Sapfor/_projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Zlib.mak rename to Sapfor/projects/dvm/tools/pppa/stuff/Zlib_1.1.3/Zlib.mak diff --git a/Sapfor/_projects/dvm/tools/pppa/stuff/Zlib_1.1.3/readme b/Sapfor/projects/dvm/tools/pppa/stuff/Zlib_1.1.3/readme similarity index 100% rename from Sapfor/_projects/dvm/tools/pppa/stuff/Zlib_1.1.3/readme rename to Sapfor/projects/dvm/tools/pppa/stuff/Zlib_1.1.3/readme diff --git a/Sapfor/_projects/dvm/tools/pppa/trunk/CMakeLists.txt b/Sapfor/projects/dvm/tools/pppa/trunk/CMakeLists.txt similarity index 100% rename from Sapfor/_projects/dvm/tools/pppa/trunk/CMakeLists.txt rename to Sapfor/projects/dvm/tools/pppa/trunk/CMakeLists.txt diff --git a/Sapfor/_projects/dvm/tools/pppa/trunk/makefile.uni b/Sapfor/projects/dvm/tools/pppa/trunk/makefile.uni similarity index 100% rename from Sapfor/_projects/dvm/tools/pppa/trunk/makefile.uni rename to Sapfor/projects/dvm/tools/pppa/trunk/makefile.uni diff --git a/Sapfor/_projects/dvm/tools/pppa/trunk/makefile.win b/Sapfor/projects/dvm/tools/pppa/trunk/makefile.win similarity index 100% rename from Sapfor/_projects/dvm/tools/pppa/trunk/makefile.win rename to Sapfor/projects/dvm/tools/pppa/trunk/makefile.win diff --git a/Sapfor/_projects/dvm/tools/pppa/trunk/src/CMakeLists.txt b/Sapfor/projects/dvm/tools/pppa/trunk/src/CMakeLists.txt similarity index 100% rename from Sapfor/_projects/dvm/tools/pppa/trunk/src/CMakeLists.txt rename to Sapfor/projects/dvm/tools/pppa/trunk/src/CMakeLists.txt diff --git a/Sapfor/_projects/dvm/tools/pppa/trunk/src/LibraryImport.cpp b/Sapfor/projects/dvm/tools/pppa/trunk/src/LibraryImport.cpp similarity index 100% rename from Sapfor/_projects/dvm/tools/pppa/trunk/src/LibraryImport.cpp rename to Sapfor/projects/dvm/tools/pppa/trunk/src/LibraryImport.cpp diff --git a/Sapfor/_projects/dvm/tools/pppa/trunk/src/LibraryImport.h b/Sapfor/projects/dvm/tools/pppa/trunk/src/LibraryImport.h similarity index 100% rename from Sapfor/_projects/dvm/tools/pppa/trunk/src/LibraryImport.h rename to Sapfor/projects/dvm/tools/pppa/trunk/src/LibraryImport.h diff --git a/Sapfor/_projects/dvm/tools/pppa/trunk/src/PPPA/PPPA.sln b/Sapfor/projects/dvm/tools/pppa/trunk/src/PPPA/PPPA.sln similarity index 100% rename from Sapfor/_projects/dvm/tools/pppa/trunk/src/PPPA/PPPA.sln rename to Sapfor/projects/dvm/tools/pppa/trunk/src/PPPA/PPPA.sln diff --git a/Sapfor/_projects/dvm/tools/pppa/trunk/src/PPPA/PPPA/PPPA.vcxproj b/Sapfor/projects/dvm/tools/pppa/trunk/src/PPPA/PPPA/PPPA.vcxproj similarity index 100% rename from Sapfor/_projects/dvm/tools/pppa/trunk/src/PPPA/PPPA/PPPA.vcxproj rename to Sapfor/projects/dvm/tools/pppa/trunk/src/PPPA/PPPA/PPPA.vcxproj diff --git a/Sapfor/_projects/dvm/tools/pppa/trunk/src/PPPA/PPPA/PPPA.vcxproj.filters b/Sapfor/projects/dvm/tools/pppa/trunk/src/PPPA/PPPA/PPPA.vcxproj.filters similarity index 100% rename from Sapfor/_projects/dvm/tools/pppa/trunk/src/PPPA/PPPA/PPPA.vcxproj.filters rename to Sapfor/projects/dvm/tools/pppa/trunk/src/PPPA/PPPA/PPPA.vcxproj.filters diff --git a/Sapfor/_projects/dvm/tools/pppa/trunk/src/bool.h b/Sapfor/projects/dvm/tools/pppa/trunk/src/bool.h similarity index 100% rename from Sapfor/_projects/dvm/tools/pppa/trunk/src/bool.h rename to Sapfor/projects/dvm/tools/pppa/trunk/src/bool.h diff --git a/Sapfor/_projects/dvm/tools/pppa/trunk/src/dvmh_stat.h b/Sapfor/projects/dvm/tools/pppa/trunk/src/dvmh_stat.h similarity index 100% rename from Sapfor/_projects/dvm/tools/pppa/trunk/src/dvmh_stat.h rename to Sapfor/projects/dvm/tools/pppa/trunk/src/dvmh_stat.h diff --git a/Sapfor/_projects/dvm/tools/pppa/trunk/src/dvmvers.h.in b/Sapfor/projects/dvm/tools/pppa/trunk/src/dvmvers.h.in similarity index 100% rename from Sapfor/_projects/dvm/tools/pppa/trunk/src/dvmvers.h.in rename to Sapfor/projects/dvm/tools/pppa/trunk/src/dvmvers.h.in diff --git a/Sapfor/_projects/dvm/tools/pppa/trunk/src/inter.cpp b/Sapfor/projects/dvm/tools/pppa/trunk/src/inter.cpp similarity index 100% rename from Sapfor/_projects/dvm/tools/pppa/trunk/src/inter.cpp rename to Sapfor/projects/dvm/tools/pppa/trunk/src/inter.cpp diff --git a/Sapfor/_projects/dvm/tools/pppa/trunk/src/inter.h b/Sapfor/projects/dvm/tools/pppa/trunk/src/inter.h similarity index 100% rename from Sapfor/_projects/dvm/tools/pppa/trunk/src/inter.h rename to Sapfor/projects/dvm/tools/pppa/trunk/src/inter.h diff --git a/Sapfor/_projects/dvm/tools/pppa/trunk/src/json.hpp b/Sapfor/projects/dvm/tools/pppa/trunk/src/json.hpp similarity index 100% rename from Sapfor/_projects/dvm/tools/pppa/trunk/src/json.hpp rename to Sapfor/projects/dvm/tools/pppa/trunk/src/json.hpp diff --git a/Sapfor/_projects/dvm/tools/pppa/trunk/src/makefile.uni b/Sapfor/projects/dvm/tools/pppa/trunk/src/makefile.uni similarity index 100% rename from Sapfor/_projects/dvm/tools/pppa/trunk/src/makefile.uni rename to Sapfor/projects/dvm/tools/pppa/trunk/src/makefile.uni diff --git a/Sapfor/_projects/dvm/tools/pppa/trunk/src/makefile.win b/Sapfor/projects/dvm/tools/pppa/trunk/src/makefile.win similarity index 100% rename from Sapfor/_projects/dvm/tools/pppa/trunk/src/makefile.win rename to Sapfor/projects/dvm/tools/pppa/trunk/src/makefile.win diff --git a/Sapfor/_projects/dvm/tools/pppa/trunk/src/makefileJnilib b/Sapfor/projects/dvm/tools/pppa/trunk/src/makefileJnilib similarity index 100% rename from Sapfor/_projects/dvm/tools/pppa/trunk/src/makefileJnilib rename to Sapfor/projects/dvm/tools/pppa/trunk/src/makefileJnilib diff --git a/Sapfor/_projects/dvm/tools/pppa/trunk/src/potensyn.cpp b/Sapfor/projects/dvm/tools/pppa/trunk/src/potensyn.cpp similarity index 100% rename from Sapfor/_projects/dvm/tools/pppa/trunk/src/potensyn.cpp rename to Sapfor/projects/dvm/tools/pppa/trunk/src/potensyn.cpp diff --git a/Sapfor/_projects/dvm/tools/pppa/trunk/src/potensyn.h b/Sapfor/projects/dvm/tools/pppa/trunk/src/potensyn.h similarity index 100% rename from Sapfor/_projects/dvm/tools/pppa/trunk/src/potensyn.h rename to Sapfor/projects/dvm/tools/pppa/trunk/src/potensyn.h diff --git a/Sapfor/_projects/dvm/tools/pppa/trunk/src/stat.cpp b/Sapfor/projects/dvm/tools/pppa/trunk/src/stat.cpp similarity index 100% rename from Sapfor/_projects/dvm/tools/pppa/trunk/src/stat.cpp rename to Sapfor/projects/dvm/tools/pppa/trunk/src/stat.cpp diff --git a/Sapfor/_projects/dvm/tools/pppa/trunk/src/statfile.cpp b/Sapfor/projects/dvm/tools/pppa/trunk/src/statfile.cpp similarity index 100% rename from Sapfor/_projects/dvm/tools/pppa/trunk/src/statfile.cpp rename to Sapfor/projects/dvm/tools/pppa/trunk/src/statfile.cpp diff --git a/Sapfor/_projects/dvm/tools/pppa/trunk/src/statinter.cpp b/Sapfor/projects/dvm/tools/pppa/trunk/src/statinter.cpp similarity index 100% rename from Sapfor/_projects/dvm/tools/pppa/trunk/src/statinter.cpp rename to Sapfor/projects/dvm/tools/pppa/trunk/src/statinter.cpp diff --git a/Sapfor/_projects/dvm/tools/pppa/trunk/src/statinter.h b/Sapfor/projects/dvm/tools/pppa/trunk/src/statinter.h similarity index 100% rename from Sapfor/_projects/dvm/tools/pppa/trunk/src/statinter.h rename to Sapfor/projects/dvm/tools/pppa/trunk/src/statinter.h diff --git a/Sapfor/_projects/dvm/tools/pppa/trunk/src/statist.h b/Sapfor/projects/dvm/tools/pppa/trunk/src/statist.h similarity index 100% rename from Sapfor/_projects/dvm/tools/pppa/trunk/src/statist.h rename to Sapfor/projects/dvm/tools/pppa/trunk/src/statist.h diff --git a/Sapfor/_projects/dvm/tools/pppa/trunk/src/statlist.cpp b/Sapfor/projects/dvm/tools/pppa/trunk/src/statlist.cpp similarity index 100% rename from Sapfor/_projects/dvm/tools/pppa/trunk/src/statlist.cpp rename to Sapfor/projects/dvm/tools/pppa/trunk/src/statlist.cpp diff --git a/Sapfor/_projects/dvm/tools/pppa/trunk/src/statlist.h b/Sapfor/projects/dvm/tools/pppa/trunk/src/statlist.h similarity index 100% rename from Sapfor/_projects/dvm/tools/pppa/trunk/src/statlist.h rename to Sapfor/projects/dvm/tools/pppa/trunk/src/statlist.h diff --git a/Sapfor/_projects/dvm/tools/pppa/trunk/src/statprintf.cpp b/Sapfor/projects/dvm/tools/pppa/trunk/src/statprintf.cpp similarity index 100% rename from Sapfor/_projects/dvm/tools/pppa/trunk/src/statprintf.cpp rename to Sapfor/projects/dvm/tools/pppa/trunk/src/statprintf.cpp diff --git a/Sapfor/_projects/dvm/tools/pppa/trunk/src/statprintf.h b/Sapfor/projects/dvm/tools/pppa/trunk/src/statprintf.h similarity index 100% rename from Sapfor/_projects/dvm/tools/pppa/trunk/src/statprintf.h rename to Sapfor/projects/dvm/tools/pppa/trunk/src/statprintf.h diff --git a/Sapfor/_projects/dvm/tools/pppa/trunk/src/statread.cpp b/Sapfor/projects/dvm/tools/pppa/trunk/src/statread.cpp similarity index 100% rename from Sapfor/_projects/dvm/tools/pppa/trunk/src/statread.cpp rename to Sapfor/projects/dvm/tools/pppa/trunk/src/statread.cpp diff --git a/Sapfor/_projects/dvm/tools/pppa/trunk/src/statread.h b/Sapfor/projects/dvm/tools/pppa/trunk/src/statread.h similarity index 100% rename from Sapfor/_projects/dvm/tools/pppa/trunk/src/statread.h rename to Sapfor/projects/dvm/tools/pppa/trunk/src/statread.h diff --git a/Sapfor/_projects/dvm/tools/pppa/trunk/src/strall.h b/Sapfor/projects/dvm/tools/pppa/trunk/src/strall.h similarity index 100% rename from Sapfor/_projects/dvm/tools/pppa/trunk/src/strall.h rename to Sapfor/projects/dvm/tools/pppa/trunk/src/strall.h diff --git a/Sapfor/_projects/dvm/tools/pppa/trunk/src/sysstat.h b/Sapfor/projects/dvm/tools/pppa/trunk/src/sysstat.h similarity index 100% rename from Sapfor/_projects/dvm/tools/pppa/trunk/src/sysstat.h rename to Sapfor/projects/dvm/tools/pppa/trunk/src/sysstat.h diff --git a/Sapfor/_projects/dvm/tools/pppa/trunk/src/treeinter.cpp b/Sapfor/projects/dvm/tools/pppa/trunk/src/treeinter.cpp similarity index 100% rename from Sapfor/_projects/dvm/tools/pppa/trunk/src/treeinter.cpp rename to Sapfor/projects/dvm/tools/pppa/trunk/src/treeinter.cpp diff --git a/Sapfor/_projects/dvm/tools/pppa/trunk/src/treeinter.h b/Sapfor/projects/dvm/tools/pppa/trunk/src/treeinter.h similarity index 100% rename from Sapfor/_projects/dvm/tools/pppa/trunk/src/treeinter.h rename to Sapfor/projects/dvm/tools/pppa/trunk/src/treeinter.h diff --git a/Sapfor/_projects/dvm/tools/pppa/trunk/src/ver.h b/Sapfor/projects/dvm/tools/pppa/trunk/src/ver.h similarity index 100% rename from Sapfor/_projects/dvm/tools/pppa/trunk/src/ver.h rename to Sapfor/projects/dvm/tools/pppa/trunk/src/ver.h diff --git a/Sapfor/_projects/paths.default.txt b/Sapfor/projects/paths.default.txt similarity index 100% rename from Sapfor/_projects/paths.default.txt rename to Sapfor/projects/paths.default.txt diff --git a/Sapfor/_src/CFGraph/CFGraph.cpp b/Sapfor/src/CFGraph/CFGraph.cpp similarity index 100% rename from Sapfor/_src/CFGraph/CFGraph.cpp rename to Sapfor/src/CFGraph/CFGraph.cpp diff --git a/Sapfor/_src/CFGraph/CFGraph.h b/Sapfor/src/CFGraph/CFGraph.h similarity index 100% rename from Sapfor/_src/CFGraph/CFGraph.h rename to Sapfor/src/CFGraph/CFGraph.h diff --git a/Sapfor/_src/CFGraph/DataFlow/backward_data_flow.h b/Sapfor/src/CFGraph/DataFlow/backward_data_flow.h similarity index 100% rename from Sapfor/_src/CFGraph/DataFlow/backward_data_flow.h rename to Sapfor/src/CFGraph/DataFlow/backward_data_flow.h diff --git a/Sapfor/_src/CFGraph/DataFlow/backward_data_flow_impl.h b/Sapfor/src/CFGraph/DataFlow/backward_data_flow_impl.h similarity index 100% rename from Sapfor/_src/CFGraph/DataFlow/backward_data_flow_impl.h rename to Sapfor/src/CFGraph/DataFlow/backward_data_flow_impl.h diff --git a/Sapfor/_src/CFGraph/DataFlow/data_flow.h b/Sapfor/src/CFGraph/DataFlow/data_flow.h similarity index 100% rename from Sapfor/_src/CFGraph/DataFlow/data_flow.h rename to Sapfor/src/CFGraph/DataFlow/data_flow.h diff --git a/Sapfor/_src/CFGraph/DataFlow/data_flow_impl.h b/Sapfor/src/CFGraph/DataFlow/data_flow_impl.h similarity index 100% rename from Sapfor/_src/CFGraph/DataFlow/data_flow_impl.h rename to Sapfor/src/CFGraph/DataFlow/data_flow_impl.h diff --git a/Sapfor/_src/CFGraph/IR.cpp b/Sapfor/src/CFGraph/IR.cpp similarity index 100% rename from Sapfor/_src/CFGraph/IR.cpp rename to Sapfor/src/CFGraph/IR.cpp diff --git a/Sapfor/_src/CFGraph/IR.h b/Sapfor/src/CFGraph/IR.h similarity index 100% rename from Sapfor/_src/CFGraph/IR.h rename to Sapfor/src/CFGraph/IR.h diff --git a/Sapfor/_src/CFGraph/RD_subst.cpp b/Sapfor/src/CFGraph/RD_subst.cpp similarity index 100% rename from Sapfor/_src/CFGraph/RD_subst.cpp rename to Sapfor/src/CFGraph/RD_subst.cpp diff --git a/Sapfor/_src/CFGraph/RD_subst.h b/Sapfor/src/CFGraph/RD_subst.h similarity index 100% rename from Sapfor/_src/CFGraph/RD_subst.h rename to Sapfor/src/CFGraph/RD_subst.h diff --git a/Sapfor/_src/CFGraph/live_variable_analysis.cpp b/Sapfor/src/CFGraph/live_variable_analysis.cpp similarity index 100% rename from Sapfor/_src/CFGraph/live_variable_analysis.cpp rename to Sapfor/src/CFGraph/live_variable_analysis.cpp diff --git a/Sapfor/_src/CFGraph/live_variable_analysis.h b/Sapfor/src/CFGraph/live_variable_analysis.h similarity index 100% rename from Sapfor/_src/CFGraph/live_variable_analysis.h rename to Sapfor/src/CFGraph/live_variable_analysis.h diff --git a/Sapfor/_src/CFGraph/private_variables_analysis.cpp b/Sapfor/src/CFGraph/private_variables_analysis.cpp similarity index 100% rename from Sapfor/_src/CFGraph/private_variables_analysis.cpp rename to Sapfor/src/CFGraph/private_variables_analysis.cpp diff --git a/Sapfor/_src/CFGraph/private_variables_analysis.h b/Sapfor/src/CFGraph/private_variables_analysis.h similarity index 100% rename from Sapfor/_src/CFGraph/private_variables_analysis.h rename to Sapfor/src/CFGraph/private_variables_analysis.h diff --git a/Sapfor/_src/CreateInterTree/CreateInterTree.cpp b/Sapfor/src/CreateInterTree/CreateInterTree.cpp similarity index 100% rename from Sapfor/_src/CreateInterTree/CreateInterTree.cpp rename to Sapfor/src/CreateInterTree/CreateInterTree.cpp diff --git a/Sapfor/_src/CreateInterTree/CreateInterTree.h b/Sapfor/src/CreateInterTree/CreateInterTree.h similarity index 100% rename from Sapfor/_src/CreateInterTree/CreateInterTree.h rename to Sapfor/src/CreateInterTree/CreateInterTree.h diff --git a/Sapfor/_src/DirectiveProcessing/directive_analyzer.cpp b/Sapfor/src/DirectiveProcessing/directive_analyzer.cpp similarity index 100% rename from Sapfor/_src/DirectiveProcessing/directive_analyzer.cpp rename to Sapfor/src/DirectiveProcessing/directive_analyzer.cpp diff --git a/Sapfor/_src/DirectiveProcessing/directive_analyzer.h b/Sapfor/src/DirectiveProcessing/directive_analyzer.h similarity index 100% rename from Sapfor/_src/DirectiveProcessing/directive_analyzer.h rename to Sapfor/src/DirectiveProcessing/directive_analyzer.h diff --git a/Sapfor/_src/DirectiveProcessing/directive_creator.cpp b/Sapfor/src/DirectiveProcessing/directive_creator.cpp similarity index 100% rename from Sapfor/_src/DirectiveProcessing/directive_creator.cpp rename to Sapfor/src/DirectiveProcessing/directive_creator.cpp diff --git a/Sapfor/_src/DirectiveProcessing/directive_creator.h b/Sapfor/src/DirectiveProcessing/directive_creator.h similarity index 100% rename from Sapfor/_src/DirectiveProcessing/directive_creator.h rename to Sapfor/src/DirectiveProcessing/directive_creator.h diff --git a/Sapfor/_src/DirectiveProcessing/directive_creator_base.cpp b/Sapfor/src/DirectiveProcessing/directive_creator_base.cpp similarity index 100% rename from Sapfor/_src/DirectiveProcessing/directive_creator_base.cpp rename to Sapfor/src/DirectiveProcessing/directive_creator_base.cpp diff --git a/Sapfor/_src/DirectiveProcessing/directive_omp_parser.cpp b/Sapfor/src/DirectiveProcessing/directive_omp_parser.cpp similarity index 100% rename from Sapfor/_src/DirectiveProcessing/directive_omp_parser.cpp rename to Sapfor/src/DirectiveProcessing/directive_omp_parser.cpp diff --git a/Sapfor/_src/DirectiveProcessing/directive_omp_parser.h b/Sapfor/src/DirectiveProcessing/directive_omp_parser.h similarity index 100% rename from Sapfor/_src/DirectiveProcessing/directive_omp_parser.h rename to Sapfor/src/DirectiveProcessing/directive_omp_parser.h diff --git a/Sapfor/_src/DirectiveProcessing/directive_parser.cpp b/Sapfor/src/DirectiveProcessing/directive_parser.cpp similarity index 100% rename from Sapfor/_src/DirectiveProcessing/directive_parser.cpp rename to Sapfor/src/DirectiveProcessing/directive_parser.cpp diff --git a/Sapfor/_src/DirectiveProcessing/directive_parser.h b/Sapfor/src/DirectiveProcessing/directive_parser.h similarity index 100% rename from Sapfor/_src/DirectiveProcessing/directive_parser.h rename to Sapfor/src/DirectiveProcessing/directive_parser.h diff --git a/Sapfor/_src/DirectiveProcessing/insert_directive.cpp b/Sapfor/src/DirectiveProcessing/insert_directive.cpp similarity index 100% rename from Sapfor/_src/DirectiveProcessing/insert_directive.cpp rename to Sapfor/src/DirectiveProcessing/insert_directive.cpp diff --git a/Sapfor/_src/DirectiveProcessing/insert_directive.h b/Sapfor/src/DirectiveProcessing/insert_directive.h similarity index 100% rename from Sapfor/_src/DirectiveProcessing/insert_directive.h rename to Sapfor/src/DirectiveProcessing/insert_directive.h diff --git a/Sapfor/_src/DirectiveProcessing/remote_access.cpp b/Sapfor/src/DirectiveProcessing/remote_access.cpp similarity index 100% rename from Sapfor/_src/DirectiveProcessing/remote_access.cpp rename to Sapfor/src/DirectiveProcessing/remote_access.cpp diff --git a/Sapfor/_src/DirectiveProcessing/remote_access.h b/Sapfor/src/DirectiveProcessing/remote_access.h similarity index 100% rename from Sapfor/_src/DirectiveProcessing/remote_access.h rename to Sapfor/src/DirectiveProcessing/remote_access.h diff --git a/Sapfor/_src/DirectiveProcessing/remote_access_base.cpp b/Sapfor/src/DirectiveProcessing/remote_access_base.cpp similarity index 100% rename from Sapfor/_src/DirectiveProcessing/remote_access_base.cpp rename to Sapfor/src/DirectiveProcessing/remote_access_base.cpp diff --git a/Sapfor/_src/DirectiveProcessing/shadow.cpp b/Sapfor/src/DirectiveProcessing/shadow.cpp similarity index 100% rename from Sapfor/_src/DirectiveProcessing/shadow.cpp rename to Sapfor/src/DirectiveProcessing/shadow.cpp diff --git a/Sapfor/_src/DirectiveProcessing/shadow.h b/Sapfor/src/DirectiveProcessing/shadow.h similarity index 100% rename from Sapfor/_src/DirectiveProcessing/shadow.h rename to Sapfor/src/DirectiveProcessing/shadow.h diff --git a/Sapfor/_src/DirectiveProcessing/spf_directive_preproc.cpp b/Sapfor/src/DirectiveProcessing/spf_directive_preproc.cpp similarity index 100% rename from Sapfor/_src/DirectiveProcessing/spf_directive_preproc.cpp rename to Sapfor/src/DirectiveProcessing/spf_directive_preproc.cpp diff --git a/Sapfor/_src/Distribution/Array.cpp b/Sapfor/src/Distribution/Array.cpp similarity index 100% rename from Sapfor/_src/Distribution/Array.cpp rename to Sapfor/src/Distribution/Array.cpp diff --git a/Sapfor/_src/Distribution/Array.h b/Sapfor/src/Distribution/Array.h similarity index 100% rename from Sapfor/_src/Distribution/Array.h rename to Sapfor/src/Distribution/Array.h diff --git a/Sapfor/_src/Distribution/ArrayAnalysis.cpp b/Sapfor/src/Distribution/ArrayAnalysis.cpp similarity index 100% rename from Sapfor/_src/Distribution/ArrayAnalysis.cpp rename to Sapfor/src/Distribution/ArrayAnalysis.cpp diff --git a/Sapfor/_src/Distribution/Arrays.h b/Sapfor/src/Distribution/Arrays.h similarity index 100% rename from Sapfor/_src/Distribution/Arrays.h rename to Sapfor/src/Distribution/Arrays.h diff --git a/Sapfor/_src/Distribution/CreateDistributionDirs.cpp b/Sapfor/src/Distribution/CreateDistributionDirs.cpp similarity index 100% rename from Sapfor/_src/Distribution/CreateDistributionDirs.cpp rename to Sapfor/src/Distribution/CreateDistributionDirs.cpp diff --git a/Sapfor/_src/Distribution/CreateDistributionDirs.h b/Sapfor/src/Distribution/CreateDistributionDirs.h similarity index 100% rename from Sapfor/_src/Distribution/CreateDistributionDirs.h rename to Sapfor/src/Distribution/CreateDistributionDirs.h diff --git a/Sapfor/_src/Distribution/Cycle.cpp b/Sapfor/src/Distribution/Cycle.cpp similarity index 100% rename from Sapfor/_src/Distribution/Cycle.cpp rename to Sapfor/src/Distribution/Cycle.cpp diff --git a/Sapfor/_src/Distribution/Cycle.h b/Sapfor/src/Distribution/Cycle.h similarity index 100% rename from Sapfor/_src/Distribution/Cycle.h rename to Sapfor/src/Distribution/Cycle.h diff --git a/Sapfor/_src/Distribution/Distribution.cpp b/Sapfor/src/Distribution/Distribution.cpp similarity index 100% rename from Sapfor/_src/Distribution/Distribution.cpp rename to Sapfor/src/Distribution/Distribution.cpp diff --git a/Sapfor/_src/Distribution/Distribution.h b/Sapfor/src/Distribution/Distribution.h similarity index 100% rename from Sapfor/_src/Distribution/Distribution.h rename to Sapfor/src/Distribution/Distribution.h diff --git a/Sapfor/_src/Distribution/DvmhDirective.cpp b/Sapfor/src/Distribution/DvmhDirective.cpp similarity index 100% rename from Sapfor/_src/Distribution/DvmhDirective.cpp rename to Sapfor/src/Distribution/DvmhDirective.cpp diff --git a/Sapfor/_src/Distribution/DvmhDirective.h b/Sapfor/src/Distribution/DvmhDirective.h similarity index 100% rename from Sapfor/_src/Distribution/DvmhDirective.h rename to Sapfor/src/Distribution/DvmhDirective.h diff --git a/Sapfor/_src/Distribution/DvmhDirectiveBase.cpp b/Sapfor/src/Distribution/DvmhDirectiveBase.cpp similarity index 100% rename from Sapfor/_src/Distribution/DvmhDirectiveBase.cpp rename to Sapfor/src/Distribution/DvmhDirectiveBase.cpp diff --git a/Sapfor/_src/Distribution/DvmhDirectiveBase.h b/Sapfor/src/Distribution/DvmhDirectiveBase.h similarity index 100% rename from Sapfor/_src/Distribution/DvmhDirectiveBase.h rename to Sapfor/src/Distribution/DvmhDirectiveBase.h diff --git a/Sapfor/_src/Distribution/DvmhDirective_func.h b/Sapfor/src/Distribution/DvmhDirective_func.h similarity index 100% rename from Sapfor/_src/Distribution/DvmhDirective_func.h rename to Sapfor/src/Distribution/DvmhDirective_func.h diff --git a/Sapfor/_src/Distribution/GraphCSR.cpp b/Sapfor/src/Distribution/GraphCSR.cpp similarity index 100% rename from Sapfor/_src/Distribution/GraphCSR.cpp rename to Sapfor/src/Distribution/GraphCSR.cpp diff --git a/Sapfor/_src/Distribution/GraphCSR.h b/Sapfor/src/Distribution/GraphCSR.h similarity index 100% rename from Sapfor/_src/Distribution/GraphCSR.h rename to Sapfor/src/Distribution/GraphCSR.h diff --git a/Sapfor/_src/DvmhRegions/DvmhRegion.cpp b/Sapfor/src/DvmhRegions/DvmhRegion.cpp similarity index 100% rename from Sapfor/_src/DvmhRegions/DvmhRegion.cpp rename to Sapfor/src/DvmhRegions/DvmhRegion.cpp diff --git a/Sapfor/_src/DvmhRegions/DvmhRegion.h b/Sapfor/src/DvmhRegions/DvmhRegion.h similarity index 100% rename from Sapfor/_src/DvmhRegions/DvmhRegion.h rename to Sapfor/src/DvmhRegions/DvmhRegion.h diff --git a/Sapfor/_src/DvmhRegions/DvmhRegionInserter.cpp b/Sapfor/src/DvmhRegions/DvmhRegionInserter.cpp similarity index 100% rename from Sapfor/_src/DvmhRegions/DvmhRegionInserter.cpp rename to Sapfor/src/DvmhRegions/DvmhRegionInserter.cpp diff --git a/Sapfor/_src/DvmhRegions/DvmhRegionInserter.h b/Sapfor/src/DvmhRegions/DvmhRegionInserter.h similarity index 100% rename from Sapfor/_src/DvmhRegions/DvmhRegionInserter.h rename to Sapfor/src/DvmhRegions/DvmhRegionInserter.h diff --git a/Sapfor/_src/DvmhRegions/LoopChecker.cpp b/Sapfor/src/DvmhRegions/LoopChecker.cpp similarity index 100% rename from Sapfor/_src/DvmhRegions/LoopChecker.cpp rename to Sapfor/src/DvmhRegions/LoopChecker.cpp diff --git a/Sapfor/_src/DvmhRegions/LoopChecker.h b/Sapfor/src/DvmhRegions/LoopChecker.h similarity index 100% rename from Sapfor/_src/DvmhRegions/LoopChecker.h rename to Sapfor/src/DvmhRegions/LoopChecker.h diff --git a/Sapfor/_src/DvmhRegions/ReadWriteAnalyzer.cpp b/Sapfor/src/DvmhRegions/ReadWriteAnalyzer.cpp similarity index 100% rename from Sapfor/_src/DvmhRegions/ReadWriteAnalyzer.cpp rename to Sapfor/src/DvmhRegions/ReadWriteAnalyzer.cpp diff --git a/Sapfor/_src/DvmhRegions/ReadWriteAnalyzer.h b/Sapfor/src/DvmhRegions/ReadWriteAnalyzer.h similarity index 100% rename from Sapfor/_src/DvmhRegions/ReadWriteAnalyzer.h rename to Sapfor/src/DvmhRegions/ReadWriteAnalyzer.h diff --git a/Sapfor/_src/DvmhRegions/RegionsMerger.cpp b/Sapfor/src/DvmhRegions/RegionsMerger.cpp similarity index 100% rename from Sapfor/_src/DvmhRegions/RegionsMerger.cpp rename to Sapfor/src/DvmhRegions/RegionsMerger.cpp diff --git a/Sapfor/_src/DvmhRegions/RegionsMerger.h b/Sapfor/src/DvmhRegions/RegionsMerger.h similarity index 100% rename from Sapfor/_src/DvmhRegions/RegionsMerger.h rename to Sapfor/src/DvmhRegions/RegionsMerger.h diff --git a/Sapfor/_src/DvmhRegions/TypedSymbol.cpp b/Sapfor/src/DvmhRegions/TypedSymbol.cpp similarity index 100% rename from Sapfor/_src/DvmhRegions/TypedSymbol.cpp rename to Sapfor/src/DvmhRegions/TypedSymbol.cpp diff --git a/Sapfor/_src/DvmhRegions/TypedSymbol.h b/Sapfor/src/DvmhRegions/TypedSymbol.h similarity index 100% rename from Sapfor/_src/DvmhRegions/TypedSymbol.h rename to Sapfor/src/DvmhRegions/TypedSymbol.h diff --git a/Sapfor/_src/DvmhRegions/VarUsages.cpp b/Sapfor/src/DvmhRegions/VarUsages.cpp similarity index 100% rename from Sapfor/_src/DvmhRegions/VarUsages.cpp rename to Sapfor/src/DvmhRegions/VarUsages.cpp diff --git a/Sapfor/_src/DvmhRegions/VarUsages.h b/Sapfor/src/DvmhRegions/VarUsages.h similarity index 100% rename from Sapfor/_src/DvmhRegions/VarUsages.h rename to Sapfor/src/DvmhRegions/VarUsages.h diff --git a/Sapfor/_src/DynamicAnalysis/createParallelRegions.cpp b/Sapfor/src/DynamicAnalysis/createParallelRegions.cpp similarity index 100% rename from Sapfor/_src/DynamicAnalysis/createParallelRegions.cpp rename to Sapfor/src/DynamicAnalysis/createParallelRegions.cpp diff --git a/Sapfor/_src/DynamicAnalysis/createParallelRegions.h b/Sapfor/src/DynamicAnalysis/createParallelRegions.h similarity index 100% rename from Sapfor/_src/DynamicAnalysis/createParallelRegions.h rename to Sapfor/src/DynamicAnalysis/createParallelRegions.h diff --git a/Sapfor/_src/DynamicAnalysis/gCov_parser.cpp b/Sapfor/src/DynamicAnalysis/gCov_parser.cpp similarity index 100% rename from Sapfor/_src/DynamicAnalysis/gCov_parser.cpp rename to Sapfor/src/DynamicAnalysis/gCov_parser.cpp diff --git a/Sapfor/_src/DynamicAnalysis/gCov_parser_func.h b/Sapfor/src/DynamicAnalysis/gCov_parser_func.h similarity index 100% rename from Sapfor/_src/DynamicAnalysis/gCov_parser_func.h rename to Sapfor/src/DynamicAnalysis/gCov_parser_func.h diff --git a/Sapfor/_src/DynamicAnalysis/gcov_info.cpp b/Sapfor/src/DynamicAnalysis/gcov_info.cpp similarity index 100% rename from Sapfor/_src/DynamicAnalysis/gcov_info.cpp rename to Sapfor/src/DynamicAnalysis/gcov_info.cpp diff --git a/Sapfor/_src/DynamicAnalysis/gcov_info.h b/Sapfor/src/DynamicAnalysis/gcov_info.h similarity index 100% rename from Sapfor/_src/DynamicAnalysis/gcov_info.h rename to Sapfor/src/DynamicAnalysis/gcov_info.h diff --git a/Sapfor/_src/ExpressionTransform/control_flow_graph_part.cpp b/Sapfor/src/ExpressionTransform/control_flow_graph_part.cpp similarity index 100% rename from Sapfor/_src/ExpressionTransform/control_flow_graph_part.cpp rename to Sapfor/src/ExpressionTransform/control_flow_graph_part.cpp diff --git a/Sapfor/_src/ExpressionTransform/expr_transform.cpp b/Sapfor/src/ExpressionTransform/expr_transform.cpp similarity index 100% rename from Sapfor/_src/ExpressionTransform/expr_transform.cpp rename to Sapfor/src/ExpressionTransform/expr_transform.cpp diff --git a/Sapfor/_src/ExpressionTransform/expr_transform.h b/Sapfor/src/ExpressionTransform/expr_transform.h similarity index 100% rename from Sapfor/_src/ExpressionTransform/expr_transform.h rename to Sapfor/src/ExpressionTransform/expr_transform.h diff --git a/Sapfor/_src/GraphCall/graph_calls.cpp b/Sapfor/src/GraphCall/graph_calls.cpp similarity index 100% rename from Sapfor/_src/GraphCall/graph_calls.cpp rename to Sapfor/src/GraphCall/graph_calls.cpp diff --git a/Sapfor/_src/GraphCall/graph_calls.h b/Sapfor/src/GraphCall/graph_calls.h similarity index 100% rename from Sapfor/_src/GraphCall/graph_calls.h rename to Sapfor/src/GraphCall/graph_calls.h diff --git a/Sapfor/_src/GraphCall/graph_calls_base.cpp b/Sapfor/src/GraphCall/graph_calls_base.cpp similarity index 100% rename from Sapfor/_src/GraphCall/graph_calls_base.cpp rename to Sapfor/src/GraphCall/graph_calls_base.cpp diff --git a/Sapfor/_src/GraphCall/graph_calls_func.h b/Sapfor/src/GraphCall/graph_calls_func.h similarity index 100% rename from Sapfor/_src/GraphCall/graph_calls_func.h rename to Sapfor/src/GraphCall/graph_calls_func.h diff --git a/Sapfor/_src/GraphLoop/graph_loops.cpp b/Sapfor/src/GraphLoop/graph_loops.cpp similarity index 100% rename from Sapfor/_src/GraphLoop/graph_loops.cpp rename to Sapfor/src/GraphLoop/graph_loops.cpp diff --git a/Sapfor/_src/GraphLoop/graph_loops.h b/Sapfor/src/GraphLoop/graph_loops.h similarity index 100% rename from Sapfor/_src/GraphLoop/graph_loops.h rename to Sapfor/src/GraphLoop/graph_loops.h diff --git a/Sapfor/_src/GraphLoop/graph_loops_base.cpp b/Sapfor/src/GraphLoop/graph_loops_base.cpp similarity index 100% rename from Sapfor/_src/GraphLoop/graph_loops_base.cpp rename to Sapfor/src/GraphLoop/graph_loops_base.cpp diff --git a/Sapfor/_src/GraphLoop/graph_loops_func.h b/Sapfor/src/GraphLoop/graph_loops_func.h similarity index 100% rename from Sapfor/_src/GraphLoop/graph_loops_func.h rename to Sapfor/src/GraphLoop/graph_loops_func.h diff --git a/Sapfor/_src/Inliner/inliner.cpp b/Sapfor/src/Inliner/inliner.cpp similarity index 100% rename from Sapfor/_src/Inliner/inliner.cpp rename to Sapfor/src/Inliner/inliner.cpp diff --git a/Sapfor/_src/Inliner/inliner.h b/Sapfor/src/Inliner/inliner.h similarity index 100% rename from Sapfor/_src/Inliner/inliner.h rename to Sapfor/src/Inliner/inliner.h diff --git a/Sapfor/_src/LoopAnalyzer/allocations_prepoc.cpp b/Sapfor/src/LoopAnalyzer/allocations_prepoc.cpp similarity index 100% rename from Sapfor/_src/LoopAnalyzer/allocations_prepoc.cpp rename to Sapfor/src/LoopAnalyzer/allocations_prepoc.cpp diff --git a/Sapfor/_src/LoopAnalyzer/dep_analyzer.cpp b/Sapfor/src/LoopAnalyzer/dep_analyzer.cpp similarity index 100% rename from Sapfor/_src/LoopAnalyzer/dep_analyzer.cpp rename to Sapfor/src/LoopAnalyzer/dep_analyzer.cpp diff --git a/Sapfor/_src/LoopAnalyzer/loop_analyzer.cpp b/Sapfor/src/LoopAnalyzer/loop_analyzer.cpp similarity index 100% rename from Sapfor/_src/LoopAnalyzer/loop_analyzer.cpp rename to Sapfor/src/LoopAnalyzer/loop_analyzer.cpp diff --git a/Sapfor/_src/LoopAnalyzer/loop_analyzer.h b/Sapfor/src/LoopAnalyzer/loop_analyzer.h similarity index 100% rename from Sapfor/_src/LoopAnalyzer/loop_analyzer.h rename to Sapfor/src/LoopAnalyzer/loop_analyzer.h diff --git a/Sapfor/_src/ParallelizationRegions/ParRegions.cpp b/Sapfor/src/ParallelizationRegions/ParRegions.cpp similarity index 100% rename from Sapfor/_src/ParallelizationRegions/ParRegions.cpp rename to Sapfor/src/ParallelizationRegions/ParRegions.cpp diff --git a/Sapfor/_src/ParallelizationRegions/ParRegions.h b/Sapfor/src/ParallelizationRegions/ParRegions.h similarity index 100% rename from Sapfor/_src/ParallelizationRegions/ParRegions.h rename to Sapfor/src/ParallelizationRegions/ParRegions.h diff --git a/Sapfor/_src/ParallelizationRegions/ParRegions_func.h b/Sapfor/src/ParallelizationRegions/ParRegions_func.h similarity index 100% rename from Sapfor/_src/ParallelizationRegions/ParRegions_func.h rename to Sapfor/src/ParallelizationRegions/ParRegions_func.h diff --git a/Sapfor/_src/ParallelizationRegions/expand_extract_reg.cpp b/Sapfor/src/ParallelizationRegions/expand_extract_reg.cpp similarity index 100% rename from Sapfor/_src/ParallelizationRegions/expand_extract_reg.cpp rename to Sapfor/src/ParallelizationRegions/expand_extract_reg.cpp diff --git a/Sapfor/_src/ParallelizationRegions/expand_extract_reg.h b/Sapfor/src/ParallelizationRegions/expand_extract_reg.h similarity index 100% rename from Sapfor/_src/ParallelizationRegions/expand_extract_reg.h rename to Sapfor/src/ParallelizationRegions/expand_extract_reg.h diff --git a/Sapfor/_src/ParallelizationRegions/resolve_par_reg_conflicts.cpp b/Sapfor/src/ParallelizationRegions/resolve_par_reg_conflicts.cpp similarity index 100% rename from Sapfor/_src/ParallelizationRegions/resolve_par_reg_conflicts.cpp rename to Sapfor/src/ParallelizationRegions/resolve_par_reg_conflicts.cpp diff --git a/Sapfor/_src/ParallelizationRegions/resolve_par_reg_conflicts.h b/Sapfor/src/ParallelizationRegions/resolve_par_reg_conflicts.h similarity index 100% rename from Sapfor/_src/ParallelizationRegions/resolve_par_reg_conflicts.h rename to Sapfor/src/ParallelizationRegions/resolve_par_reg_conflicts.h diff --git a/Sapfor/_src/Predictor/Lib/AMView.cpp b/Sapfor/src/Predictor/Lib/AMView.cpp similarity index 100% rename from Sapfor/_src/Predictor/Lib/AMView.cpp rename to Sapfor/src/Predictor/Lib/AMView.cpp diff --git a/Sapfor/_src/Predictor/Lib/AMView.h b/Sapfor/src/Predictor/Lib/AMView.h similarity index 100% rename from Sapfor/_src/Predictor/Lib/AMView.h rename to Sapfor/src/Predictor/Lib/AMView.h diff --git a/Sapfor/_src/Predictor/Lib/AlignAxis.cpp b/Sapfor/src/Predictor/Lib/AlignAxis.cpp similarity index 100% rename from Sapfor/_src/Predictor/Lib/AlignAxis.cpp rename to Sapfor/src/Predictor/Lib/AlignAxis.cpp diff --git a/Sapfor/_src/Predictor/Lib/AlignAxis.h b/Sapfor/src/Predictor/Lib/AlignAxis.h similarity index 100% rename from Sapfor/_src/Predictor/Lib/AlignAxis.h rename to Sapfor/src/Predictor/Lib/AlignAxis.h diff --git a/Sapfor/_src/Predictor/Lib/BGroup.cpp b/Sapfor/src/Predictor/Lib/BGroup.cpp similarity index 100% rename from Sapfor/_src/Predictor/Lib/BGroup.cpp rename to Sapfor/src/Predictor/Lib/BGroup.cpp diff --git a/Sapfor/_src/Predictor/Lib/BGroup.h b/Sapfor/src/Predictor/Lib/BGroup.h similarity index 100% rename from Sapfor/_src/Predictor/Lib/BGroup.h rename to Sapfor/src/Predictor/Lib/BGroup.h diff --git a/Sapfor/_src/Predictor/Lib/Block.cpp b/Sapfor/src/Predictor/Lib/Block.cpp similarity index 100% rename from Sapfor/_src/Predictor/Lib/Block.cpp rename to Sapfor/src/Predictor/Lib/Block.cpp diff --git a/Sapfor/_src/Predictor/Lib/Block.h b/Sapfor/src/Predictor/Lib/Block.h similarity index 100% rename from Sapfor/_src/Predictor/Lib/Block.h rename to Sapfor/src/Predictor/Lib/Block.h diff --git a/Sapfor/_src/Predictor/Lib/CallInfoStructs.h b/Sapfor/src/Predictor/Lib/CallInfoStructs.h similarity index 100% rename from Sapfor/_src/Predictor/Lib/CallInfoStructs.h rename to Sapfor/src/Predictor/Lib/CallInfoStructs.h diff --git a/Sapfor/_src/Predictor/Lib/CallParams.cpp b/Sapfor/src/Predictor/Lib/CallParams.cpp similarity index 100% rename from Sapfor/_src/Predictor/Lib/CallParams.cpp rename to Sapfor/src/Predictor/Lib/CallParams.cpp diff --git a/Sapfor/_src/Predictor/Lib/CommCost.cpp b/Sapfor/src/Predictor/Lib/CommCost.cpp similarity index 100% rename from Sapfor/_src/Predictor/Lib/CommCost.cpp rename to Sapfor/src/Predictor/Lib/CommCost.cpp diff --git a/Sapfor/_src/Predictor/Lib/CommCost.h b/Sapfor/src/Predictor/Lib/CommCost.h similarity index 100% rename from Sapfor/_src/Predictor/Lib/CommCost.h rename to Sapfor/src/Predictor/Lib/CommCost.h diff --git a/Sapfor/_src/Predictor/Lib/DArray.cpp b/Sapfor/src/Predictor/Lib/DArray.cpp similarity index 100% rename from Sapfor/_src/Predictor/Lib/DArray.cpp rename to Sapfor/src/Predictor/Lib/DArray.cpp diff --git a/Sapfor/_src/Predictor/Lib/DArray.h b/Sapfor/src/Predictor/Lib/DArray.h similarity index 100% rename from Sapfor/_src/Predictor/Lib/DArray.h rename to Sapfor/src/Predictor/Lib/DArray.h diff --git a/Sapfor/_src/Predictor/Lib/DimBound.cpp b/Sapfor/src/Predictor/Lib/DimBound.cpp similarity index 100% rename from Sapfor/_src/Predictor/Lib/DimBound.cpp rename to Sapfor/src/Predictor/Lib/DimBound.cpp diff --git a/Sapfor/_src/Predictor/Lib/DimBound.h b/Sapfor/src/Predictor/Lib/DimBound.h similarity index 100% rename from Sapfor/_src/Predictor/Lib/DimBound.h rename to Sapfor/src/Predictor/Lib/DimBound.h diff --git a/Sapfor/_src/Predictor/Lib/DistAxis.cpp b/Sapfor/src/Predictor/Lib/DistAxis.cpp similarity index 100% rename from Sapfor/_src/Predictor/Lib/DistAxis.cpp rename to Sapfor/src/Predictor/Lib/DistAxis.cpp diff --git a/Sapfor/_src/Predictor/Lib/DistAxis.h b/Sapfor/src/Predictor/Lib/DistAxis.h similarity index 100% rename from Sapfor/_src/Predictor/Lib/DistAxis.h rename to Sapfor/src/Predictor/Lib/DistAxis.h diff --git a/Sapfor/_src/Predictor/Lib/Event.cpp b/Sapfor/src/Predictor/Lib/Event.cpp similarity index 100% rename from Sapfor/_src/Predictor/Lib/Event.cpp rename to Sapfor/src/Predictor/Lib/Event.cpp diff --git a/Sapfor/_src/Predictor/Lib/Event.h b/Sapfor/src/Predictor/Lib/Event.h similarity index 100% rename from Sapfor/_src/Predictor/Lib/Event.h rename to Sapfor/src/Predictor/Lib/Event.h diff --git a/Sapfor/_src/Predictor/Lib/FuncCall.cpp b/Sapfor/src/Predictor/Lib/FuncCall.cpp similarity index 100% rename from Sapfor/_src/Predictor/Lib/FuncCall.cpp rename to Sapfor/src/Predictor/Lib/FuncCall.cpp diff --git a/Sapfor/_src/Predictor/Lib/FuncCall.h b/Sapfor/src/Predictor/Lib/FuncCall.h similarity index 100% rename from Sapfor/_src/Predictor/Lib/FuncCall.h rename to Sapfor/src/Predictor/Lib/FuncCall.h diff --git a/Sapfor/_src/Predictor/Lib/Interval.cpp b/Sapfor/src/Predictor/Lib/Interval.cpp similarity index 100% rename from Sapfor/_src/Predictor/Lib/Interval.cpp rename to Sapfor/src/Predictor/Lib/Interval.cpp diff --git a/Sapfor/_src/Predictor/Lib/Interval.h b/Sapfor/src/Predictor/Lib/Interval.h similarity index 100% rename from Sapfor/_src/Predictor/Lib/Interval.h rename to Sapfor/src/Predictor/Lib/Interval.h diff --git a/Sapfor/_src/Predictor/Lib/IntervalTemplate.cpp b/Sapfor/src/Predictor/Lib/IntervalTemplate.cpp similarity index 100% rename from Sapfor/_src/Predictor/Lib/IntervalTemplate.cpp rename to Sapfor/src/Predictor/Lib/IntervalTemplate.cpp diff --git a/Sapfor/_src/Predictor/Lib/LoopBlock.cpp b/Sapfor/src/Predictor/Lib/LoopBlock.cpp similarity index 100% rename from Sapfor/_src/Predictor/Lib/LoopBlock.cpp rename to Sapfor/src/Predictor/Lib/LoopBlock.cpp diff --git a/Sapfor/_src/Predictor/Lib/LoopBlock.h b/Sapfor/src/Predictor/Lib/LoopBlock.h similarity index 100% rename from Sapfor/_src/Predictor/Lib/LoopBlock.h rename to Sapfor/src/Predictor/Lib/LoopBlock.h diff --git a/Sapfor/_src/Predictor/Lib/LoopLS.cpp b/Sapfor/src/Predictor/Lib/LoopLS.cpp similarity index 100% rename from Sapfor/_src/Predictor/Lib/LoopLS.cpp rename to Sapfor/src/Predictor/Lib/LoopLS.cpp diff --git a/Sapfor/_src/Predictor/Lib/LoopLS.h b/Sapfor/src/Predictor/Lib/LoopLS.h similarity index 100% rename from Sapfor/_src/Predictor/Lib/LoopLS.h rename to Sapfor/src/Predictor/Lib/LoopLS.h diff --git a/Sapfor/_src/Predictor/Lib/Ls.cpp b/Sapfor/src/Predictor/Lib/Ls.cpp similarity index 100% rename from Sapfor/_src/Predictor/Lib/Ls.cpp rename to Sapfor/src/Predictor/Lib/Ls.cpp diff --git a/Sapfor/_src/Predictor/Lib/Ls.h b/Sapfor/src/Predictor/Lib/Ls.h similarity index 100% rename from Sapfor/_src/Predictor/Lib/Ls.h rename to Sapfor/src/Predictor/Lib/Ls.h diff --git a/Sapfor/_src/Predictor/Lib/ModelDArray.cpp b/Sapfor/src/Predictor/Lib/ModelDArray.cpp similarity index 100% rename from Sapfor/_src/Predictor/Lib/ModelDArray.cpp rename to Sapfor/src/Predictor/Lib/ModelDArray.cpp diff --git a/Sapfor/_src/Predictor/Lib/ModelIO.cpp b/Sapfor/src/Predictor/Lib/ModelIO.cpp similarity index 100% rename from Sapfor/_src/Predictor/Lib/ModelIO.cpp rename to Sapfor/src/Predictor/Lib/ModelIO.cpp diff --git a/Sapfor/_src/Predictor/Lib/ModelInterval.cpp b/Sapfor/src/Predictor/Lib/ModelInterval.cpp similarity index 100% rename from Sapfor/_src/Predictor/Lib/ModelInterval.cpp rename to Sapfor/src/Predictor/Lib/ModelInterval.cpp diff --git a/Sapfor/_src/Predictor/Lib/ModelMPS_AM.cpp b/Sapfor/src/Predictor/Lib/ModelMPS_AM.cpp similarity index 100% rename from Sapfor/_src/Predictor/Lib/ModelMPS_AM.cpp rename to Sapfor/src/Predictor/Lib/ModelMPS_AM.cpp diff --git a/Sapfor/_src/Predictor/Lib/ModelParLoop.cpp b/Sapfor/src/Predictor/Lib/ModelParLoop.cpp similarity index 100% rename from Sapfor/_src/Predictor/Lib/ModelParLoop.cpp rename to Sapfor/src/Predictor/Lib/ModelParLoop.cpp diff --git a/Sapfor/_src/Predictor/Lib/ModelReduct.cpp b/Sapfor/src/Predictor/Lib/ModelReduct.cpp similarity index 100% rename from Sapfor/_src/Predictor/Lib/ModelReduct.cpp rename to Sapfor/src/Predictor/Lib/ModelReduct.cpp diff --git a/Sapfor/_src/Predictor/Lib/ModelRegular.cpp b/Sapfor/src/Predictor/Lib/ModelRegular.cpp similarity index 100% rename from Sapfor/_src/Predictor/Lib/ModelRegular.cpp rename to Sapfor/src/Predictor/Lib/ModelRegular.cpp diff --git a/Sapfor/_src/Predictor/Lib/ModelRemAccess.cpp b/Sapfor/src/Predictor/Lib/ModelRemAccess.cpp similarity index 100% rename from Sapfor/_src/Predictor/Lib/ModelRemAccess.cpp rename to Sapfor/src/Predictor/Lib/ModelRemAccess.cpp diff --git a/Sapfor/_src/Predictor/Lib/ModelShadow.cpp b/Sapfor/src/Predictor/Lib/ModelShadow.cpp similarity index 100% rename from Sapfor/_src/Predictor/Lib/ModelShadow.cpp rename to Sapfor/src/Predictor/Lib/ModelShadow.cpp diff --git a/Sapfor/_src/Predictor/Lib/ModelStructs.h b/Sapfor/src/Predictor/Lib/ModelStructs.h similarity index 100% rename from Sapfor/_src/Predictor/Lib/ModelStructs.h rename to Sapfor/src/Predictor/Lib/ModelStructs.h diff --git a/Sapfor/_src/Predictor/Lib/ParLoop.cpp b/Sapfor/src/Predictor/Lib/ParLoop.cpp similarity index 100% rename from Sapfor/_src/Predictor/Lib/ParLoop.cpp rename to Sapfor/src/Predictor/Lib/ParLoop.cpp diff --git a/Sapfor/_src/Predictor/Lib/ParLoop.h b/Sapfor/src/Predictor/Lib/ParLoop.h similarity index 100% rename from Sapfor/_src/Predictor/Lib/ParLoop.h rename to Sapfor/src/Predictor/Lib/ParLoop.h diff --git a/Sapfor/_src/Predictor/Lib/ParseString.cpp b/Sapfor/src/Predictor/Lib/ParseString.cpp similarity index 100% rename from Sapfor/_src/Predictor/Lib/ParseString.cpp rename to Sapfor/src/Predictor/Lib/ParseString.cpp diff --git a/Sapfor/_src/Predictor/Lib/ParseString.h b/Sapfor/src/Predictor/Lib/ParseString.h similarity index 100% rename from Sapfor/_src/Predictor/Lib/ParseString.h rename to Sapfor/src/Predictor/Lib/ParseString.h diff --git a/Sapfor/_src/Predictor/Lib/Processor.cpp b/Sapfor/src/Predictor/Lib/Processor.cpp similarity index 100% rename from Sapfor/_src/Predictor/Lib/Processor.cpp rename to Sapfor/src/Predictor/Lib/Processor.cpp diff --git a/Sapfor/_src/Predictor/Lib/Processor.h b/Sapfor/src/Predictor/Lib/Processor.h similarity index 100% rename from Sapfor/_src/Predictor/Lib/Processor.h rename to Sapfor/src/Predictor/Lib/Processor.h diff --git a/Sapfor/_src/Predictor/Lib/Ps.cpp b/Sapfor/src/Predictor/Lib/Ps.cpp similarity index 100% rename from Sapfor/_src/Predictor/Lib/Ps.cpp rename to Sapfor/src/Predictor/Lib/Ps.cpp diff --git a/Sapfor/_src/Predictor/Lib/Ps.h b/Sapfor/src/Predictor/Lib/Ps.h similarity index 100% rename from Sapfor/_src/Predictor/Lib/Ps.h rename to Sapfor/src/Predictor/Lib/Ps.h diff --git a/Sapfor/_src/Predictor/Lib/RedGroup.cpp b/Sapfor/src/Predictor/Lib/RedGroup.cpp similarity index 100% rename from Sapfor/_src/Predictor/Lib/RedGroup.cpp rename to Sapfor/src/Predictor/Lib/RedGroup.cpp diff --git a/Sapfor/_src/Predictor/Lib/RedGroup.h b/Sapfor/src/Predictor/Lib/RedGroup.h similarity index 100% rename from Sapfor/_src/Predictor/Lib/RedGroup.h rename to Sapfor/src/Predictor/Lib/RedGroup.h diff --git a/Sapfor/_src/Predictor/Lib/RedVar.cpp b/Sapfor/src/Predictor/Lib/RedVar.cpp similarity index 100% rename from Sapfor/_src/Predictor/Lib/RedVar.cpp rename to Sapfor/src/Predictor/Lib/RedVar.cpp diff --git a/Sapfor/_src/Predictor/Lib/RedVar.h b/Sapfor/src/Predictor/Lib/RedVar.h similarity index 100% rename from Sapfor/_src/Predictor/Lib/RedVar.h rename to Sapfor/src/Predictor/Lib/RedVar.h diff --git a/Sapfor/_src/Predictor/Lib/RemAccessBuf.cpp b/Sapfor/src/Predictor/Lib/RemAccessBuf.cpp similarity index 100% rename from Sapfor/_src/Predictor/Lib/RemAccessBuf.cpp rename to Sapfor/src/Predictor/Lib/RemAccessBuf.cpp diff --git a/Sapfor/_src/Predictor/Lib/RemAccessBuf.h b/Sapfor/src/Predictor/Lib/RemAccessBuf.h similarity index 100% rename from Sapfor/_src/Predictor/Lib/RemAccessBuf.h rename to Sapfor/src/Predictor/Lib/RemAccessBuf.h diff --git a/Sapfor/_src/Predictor/Lib/Space.cpp b/Sapfor/src/Predictor/Lib/Space.cpp similarity index 100% rename from Sapfor/_src/Predictor/Lib/Space.cpp rename to Sapfor/src/Predictor/Lib/Space.cpp diff --git a/Sapfor/_src/Predictor/Lib/Space.h b/Sapfor/src/Predictor/Lib/Space.h similarity index 100% rename from Sapfor/_src/Predictor/Lib/Space.h rename to Sapfor/src/Predictor/Lib/Space.h diff --git a/Sapfor/_src/Predictor/Lib/StdAfx.h b/Sapfor/src/Predictor/Lib/StdAfx.h similarity index 100% rename from Sapfor/_src/Predictor/Lib/StdAfx.h rename to Sapfor/src/Predictor/Lib/StdAfx.h diff --git a/Sapfor/_src/Predictor/Lib/TraceLine.cpp b/Sapfor/src/Predictor/Lib/TraceLine.cpp similarity index 100% rename from Sapfor/_src/Predictor/Lib/TraceLine.cpp rename to Sapfor/src/Predictor/Lib/TraceLine.cpp diff --git a/Sapfor/_src/Predictor/Lib/TraceLine.h b/Sapfor/src/Predictor/Lib/TraceLine.h similarity index 100% rename from Sapfor/_src/Predictor/Lib/TraceLine.h rename to Sapfor/src/Predictor/Lib/TraceLine.h diff --git a/Sapfor/_src/Predictor/Lib/Ver.h b/Sapfor/src/Predictor/Lib/Ver.h similarity index 100% rename from Sapfor/_src/Predictor/Lib/Ver.h rename to Sapfor/src/Predictor/Lib/Ver.h diff --git a/Sapfor/_src/Predictor/Lib/Vm.cpp b/Sapfor/src/Predictor/Lib/Vm.cpp similarity index 100% rename from Sapfor/_src/Predictor/Lib/Vm.cpp rename to Sapfor/src/Predictor/Lib/Vm.cpp diff --git a/Sapfor/_src/Predictor/Lib/Vm.h b/Sapfor/src/Predictor/Lib/Vm.h similarity index 100% rename from Sapfor/_src/Predictor/Lib/Vm.h rename to Sapfor/src/Predictor/Lib/Vm.h diff --git a/Sapfor/_src/Predictor/Lib/adler32.c b/Sapfor/src/Predictor/Lib/adler32.c similarity index 100% rename from Sapfor/_src/Predictor/Lib/adler32.c rename to Sapfor/src/Predictor/Lib/adler32.c diff --git a/Sapfor/_src/Predictor/Lib/compress.c b/Sapfor/src/Predictor/Lib/compress.c similarity index 100% rename from Sapfor/_src/Predictor/Lib/compress.c rename to Sapfor/src/Predictor/Lib/compress.c diff --git a/Sapfor/_src/Predictor/Lib/crc32.c b/Sapfor/src/Predictor/Lib/crc32.c similarity index 100% rename from Sapfor/_src/Predictor/Lib/crc32.c rename to Sapfor/src/Predictor/Lib/crc32.c diff --git a/Sapfor/_src/Predictor/Lib/deflate.c b/Sapfor/src/Predictor/Lib/deflate.c similarity index 100% rename from Sapfor/_src/Predictor/Lib/deflate.c rename to Sapfor/src/Predictor/Lib/deflate.c diff --git a/Sapfor/_src/Predictor/Lib/deflate.h b/Sapfor/src/Predictor/Lib/deflate.h similarity index 100% rename from Sapfor/_src/Predictor/Lib/deflate.h rename to Sapfor/src/Predictor/Lib/deflate.h diff --git a/Sapfor/_src/Predictor/Lib/gzio.c b/Sapfor/src/Predictor/Lib/gzio.c similarity index 100% rename from Sapfor/_src/Predictor/Lib/gzio.c rename to Sapfor/src/Predictor/Lib/gzio.c diff --git a/Sapfor/_src/Predictor/Lib/infblock.c b/Sapfor/src/Predictor/Lib/infblock.c similarity index 100% rename from Sapfor/_src/Predictor/Lib/infblock.c rename to Sapfor/src/Predictor/Lib/infblock.c diff --git a/Sapfor/_src/Predictor/Lib/infblock.h b/Sapfor/src/Predictor/Lib/infblock.h similarity index 100% rename from Sapfor/_src/Predictor/Lib/infblock.h rename to Sapfor/src/Predictor/Lib/infblock.h diff --git a/Sapfor/_src/Predictor/Lib/infcodes.c b/Sapfor/src/Predictor/Lib/infcodes.c similarity index 100% rename from Sapfor/_src/Predictor/Lib/infcodes.c rename to Sapfor/src/Predictor/Lib/infcodes.c diff --git a/Sapfor/_src/Predictor/Lib/infcodes.h b/Sapfor/src/Predictor/Lib/infcodes.h similarity index 100% rename from Sapfor/_src/Predictor/Lib/infcodes.h rename to Sapfor/src/Predictor/Lib/infcodes.h diff --git a/Sapfor/_src/Predictor/Lib/inffast.c b/Sapfor/src/Predictor/Lib/inffast.c similarity index 100% rename from Sapfor/_src/Predictor/Lib/inffast.c rename to Sapfor/src/Predictor/Lib/inffast.c diff --git a/Sapfor/_src/Predictor/Lib/inffast.h b/Sapfor/src/Predictor/Lib/inffast.h similarity index 100% rename from Sapfor/_src/Predictor/Lib/inffast.h rename to Sapfor/src/Predictor/Lib/inffast.h diff --git a/Sapfor/_src/Predictor/Lib/inffixed.h b/Sapfor/src/Predictor/Lib/inffixed.h similarity index 100% rename from Sapfor/_src/Predictor/Lib/inffixed.h rename to Sapfor/src/Predictor/Lib/inffixed.h diff --git a/Sapfor/_src/Predictor/Lib/inflate.c b/Sapfor/src/Predictor/Lib/inflate.c similarity index 100% rename from Sapfor/_src/Predictor/Lib/inflate.c rename to Sapfor/src/Predictor/Lib/inflate.c diff --git a/Sapfor/_src/Predictor/Lib/inftrees.c b/Sapfor/src/Predictor/Lib/inftrees.c similarity index 100% rename from Sapfor/_src/Predictor/Lib/inftrees.c rename to Sapfor/src/Predictor/Lib/inftrees.c diff --git a/Sapfor/_src/Predictor/Lib/inftrees.h b/Sapfor/src/Predictor/Lib/inftrees.h similarity index 100% rename from Sapfor/_src/Predictor/Lib/inftrees.h rename to Sapfor/src/Predictor/Lib/inftrees.h diff --git a/Sapfor/_src/Predictor/Lib/infutil.c b/Sapfor/src/Predictor/Lib/infutil.c similarity index 100% rename from Sapfor/_src/Predictor/Lib/infutil.c rename to Sapfor/src/Predictor/Lib/infutil.c diff --git a/Sapfor/_src/Predictor/Lib/infutil.h b/Sapfor/src/Predictor/Lib/infutil.h similarity index 100% rename from Sapfor/_src/Predictor/Lib/infutil.h rename to Sapfor/src/Predictor/Lib/infutil.h diff --git a/Sapfor/_src/Predictor/Lib/intersection.cpp b/Sapfor/src/Predictor/Lib/intersection.cpp similarity index 100% rename from Sapfor/_src/Predictor/Lib/intersection.cpp rename to Sapfor/src/Predictor/Lib/intersection.cpp diff --git a/Sapfor/_src/Predictor/Lib/predictor.cpp b/Sapfor/src/Predictor/Lib/predictor.cpp similarity index 100% rename from Sapfor/_src/Predictor/Lib/predictor.cpp rename to Sapfor/src/Predictor/Lib/predictor.cpp diff --git a/Sapfor/_src/Predictor/Lib/trees.c b/Sapfor/src/Predictor/Lib/trees.c similarity index 100% rename from Sapfor/_src/Predictor/Lib/trees.c rename to Sapfor/src/Predictor/Lib/trees.c diff --git a/Sapfor/_src/Predictor/Lib/trees.h b/Sapfor/src/Predictor/Lib/trees.h similarity index 100% rename from Sapfor/_src/Predictor/Lib/trees.h rename to Sapfor/src/Predictor/Lib/trees.h diff --git a/Sapfor/_src/Predictor/Lib/uncompr.c b/Sapfor/src/Predictor/Lib/uncompr.c similarity index 100% rename from Sapfor/_src/Predictor/Lib/uncompr.c rename to Sapfor/src/Predictor/Lib/uncompr.c diff --git a/Sapfor/_src/Predictor/Lib/zconf.h b/Sapfor/src/Predictor/Lib/zconf.h similarity index 100% rename from Sapfor/_src/Predictor/Lib/zconf.h rename to Sapfor/src/Predictor/Lib/zconf.h diff --git a/Sapfor/_src/Predictor/Lib/zlib.h b/Sapfor/src/Predictor/Lib/zlib.h similarity index 100% rename from Sapfor/_src/Predictor/Lib/zlib.h rename to Sapfor/src/Predictor/Lib/zlib.h diff --git a/Sapfor/_src/Predictor/Lib/zutil.c b/Sapfor/src/Predictor/Lib/zutil.c similarity index 100% rename from Sapfor/_src/Predictor/Lib/zutil.c rename to Sapfor/src/Predictor/Lib/zutil.c diff --git a/Sapfor/_src/Predictor/Lib/zutil.h b/Sapfor/src/Predictor/Lib/zutil.h similarity index 100% rename from Sapfor/_src/Predictor/Lib/zutil.h rename to Sapfor/src/Predictor/Lib/zutil.h diff --git a/Sapfor/_src/Predictor/PredictScheme.cpp b/Sapfor/src/Predictor/PredictScheme.cpp similarity index 100% rename from Sapfor/_src/Predictor/PredictScheme.cpp rename to Sapfor/src/Predictor/PredictScheme.cpp diff --git a/Sapfor/_src/Predictor/PredictScheme.h b/Sapfor/src/Predictor/PredictScheme.h similarity index 100% rename from Sapfor/_src/Predictor/PredictScheme.h rename to Sapfor/src/Predictor/PredictScheme.h diff --git a/Sapfor/_src/Predictor/PredictorInterface.h b/Sapfor/src/Predictor/PredictorInterface.h similarity index 100% rename from Sapfor/_src/Predictor/PredictorInterface.h rename to Sapfor/src/Predictor/PredictorInterface.h diff --git a/Sapfor/_src/Predictor/PredictorModel.cpp b/Sapfor/src/Predictor/PredictorModel.cpp similarity index 100% rename from Sapfor/_src/Predictor/PredictorModel.cpp rename to Sapfor/src/Predictor/PredictorModel.cpp diff --git a/Sapfor/_src/Predictor/PredictorModel.h b/Sapfor/src/Predictor/PredictorModel.h similarity index 100% rename from Sapfor/_src/Predictor/PredictorModel.h rename to Sapfor/src/Predictor/PredictorModel.h diff --git a/Sapfor/_src/PrivateAnalyzer/private_analyzer.cpp b/Sapfor/src/PrivateAnalyzer/private_analyzer.cpp similarity index 100% rename from Sapfor/_src/PrivateAnalyzer/private_analyzer.cpp rename to Sapfor/src/PrivateAnalyzer/private_analyzer.cpp diff --git a/Sapfor/_src/PrivateAnalyzer/private_analyzer.h b/Sapfor/src/PrivateAnalyzer/private_analyzer.h similarity index 100% rename from Sapfor/_src/PrivateAnalyzer/private_analyzer.h rename to Sapfor/src/PrivateAnalyzer/private_analyzer.h diff --git a/Sapfor/_src/ProjectManipulation/ConvertFiles.cpp b/Sapfor/src/ProjectManipulation/ConvertFiles.cpp similarity index 100% rename from Sapfor/_src/ProjectManipulation/ConvertFiles.cpp rename to Sapfor/src/ProjectManipulation/ConvertFiles.cpp diff --git a/Sapfor/_src/ProjectManipulation/ConvertFiles.h b/Sapfor/src/ProjectManipulation/ConvertFiles.h similarity index 100% rename from Sapfor/_src/ProjectManipulation/ConvertFiles.h rename to Sapfor/src/ProjectManipulation/ConvertFiles.h diff --git a/Sapfor/_src/ProjectManipulation/FileInfo.cpp b/Sapfor/src/ProjectManipulation/FileInfo.cpp similarity index 100% rename from Sapfor/_src/ProjectManipulation/FileInfo.cpp rename to Sapfor/src/ProjectManipulation/FileInfo.cpp diff --git a/Sapfor/_src/ProjectManipulation/FileInfo.h b/Sapfor/src/ProjectManipulation/FileInfo.h similarity index 100% rename from Sapfor/_src/ProjectManipulation/FileInfo.h rename to Sapfor/src/ProjectManipulation/FileInfo.h diff --git a/Sapfor/_src/ProjectManipulation/ParseFiles.cpp b/Sapfor/src/ProjectManipulation/ParseFiles.cpp similarity index 100% rename from Sapfor/_src/ProjectManipulation/ParseFiles.cpp rename to Sapfor/src/ProjectManipulation/ParseFiles.cpp diff --git a/Sapfor/_src/ProjectManipulation/ParseFiles.h b/Sapfor/src/ProjectManipulation/ParseFiles.h similarity index 100% rename from Sapfor/_src/ProjectManipulation/ParseFiles.h rename to Sapfor/src/ProjectManipulation/ParseFiles.h diff --git a/Sapfor/_src/ProjectManipulation/PerfAnalyzer.cpp b/Sapfor/src/ProjectManipulation/PerfAnalyzer.cpp similarity index 100% rename from Sapfor/_src/ProjectManipulation/PerfAnalyzer.cpp rename to Sapfor/src/ProjectManipulation/PerfAnalyzer.cpp diff --git a/Sapfor/_src/ProjectManipulation/PerfAnalyzer.h b/Sapfor/src/ProjectManipulation/PerfAnalyzer.h similarity index 100% rename from Sapfor/_src/ProjectManipulation/PerfAnalyzer.h rename to Sapfor/src/ProjectManipulation/PerfAnalyzer.h diff --git a/Sapfor/_src/ProjectManipulation/StdCapture.h b/Sapfor/src/ProjectManipulation/StdCapture.h similarity index 100% rename from Sapfor/_src/ProjectManipulation/StdCapture.h rename to Sapfor/src/ProjectManipulation/StdCapture.h diff --git a/Sapfor/_src/ProjectParameters/projectParameters.cpp b/Sapfor/src/ProjectParameters/projectParameters.cpp similarity index 100% rename from Sapfor/_src/ProjectParameters/projectParameters.cpp rename to Sapfor/src/ProjectParameters/projectParameters.cpp diff --git a/Sapfor/_src/ProjectParameters/projectParameters.h b/Sapfor/src/ProjectParameters/projectParameters.h similarity index 100% rename from Sapfor/_src/ProjectParameters/projectParameters.h rename to Sapfor/src/ProjectParameters/projectParameters.h diff --git a/Sapfor/_src/RenameSymbols/rename_symbols.cpp b/Sapfor/src/RenameSymbols/rename_symbols.cpp similarity index 100% rename from Sapfor/_src/RenameSymbols/rename_symbols.cpp rename to Sapfor/src/RenameSymbols/rename_symbols.cpp diff --git a/Sapfor/_src/RenameSymbols/rename_symbols.h b/Sapfor/src/RenameSymbols/rename_symbols.h similarity index 100% rename from Sapfor/_src/RenameSymbols/rename_symbols.h rename to Sapfor/src/RenameSymbols/rename_symbols.h diff --git a/Sapfor/_src/SageAnalysisTool/Makefile b/Sapfor/src/SageAnalysisTool/Makefile similarity index 100% rename from Sapfor/_src/SageAnalysisTool/Makefile rename to Sapfor/src/SageAnalysisTool/Makefile diff --git a/Sapfor/_src/SageAnalysisTool/OmegaForSage/Makefile b/Sapfor/src/SageAnalysisTool/OmegaForSage/Makefile similarity index 100% rename from Sapfor/_src/SageAnalysisTool/OmegaForSage/Makefile rename to Sapfor/src/SageAnalysisTool/OmegaForSage/Makefile diff --git a/Sapfor/_src/SageAnalysisTool/OmegaForSage/README b/Sapfor/src/SageAnalysisTool/OmegaForSage/README similarity index 100% rename from Sapfor/_src/SageAnalysisTool/OmegaForSage/README rename to Sapfor/src/SageAnalysisTool/OmegaForSage/README diff --git a/Sapfor/_src/SageAnalysisTool/OmegaForSage/add-assert.cpp b/Sapfor/src/SageAnalysisTool/OmegaForSage/add-assert.cpp similarity index 100% rename from Sapfor/_src/SageAnalysisTool/OmegaForSage/add-assert.cpp rename to Sapfor/src/SageAnalysisTool/OmegaForSage/add-assert.cpp diff --git a/Sapfor/_src/SageAnalysisTool/OmegaForSage/affine.cpp b/Sapfor/src/SageAnalysisTool/OmegaForSage/affine.cpp similarity index 100% rename from Sapfor/_src/SageAnalysisTool/OmegaForSage/affine.cpp rename to Sapfor/src/SageAnalysisTool/OmegaForSage/affine.cpp diff --git a/Sapfor/_src/SageAnalysisTool/OmegaForSage/cover.cpp b/Sapfor/src/SageAnalysisTool/OmegaForSage/cover.cpp similarity index 100% rename from Sapfor/_src/SageAnalysisTool/OmegaForSage/cover.cpp rename to Sapfor/src/SageAnalysisTool/OmegaForSage/cover.cpp diff --git a/Sapfor/_src/SageAnalysisTool/OmegaForSage/ddomega-build.cpp b/Sapfor/src/SageAnalysisTool/OmegaForSage/ddomega-build.cpp similarity index 100% rename from Sapfor/_src/SageAnalysisTool/OmegaForSage/ddomega-build.cpp rename to Sapfor/src/SageAnalysisTool/OmegaForSage/ddomega-build.cpp diff --git a/Sapfor/_src/SageAnalysisTool/OmegaForSage/ddomega-use.cpp b/Sapfor/src/SageAnalysisTool/OmegaForSage/ddomega-use.cpp similarity index 100% rename from Sapfor/_src/SageAnalysisTool/OmegaForSage/ddomega-use.cpp rename to Sapfor/src/SageAnalysisTool/OmegaForSage/ddomega-use.cpp diff --git a/Sapfor/_src/SageAnalysisTool/OmegaForSage/ddomega.cpp b/Sapfor/src/SageAnalysisTool/OmegaForSage/ddomega.cpp similarity index 100% rename from Sapfor/_src/SageAnalysisTool/OmegaForSage/ddomega.cpp rename to Sapfor/src/SageAnalysisTool/OmegaForSage/ddomega.cpp diff --git a/Sapfor/_src/SageAnalysisTool/OmegaForSage/debug.cpp b/Sapfor/src/SageAnalysisTool/OmegaForSage/debug.cpp similarity index 100% rename from Sapfor/_src/SageAnalysisTool/OmegaForSage/debug.cpp rename to Sapfor/src/SageAnalysisTool/OmegaForSage/debug.cpp diff --git a/Sapfor/_src/SageAnalysisTool/OmegaForSage/include/Exit.h b/Sapfor/src/SageAnalysisTool/OmegaForSage/include/Exit.h similarity index 100% rename from Sapfor/_src/SageAnalysisTool/OmegaForSage/include/Exit.h rename to Sapfor/src/SageAnalysisTool/OmegaForSage/include/Exit.h diff --git a/Sapfor/_src/SageAnalysisTool/OmegaForSage/include/add-assert.h b/Sapfor/src/SageAnalysisTool/OmegaForSage/include/add-assert.h similarity index 100% rename from Sapfor/_src/SageAnalysisTool/OmegaForSage/include/add-assert.h rename to Sapfor/src/SageAnalysisTool/OmegaForSage/include/add-assert.h diff --git a/Sapfor/_src/SageAnalysisTool/OmegaForSage/include/affine.h b/Sapfor/src/SageAnalysisTool/OmegaForSage/include/affine.h similarity index 100% rename from Sapfor/_src/SageAnalysisTool/OmegaForSage/include/affine.h rename to Sapfor/src/SageAnalysisTool/OmegaForSage/include/affine.h diff --git a/Sapfor/_src/SageAnalysisTool/OmegaForSage/include/cover.h b/Sapfor/src/SageAnalysisTool/OmegaForSage/include/cover.h similarity index 100% rename from Sapfor/_src/SageAnalysisTool/OmegaForSage/include/cover.h rename to Sapfor/src/SageAnalysisTool/OmegaForSage/include/cover.h diff --git a/Sapfor/_src/SageAnalysisTool/OmegaForSage/include/dddir.h b/Sapfor/src/SageAnalysisTool/OmegaForSage/include/dddir.h similarity index 100% rename from Sapfor/_src/SageAnalysisTool/OmegaForSage/include/dddir.h rename to Sapfor/src/SageAnalysisTool/OmegaForSage/include/dddir.h diff --git a/Sapfor/_src/SageAnalysisTool/OmegaForSage/include/ddomega-build.h b/Sapfor/src/SageAnalysisTool/OmegaForSage/include/ddomega-build.h similarity index 100% rename from Sapfor/_src/SageAnalysisTool/OmegaForSage/include/ddomega-build.h rename to Sapfor/src/SageAnalysisTool/OmegaForSage/include/ddomega-build.h diff --git a/Sapfor/_src/SageAnalysisTool/OmegaForSage/include/ddomega-use.h b/Sapfor/src/SageAnalysisTool/OmegaForSage/include/ddomega-use.h similarity index 100% rename from Sapfor/_src/SageAnalysisTool/OmegaForSage/include/ddomega-use.h rename to Sapfor/src/SageAnalysisTool/OmegaForSage/include/ddomega-use.h diff --git a/Sapfor/_src/SageAnalysisTool/OmegaForSage/include/ddomega.h b/Sapfor/src/SageAnalysisTool/OmegaForSage/include/ddomega.h similarity index 100% rename from Sapfor/_src/SageAnalysisTool/OmegaForSage/include/ddomega.h rename to Sapfor/src/SageAnalysisTool/OmegaForSage/include/ddomega.h diff --git a/Sapfor/_src/SageAnalysisTool/OmegaForSage/include/debug.h b/Sapfor/src/SageAnalysisTool/OmegaForSage/include/debug.h similarity index 100% rename from Sapfor/_src/SageAnalysisTool/OmegaForSage/include/debug.h rename to Sapfor/src/SageAnalysisTool/OmegaForSage/include/debug.h diff --git a/Sapfor/_src/SageAnalysisTool/OmegaForSage/include/flags.h b/Sapfor/src/SageAnalysisTool/OmegaForSage/include/flags.h similarity index 100% rename from Sapfor/_src/SageAnalysisTool/OmegaForSage/include/flags.h rename to Sapfor/src/SageAnalysisTool/OmegaForSage/include/flags.h diff --git a/Sapfor/_src/SageAnalysisTool/OmegaForSage/include/ip.h b/Sapfor/src/SageAnalysisTool/OmegaForSage/include/ip.h similarity index 100% rename from Sapfor/_src/SageAnalysisTool/OmegaForSage/include/ip.h rename to Sapfor/src/SageAnalysisTool/OmegaForSage/include/ip.h diff --git a/Sapfor/_src/SageAnalysisTool/OmegaForSage/include/kill.h b/Sapfor/src/SageAnalysisTool/OmegaForSage/include/kill.h similarity index 100% rename from Sapfor/_src/SageAnalysisTool/OmegaForSage/include/kill.h rename to Sapfor/src/SageAnalysisTool/OmegaForSage/include/kill.h diff --git a/Sapfor/_src/SageAnalysisTool/OmegaForSage/include/lang-interf.generic b/Sapfor/src/SageAnalysisTool/OmegaForSage/include/lang-interf.generic similarity index 100% rename from Sapfor/_src/SageAnalysisTool/OmegaForSage/include/lang-interf.generic rename to Sapfor/src/SageAnalysisTool/OmegaForSage/include/lang-interf.generic diff --git a/Sapfor/_src/SageAnalysisTool/OmegaForSage/include/lang-interf.h b/Sapfor/src/SageAnalysisTool/OmegaForSage/include/lang-interf.h similarity index 100% rename from Sapfor/_src/SageAnalysisTool/OmegaForSage/include/lang-interf.h rename to Sapfor/src/SageAnalysisTool/OmegaForSage/include/lang-interf.h diff --git a/Sapfor/_src/SageAnalysisTool/OmegaForSage/include/missing.h b/Sapfor/src/SageAnalysisTool/OmegaForSage/include/missing.h similarity index 100% rename from Sapfor/_src/SageAnalysisTool/OmegaForSage/include/missing.h rename to Sapfor/src/SageAnalysisTool/OmegaForSage/include/missing.h diff --git a/Sapfor/_src/SageAnalysisTool/OmegaForSage/include/omega2flags.h b/Sapfor/src/SageAnalysisTool/OmegaForSage/include/omega2flags.h similarity index 100% rename from Sapfor/_src/SageAnalysisTool/OmegaForSage/include/omega2flags.h rename to Sapfor/src/SageAnalysisTool/OmegaForSage/include/omega2flags.h diff --git a/Sapfor/_src/SageAnalysisTool/OmegaForSage/include/portable.h b/Sapfor/src/SageAnalysisTool/OmegaForSage/include/portable.h similarity index 100% rename from Sapfor/_src/SageAnalysisTool/OmegaForSage/include/portable.h rename to Sapfor/src/SageAnalysisTool/OmegaForSage/include/portable.h diff --git a/Sapfor/_src/SageAnalysisTool/OmegaForSage/include/portable.h.origine b/Sapfor/src/SageAnalysisTool/OmegaForSage/include/portable.h.origine similarity index 100% rename from Sapfor/_src/SageAnalysisTool/OmegaForSage/include/portable.h.origine rename to Sapfor/src/SageAnalysisTool/OmegaForSage/include/portable.h.origine diff --git a/Sapfor/_src/SageAnalysisTool/OmegaForSage/include/range.h b/Sapfor/src/SageAnalysisTool/OmegaForSage/include/range.h similarity index 100% rename from Sapfor/_src/SageAnalysisTool/OmegaForSage/include/range.h rename to Sapfor/src/SageAnalysisTool/OmegaForSage/include/range.h diff --git a/Sapfor/_src/SageAnalysisTool/OmegaForSage/include/refine.h b/Sapfor/src/SageAnalysisTool/OmegaForSage/include/refine.h similarity index 100% rename from Sapfor/_src/SageAnalysisTool/OmegaForSage/include/refine.h rename to Sapfor/src/SageAnalysisTool/OmegaForSage/include/refine.h diff --git a/Sapfor/_src/SageAnalysisTool/OmegaForSage/include/screen.h b/Sapfor/src/SageAnalysisTool/OmegaForSage/include/screen.h similarity index 100% rename from Sapfor/_src/SageAnalysisTool/OmegaForSage/include/screen.h rename to Sapfor/src/SageAnalysisTool/OmegaForSage/include/screen.h diff --git a/Sapfor/_src/SageAnalysisTool/OmegaForSage/include/timeTrials.h b/Sapfor/src/SageAnalysisTool/OmegaForSage/include/timeTrials.h similarity index 100% rename from Sapfor/_src/SageAnalysisTool/OmegaForSage/include/timeTrials.h rename to Sapfor/src/SageAnalysisTool/OmegaForSage/include/timeTrials.h diff --git a/Sapfor/_src/SageAnalysisTool/OmegaForSage/ip.cpp b/Sapfor/src/SageAnalysisTool/OmegaForSage/ip.cpp similarity index 100% rename from Sapfor/_src/SageAnalysisTool/OmegaForSage/ip.cpp rename to Sapfor/src/SageAnalysisTool/OmegaForSage/ip.cpp diff --git a/Sapfor/_src/SageAnalysisTool/OmegaForSage/kill.cpp b/Sapfor/src/SageAnalysisTool/OmegaForSage/kill.cpp similarity index 100% rename from Sapfor/_src/SageAnalysisTool/OmegaForSage/kill.cpp rename to Sapfor/src/SageAnalysisTool/OmegaForSage/kill.cpp diff --git a/Sapfor/_src/SageAnalysisTool/OmegaForSage/refine.cpp b/Sapfor/src/SageAnalysisTool/OmegaForSage/refine.cpp similarity index 100% rename from Sapfor/_src/SageAnalysisTool/OmegaForSage/refine.cpp rename to Sapfor/src/SageAnalysisTool/OmegaForSage/refine.cpp diff --git a/Sapfor/_src/SageAnalysisTool/OmegaForSage/sagedriver.cpp b/Sapfor/src/SageAnalysisTool/OmegaForSage/sagedriver.cpp similarity index 100% rename from Sapfor/_src/SageAnalysisTool/OmegaForSage/sagedriver.cpp rename to Sapfor/src/SageAnalysisTool/OmegaForSage/sagedriver.cpp diff --git a/Sapfor/_src/SageAnalysisTool/README b/Sapfor/src/SageAnalysisTool/README similarity index 100% rename from Sapfor/_src/SageAnalysisTool/README rename to Sapfor/src/SageAnalysisTool/README diff --git a/Sapfor/_src/SageAnalysisTool/annotationDriver.cpp b/Sapfor/src/SageAnalysisTool/annotationDriver.cpp similarity index 100% rename from Sapfor/_src/SageAnalysisTool/annotationDriver.cpp rename to Sapfor/src/SageAnalysisTool/annotationDriver.cpp diff --git a/Sapfor/_src/SageAnalysisTool/annotationDriver.h b/Sapfor/src/SageAnalysisTool/annotationDriver.h similarity index 100% rename from Sapfor/_src/SageAnalysisTool/annotationDriver.h rename to Sapfor/src/SageAnalysisTool/annotationDriver.h diff --git a/Sapfor/_src/SageAnalysisTool/arrayRef.cpp b/Sapfor/src/SageAnalysisTool/arrayRef.cpp similarity index 100% rename from Sapfor/_src/SageAnalysisTool/arrayRef.cpp rename to Sapfor/src/SageAnalysisTool/arrayRef.cpp diff --git a/Sapfor/_src/SageAnalysisTool/arrayRef.h b/Sapfor/src/SageAnalysisTool/arrayRef.h similarity index 100% rename from Sapfor/_src/SageAnalysisTool/arrayRef.h rename to Sapfor/src/SageAnalysisTool/arrayRef.h diff --git a/Sapfor/_src/SageAnalysisTool/computeInducVar.cpp b/Sapfor/src/SageAnalysisTool/computeInducVar.cpp similarity index 100% rename from Sapfor/_src/SageAnalysisTool/computeInducVar.cpp rename to Sapfor/src/SageAnalysisTool/computeInducVar.cpp diff --git a/Sapfor/_src/SageAnalysisTool/constanteProp.cpp b/Sapfor/src/SageAnalysisTool/constanteProp.cpp similarity index 100% rename from Sapfor/_src/SageAnalysisTool/constanteProp.cpp rename to Sapfor/src/SageAnalysisTool/constanteProp.cpp diff --git a/Sapfor/_src/SageAnalysisTool/constanteSet.h b/Sapfor/src/SageAnalysisTool/constanteSet.h similarity index 100% rename from Sapfor/_src/SageAnalysisTool/constanteSet.h rename to Sapfor/src/SageAnalysisTool/constanteSet.h diff --git a/Sapfor/_src/SageAnalysisTool/controlFlow.cpp b/Sapfor/src/SageAnalysisTool/controlFlow.cpp similarity index 100% rename from Sapfor/_src/SageAnalysisTool/controlFlow.cpp rename to Sapfor/src/SageAnalysisTool/controlFlow.cpp diff --git a/Sapfor/_src/SageAnalysisTool/defUse.cpp b/Sapfor/src/SageAnalysisTool/defUse.cpp similarity index 100% rename from Sapfor/_src/SageAnalysisTool/defUse.cpp rename to Sapfor/src/SageAnalysisTool/defUse.cpp diff --git a/Sapfor/_src/SageAnalysisTool/definesValues.h b/Sapfor/src/SageAnalysisTool/definesValues.h similarity index 100% rename from Sapfor/_src/SageAnalysisTool/definesValues.h rename to Sapfor/src/SageAnalysisTool/definesValues.h diff --git a/Sapfor/_src/SageAnalysisTool/definitionSet.h b/Sapfor/src/SageAnalysisTool/definitionSet.h similarity index 100% rename from Sapfor/_src/SageAnalysisTool/definitionSet.h rename to Sapfor/src/SageAnalysisTool/definitionSet.h diff --git a/Sapfor/_src/SageAnalysisTool/depGraph.cpp b/Sapfor/src/SageAnalysisTool/depGraph.cpp similarity index 100% rename from Sapfor/_src/SageAnalysisTool/depGraph.cpp rename to Sapfor/src/SageAnalysisTool/depGraph.cpp diff --git a/Sapfor/_src/SageAnalysisTool/depGraph.h b/Sapfor/src/SageAnalysisTool/depGraph.h similarity index 100% rename from Sapfor/_src/SageAnalysisTool/depGraph.h rename to Sapfor/src/SageAnalysisTool/depGraph.h diff --git a/Sapfor/_src/SageAnalysisTool/depInterface.cpp b/Sapfor/src/SageAnalysisTool/depInterface.cpp similarity index 100% rename from Sapfor/_src/SageAnalysisTool/depInterface.cpp rename to Sapfor/src/SageAnalysisTool/depInterface.cpp diff --git a/Sapfor/_src/SageAnalysisTool/depInterface.h b/Sapfor/src/SageAnalysisTool/depInterface.h similarity index 100% rename from Sapfor/_src/SageAnalysisTool/depInterface.h rename to Sapfor/src/SageAnalysisTool/depInterface.h diff --git a/Sapfor/_src/SageAnalysisTool/depInterfaceExt.h b/Sapfor/src/SageAnalysisTool/depInterfaceExt.h similarity index 100% rename from Sapfor/_src/SageAnalysisTool/depInterfaceExt.h rename to Sapfor/src/SageAnalysisTool/depInterfaceExt.h diff --git a/Sapfor/_src/SageAnalysisTool/dependence.cpp b/Sapfor/src/SageAnalysisTool/dependence.cpp similarity index 100% rename from Sapfor/_src/SageAnalysisTool/dependence.cpp rename to Sapfor/src/SageAnalysisTool/dependence.cpp diff --git a/Sapfor/_src/SageAnalysisTool/dependence.h b/Sapfor/src/SageAnalysisTool/dependence.h similarity index 100% rename from Sapfor/_src/SageAnalysisTool/dependence.h rename to Sapfor/src/SageAnalysisTool/dependence.h diff --git a/Sapfor/_src/SageAnalysisTool/flowAnalysis.cpp b/Sapfor/src/SageAnalysisTool/flowAnalysis.cpp similarity index 100% rename from Sapfor/_src/SageAnalysisTool/flowAnalysis.cpp rename to Sapfor/src/SageAnalysisTool/flowAnalysis.cpp diff --git a/Sapfor/_src/SageAnalysisTool/inducVar.h b/Sapfor/src/SageAnalysisTool/inducVar.h similarity index 100% rename from Sapfor/_src/SageAnalysisTool/inducVar.h rename to Sapfor/src/SageAnalysisTool/inducVar.h diff --git a/Sapfor/_src/SageAnalysisTool/intrinsic.cpp b/Sapfor/src/SageAnalysisTool/intrinsic.cpp similarity index 100% rename from Sapfor/_src/SageAnalysisTool/intrinsic.cpp rename to Sapfor/src/SageAnalysisTool/intrinsic.cpp diff --git a/Sapfor/_src/SageAnalysisTool/intrinsic.h b/Sapfor/src/SageAnalysisTool/intrinsic.h similarity index 100% rename from Sapfor/_src/SageAnalysisTool/intrinsic.h rename to Sapfor/src/SageAnalysisTool/intrinsic.h diff --git a/Sapfor/_src/SageAnalysisTool/invariant.cpp b/Sapfor/src/SageAnalysisTool/invariant.cpp similarity index 100% rename from Sapfor/_src/SageAnalysisTool/invariant.cpp rename to Sapfor/src/SageAnalysisTool/invariant.cpp diff --git a/Sapfor/_src/SageAnalysisTool/loopTransform.cpp b/Sapfor/src/SageAnalysisTool/loopTransform.cpp similarity index 100% rename from Sapfor/_src/SageAnalysisTool/loopTransform.cpp rename to Sapfor/src/SageAnalysisTool/loopTransform.cpp diff --git a/Sapfor/_src/SageAnalysisTool/reductionCode.h b/Sapfor/src/SageAnalysisTool/reductionCode.h similarity index 100% rename from Sapfor/_src/SageAnalysisTool/reductionCode.h rename to Sapfor/src/SageAnalysisTool/reductionCode.h diff --git a/Sapfor/_src/SageAnalysisTool/set.cpp b/Sapfor/src/SageAnalysisTool/set.cpp similarity index 100% rename from Sapfor/_src/SageAnalysisTool/set.cpp rename to Sapfor/src/SageAnalysisTool/set.cpp diff --git a/Sapfor/_src/SageAnalysisTool/set.h b/Sapfor/src/SageAnalysisTool/set.h similarity index 100% rename from Sapfor/_src/SageAnalysisTool/set.h rename to Sapfor/src/SageAnalysisTool/set.h diff --git a/Sapfor/_src/Sapfor.cpp b/Sapfor/src/Sapfor.cpp similarity index 100% rename from Sapfor/_src/Sapfor.cpp rename to Sapfor/src/Sapfor.cpp diff --git a/Sapfor/_src/Sapfor.h b/Sapfor/src/Sapfor.h similarity index 100% rename from Sapfor/_src/Sapfor.h rename to Sapfor/src/Sapfor.h diff --git a/Sapfor/_src/SapforData.h b/Sapfor/src/SapforData.h similarity index 100% rename from Sapfor/_src/SapforData.h rename to Sapfor/src/SapforData.h diff --git a/Sapfor/_src/Server/checkUniq.cpp b/Sapfor/src/Server/checkUniq.cpp similarity index 100% rename from Sapfor/_src/Server/checkUniq.cpp rename to Sapfor/src/Server/checkUniq.cpp diff --git a/Sapfor/_src/Server/server.cpp b/Sapfor/src/Server/server.cpp similarity index 100% rename from Sapfor/_src/Server/server.cpp rename to Sapfor/src/Server/server.cpp diff --git a/Sapfor/_src/Server/spf_icon.ico b/Sapfor/src/Server/spf_icon.ico similarity index 100% rename from Sapfor/_src/Server/spf_icon.ico rename to Sapfor/src/Server/spf_icon.ico diff --git a/Sapfor/_src/Transformations/array_assign_to_loop.cpp b/Sapfor/src/Transformations/array_assign_to_loop.cpp similarity index 100% rename from Sapfor/_src/Transformations/array_assign_to_loop.cpp rename to Sapfor/src/Transformations/array_assign_to_loop.cpp diff --git a/Sapfor/_src/Transformations/array_assign_to_loop.h b/Sapfor/src/Transformations/array_assign_to_loop.h similarity index 100% rename from Sapfor/_src/Transformations/array_assign_to_loop.h rename to Sapfor/src/Transformations/array_assign_to_loop.h diff --git a/Sapfor/_src/Transformations/checkpoints.cpp b/Sapfor/src/Transformations/checkpoints.cpp similarity index 100% rename from Sapfor/_src/Transformations/checkpoints.cpp rename to Sapfor/src/Transformations/checkpoints.cpp diff --git a/Sapfor/_src/Transformations/checkpoints.h b/Sapfor/src/Transformations/checkpoints.h similarity index 100% rename from Sapfor/_src/Transformations/checkpoints.h rename to Sapfor/src/Transformations/checkpoints.h diff --git a/Sapfor/_src/Transformations/convert_to_c.cpp b/Sapfor/src/Transformations/convert_to_c.cpp similarity index 100% rename from Sapfor/_src/Transformations/convert_to_c.cpp rename to Sapfor/src/Transformations/convert_to_c.cpp diff --git a/Sapfor/_src/Transformations/convert_to_c.h b/Sapfor/src/Transformations/convert_to_c.h similarity index 100% rename from Sapfor/_src/Transformations/convert_to_c.h rename to Sapfor/src/Transformations/convert_to_c.h diff --git a/Sapfor/_src/Transformations/dead_code.cpp b/Sapfor/src/Transformations/dead_code.cpp similarity index 100% rename from Sapfor/_src/Transformations/dead_code.cpp rename to Sapfor/src/Transformations/dead_code.cpp diff --git a/Sapfor/_src/Transformations/dead_code.h b/Sapfor/src/Transformations/dead_code.h similarity index 100% rename from Sapfor/_src/Transformations/dead_code.h rename to Sapfor/src/Transformations/dead_code.h diff --git a/Sapfor/_src/Transformations/enddo_loop_converter.cpp b/Sapfor/src/Transformations/enddo_loop_converter.cpp similarity index 100% rename from Sapfor/_src/Transformations/enddo_loop_converter.cpp rename to Sapfor/src/Transformations/enddo_loop_converter.cpp diff --git a/Sapfor/_src/Transformations/enddo_loop_converter.h b/Sapfor/src/Transformations/enddo_loop_converter.h similarity index 100% rename from Sapfor/_src/Transformations/enddo_loop_converter.h rename to Sapfor/src/Transformations/enddo_loop_converter.h diff --git a/Sapfor/_src/Transformations/fix_common_blocks.cpp b/Sapfor/src/Transformations/fix_common_blocks.cpp similarity index 100% rename from Sapfor/_src/Transformations/fix_common_blocks.cpp rename to Sapfor/src/Transformations/fix_common_blocks.cpp diff --git a/Sapfor/_src/Transformations/fix_common_blocks.h b/Sapfor/src/Transformations/fix_common_blocks.h similarity index 100% rename from Sapfor/_src/Transformations/fix_common_blocks.h rename to Sapfor/src/Transformations/fix_common_blocks.h diff --git a/Sapfor/_src/Transformations/function_purifying.cpp b/Sapfor/src/Transformations/function_purifying.cpp similarity index 100% rename from Sapfor/_src/Transformations/function_purifying.cpp rename to Sapfor/src/Transformations/function_purifying.cpp diff --git a/Sapfor/_src/Transformations/function_purifying.h b/Sapfor/src/Transformations/function_purifying.h similarity index 100% rename from Sapfor/_src/Transformations/function_purifying.h rename to Sapfor/src/Transformations/function_purifying.h diff --git a/Sapfor/_src/Transformations/loop_transform.cpp b/Sapfor/src/Transformations/loop_transform.cpp similarity index 100% rename from Sapfor/_src/Transformations/loop_transform.cpp rename to Sapfor/src/Transformations/loop_transform.cpp diff --git a/Sapfor/_src/Transformations/loop_transform.h b/Sapfor/src/Transformations/loop_transform.h similarity index 100% rename from Sapfor/_src/Transformations/loop_transform.h rename to Sapfor/src/Transformations/loop_transform.h diff --git a/Sapfor/_src/Transformations/loops_combiner.cpp b/Sapfor/src/Transformations/loops_combiner.cpp similarity index 100% rename from Sapfor/_src/Transformations/loops_combiner.cpp rename to Sapfor/src/Transformations/loops_combiner.cpp diff --git a/Sapfor/_src/Transformations/loops_combiner.h b/Sapfor/src/Transformations/loops_combiner.h similarity index 100% rename from Sapfor/_src/Transformations/loops_combiner.h rename to Sapfor/src/Transformations/loops_combiner.h diff --git a/Sapfor/_src/Transformations/loops_splitter.cpp b/Sapfor/src/Transformations/loops_splitter.cpp similarity index 100% rename from Sapfor/_src/Transformations/loops_splitter.cpp rename to Sapfor/src/Transformations/loops_splitter.cpp diff --git a/Sapfor/_src/Transformations/loops_splitter.h b/Sapfor/src/Transformations/loops_splitter.h similarity index 100% rename from Sapfor/_src/Transformations/loops_splitter.h rename to Sapfor/src/Transformations/loops_splitter.h diff --git a/Sapfor/_src/Transformations/loops_unrolling.cpp b/Sapfor/src/Transformations/loops_unrolling.cpp similarity index 100% rename from Sapfor/_src/Transformations/loops_unrolling.cpp rename to Sapfor/src/Transformations/loops_unrolling.cpp diff --git a/Sapfor/_src/Transformations/loops_unrolling.h b/Sapfor/src/Transformations/loops_unrolling.h similarity index 100% rename from Sapfor/_src/Transformations/loops_unrolling.h rename to Sapfor/src/Transformations/loops_unrolling.h diff --git a/Sapfor/_src/Transformations/private_arrays_resizing.cpp b/Sapfor/src/Transformations/private_arrays_resizing.cpp similarity index 100% rename from Sapfor/_src/Transformations/private_arrays_resizing.cpp rename to Sapfor/src/Transformations/private_arrays_resizing.cpp diff --git a/Sapfor/_src/Transformations/private_arrays_resizing.h b/Sapfor/src/Transformations/private_arrays_resizing.h similarity index 100% rename from Sapfor/_src/Transformations/private_arrays_resizing.h rename to Sapfor/src/Transformations/private_arrays_resizing.h diff --git a/Sapfor/_src/Transformations/private_removing.cpp b/Sapfor/src/Transformations/private_removing.cpp similarity index 100% rename from Sapfor/_src/Transformations/private_removing.cpp rename to Sapfor/src/Transformations/private_removing.cpp diff --git a/Sapfor/_src/Transformations/private_removing.h b/Sapfor/src/Transformations/private_removing.h similarity index 100% rename from Sapfor/_src/Transformations/private_removing.h rename to Sapfor/src/Transformations/private_removing.h diff --git a/Sapfor/_src/Transformations/replace_dist_arrays_in_io.cpp b/Sapfor/src/Transformations/replace_dist_arrays_in_io.cpp similarity index 100% rename from Sapfor/_src/Transformations/replace_dist_arrays_in_io.cpp rename to Sapfor/src/Transformations/replace_dist_arrays_in_io.cpp diff --git a/Sapfor/_src/Transformations/replace_dist_arrays_in_io.h b/Sapfor/src/Transformations/replace_dist_arrays_in_io.h similarity index 100% rename from Sapfor/_src/Transformations/replace_dist_arrays_in_io.h rename to Sapfor/src/Transformations/replace_dist_arrays_in_io.h diff --git a/Sapfor/_src/Transformations/set_implicit_none.cpp b/Sapfor/src/Transformations/set_implicit_none.cpp similarity index 100% rename from Sapfor/_src/Transformations/set_implicit_none.cpp rename to Sapfor/src/Transformations/set_implicit_none.cpp diff --git a/Sapfor/_src/Transformations/set_implicit_none.h b/Sapfor/src/Transformations/set_implicit_none.h similarity index 100% rename from Sapfor/_src/Transformations/set_implicit_none.h rename to Sapfor/src/Transformations/set_implicit_none.h diff --git a/Sapfor/_src/Transformations/swap_array_dims.cpp b/Sapfor/src/Transformations/swap_array_dims.cpp similarity index 100% rename from Sapfor/_src/Transformations/swap_array_dims.cpp rename to Sapfor/src/Transformations/swap_array_dims.cpp diff --git a/Sapfor/_src/Transformations/swap_array_dims.h b/Sapfor/src/Transformations/swap_array_dims.h similarity index 100% rename from Sapfor/_src/Transformations/swap_array_dims.h rename to Sapfor/src/Transformations/swap_array_dims.h diff --git a/Sapfor/_src/Transformations/uniq_call_chain_dup.cpp b/Sapfor/src/Transformations/uniq_call_chain_dup.cpp similarity index 100% rename from Sapfor/_src/Transformations/uniq_call_chain_dup.cpp rename to Sapfor/src/Transformations/uniq_call_chain_dup.cpp diff --git a/Sapfor/_src/Transformations/uniq_call_chain_dup.h b/Sapfor/src/Transformations/uniq_call_chain_dup.h similarity index 100% rename from Sapfor/_src/Transformations/uniq_call_chain_dup.h rename to Sapfor/src/Transformations/uniq_call_chain_dup.h diff --git a/Sapfor/_src/Utils/AstWrapper.h b/Sapfor/src/Utils/AstWrapper.h similarity index 100% rename from Sapfor/_src/Utils/AstWrapper.h rename to Sapfor/src/Utils/AstWrapper.h diff --git a/Sapfor/_src/Utils/BoostStackTrace.cpp b/Sapfor/src/Utils/BoostStackTrace.cpp similarity index 100% rename from Sapfor/_src/Utils/BoostStackTrace.cpp rename to Sapfor/src/Utils/BoostStackTrace.cpp diff --git a/Sapfor/_src/Utils/CommonBlock.h b/Sapfor/src/Utils/CommonBlock.h similarity index 100% rename from Sapfor/_src/Utils/CommonBlock.h rename to Sapfor/src/Utils/CommonBlock.h diff --git a/Sapfor/_src/Utils/DefUseList.h b/Sapfor/src/Utils/DefUseList.h similarity index 100% rename from Sapfor/_src/Utils/DefUseList.h rename to Sapfor/src/Utils/DefUseList.h diff --git a/Sapfor/_src/Utils/PassManager.h b/Sapfor/src/Utils/PassManager.h similarity index 100% rename from Sapfor/_src/Utils/PassManager.h rename to Sapfor/src/Utils/PassManager.h diff --git a/Sapfor/_src/Utils/RationalNum.cpp b/Sapfor/src/Utils/RationalNum.cpp similarity index 100% rename from Sapfor/_src/Utils/RationalNum.cpp rename to Sapfor/src/Utils/RationalNum.cpp diff --git a/Sapfor/_src/Utils/RationalNum.h b/Sapfor/src/Utils/RationalNum.h similarity index 100% rename from Sapfor/_src/Utils/RationalNum.h rename to Sapfor/src/Utils/RationalNum.h diff --git a/Sapfor/_src/Utils/SgUtils.cpp b/Sapfor/src/Utils/SgUtils.cpp similarity index 100% rename from Sapfor/_src/Utils/SgUtils.cpp rename to Sapfor/src/Utils/SgUtils.cpp diff --git a/Sapfor/_src/Utils/SgUtils.h b/Sapfor/src/Utils/SgUtils.h similarity index 100% rename from Sapfor/_src/Utils/SgUtils.h rename to Sapfor/src/Utils/SgUtils.h diff --git a/Sapfor/_src/Utils/errors.h b/Sapfor/src/Utils/errors.h similarity index 100% rename from Sapfor/_src/Utils/errors.h rename to Sapfor/src/Utils/errors.h diff --git a/Sapfor/_src/Utils/leak_detector.h b/Sapfor/src/Utils/leak_detector.h similarity index 100% rename from Sapfor/_src/Utils/leak_detector.h rename to Sapfor/src/Utils/leak_detector.h diff --git a/Sapfor/_src/Utils/module_utils.cpp b/Sapfor/src/Utils/module_utils.cpp similarity index 100% rename from Sapfor/_src/Utils/module_utils.cpp rename to Sapfor/src/Utils/module_utils.cpp diff --git a/Sapfor/_src/Utils/module_utils.h b/Sapfor/src/Utils/module_utils.h similarity index 100% rename from Sapfor/_src/Utils/module_utils.h rename to Sapfor/src/Utils/module_utils.h diff --git a/Sapfor/_src/Utils/russian_errors_text.txt b/Sapfor/src/Utils/russian_errors_text.txt similarity index 100% rename from Sapfor/_src/Utils/russian_errors_text.txt rename to Sapfor/src/Utils/russian_errors_text.txt diff --git a/Sapfor/_src/Utils/types.h b/Sapfor/src/Utils/types.h similarity index 100% rename from Sapfor/_src/Utils/types.h rename to Sapfor/src/Utils/types.h diff --git a/Sapfor/_src/Utils/utils.cpp b/Sapfor/src/Utils/utils.cpp similarity index 100% rename from Sapfor/_src/Utils/utils.cpp rename to Sapfor/src/Utils/utils.cpp diff --git a/Sapfor/_src/Utils/utils.h b/Sapfor/src/Utils/utils.h similarity index 100% rename from Sapfor/_src/Utils/utils.h rename to Sapfor/src/Utils/utils.h diff --git a/Sapfor/_src/Utils/version.h b/Sapfor/src/Utils/version.h similarity index 100% rename from Sapfor/_src/Utils/version.h rename to Sapfor/src/Utils/version.h diff --git a/Sapfor/_src/VerificationCode/CorrectVarDecl.cpp b/Sapfor/src/VerificationCode/CorrectVarDecl.cpp similarity index 100% rename from Sapfor/_src/VerificationCode/CorrectVarDecl.cpp rename to Sapfor/src/VerificationCode/CorrectVarDecl.cpp diff --git a/Sapfor/_src/VerificationCode/IncludeChecker.cpp b/Sapfor/src/VerificationCode/IncludeChecker.cpp similarity index 100% rename from Sapfor/_src/VerificationCode/IncludeChecker.cpp rename to Sapfor/src/VerificationCode/IncludeChecker.cpp diff --git a/Sapfor/_src/VerificationCode/StructureChecker.cpp b/Sapfor/src/VerificationCode/StructureChecker.cpp similarity index 100% rename from Sapfor/_src/VerificationCode/StructureChecker.cpp rename to Sapfor/src/VerificationCode/StructureChecker.cpp diff --git a/Sapfor/_src/VerificationCode/VerifySageStructures.cpp b/Sapfor/src/VerificationCode/VerifySageStructures.cpp similarity index 100% rename from Sapfor/_src/VerificationCode/VerifySageStructures.cpp rename to Sapfor/src/VerificationCode/VerifySageStructures.cpp diff --git a/Sapfor/_src/VerificationCode/verifications.h b/Sapfor/src/VerificationCode/verifications.h similarity index 100% rename from Sapfor/_src/VerificationCode/verifications.h rename to Sapfor/src/VerificationCode/verifications.h diff --git a/Sapfor/_src/VisualizerCalls/BuildGraph.cpp b/Sapfor/src/VisualizerCalls/BuildGraph.cpp similarity index 100% rename from Sapfor/_src/VisualizerCalls/BuildGraph.cpp rename to Sapfor/src/VisualizerCalls/BuildGraph.cpp diff --git a/Sapfor/_src/VisualizerCalls/BuildGraph.h b/Sapfor/src/VisualizerCalls/BuildGraph.h similarity index 100% rename from Sapfor/_src/VisualizerCalls/BuildGraph.h rename to Sapfor/src/VisualizerCalls/BuildGraph.h diff --git a/Sapfor/_src/VisualizerCalls/SendMessage.cpp b/Sapfor/src/VisualizerCalls/SendMessage.cpp similarity index 100% rename from Sapfor/_src/VisualizerCalls/SendMessage.cpp rename to Sapfor/src/VisualizerCalls/SendMessage.cpp diff --git a/Sapfor/_src/VisualizerCalls/SendMessage.h b/Sapfor/src/VisualizerCalls/SendMessage.h similarity index 100% rename from Sapfor/_src/VisualizerCalls/SendMessage.h rename to Sapfor/src/VisualizerCalls/SendMessage.h diff --git a/Sapfor/_src/VisualizerCalls/get_information.cpp b/Sapfor/src/VisualizerCalls/get_information.cpp similarity index 100% rename from Sapfor/_src/VisualizerCalls/get_information.cpp rename to Sapfor/src/VisualizerCalls/get_information.cpp diff --git a/Sapfor/_src/VisualizerCalls/get_information.h b/Sapfor/src/VisualizerCalls/get_information.h similarity index 100% rename from Sapfor/_src/VisualizerCalls/get_information.h rename to Sapfor/src/VisualizerCalls/get_information.h diff --git a/Sapfor/_src/VisualizerCalls/graphLayout/algebra.cpp b/Sapfor/src/VisualizerCalls/graphLayout/algebra.cpp similarity index 100% rename from Sapfor/_src/VisualizerCalls/graphLayout/algebra.cpp rename to Sapfor/src/VisualizerCalls/graphLayout/algebra.cpp diff --git a/Sapfor/_src/VisualizerCalls/graphLayout/algebra.hpp b/Sapfor/src/VisualizerCalls/graphLayout/algebra.hpp similarity index 100% rename from Sapfor/_src/VisualizerCalls/graphLayout/algebra.hpp rename to Sapfor/src/VisualizerCalls/graphLayout/algebra.hpp diff --git a/Sapfor/_src/VisualizerCalls/graphLayout/fruchterman_reingold.cpp b/Sapfor/src/VisualizerCalls/graphLayout/fruchterman_reingold.cpp similarity index 100% rename from Sapfor/_src/VisualizerCalls/graphLayout/fruchterman_reingold.cpp rename to Sapfor/src/VisualizerCalls/graphLayout/fruchterman_reingold.cpp diff --git a/Sapfor/_src/VisualizerCalls/graphLayout/fruchterman_reingold.hpp b/Sapfor/src/VisualizerCalls/graphLayout/fruchterman_reingold.hpp similarity index 100% rename from Sapfor/_src/VisualizerCalls/graphLayout/fruchterman_reingold.hpp rename to Sapfor/src/VisualizerCalls/graphLayout/fruchterman_reingold.hpp diff --git a/Sapfor/_src/VisualizerCalls/graphLayout/kamada_kawai.cpp b/Sapfor/src/VisualizerCalls/graphLayout/kamada_kawai.cpp similarity index 100% rename from Sapfor/_src/VisualizerCalls/graphLayout/kamada_kawai.cpp rename to Sapfor/src/VisualizerCalls/graphLayout/kamada_kawai.cpp diff --git a/Sapfor/_src/VisualizerCalls/graphLayout/kamada_kawai.hpp b/Sapfor/src/VisualizerCalls/graphLayout/kamada_kawai.hpp similarity index 100% rename from Sapfor/_src/VisualizerCalls/graphLayout/kamada_kawai.hpp rename to Sapfor/src/VisualizerCalls/graphLayout/kamada_kawai.hpp diff --git a/Sapfor/_src/VisualizerCalls/graphLayout/layout.cpp b/Sapfor/src/VisualizerCalls/graphLayout/layout.cpp similarity index 100% rename from Sapfor/_src/VisualizerCalls/graphLayout/layout.cpp rename to Sapfor/src/VisualizerCalls/graphLayout/layout.cpp diff --git a/Sapfor/_src/VisualizerCalls/graphLayout/layout.hpp b/Sapfor/src/VisualizerCalls/graphLayout/layout.hpp similarity index 100% rename from Sapfor/_src/VisualizerCalls/graphLayout/layout.hpp rename to Sapfor/src/VisualizerCalls/graphLayout/layout.hpp diff --git a/Sapfor/_src/VisualizerCalls/graphLayout/nodesoup.cpp b/Sapfor/src/VisualizerCalls/graphLayout/nodesoup.cpp similarity index 100% rename from Sapfor/_src/VisualizerCalls/graphLayout/nodesoup.cpp rename to Sapfor/src/VisualizerCalls/graphLayout/nodesoup.cpp diff --git a/Sapfor/_src/VisualizerCalls/graphLayout/nodesoup.hpp b/Sapfor/src/VisualizerCalls/graphLayout/nodesoup.hpp similarity index 100% rename from Sapfor/_src/VisualizerCalls/graphLayout/nodesoup.hpp rename to Sapfor/src/VisualizerCalls/graphLayout/nodesoup.hpp diff --git a/Sapfor/_test/inliner/alex.f b/Sapfor/tests/inliner/alex.f similarity index 100% rename from Sapfor/_test/inliner/alex.f rename to Sapfor/tests/inliner/alex.f diff --git a/Sapfor/_test/inliner/array_sum.f b/Sapfor/tests/inliner/array_sum.f similarity index 100% rename from Sapfor/_test/inliner/array_sum.f rename to Sapfor/tests/inliner/array_sum.f diff --git a/Sapfor/_test/inliner/inlineFunctionWithAllocatable.f90 b/Sapfor/tests/inliner/inlineFunctionWithAllocatable.f90 similarity index 100% rename from Sapfor/_test/inliner/inlineFunctionWithAllocatable.f90 rename to Sapfor/tests/inliner/inlineFunctionWithAllocatable.f90 diff --git a/Sapfor/_test/inliner/sub.f b/Sapfor/tests/inliner/sub.f similarity index 100% rename from Sapfor/_test/inliner/sub.f rename to Sapfor/tests/inliner/sub.f diff --git a/Sapfor/_test/inliner/test.f b/Sapfor/tests/inliner/test.f similarity index 100% rename from Sapfor/_test/inliner/test.f rename to Sapfor/tests/inliner/test.f diff --git a/Sapfor/_test/sapfor/PRINT_PAR_REGIONS_ERRORS/entry_err1.f b/Sapfor/tests/sapfor/PRINT_PAR_REGIONS_ERRORS/entry_err1.f similarity index 100% rename from Sapfor/_test/sapfor/PRINT_PAR_REGIONS_ERRORS/entry_err1.f rename to Sapfor/tests/sapfor/PRINT_PAR_REGIONS_ERRORS/entry_err1.f diff --git a/Sapfor/_test/sapfor/PRINT_PAR_REGIONS_ERRORS/entry_err2.f b/Sapfor/tests/sapfor/PRINT_PAR_REGIONS_ERRORS/entry_err2.f similarity index 100% rename from Sapfor/_test/sapfor/PRINT_PAR_REGIONS_ERRORS/entry_err2.f rename to Sapfor/tests/sapfor/PRINT_PAR_REGIONS_ERRORS/entry_err2.f diff --git a/Sapfor/_test/sapfor/PRINT_PAR_REGIONS_ERRORS/etnry_ok1.f b/Sapfor/tests/sapfor/PRINT_PAR_REGIONS_ERRORS/etnry_ok1.f similarity index 100% rename from Sapfor/_test/sapfor/PRINT_PAR_REGIONS_ERRORS/etnry_ok1.f rename to Sapfor/tests/sapfor/PRINT_PAR_REGIONS_ERRORS/etnry_ok1.f diff --git a/Sapfor/_test/sapfor/PRINT_PAR_REGIONS_ERRORS/etnry_ok2.f b/Sapfor/tests/sapfor/PRINT_PAR_REGIONS_ERRORS/etnry_ok2.f similarity index 100% rename from Sapfor/_test/sapfor/PRINT_PAR_REGIONS_ERRORS/etnry_ok2.f rename to Sapfor/tests/sapfor/PRINT_PAR_REGIONS_ERRORS/etnry_ok2.f diff --git a/Sapfor/_test/sapfor/PRINT_PAR_REGIONS_ERRORS/goto_err1.f b/Sapfor/tests/sapfor/PRINT_PAR_REGIONS_ERRORS/goto_err1.f similarity index 100% rename from Sapfor/_test/sapfor/PRINT_PAR_REGIONS_ERRORS/goto_err1.f rename to Sapfor/tests/sapfor/PRINT_PAR_REGIONS_ERRORS/goto_err1.f diff --git a/Sapfor/_test/sapfor/PRINT_PAR_REGIONS_ERRORS/goto_ok1.f b/Sapfor/tests/sapfor/PRINT_PAR_REGIONS_ERRORS/goto_ok1.f similarity index 100% rename from Sapfor/_test/sapfor/PRINT_PAR_REGIONS_ERRORS/goto_ok1.f rename to Sapfor/tests/sapfor/PRINT_PAR_REGIONS_ERRORS/goto_ok1.f diff --git a/Sapfor/_test/sapfor/check_args_decl/arg_decl_test_err1.f b/Sapfor/tests/sapfor/check_args_decl/arg_decl_test_err1.f similarity index 100% rename from Sapfor/_test/sapfor/check_args_decl/arg_decl_test_err1.f rename to Sapfor/tests/sapfor/check_args_decl/arg_decl_test_err1.f diff --git a/Sapfor/_test/sapfor/check_args_decl/arg_decl_test_err2.f b/Sapfor/tests/sapfor/check_args_decl/arg_decl_test_err2.f similarity index 100% rename from Sapfor/_test/sapfor/check_args_decl/arg_decl_test_err2.f rename to Sapfor/tests/sapfor/check_args_decl/arg_decl_test_err2.f diff --git a/Sapfor/_test/sapfor/check_args_decl/arg_decl_test_err3.f b/Sapfor/tests/sapfor/check_args_decl/arg_decl_test_err3.f similarity index 100% rename from Sapfor/_test/sapfor/check_args_decl/arg_decl_test_err3.f rename to Sapfor/tests/sapfor/check_args_decl/arg_decl_test_err3.f diff --git a/Sapfor/_test/sapfor/check_args_decl/arg_decl_test_ok1.f b/Sapfor/tests/sapfor/check_args_decl/arg_decl_test_ok1.f similarity index 100% rename from Sapfor/_test/sapfor/check_args_decl/arg_decl_test_ok1.f rename to Sapfor/tests/sapfor/check_args_decl/arg_decl_test_ok1.f diff --git a/Sapfor/_test/sapfor/check_args_decl/arg_decl_test_ok2.f b/Sapfor/tests/sapfor/check_args_decl/arg_decl_test_ok2.f similarity index 100% rename from Sapfor/_test/sapfor/check_args_decl/arg_decl_test_ok2.f rename to Sapfor/tests/sapfor/check_args_decl/arg_decl_test_ok2.f diff --git a/Sapfor/_test/sapfor/check_args_decl/arg_decl_test_ok3.f b/Sapfor/tests/sapfor/check_args_decl/arg_decl_test_ok3.f similarity index 100% rename from Sapfor/_test/sapfor/check_args_decl/arg_decl_test_ok3.f rename to Sapfor/tests/sapfor/check_args_decl/arg_decl_test_ok3.f diff --git a/Sapfor/_test/sapfor/check_args_decl/arg_decl_test_wr1.f b/Sapfor/tests/sapfor/check_args_decl/arg_decl_test_wr1.f similarity index 100% rename from Sapfor/_test/sapfor/check_args_decl/arg_decl_test_wr1.f rename to Sapfor/tests/sapfor/check_args_decl/arg_decl_test_wr1.f diff --git a/Sapfor/_test/sapfor/check_args_decl/arg_decl_test_wr3.f b/Sapfor/tests/sapfor/check_args_decl/arg_decl_test_wr3.f similarity index 100% rename from Sapfor/_test/sapfor/check_args_decl/arg_decl_test_wr3.f rename to Sapfor/tests/sapfor/check_args_decl/arg_decl_test_wr3.f diff --git a/Sapfor/_test/sapfor/checkpoint/checkpoint.f90 b/Sapfor/tests/sapfor/checkpoint/checkpoint.f90 similarity index 100% rename from Sapfor/_test/sapfor/checkpoint/checkpoint.f90 rename to Sapfor/tests/sapfor/checkpoint/checkpoint.f90 diff --git a/Sapfor/_test/sapfor/checkpoint/checkpoint2.f90 b/Sapfor/tests/sapfor/checkpoint/checkpoint2.f90 similarity index 100% rename from Sapfor/_test/sapfor/checkpoint/checkpoint2.f90 rename to Sapfor/tests/sapfor/checkpoint/checkpoint2.f90 diff --git a/Sapfor/_test/sapfor/convert_assign_to_loop/anyArguments_fromLittleToBig.f90 b/Sapfor/tests/sapfor/convert_assign_to_loop/anyArguments_fromLittleToBig.f90 similarity index 100% rename from Sapfor/_test/sapfor/convert_assign_to_loop/anyArguments_fromLittleToBig.f90 rename to Sapfor/tests/sapfor/convert_assign_to_loop/anyArguments_fromLittleToBig.f90 diff --git a/Sapfor/_test/sapfor/convert_assign_to_loop/assign_with_sections.f b/Sapfor/tests/sapfor/convert_assign_to_loop/assign_with_sections.f similarity index 100% rename from Sapfor/_test/sapfor/convert_assign_to_loop/assign_with_sections.f rename to Sapfor/tests/sapfor/convert_assign_to_loop/assign_with_sections.f diff --git a/Sapfor/_test/sapfor/convert_assign_to_loop/simple_assign.f b/Sapfor/tests/sapfor/convert_assign_to_loop/simple_assign.f similarity index 100% rename from Sapfor/_test/sapfor/convert_assign_to_loop/simple_assign.f rename to Sapfor/tests/sapfor/convert_assign_to_loop/simple_assign.f diff --git a/Sapfor/_test/sapfor/convert_assign_to_loop/two_dimensional_assign.f b/Sapfor/tests/sapfor/convert_assign_to_loop/two_dimensional_assign.f similarity index 100% rename from Sapfor/_test/sapfor/convert_assign_to_loop/two_dimensional_assign.f rename to Sapfor/tests/sapfor/convert_assign_to_loop/two_dimensional_assign.f diff --git a/Sapfor/_test/sapfor/convert_expr_to_loop/expr_with_sections.f b/Sapfor/tests/sapfor/convert_expr_to_loop/expr_with_sections.f similarity index 100% rename from Sapfor/_test/sapfor/convert_expr_to_loop/expr_with_sections.f rename to Sapfor/tests/sapfor/convert_expr_to_loop/expr_with_sections.f diff --git a/Sapfor/_test/sapfor/convert_expr_to_loop/simple_expr.f b/Sapfor/tests/sapfor/convert_expr_to_loop/simple_expr.f similarity index 100% rename from Sapfor/_test/sapfor/convert_expr_to_loop/simple_expr.f rename to Sapfor/tests/sapfor/convert_expr_to_loop/simple_expr.f diff --git a/Sapfor/_test/sapfor/convert_expr_to_loop/two_dimensional_expr.f b/Sapfor/tests/sapfor/convert_expr_to_loop/two_dimensional_expr.f similarity index 100% rename from Sapfor/_test/sapfor/convert_expr_to_loop/two_dimensional_expr.f rename to Sapfor/tests/sapfor/convert_expr_to_loop/two_dimensional_expr.f diff --git a/Sapfor/_test/sapfor/convert_sum_to_loop/simple_sum.f b/Sapfor/tests/sapfor/convert_sum_to_loop/simple_sum.f similarity index 100% rename from Sapfor/_test/sapfor/convert_sum_to_loop/simple_sum.f rename to Sapfor/tests/sapfor/convert_sum_to_loop/simple_sum.f diff --git a/Sapfor/_test/sapfor/convert_sum_to_loop/sum_with_sections.f b/Sapfor/tests/sapfor/convert_sum_to_loop/sum_with_sections.f similarity index 100% rename from Sapfor/_test/sapfor/convert_sum_to_loop/sum_with_sections.f rename to Sapfor/tests/sapfor/convert_sum_to_loop/sum_with_sections.f diff --git a/Sapfor/_test/sapfor/convert_sum_to_loop/two_dimensional_sum.f b/Sapfor/tests/sapfor/convert_sum_to_loop/two_dimensional_sum.f similarity index 100% rename from Sapfor/_test/sapfor/convert_sum_to_loop/two_dimensional_sum.f rename to Sapfor/tests/sapfor/convert_sum_to_loop/two_dimensional_sum.f diff --git a/Sapfor/_test/sapfor/convert_where_to_loop/simple_where.f b/Sapfor/tests/sapfor/convert_where_to_loop/simple_where.f similarity index 100% rename from Sapfor/_test/sapfor/convert_where_to_loop/simple_where.f rename to Sapfor/tests/sapfor/convert_where_to_loop/simple_where.f diff --git a/Sapfor/_test/sapfor/convert_where_to_loop/two_dimensional_where.f b/Sapfor/tests/sapfor/convert_where_to_loop/two_dimensional_where.f similarity index 100% rename from Sapfor/_test/sapfor/convert_where_to_loop/two_dimensional_where.f rename to Sapfor/tests/sapfor/convert_where_to_loop/two_dimensional_where.f diff --git a/Sapfor/_test/sapfor/convert_where_to_loop/where_with_sections.f b/Sapfor/tests/sapfor/convert_where_to_loop/where_with_sections.f similarity index 100% rename from Sapfor/_test/sapfor/convert_where_to_loop/where_with_sections.f rename to Sapfor/tests/sapfor/convert_where_to_loop/where_with_sections.f diff --git a/Sapfor/_test/sapfor/create_nested_loops/program.expected.f90 b/Sapfor/tests/sapfor/create_nested_loops/program.expected.f90 similarity index 100% rename from Sapfor/_test/sapfor/create_nested_loops/program.expected.f90 rename to Sapfor/tests/sapfor/create_nested_loops/program.expected.f90 diff --git a/Sapfor/_test/sapfor/create_nested_loops/program.f90 b/Sapfor/tests/sapfor/create_nested_loops/program.f90 similarity index 100% rename from Sapfor/_test/sapfor/create_nested_loops/program.f90 rename to Sapfor/tests/sapfor/create_nested_loops/program.f90 diff --git a/Sapfor/_test/sapfor/create_nested_loops/test.bat b/Sapfor/tests/sapfor/create_nested_loops/test.bat similarity index 100% rename from Sapfor/_test/sapfor/create_nested_loops/test.bat rename to Sapfor/tests/sapfor/create_nested_loops/test.bat diff --git a/Sapfor/_test/sapfor/create_nested_loops/test.sh b/Sapfor/tests/sapfor/create_nested_loops/test.sh similarity index 100% rename from Sapfor/_test/sapfor/create_nested_loops/test.sh rename to Sapfor/tests/sapfor/create_nested_loops/test.sh diff --git a/Sapfor/_test/sapfor/fission_and_private_exp/fission_priv_exp.f90 b/Sapfor/tests/sapfor/fission_and_private_exp/fission_priv_exp.f90 similarity index 100% rename from Sapfor/_test/sapfor/fission_and_private_exp/fission_priv_exp.f90 rename to Sapfor/tests/sapfor/fission_and_private_exp/fission_priv_exp.f90 diff --git a/Sapfor/_test/sapfor/loops_combiner/test_1.for b/Sapfor/tests/sapfor/loops_combiner/test_1.for similarity index 100% rename from Sapfor/_test/sapfor/loops_combiner/test_1.for rename to Sapfor/tests/sapfor/loops_combiner/test_1.for diff --git a/Sapfor/_test/sapfor/loops_combiner/test_2.for b/Sapfor/tests/sapfor/loops_combiner/test_2.for similarity index 100% rename from Sapfor/_test/sapfor/loops_combiner/test_2.for rename to Sapfor/tests/sapfor/loops_combiner/test_2.for diff --git a/Sapfor/_test/sapfor/loops_combiner/test_3.for b/Sapfor/tests/sapfor/loops_combiner/test_3.for similarity index 100% rename from Sapfor/_test/sapfor/loops_combiner/test_3.for rename to Sapfor/tests/sapfor/loops_combiner/test_3.for diff --git a/Sapfor/_test/sapfor/loops_combiner/test_4.for b/Sapfor/tests/sapfor/loops_combiner/test_4.for similarity index 100% rename from Sapfor/_test/sapfor/loops_combiner/test_4.for rename to Sapfor/tests/sapfor/loops_combiner/test_4.for diff --git a/Sapfor/_test/sapfor/loops_combiner/test_5.for b/Sapfor/tests/sapfor/loops_combiner/test_5.for similarity index 100% rename from Sapfor/_test/sapfor/loops_combiner/test_5.for rename to Sapfor/tests/sapfor/loops_combiner/test_5.for diff --git a/Sapfor/_test/sapfor/merge_regions/array_read_before_write.in b/Sapfor/tests/sapfor/merge_regions/array_read_before_write.in similarity index 100% rename from Sapfor/_test/sapfor/merge_regions/array_read_before_write.in rename to Sapfor/tests/sapfor/merge_regions/array_read_before_write.in diff --git a/Sapfor/_test/sapfor/merge_regions/array_read_before_write.out b/Sapfor/tests/sapfor/merge_regions/array_read_before_write.out similarity index 100% rename from Sapfor/_test/sapfor/merge_regions/array_read_before_write.out rename to Sapfor/tests/sapfor/merge_regions/array_read_before_write.out diff --git a/Sapfor/_test/sapfor/merge_regions/read_before_read.in b/Sapfor/tests/sapfor/merge_regions/read_before_read.in similarity index 100% rename from Sapfor/_test/sapfor/merge_regions/read_before_read.in rename to Sapfor/tests/sapfor/merge_regions/read_before_read.in diff --git a/Sapfor/_test/sapfor/merge_regions/read_before_read.out b/Sapfor/tests/sapfor/merge_regions/read_before_read.out similarity index 100% rename from Sapfor/_test/sapfor/merge_regions/read_before_read.out rename to Sapfor/tests/sapfor/merge_regions/read_before_read.out diff --git a/Sapfor/_test/sapfor/merge_regions/read_in_loop_header.in b/Sapfor/tests/sapfor/merge_regions/read_in_loop_header.in similarity index 100% rename from Sapfor/_test/sapfor/merge_regions/read_in_loop_header.in rename to Sapfor/tests/sapfor/merge_regions/read_in_loop_header.in diff --git a/Sapfor/_test/sapfor/merge_regions/read_in_loop_header.out b/Sapfor/tests/sapfor/merge_regions/read_in_loop_header.out similarity index 100% rename from Sapfor/_test/sapfor/merge_regions/read_in_loop_header.out rename to Sapfor/tests/sapfor/merge_regions/read_in_loop_header.out diff --git a/Sapfor/_test/sapfor/merge_regions/var_modified_in_fun.in b/Sapfor/tests/sapfor/merge_regions/var_modified_in_fun.in similarity index 100% rename from Sapfor/_test/sapfor/merge_regions/var_modified_in_fun.in rename to Sapfor/tests/sapfor/merge_regions/var_modified_in_fun.in diff --git a/Sapfor/_test/sapfor/merge_regions/var_modified_in_fun.out b/Sapfor/tests/sapfor/merge_regions/var_modified_in_fun.out similarity index 100% rename from Sapfor/_test/sapfor/merge_regions/var_modified_in_fun.out rename to Sapfor/tests/sapfor/merge_regions/var_modified_in_fun.out diff --git a/Sapfor/_test/sapfor/merge_regions/var_read_before_write.in b/Sapfor/tests/sapfor/merge_regions/var_read_before_write.in similarity index 100% rename from Sapfor/_test/sapfor/merge_regions/var_read_before_write.in rename to Sapfor/tests/sapfor/merge_regions/var_read_before_write.in diff --git a/Sapfor/_test/sapfor/merge_regions/var_read_before_write.out b/Sapfor/tests/sapfor/merge_regions/var_read_before_write.out similarity index 100% rename from Sapfor/_test/sapfor/merge_regions/var_read_before_write.out rename to Sapfor/tests/sapfor/merge_regions/var_read_before_write.out diff --git a/Sapfor/_test/sapfor/merge_regions/write_before_read.in b/Sapfor/tests/sapfor/merge_regions/write_before_read.in similarity index 100% rename from Sapfor/_test/sapfor/merge_regions/write_before_read.in rename to Sapfor/tests/sapfor/merge_regions/write_before_read.in diff --git a/Sapfor/_test/sapfor/merge_regions/write_before_read.out b/Sapfor/tests/sapfor/merge_regions/write_before_read.out similarity index 100% rename from Sapfor/_test/sapfor/merge_regions/write_before_read.out rename to Sapfor/tests/sapfor/merge_regions/write_before_read.out diff --git a/Sapfor/_test/sapfor/merge_regions/write_before_write.in b/Sapfor/tests/sapfor/merge_regions/write_before_write.in similarity index 100% rename from Sapfor/_test/sapfor/merge_regions/write_before_write.in rename to Sapfor/tests/sapfor/merge_regions/write_before_write.in diff --git a/Sapfor/_test/sapfor/merge_regions/write_before_write.out b/Sapfor/tests/sapfor/merge_regions/write_before_write.out similarity index 100% rename from Sapfor/_test/sapfor/merge_regions/write_before_write.out rename to Sapfor/tests/sapfor/merge_regions/write_before_write.out diff --git a/Sapfor/_test/sapfor/parameter/magnit_3d.for b/Sapfor/tests/sapfor/parameter/magnit_3d.for similarity index 100% rename from Sapfor/_test/sapfor/parameter/magnit_3d.for rename to Sapfor/tests/sapfor/parameter/magnit_3d.for diff --git a/Sapfor/_test/sapfor/parameter/mycom.for b/Sapfor/tests/sapfor/parameter/mycom.for similarity index 100% rename from Sapfor/_test/sapfor/parameter/mycom.for rename to Sapfor/tests/sapfor/parameter/mycom.for diff --git a/Sapfor/_test/sapfor/parameter/parameter.f90 b/Sapfor/tests/sapfor/parameter/parameter.f90 similarity index 100% rename from Sapfor/_test/sapfor/parameter/parameter.f90 rename to Sapfor/tests/sapfor/parameter/parameter.f90 diff --git a/Sapfor/_test/sapfor/private_removing/test.f b/Sapfor/tests/sapfor/private_removing/test.f similarity index 100% rename from Sapfor/_test/sapfor/private_removing/test.f rename to Sapfor/tests/sapfor/private_removing/test.f diff --git a/Sapfor/_test/sapfor/private_removing/test_cannot_remove.f b/Sapfor/tests/sapfor/private_removing/test_cannot_remove.f similarity index 100% rename from Sapfor/_test/sapfor/private_removing/test_cannot_remove.f rename to Sapfor/tests/sapfor/private_removing/test_cannot_remove.f diff --git a/Sapfor/_test/sapfor/private_removing/test_cascade.f b/Sapfor/tests/sapfor/private_removing/test_cascade.f similarity index 100% rename from Sapfor/_test/sapfor/private_removing/test_cascade.f rename to Sapfor/tests/sapfor/private_removing/test_cascade.f diff --git a/Sapfor/_test/sapfor/shrink/error.f b/Sapfor/tests/sapfor/shrink/error.f similarity index 100% rename from Sapfor/_test/sapfor/shrink/error.f rename to Sapfor/tests/sapfor/shrink/error.f diff --git a/Sapfor/_test/sapfor/shrink/error2.f b/Sapfor/tests/sapfor/shrink/error2.f similarity index 100% rename from Sapfor/_test/sapfor/shrink/error2.f rename to Sapfor/tests/sapfor/shrink/error2.f diff --git a/Sapfor/_test/sapfor/shrink/error3.f b/Sapfor/tests/sapfor/shrink/error3.f similarity index 100% rename from Sapfor/_test/sapfor/shrink/error3.f rename to Sapfor/tests/sapfor/shrink/error3.f diff --git a/Sapfor/_test/sapfor/shrink/shrink.f b/Sapfor/tests/sapfor/shrink/shrink.f similarity index 100% rename from Sapfor/_test/sapfor/shrink/shrink.f rename to Sapfor/tests/sapfor/shrink/shrink.f diff --git a/Sapfor/_test/sapfor/shrink/shrink2.f b/Sapfor/tests/sapfor/shrink/shrink2.f similarity index 100% rename from Sapfor/_test/sapfor/shrink/shrink2.f rename to Sapfor/tests/sapfor/shrink/shrink2.f diff --git a/Sapfor/_test/sapfor/shrink/shrink3.f b/Sapfor/tests/sapfor/shrink/shrink3.f similarity index 100% rename from Sapfor/_test/sapfor/shrink/shrink3.f rename to Sapfor/tests/sapfor/shrink/shrink3.f