451 Commits

Author SHA1 Message Date
ALEXks
a0cea2df91 added new function for visualizer 2025-11-08 20:17:32 +03:00
ALEXks
4b7df86b8a version updated 2025-11-08 20:08:22 +03:00
836894fef1 Merge pull request 'private_arrays' (#68) from private_arrays into master 2025-11-08 17:07:07 +00:00
9ac15eec79 fix codestyle 2025-11-08 20:06:07 +03:00
03f565f50b add multifile support 2025-11-08 20:06:07 +03:00
47e2b961e2 Merge pull request 'replace_io_arrays' (#67) from replace_io_arrays into master 2025-10-01 18:13:01 +00:00
ALEXks
b95b336372 version updated 2025-10-01 21:12:49 +03:00
f35d7cb4bd REMOVE_DIST_ARRAYS_FROM_IO: consider write/read statements with nested loops 2025-10-01 19:48:34 +03:00
54615e34d4 REMOVE_DIST_ARRAYS_FROM_IO: use more general isSgVarListDeclStmt and isSgNestedVarListDeclStmt functions 2025-10-01 18:54:55 +03:00
8752f4a139 REMOVE_DIST_ARRAYS_FROM_IO: consider labels and goto statements while inserting copy statements 2025-10-01 18:54:55 +03:00
453105d273 REMOVE_DIST_ARRAYS_FROM_IO: consider array declarations from common blocks and dimension statements 2025-10-01 18:54:55 +03:00
cad0a0b217 Merge pull request 'cmake: set -O2 optimization level only if CMAKE_BUILD_TYPE is not specified' (#66) from cmake_linux_opt_level into master 2025-09-25 18:13:00 +00:00
9c0fd40e7b cmake: change default optimization level to O3 2025-09-25 20:49:11 +03:00
c7a31c8bbb cmake: set -O2 optimization level only if CMAKE_BUILD_TYPE is not specified 2025-09-25 13:44:10 +03:00
ALEXks
9900929349 refactored 2025-09-23 08:21:05 +03:00
ALEXks
e1ba299159 cleanup 2025-09-21 08:47:42 +03:00
ALEXks
8de18d1788 added json to global results 2025-09-18 21:09:43 +03:00
06aabdbee6 Merge pull request 'REMOVE_DIST_ARRAYS_FROM_IO Handle assumed-size and assumed-shape arrays' (#64) from replace_io_arrays into master 2025-09-16 05:23:30 +00:00
ALEXks
c6f290bb56 trivial, version updated 2025-09-16 08:22:53 +03:00
49d3b9b96e REMOVE_DIST_ARRAYS_FROM_IO: revert hotfix for issue with generated intent statements 2025-09-15 21:25:57 +03:00
280beb13cc REMOVE_DIST_ARRAYS_FROM_IO: regard generated intent statements, carefully detect assumed-shape arrays 2025-09-13 20:48:24 +03:00
3bc9351641 REMOVE_DIST_ARRAYS_FROM_IO: do not process arrays from headers, copy from correct declarations, improve style 2025-09-13 20:48:24 +03:00
16b2c6b42b REMOVE_DIST_ARRAYS_FROM_IO: remove debug prints 2025-09-13 20:48:24 +03:00
fe31df0ef2 REMOVE_DIST_ARRAYS_FROM_IO: handle assumed-size and assumed-shape arrays 2025-09-13 20:48:24 +03:00
ALEXks
4c8681bfe2 dvm updated 2025-09-13 20:25:59 +03:00
ALEXks
d330a6ee23 changed line numbers to negative for INTENT and INTRINSIC 2025-09-13 20:21:56 +03:00
ALEXks
b439759e9b updated dvm for SAPFOR 2025-09-11 17:20:44 +03:00
b11973cb64 Merge pull request 'ArrayAnalysis: consider case of IO_PRIV array from module' (#65) from io_priv_module_arrays into master 2025-09-11 05:07:39 +00:00
ALEXks
df9a9a30bb fixed DIST::IO_PRIV detection 2025-09-11 08:07:14 +03:00
ALEXks
2cd02c295f fixed expression calculation, fixed addArg 2025-08-20 14:34:17 +03:00
ALEXks
278fc1ff9c fixed replace_dist_array pass: added more file switching 2025-07-27 08:52:28 +03:00
ALEXks
80eac5b957 fixed region inserter 2025-07-27 08:20:36 +03:00
ALEXks
0c9eed4bb7 fixed transformation 2025-07-27 07:59:25 +03:00
ALEXks
d3d6d0bec7 added TRANSFORM_ASSUMED_SIZE_PARAMETERS pass, fixed shared memory parallelization 2025-07-26 20:22:15 +03:00
ALEXks
3095510826 improved cmake 2025-07-22 08:54:21 +03:00
ALEXks
85e2a60183 removed createInterfacesForAssumedSize call 2025-07-09 14:46:29 +03:00
ALEXks
68bd21b7b0 fixed inout analysis for function's parameters 2025-07-09 12:00:27 +03:00
ALEXks
177433a95b turn off createInterfacesForAssumedSize call 2025-07-05 20:58:12 +03:00
ALEXks
29ece9072e fixed shared memory parallelization 2025-07-05 20:49:23 +03:00
ALEXks
feafa43f32 fixed declare insertion 2025-07-02 12:02:30 +03:00
ALEXks
b8f429256f added removedUnreachableBlocks call for buildCFG 2025-06-29 16:02:37 +03:00
ALEXks
2f53d6ae2e fixed 2025-06-22 09:22:10 +03:00
ALEXks
65237e4d63 added inductive variables and loop type to LoopGraph 2025-06-22 09:19:37 +03:00
ALEXks
7533739488 moved to removedUnreachableBlocks 2025-06-18 16:26:43 +03:00
c1d31b809b Merge pull request 'REMOVE_DIST_ARRAYS_FROM_IO: improve parsing of IO operators, fix substitution borders' (#63) from replace_io_arrays into master
Reviewed-on: #63
2025-06-15 17:07:00 +00:00
537f3eb6e9 version updated 2025-06-15 20:06:35 +03:00
f5f99f6e8a REMOVE_DIST_ARRAYS_FROM_IO: improve parsing of IO operators, fix substitution borders 2025-06-15 15:08:11 +03:00
ALEXks
fc47a1685c version updated 2025-06-14 21:07:24 +03:00
383d8df826 Merge pull request 'REMOVE_DIST_ARRAYS_FROM_IO: use isArrayRef' (#62) from replace_io_arrays into master
Reviewed-on: #62
2025-06-14 18:06:19 +00:00
ebc5a1cbc1 REMOVE_DIST_ARRAYS_FROM_IO: use isArrayRef 2025-06-14 20:25:23 +03:00
ALEXks
0eee799867 fixed dependencies pass order 2025-06-14 16:03:14 +03:00
ALEXks
50dd54cec1 improved 2025-06-14 15:15:51 +03:00
ALEXks
6a59bc0e09 added missing 2025-06-14 12:52:57 +03:00
ALEXks
9e777ceeab fixed shared memory parallelization, moved messages to single file 2025-06-14 12:50:04 +03:00
ALEXks
10636427ed fixed findArrayRef in loop_graph 2025-06-14 12:20:34 +03:00
ALEXks
a0704038db fixed compilation 2025-06-11 15:17:32 +03:00
623f6c0d73 Merge pull request 'dynamic parameters' (#61) from dyn_params into master
Reviewed-on: #61
2025-06-11 12:07:36 +00:00
ALEXks
622159cba6 improved 2025-06-11 15:07:06 +03:00
ALEXks
db26a2c332 merged master 2025-06-11 14:50:27 +03:00
ALEXks
8ad19cbfa5 fixed merging 2025-06-11 11:31:48 +03:00
ALEXks
1895a4b02a fixed 2025-06-06 08:15:10 +03:00
ALEXks
623898d913 added message dumping for -parse option if running from console 2025-06-05 19:04:56 +03:00
ALEXks
a96a4bcaa6 added dump messages function 2025-06-04 15:07:20 +03:00
ALEXks
a7764847c4 fixed 2025-06-04 13:55:37 +03:00
ALEXks
fca4f632e4 refactoring: removed unnecessary 2025-06-04 13:08:38 +03:00
ALEXks
f53d514a47 added VISUALIZER_DATA_PATH variable 2025-06-04 13:01:50 +03:00
ae9cc2bf3b Fix set iterators invalidation in find_parameters 2025-06-04 09:19:10 +03:00
c6a0c73287 fix UB in dom tree builder 2025-06-04 09:18:24 +03:00
ALEXks
db32a3e2b2 small fix 2025-06-04 08:32:25 +03:00
ALEXks
a0a401c42a refactored transformation: added folders for each transformation 2025-06-02 19:08:09 +03:00
8161609173 Merge pull request 'fix range stuctures' (#60) from private_arrays_fix into master 2025-06-02 05:26:21 +00:00
a2e6269508 fix range stuctures 2025-06-02 08:23:40 +03:00
ALEXks
72a1c1d853 fixed merge 2025-05-30 13:00:40 +03:00
5c89299ad5 Merge pull request 'o.nikitin_private_arrays' (#58) from o.nikitin_private_arrays into master
Reviewed-on: #58
2025-05-30 09:45:49 +00:00
ALEXks
26e36bed46 fixed code style 2025-05-30 12:45:05 +03:00
ALEXks
8dcbd587ec fixed submodule 2025-05-30 12:31:19 +03:00
ALEXks
f7a78f9626 restored messages 2025-05-30 12:29:35 +03:00
fbe22fca43 Merge branch 'master' into o.nikitin_private_arrays 2025-05-30 12:21:13 +03:00
bbb9823f1d updated submodule 2025-05-30 12:20:08 +03:00
b454858647 delete zero from directive 2025-05-30 12:00:56 +03:00
ALEXks
ad99446b12 added missing 2025-05-30 11:57:39 +03:00
ALEXks
d3e8c481d2 fixed code style, moved dom tree building to IR 2025-05-30 11:34:32 +03:00
4e16638c36 Clean up 2025-05-29 09:14:12 +03:00
6742932862 Add SPF directive insertion 2025-05-29 09:14:12 +03:00
8b2e59356a Extend interprocedural analysis 2025-05-29 09:14:12 +03:00
f9d52c0c3e unparse after 2025-05-29 09:14:12 +03:00
537d60222f Add Dominator tree builder and interprocedural analysis 2025-05-29 09:14:12 +03:00
4eb057731f trivial case for local variables only 2025-05-29 09:14:12 +03:00
402ae91c33 Merge pull request 'weighted_par_regions' (#57) from weighted_par_regions into master
added weighted parallel regions (by Mikhail K)
2025-05-29 06:08:47 +00:00
ba632b29ce cleanup and replaced parseFortranDouble to strtod 2025-05-29 09:07:20 +03:00
18edf55d15 merged mastser 2025-05-28 16:31:27 +03:00
c347f56e47 Merge branch 'master' into o.nikitin_private_arrays 2025-05-28 16:24:17 +03:00
ALEXks
8f55c13a0c added dumping messages to json 2025-05-27 18:10:24 +03:00
11e9fab482 change file structure 2025-05-27 02:25:39 +03:00
ALEXks
7ee9d839a1 moved messages from Parser to SPF_message 2025-05-26 21:06:51 +03:00
ALEXks
78e9b63331 moved messages to Json 2025-05-23 17:36:12 +03:00
ALEXks
879094a6b7 moved messages to Json, some refactoring 2025-05-23 15:56:37 +03:00
ALEXks
6c16cc5432 added json for SPF_ParseFilesWithOrder pass 2025-05-20 16:37:21 +03:00
ALEXks
b1eeac0b10 added json for SPF_CreateParallelVariant pass 2025-05-20 16:20:27 +03:00
73d0b201f2 change passes 2025-05-19 20:59:59 +03:00
1973d095f5 made functions static 2025-05-19 20:59:59 +03:00
O. Nikitin
f679666d01 fix operator!= 2025-05-19 20:52:06 +03:00
0df1d3d5fe add dataflow solvation 2025-05-19 20:52:06 +03:00
54eb1ecc95 add Region constructor and SolveDataflow function 2025-05-19 20:52:06 +03:00
b7ebccf045 add Collapse 2025-05-19 20:52:06 +03:00
ALEXks
4bcf83f551 fixed 2025-05-19 14:07:33 +03:00
ALEXks
c548f4ab4c added json to SPF_GetArrayLinks 2025-05-18 20:15:50 +03:00
2338156a28 Merge pull request 'arrayJson' (#56) from arrayJson into master 2025-05-18 15:32:12 +00:00
ALEXks
718b1738a1 fixed typo 2025-05-18 16:42:38 +03:00
ALEXks
0fe97ceb24 fixed AlignRuleBase::toJson() 2025-05-18 16:41:14 +03:00
ALEXks
81725651b1 fixed Array::toJson() 2025-05-18 16:41:14 +03:00
ALEXks
4614e166b4 version updated 2025-05-18 16:41:10 +03:00
ALEXks
bcecd5460b added json for SPF_GetArrayDistribution pass 2025-05-18 16:40:31 +03:00
ALEXks
719e3723ae added json for SPF_GetAllDeclaratedArrays pass 2025-05-18 16:40:31 +03:00
ALEXks
12d3c2c8e5 fixed NULL error in matchParallelAndDist function 2025-05-18 15:42:38 +03:00
ALEXks
a719dea05f fixed BUILD_INCLUDE_DEPENDENCIES pass 2025-05-18 15:38:26 +03:00
ALEXks
5f98eaf872 updated submodule 2025-05-18 14:53:46 +03:00
ALEXks
e3d77f51f1 fixed getNameInLocation 2025-05-11 09:17:16 +03:00
738f2c5d12 Support APPLY_FRAGMENT(WEIGHT(double)) clause: add weights to fragments of parallel regions (and use it in at loopAnalyzer) 2025-05-10 15:27:03 +03:00
ALEXks
29a8c30370 fixed Array::toJson 2025-05-07 20:16:43 +03:00
ALEXks
99f5febd58 added json for SPF_GetAllDeclaratedArrays pass 2025-05-07 19:59:54 +03:00
ALEXks
0a4b795900 fixed module utils 2025-05-07 15:00:01 +03:00
ALEXks
8efd632325 fixed gcov 2025-05-02 21:38:13 +03:00
ALEXks
5a7d7269cd added json for SPF_GetGCovInfo pass 2025-05-02 17:52:28 +03:00
ALEXks
4b7c3d89b0 fixed getInterfaceBlock 2025-04-30 16:52:37 +03:00
ALEXks
e7990bda0a fixed SPF_InsertIncludesPass unpacking 2025-04-30 09:14:22 +03:00
ALEXks
a49f10cb5b added predictor library to Sapfor 2025-04-25 14:30:43 +03:00
636f2b0af1 added predictor library to submodule 2025-04-23 18:02:18 +03:00
ALEXks
640e34816f Merge branch 'master' of http://192.168.0.176:30008/Alexander_KS/SAPFOR 2025-04-23 14:25:05 +03:00
ALEXks
b88eccaad4 added json for line info 2025-04-23 14:25:01 +03:00
ALEXks
7b0cb828a7 fixed predictor 2025-04-22 18:08:28 +03:00
ALEXks
06980ee344 fixed dumping statistics 2025-04-20 21:34:31 +03:00
ALEXks
cde49042ae added pass dependency for RENAME_INLCUDES 2025-04-16 16:18:32 +03:00
ALEXks
dae0afef45 moved SPF_GetIncludeDependencies to json 2025-04-16 14:58:46 +03:00
ALEXks
41b4649d83 added json for call graph positions, removed SPF_GetGraphVizOfFunctions 2025-04-13 21:30:41 +03:00
ALEXks
b068a49b0b added json for call graph 2025-04-13 17:24:49 +03:00
ALEXks
5acbd10a26 removed checking from predictor 2025-04-12 21:52:41 +03:00
ALEXks
da6685df43 fixed 2025-04-01 18:53:49 +03:00
ALEXks
9c4993feeb version 2025-04-01 16:36:31 +03:00
ALEXks
7666a6c804 declare for module in progess 2025-04-01 16:36:09 +03:00
ALEXks
79302bf7b7 moved LoopGraph to json 2025-04-01 15:31:43 +03:00
ALEXks
a7f199ad4c moved LoopGraph to json 2025-04-01 15:28:53 +03:00
ALEXks
381e3c5355 fixed removeDvmSpfDirectives 2025-03-25 13:14:14 +03:00
ALEXks
7eef52eb90 fixed removeDvmSpfDirectives 2025-03-25 12:28:21 +03:00
ALEXks
6235d11eb7 fixed module analysis 2025-03-23 15:15:00 +03:00
ALEXks
ddec450845 fixed 2025-03-19 20:35:57 +03:00
ALEXks
024b9581c9 fixed module symbols analysis 2025-03-19 20:31:19 +03:00
ALEXks
d58227bd0c added REMOVE_SPF pass 2025-03-18 09:37:20 +03:00
ALEXks
43dfc2368a version updated 2025-03-15 13:05:15 +03:00
9b12eb20c8 Обновить README.md 2025-03-13 15:14:12 +00:00
bacdc170bc Обновить README.md 2025-03-13 13:31:02 +00:00
bb174e6f72 added forgotten files 2025-03-13 16:26:16 +03:00
ca05420451 moved dvm to submodule 2025-03-13 12:48:07 +03:00
d0488339d0 added dvm as submodule 2025-03-13 12:17:20 +03:00
ALEXks
d0c7d0ba34 added Server project 2025-03-13 10:07:58 +03:00
eb39eb4b19 fixed cmakes 2025-03-13 09:52:03 +03:00
7a51067b7a moved to dvm_svn 2025-03-13 09:28:27 +03:00
033bbce220 finalyze moving 2025-03-12 14:28:04 +03:00
f840006398 fixed paths 2025-03-12 14:24:50 +03:00
18f561925b fixed paths 2025-03-12 14:22:11 +03:00
a4c8785e66 removed unnecessary 2025-03-12 14:12:44 +03:00
684d391bff fixed paths 2025-03-12 14:11:06 +03:00
24210c8bfb fixed paths 2025-03-12 12:45:22 +03:00
6a4040be3e moved 2025-03-12 12:37:19 +03:00
ALEXks
1c851baa7e added module symbols initiazliation 2025-03-11 15:24:36 +03:00
ALEXks
817a910a4b version updated 2025-03-06 20:13:06 +03:00
ALEXks
ab294fbeb2 fdvm updated 2025-03-06 20:07:20 +03:00
ALEXks
0b594f7c2a fixed module analysis 2025-03-05 12:31:01 +03:00
ALEXks
c58755df2b first step of shadow fixing 2025-02-20 19:52:32 +03:00
ALEXks
7b12fb1bb0 improved module analysis 2025-02-18 18:57:05 +03:00
ALEXks
6b0eaab96d improved module analysis 2025-02-18 13:45:20 +03:00
ALEXks
83a303cc30 fixed implicit 2025-02-13 16:37:24 +03:00
ALEXks
7e17c62bbb refactoring module analysis 2025-02-10 17:16:15 +03:00
ALEXks
f135cd6d06 fixed module symbol analysis 2025-02-10 13:13:01 +03:00
ALEXks
1504504d96 fixed function analysis 2025-02-10 12:16:52 +03:00
ALEXks
d8aa5606ef fixed dead flag for functions 2025-02-09 20:48:06 +03:00
ALEXks
c5d063b0da fixed distribution, fixed routine, fixed null program unparsing 2025-01-29 10:08:13 +03:00
ALEXks
ab7b617e76 added optimized version of CG on GPU 2025-01-28 10:09:35 +03:00
ALEXks
a14bc20cf4 removed logging from SAPFOR and SERVER, updated NPB and fdvm 2025-01-28 10:09:10 +03:00
ALEXks
8879eb2fbf updated dvm 2025-01-24 17:33:55 +03:00
ALEXks
3c924aee73 fixed DECLARE 2025-01-15 15:23:49 +03:00
ALEXks
15535fad2a fixed DECLARE 2025-01-13 18:16:11 +03:00
ALEXks
95cfb4446b fixed 2025-01-12 17:48:08 +03:00
ALEXks
fe7345aab0 added dvm declare 2025-01-12 17:46:37 +03:00
ALEXks
631a73ddc0 fixed routine convertation 2025-01-12 15:58:18 +03:00
ALEXks
b0df33e926 improved ROUTINE insertion 2025-01-11 09:32:17 +03:00
ALEXks
f3f7368bdc updated dvm 2024-12-25 12:56:47 +03:00
ALEXks
34cf4cc202 version updated 2024-12-05 12:54:37 +03:00
ALEXks
fcedc0e029 fixed typo in message 2024-12-05 12:51:59 +03:00
ALEXks
21acea498e added new directives 2024-12-05 12:50:36 +03:00
77c46121a2 Merge pull request 'replace_dist_arrays_in_io: copy declorations from includes, fix replacement bounds, improve performance, fix SgUtils' (#55) from replace_dist_arrays_in_io into master 2024-12-05 09:47:55 +00:00
7d342c51a8 replace_dist_arrays_in_io: copy declorations from includes, fix replacement bounds, improve performance, fix SgUtils 2024-12-02 23:18:53 +03:00
ALEXks
d6cb4c2a8a fixed remotes, shadows, array analysis 2024-11-21 15:07:16 +03:00
ALEXks
2e2bcadfa1 fixed fdvm, fixed errors with interfacesg 2024-11-17 17:19:58 +03:00
dacca844ed Merge pull request 'replace_dist_arrays_in_io: choose arrays for copying more carefully' (#54) from replace_dist_arrays_in_io into master 2024-11-17 14:17:22 +00:00
6254f38cff version updated 2024-11-17 14:17:09 +00:00
d9d4d50e5a replace_dist_arrays_in_io: choose arrays for copying more carefully 2024-11-16 10:32:01 +03:00
ALEXks
c63c4dd46c added simple implementation for GET_STATS_FOR_PREDICTOR pass 2024-11-14 12:37:38 +03:00
b163958711 Merge pull request 'add pass REMOVE_DIST_ARRAYS_FROM_IO, make copyArray fuction from resolve_par_regions public' (#53) from replace_dist_arrays_in_io into master 2024-11-14 06:19:28 +00:00
4a06430139 replace_dist_arrays_in_io: fix code style, replace only distributed arrays 2024-11-14 09:16:41 +03:00
3a7a54e4be replace_dist_arrays_in_io: insert PROCESS_PRIVATE directives 2024-11-14 09:16:41 +03:00
413daa2aea replace_dist_arrays_in_io: insert only necessary copy statements 2024-11-14 09:16:41 +03:00
b1faa5e80a add pass REMOVE_DIST_ARRAYS_FROM_IO, make copyArray fuction from resolve_par_regions public 2024-11-14 09:16:41 +03:00
ALEXks
dfad887814 updated across and reduction 2024-11-14 09:16:06 +03:00
ALEXks
5e60b5cd5c added new implimentation of private arrays 2024-10-29 11:53:41 +03:00
ALEXks
1a1705d2e4 added statistics 2024-10-07 14:50:37 +03:00
5fda069476 Merge pull request 'macos build fix' (#52) from macos_build_fix into master 2024-10-05 05:45:26 +00:00
7e0f829970 macos build fix 2024-10-05 00:21:00 +03:00
ALEXks
e64ee54c2a fixed actuals 2024-10-04 15:27:47 +03:00
1140957dce fixed build for clang 2024-10-04 15:26:19 +03:00
9f15a980af updated requrenments of cmake 2024-10-04 12:02:31 +03:00
96671bc2f4 Обновить README.md 2024-10-02 14:31:47 +00:00
ALEXks
e8cdf0e3f0 added statistics, fixed shadow, fixed inliner, and etc. 2024-09-30 20:24:34 +03:00
ALEXks
7b34de49a8 added new pass for statistics, updated dvm 2024-08-30 12:17:35 +03:00
ALEXks
861ce8262e fixed implicit none 2024-07-31 17:01:21 +03:00
ALEXks
aa56d986a9 added new options 2024-07-24 12:07:29 +03:00
ALEXks
5e0c79fc0c fixed implicit none, fixed analysis 2024-07-20 13:03:27 +03:00
ALEXks
c59ca7ccb6 fixed implicit none 2024-07-19 21:10:43 +03:00
2e2ab128d2 Merge pull request 'remove select_dim_conf pass' (#50) from remove_select_dim_pass into master 2024-07-18 15:02:54 +00:00
ALEXks
bb4c9a8606 save prev logic 2024-07-18 18:02:01 +03:00
517f5d2b6c remove select_dim_conf pass 2024-07-18 12:35:14 +03:00
cab8b57375 Merge pull request 'Refactor shared memory parallelization' (#49) from refactor_shared_memory_parallelization into master 2024-07-18 06:50:40 +00:00
ALEXks
5991a83308 version updated 2024-07-18 09:49:56 +03:00
ALEXks
962e0fab77 restored 2024-07-18 09:49:14 +03:00
7b46798785 shared memory parallelization: do not include private arrays in TIE list 2024-07-17 20:01:50 +03:00
8931aced85 shared memory parallelization: small fixes 2024-07-16 20:36:29 +03:00
793408f9a8 shared memory parallelization: avoid use of arrays struct in shared memory case 2024-07-06 20:11:07 +03:00
06f908c1b2 shared memory parallelization: do not find privates in modules 2024-07-06 18:09:59 +03:00
3cb6f6dd5c shared memory parallelization: remove duplicated code 2024-07-06 18:02:21 +03:00
444f7e36bc merge code of directives creation for general and shared memory cases 2024-07-06 14:37:10 +03:00
7daf1b4038 loop analyzer refactor for shared memory parallelization 2024-07-06 14:35:44 +03:00
1be169e7ff Rename mpiProgram flag to sharedMemoryParallelization 2024-06-20 13:10:31 +03:00
ALEXks
305d43c591 updated dvm part 2024-06-19 18:07:10 +03:00
ALEXks
c261697970 added new pass 2024-06-10 09:16:15 +03:00
0a8a8f5d96 Merge pull request 'private_removing' (#47) from private_removing into master 2024-06-10 06:14:40 +00:00
6022ed11e8 private_removing: some small fixes 2024-06-09 13:11:41 +03:00
9d74330aba private_removing: small fix 2024-06-08 21:19:33 +03:00
ALEXks
a2e44a9548 fixed implicit and imtent insertion 2024-05-25 17:41:28 +03:00
b8b2c6baa7 Merge pull request 'fix expression substitution' (#46) from subst_expr_rd into master 2024-05-25 14:39:51 +00:00
083a1f5189 fix expression substitution 2024-05-25 15:37:38 +03:00
ALEXks
e9774ebc46 improved checkpoints 2024-05-22 21:02:04 +03:00
f1f69ef658 Merge pull request 'improve dead code analysis' (#45) from dead_code_removing into master 2024-05-22 18:01:31 +00:00
17de9e271a rename DATA_FLOW_UPD_STATUS constants 2024-05-22 20:28:13 +03:00
01016a7b9f improve dead code analysis 2024-05-22 10:33:58 +03:00
ALEXks
62e4c5cdfe improved checkpoints 2024-05-16 14:15:02 +03:00
ALEXks
69cba903ee added new implementation of checkpoints by Anton Milienkov 2024-05-16 09:23:02 +03:00
ALEXks
2fa0eb3e42 fixed implicit pass 2024-05-15 17:54:18 +03:00
ALEXks
87a4413472 fixed implicit pass 2024-05-14 12:53:31 +03:00
ALEXks
f88e1f570c improved shared memory parallelization 2024-05-13 18:09:45 +03:00
ALEXks
0b6a915753 fixed implicit none and imterfaces insertion 2024-05-13 10:37:59 +03:00
ALEXks
4a13250d1c improved intent insertion 2024-05-12 13:37:42 +03:00
ALEXks
b0d4a1cac5 improved in/out analysis 2024-05-11 16:45:15 +03:00
ALEXks
00ca5fbfdf improved function analysis 2024-05-11 15:38:41 +03:00
ALEXks
0197fd3a4b improved shared memory parallelization 2024-05-03 16:32:39 +03:00
ALEXks
2292a37a15 updted ignore 2024-05-02 17:15:44 +03:00
ALEXks
94570a414b added tests 2024-05-02 17:08:55 +03:00
ALEXks
d0d629eeb8 WIP: added interfaces 2024-05-02 11:05:56 +03:00
ALEXks
0f79933131 fixed implicit pass 2024-04-18 21:36:40 +03:00
ALEXks
387707cd82 fixed dead code 2024-04-16 20:17:02 +03:00
ALEXks
21c0c44335 version updated 2024-04-16 17:40:15 +03:00
22f0a5e78f Merge pull request 'private_remoing: add loop alignment check and fix messages' (#44) from private_removing into master 2024-04-16 14:39:33 +00:00
2546c9dca8 Merge pull request 'shared memory parallelization: fix notification messages' (#43) from shared_memory_parallelization into master 2024-04-16 14:37:24 +00:00
e50f7b6c47 Merge pull request 'fixed load and save blocks insert' (#42) from CP_blocks_insert into master 2024-04-16 14:36:47 +00:00
b7d7d23dfa Merge branch 'master' into CP_blocks_insert 2024-04-16 14:36:19 +00:00
bbb1f08959 private_remoing: add loop alignment check and fix messages 2024-04-16 15:49:58 +03:00
3cbbf68959 shared memory parallelization: fix notification messages 2024-04-15 13:29:50 +03:00
ALEXks
b2693b655a fixed cyclic deletion 2024-04-15 09:31:25 +03:00
ALEXks
d8bd2ec43a fixed dead code 2024-04-14 21:30:09 +03:00
ALEXks
f7406cf729 improved 2024-04-13 20:01:26 +03:00
461ff35352 Merge pull request 'shared memory parallelization: add notification message' (#41) from shared_memory_parallelization into master 2024-04-13 16:56:58 +00:00
ALEXks
2b9adf5d27 improved IR and dead_code 2024-04-13 18:14:28 +03:00
072b587e90 shared memory parallelization: add notification message 2024-04-13 13:29:57 +03:00
ALEXks
b1eb7608ba added cover 2024-04-12 16:36:37 +03:00
ALEXks
18f58020f5 improved 2024-04-12 15:25:48 +03:00
ALEXks
5b1e18cdfd fixed f2c 2024-04-12 15:04:48 +03:00
7a9794569f Merge pull request 'dead_code_removing' (#40) from dead_code_removing into master 2024-04-12 12:04:01 +00:00
a827c40543 dead code: handle STORE and LOAD instructions 2024-04-10 22:03:27 +03:00
aace0bf06f dead code: add static const qualifier to constant sets 2024-04-10 19:04:25 +03:00
ff2a1c69d8 dead code: fix for entry statements, improve perfomance 2024-04-10 18:58:46 +03:00
ALEXks
ba70047ebf fixed TIE for shared parallelization, fixed messages, fixed privates insertion pass 2024-04-10 13:42:49 +03:00
ALEXks
b0a63cc711 added new directives 2024-04-09 16:50:47 +03:00
ALEXks
2b48813783 added new directives 2024-04-09 16:41:48 +03:00
ALEXks
1b4eb0c5c4 fixed CalculateInteger usage 2024-04-09 11:51:21 +03:00
0a2e187d26 Merge pull request 'private_removing' (#39) from private_removing into master 2024-04-09 07:37:05 +00:00
ALEXks
82de4d6f03 added method for unparsing an expression in Fortran or C 2024-04-09 10:36:46 +03:00
492df9fe6c private_removing: add indirect usage check for func_call expressions 2024-04-09 00:38:31 +03:00
1e5ae1ef80 private_removing: fix bugreport_1712578151 2024-04-08 17:51:50 +03:00
494a705930 data flow: perfomance improvement 2024-04-07 19:06:33 +03:00
9bc4fa246c dead code: improve perfomance by removing unnecessary checks 2024-04-07 17:40:30 +03:00
e33fe45a2b handle contains statement while removing dead code, fix getLive method 2024-04-07 17:06:18 +03:00
aa0a464ead Merge pull request 'private_removing: update interprocedure analysis' (#38) from private_removing into master 2024-04-07 11:12:04 +00:00
02baed087f private_removing: update interprocedure analysis 2024-04-07 12:05:39 +03:00
ALEXks
92d4c54eaf improved dead code 2024-04-06 18:04:59 +03:00
92bb44560c Merge pull request 'dead code: removing of if-else statement' (#37) from dead_code_removing into master 2024-04-06 15:01:12 +00:00
5f3da5d708 dead code: fix for if-else statements 2024-04-06 17:52:18 +03:00
e5b4d6cc50 dead code: removing of if-else statement 2024-04-06 17:00:29 +03:00
f5012508d1 Обновить sapfor/experts/Sapfor_2017/_src/Utils/version.h 2024-04-05 17:40:24 +00:00
95079e29e5 Merge pull request 'dead_code_removing' (#36) from dead_code_removing into master 2024-04-05 17:39:56 +00:00
2cc9cf3254 Merge pull request 'private_removing: some small fixes' (#35) from private_removing into master 2024-04-05 17:37:29 +00:00
5f4bb71dcf dead code: fix for variables from loop headers 2024-04-05 16:03:18 +03:00
ALEXks
841eb0314d replacing kernel and handler names to avoid conflicts with C language keywords and intrinsic function names 2024-04-05 12:37:59 +03:00
42f64531b8 private_removing: some small fixes 2024-04-05 01:05:11 +03:00
af194134ba dead_code: fix for recent changes 2024-04-04 20:37:34 +03:00
e2ac45f48d codestyle issues 2024-04-04 20:15:56 +03:00
1ac7fcca2a fixes for dead code removing pass 2024-04-03 21:13:56 +03:00
ALEXks
b65437a75c fixed and improved OMP parser 2024-04-02 17:48:48 +03:00
ALEXks
1840fb7d45 fixed privates removing 2024-04-01 16:35:26 +03:00
ALEXks
d0fa88eea2 fixed privates resizing 2024-03-30 19:29:13 +03:00
d589a372a0 Merge pull request 'Improvements of shared memory parallelization' (#34) from selecct_array_conf_pass into master 2024-03-30 16:28:03 +00:00
ALEXks
2d7fea1d7c improved 2024-03-30 19:27:38 +03:00
9812ced8ca fix russian messages in loop_ananlyzer_nodist.cpp 2024-03-30 19:07:24 +03:00
b9a488c7ea remove redunant call of SELECT_ARRAY_DIM_CONF pass 2024-03-30 19:04:49 +03:00
e32bdb0e07 fix linux build 2024-03-30 18:51:36 +03:00
1713c26547 prevent loops with return statements from parallelization 2024-03-29 18:01:08 +03:00
66feb15714 fix for analysis mode 2024-03-29 15:27:41 +03:00
ALEXks
09d0195693 improved privated removing 2024-03-28 21:57:06 +03:00
d1022f2a88 Merge pull request 'shared_memory_parallelization' (#33) from shared_memory_parallelization into master 2024-03-26 13:36:21 +00:00
ALEXks
1326c5e09d fixed, vesion updated 2024-03-26 16:36:01 +03:00
5c83e36a62 recalculateParallelDirective: dereference of a null pointer 2024-03-26 14:00:40 +03:00
ebca0b4c41 shared memory: private arrays, free loops 2024-03-26 13:59:48 +03:00
83f4e1289c fix select_array_conf pass for nested loops 2024-03-26 13:58:00 +03:00
ALEXks
8a689b5ee3 refactoring 2024-03-24 21:24:32 +03:00
ALEXks
947747962d fixed 2024-03-24 15:21:02 +03:00
ALEXks
763be1857a fixed and improved private array resizing pass 2024-03-24 15:13:53 +03:00
ALEXks
2d0104561e cleanup 2024-03-23 11:24:29 +03:00
330b5dd653 Merge pull request 'task-create-implicit-pass' (#30) from task-create-implicit-pass into master 2024-03-23 08:21:24 +00:00
ALEXks
277a1f8bef version updated 2024-03-23 11:20:56 +03:00
ALEXks
4ae313e93f Merge branch 'master' into task-create-implicit-pass 2024-03-23 11:19:52 +03:00
ALEXks
bdb74c8ae7 fixed function names 2024-03-23 11:17:46 +03:00
ALEXks
24fe7b4bad fixed cmake 2024-03-23 10:53:14 +03:00
ALEXks
c5866f2cf9 improved pass 2024-03-23 10:51:41 +03:00
ALEXks
f345741acc fixed pass 2024-03-23 09:13:58 +03:00
ALEXks
d27b9d1ed3 dvm updated, fixed and improved dead_code pass 2024-03-22 12:00:01 +03:00
35dc430243 Fix link transport 2024-03-22 09:19:14 +03:00
b80c941fec Fix internal program error 2024-03-21 21:05:14 +03:00
5f69d9c39d fixed load and save blocks insert 2024-03-20 10:08:06 +03:00
ALEXks
0f39f6474d fixed files switching 2024-03-18 14:49:04 +03:00
ALEXks
093abbbd55 version updated 2024-03-17 19:15:58 +03:00
c6bc19640b Merge pull request 'private_removing: fix pass manager' (#32) from private_removing into master 2024-03-17 16:15:04 +00:00
968491ee29 private_removing: fix pass manager 2024-03-17 18:49:59 +03:00
fbcddeea8f Remove printf 2024-03-17 18:46:49 +03:00
34bc8b0219 Fix problems 2024-03-16 19:40:29 +03:00
ALEXks
11888f2ff9 dvm updated, version of sapfor updated 2024-03-16 17:35:51 +03:00
ed34da415a Merge pull request 'private_removing: add dead code removing' (#31) from private_removing into master 2024-03-16 14:31:07 +00:00
c00f8d6977 Fix searching letters and vars 2024-03-16 15:31:06 +03:00
1d82af702e private_removing: add dead code removing 2024-03-16 00:10:28 +03:00
f145afceef Fix warnings 2024-03-14 15:45:03 +03:00
ALEXks
c35fd07766 trivial 2024-03-14 10:32:36 +03:00
1a070140d9 Merge pull request 'Проход удаления приватных переменных: исправление бага из bugreport_1703086913' (#28) from private_removing into master
Reviewed-on: http://alex-freenas.ddns.net:3000/Alexander_KS/SAPFOR/pulls/28
2024-03-14 07:29:07 +00:00
0d61856cef private_removing: update for LU test 2024-03-14 03:31:49 +03:00
76d173d554 WIP: add deleting implicit stmts aninserting decls 2024-03-13 23:38:42 +03:00
24f8ead2b0 fix merge errors 2024-03-12 17:43:53 +03:00
cf2bed5c9c Add comments 2024-03-12 11:24:52 +03:00
02de4e83ff merge to master 2024-03-12 11:17:49 +03:00
a5c31c60a7 WIP : check all implicit stmts 2024-03-12 10:42:22 +03:00
1e9e1db084 private_removing: bugreport_1703086913 2024-03-02 14:58:43 +03:00
ALEXks
8a92f305f4 added convertation to sapfor 2024-02-28 17:38:02 +03:00
ALEXks
4386eb7041 improved parser, fixed convertation 2024-02-25 11:16:56 +03:00
ALEXks
deaeb4a670 fixed 2024-02-20 13:15:05 +03:00
ALEXks
1332602043 code refactoring 2024-02-20 12:42:35 +03:00
ALEXks
8402f8c7e9 code refactoring 2024-02-20 11:12:00 +03:00
ALEXks
3221934db8 version updated 2024-02-19 09:13:49 +03:00
dfd54c0393 Merge pull request 'enable directive filtering for shared memory case' (#27) from insert_parallel_dirs_nodist into master 2024-02-19 06:12:10 +00:00
4c9de9e757 enable directive filtering for shared memory case 2024-02-18 23:55:47 +03:00
ALEXks
220cd86bf7 fixed dowhile 2024-02-16 14:06:30 +03:00
ALEXks
05bd8379db fixed inliner 2024-02-11 21:09:44 +03:00
ALEXks
147ca03733 improved dead code pass 2024-02-09 12:43:52 +03:00
7b4b1c9ce4 Merge pull request 'expression substitution: hotfix for recent commits (typo at condition)' (#26) from dead_code_removing into master 2024-02-03 05:58:28 +00:00
mkoch
37435104a7 expression substitution: hotfix for recent commits (typo at condition) 2024-02-02 22:54:33 +03:00
ALEXks
05609dadc0 fixed pure 2024-02-02 21:02:11 +03:00
ALEXks
95479c4740 fixed modules processing 2024-02-02 20:35:44 +03:00
d6a61190a8 Обновить sapfor/experts/Sapfor_2017/_src/Utils/version.h 2024-02-02 17:33:12 +00:00
6b02c756c8 Merge pull request 'dead_code_removing' (#25) from dead_code_removing into master 2024-02-02 17:32:49 +00:00
Михаил Кочармин
42fe628ce0 dead code removing: handle dead call statements 2024-02-02 15:52:36 +03:00
Михаил Кочармин
0a423234d2 dead code removing: make jumps always useful 2024-01-30 21:58:25 +03:00
Михаил Кочармин
b4c2f50a41 improvements at expression substitution (wrong ifdef directives, bug with substitutions from loops fixed) 2024-01-30 19:45:27 +03:00
Михаил Кочармин
3b4af66720 dead code removing: unreachable code 2024-01-30 19:40:14 +03:00
ALEXks
00c539eff4 fixed inliner, improved dead_code 2024-01-23 13:04:46 +03:00
ALEXks
c44759face Merge branch 'master' of http://192.168.0.176:30008/Alexander_KS/SAPFOR 2024-01-14 15:57:08 +03:00
39b1f2194a Merge pull request 'dead code: turn off debug prints' (#24) from dead_code_removing into master 2024-01-14 12:56:55 +00:00
mkoch
9774f83ae1 dead code: turn off debug prints 2024-01-14 15:47:41 +03:00
ALEXks
fbab3477c4 version updated 2024-01-14 15:47:02 +03:00
d0c4d17405 Merge pull request 'dead_code_removing improvements' (#23) from dead_code_removing into master 2024-01-14 12:45:58 +00:00
mkoch
4809857318 dead code: fixed memory leaks, simplified code for empty do/while/if removing, removing of 'else' branch 2024-01-14 15:36:52 +03:00
mkoch
5728736bc2 live analysis: remove redunant ';' 2024-01-14 13:26:21 +03:00
aa119d6a93 Merge pull request 'DataFlow improvements' (#22) from dead_code_removing into master 2024-01-13 12:19:22 +00:00
aa3c28847a DATA_FLOW: fix build for linux 2024-01-13 13:41:31 +03:00
f2f46e5e79 Merge pull request 'dead_code_removing (Новый проход)' (#21) from dead_code_removing into master 2024-01-12 18:45:36 +00:00
mkoch
6dc0ad1080 DataFlow: remove unused template parameter DataType from DataFlowAnalysis class 2024-01-12 16:57:02 +03:00
mkoch
dcb42889da live variables analysis: rename fcall structure to LiveDeadVarsForCall class 2024-01-12 16:11:21 +03:00
mkoch
de6e3bbd55 DATA_FLOW code style improvements: move template definitions to separate files, encapsulate CNT_NOTINIT constant 2024-01-10 23:53:12 +03:00
mkoch
bd8690d54a Live variable analysis: use vectors of blocks instead of sets 2024-01-10 16:20:48 +03:00
mkoch
14219cdfd5 add REMOVE_DEAD_CODE_AND_UNPARSE (debug) pass 2024-01-09 18:28:50 +03:00
mkoch
5f8940f34d reorganize live variable analysis to use it's functions further 2024-01-09 18:13:56 +03:00
mkoch
3cd16c9d0f extract data flow analysys part from live variable analysis 2024-01-09 17:28:28 +03:00
ALEXks
85aaee900b fixed omp analysis 2023-12-28 20:41:31 +03:00
ALEXks
34f0214404 fixed and improved SAPFOR and FDVM 2023-12-27 12:57:00 +03:00
752e9206db Merge pull request 'findlocaldata' (#20) from CP into master 2023-12-22 07:50:30 +00:00
e51f9643a4 IntentInadded -> IntentInParams 2023-12-22 07:08:48 +03:00
a52671d44c improved parser 2023-12-20 20:30:32 +03:00
ALEXks
6ae8dac71f improved parsing 2023-12-20 17:18:02 +03:00
36e401b5d2 findlocaldata 2023-12-20 16:31:16 +03:00
ALEXks
41fdfcf3f8 checkpoints refactored 2023-12-18 21:12:27 +03:00
ALEXks
1f3d9944b8 improved and fixed FDVM, added ISNERT_INCLUDES pass 2023-12-16 17:42:11 +03:00
04f8f985c0 Merged to master 2023-12-11 21:58:41 +03:00
3456226e66 Forgot static( 2023-12-11 21:48:11 +03:00
a882be75e9 WIP : Add new pass - set-implisit-none 2023-12-11 21:41:31 +03:00
ALEXks
110970caa6 fixed inliner, version updated 2023-12-11 20:53:33 +03:00
d360bf5a43 Merge pull request 'Обновление прохода удаления приватных переменных' (#18) from private_removing into master 2023-12-11 17:49:54 +00:00
962b89f502 private_removing: fix bug in expression substitution 2023-12-11 19:44:01 +03:00
f42ed16096 add checking for iteration vars in index expressions 2023-12-11 19:23:11 +03:00
b35886bf0e private_removing: add support for indexes like 2*i + 1
private_removing: fix bug bugreport_1701358632 - add check for build-in functions

private_removing: fix bug bugreport_1699352305 - update logic for finding definitions
2023-12-11 19:23:11 +03:00
ALEXks
184a83ee58 fixed 2023-12-06 12:02:15 +03:00
ALEXks
2540237e42 improved Sage, fixed dedlock 2023-12-06 12:01:00 +03:00
ALEXks
09c7885849 improved Sage, fixed dedlock 2023-12-06 11:55:35 +03:00
ALEXks
f08f46a536 improved f2c convertation 2023-12-04 14:33:22 +03:00
ALEXks
d48a73043a addede new pass, improved IR 2023-12-02 10:20:13 +03:00
ALEXks
f5bc37c845 updated version 2023-12-01 10:28:51 +03:00
845e171247 Merge pull request 'wrong privatization of threadprivate arrays' (#17) from fix_omp_threadprivate into master 2023-12-01 07:26:39 +00:00
mkoch
2c62e57503 wrong privatization of threadprivate arrays 2023-12-01 10:17:06 +03:00
ALEXks
abd0c0caac fixed IR 2023-11-29 14:08:12 +03:00
43e5a9e8ba Merge pull request 'private_removing: исправление багов' (#16) from private_removing into master 2023-11-29 11:04:32 +00:00
5b34551310 private_removing: bug fixes 2023-11-29 13:45:27 +03:00
ALEXks
0c29d54f83 fixed inliner 2023-11-28 12:58:22 +03:00
ALEXks
bdde0df77f fixed omp clearing pass, refactored 2023-11-26 18:57:05 +03:00
ALEXks
0ba8915fa0 fixed and improved inlining 2023-11-22 20:21:18 +03:00
ALEXks
afdbfdac61 improved 2023-11-21 21:19:10 +03:00
ALEXks
b8da3d5eb1 fixed functions purifying 2023-11-15 13:20:28 +03:00
ALEXks
768a280f09 update fdvm, fixed routine' 2023-11-15 11:13:26 +03:00
ALEXks
5b4071b237 fixed omp direcitves processing 2023-11-07 14:54:54 +03:00
ALEXks
5b2cae9070 version updated 2023-11-05 20:17:28 +03:00
9e98fb4211 Merge pull request 'private_removing: bug fixes' (#14) from private_removing into master 2023-11-05 17:16:25 +00:00
c428f365f9 private_removing: bug fixes 2023-11-05 19:11:46 +03:00
ALEXks
dfb5d4796b fixed inliner 2023-11-05 18:20:31 +03:00
ALEXks
90fb0bf6b9 added refactoring of FuncInfo, fixed ACC_ROUTINE inserting 2023-11-05 13:08:57 +03:00
ALEXks
2288ef3edf fixed 2023-11-05 10:25:29 +03:00
ALEXks
8a69ee3a40 added priority to omp threadprivate 2023-10-31 20:39:33 +03:00
f38ce9e523 Merge pull request 'fix parsing of omp threadprivate dirs' (#13) from fix-omp into master 2023-10-31 17:21:44 +00:00
mkoch
7a51e3c587 fix parsing of omp threadprivate dirs 2023-10-31 20:11:00 +03:00
ALEXks
d076333a53 fixed merge 2023-10-28 10:29:29 +03:00
ALEXks
ec2975a2ed fixed privates analysis 2023-10-27 20:12:02 +03:00
91788bd09e Merge pull request 'private_removing: add check for indirect array usage + structural code changes' (#12) from private_removing into master 2023-10-26 08:36:48 +00:00
78a05d1a53 private_removing: add check for indirect array usage + structural code changes 2023-10-25 22:02:47 +03:00
ALEXks
fb8d29fa3e Merge branch 'master' of http://191.168.0.176:30008/Alexander_KS/SAPFOR 2023-10-19 16:41:06 +03:00
ALEXks
d15d0454d5 ignore omp directived with -spf flag 2023-10-19 16:40:55 +03:00
6d5f04e44b Merge pull request 'private_removing: bugreport_1672139586' (#11) from private_removing into master
Reviewed-on: Alexander_KS/SAPFOR/pulls/11
2023-10-13 12:28:09 +00:00
f9bb9e3dd8 private_removing: bugreport_1672139586
add message about var usage in function calls

add correct support for iteration vars
2023-10-13 13:11:41 +03:00
ALEXks
963acc8982 fixed parser 2023-10-11 20:12:31 +03:00
ALEXks
8d6661fa9d version updated 2023-10-11 13:41:40 +03:00
1791290d41 Merge pull request 'fixes for added message' (#10) from select_array_dim_conf_pass_xnp into master
Reviewed-on: Alexander_KS/SAPFOR/pulls/10
2023-10-11 10:40:44 +00:00
mkoch
1b4a1b8ae4 fixes for added message 2023-10-11 12:43:22 +03:00
822 changed files with 27986 additions and 259806 deletions

156
.gitignore vendored
View File

@@ -1,76 +1,80 @@
# Add any directories, files, or patterns you don't want to be tracked by version control
*.o
sapfor/experts/Sapfor_2017/.idea/
sapfor/experts/Sapfor_2017/cmake-build-debug/
sapfor/experts/Sapfor_2017/.vs/
sapfor/experts/Sapfor_2017/_bin/
sapfor/experts/Sapfor_2017/_lib/
sapfor/experts/Sapfor_2017/Inliner/x64/
sapfor/experts/Sapfor_2017/Parser/x64/
sapfor/experts/Sapfor_2017/SageLib/x64/
sapfor/experts/Sapfor_2017/SageNewSrc/x64/
sapfor/experts/Sapfor_2017/SageOldSrc/x64/
sapfor/experts/Sapfor_2017/Sapfor/x64/
sapfor/experts/Sapfor_2017/TransformCommonLib/x64/
sapfor/experts/Sapfor_2017/TransformLib/x64/
sapfor/experts/Sapfor_2017/TransformUtils/x64/
dvm/fdvm/trunk/.svn/
sapfor/experts/Sapfor_2017/.svn/
sapfor/transformers/.svn/
sapfor/experts/Sapfor_2017/_src/boost
sapfor/experts/Sapfor_2017/Sapfor/Sapfor.vcxproj.user
sapfor/analyzers/
sapfor/general/
sapfor/generators/
sapfor/idb/
sapfor/CMakeLists.txt
sapfor/experts/expert/
sapfor/experts/expert_maxim_last_version/
sapfor/experts/visualizer/
sapfor/.svn/
sapfor/experts/Sapfor_2017/cmake-build-debug/
sapfor/experts/Sapfor_2017/build/
sapfor/experts/Sapfor_2017/Inliner/build/
sapfor/experts/Sapfor_2017/Parser/build/
sapfor/experts/Sapfor_2017/Sapfor/*.o
sapfor/transformers/ftransform/trunk/cmake-build-debug/
sapfor/transformers/ftransform/trunk/build/
sapfor/transformers/ftransform/trunk/parser/build/
**/.idea
dvm/cdvm/
dvm/cdvmh-clang/
dvm/driver/
dvm/general/
dvm/releases/
dvm/rts/
dvm/rts-dvmh/
dvm/tools/projectStructureForFortran/
dvm/tools/pppa/.svn
dvm/tools/Zlib/.svn
dvm/tools/tester/
dvm/tools/predictor/
dvm/tools/omp-dbg/
dvm/tools/omp-otc/
dvm/tools/omp-pa/
dvm/CMakeLists.txt
dvm/.svn/
dvm/fdvm/branches/
sapfor/experts/Sapfor_2017/TransformCommonLib/TransformCommonLib.vcxproj.user
sapfor/experts/Sapfor_2017/SageOldSrc/SageOldSrc.vcxproj.user
sapfor/experts/Sapfor_2017/SageNewSrc/SageNewSrc.vcxproj.user
sapfor/experts/Sapfor_2017/SageLib/SageLib.vcxproj.user
sapfor/experts/Sapfor_2017/Inliner/Inliner.vcxproj.user
sapfor/experts/Sapfor_2017/TransformUtils/TransformUtils.vcxproj.user
sapfor/experts/Sapfor_2017/Parser/Parser.vcxproj.user
.vscode/*
.vs/
**/**/.DS_Store
sapfor/experts/Sapfor_2017/Sapc++/Sapc++/Sapc++.vcxproj.user
sapfor/experts/Sapfor_2017/Sapc++/Sapc++/Sapc++.vcxproj.filters
sapfor/experts/Sapfor_2017/Sapc++/Sapc++/Sapc++.vcxproj
sapfor/experts/Sapfor_2017/Sapc++/Sapc++/x64/
sapfor/experts/Sapfor_2017/Sapc++/x64/
/build
# Add any directories, files, or patterns you don't want to be tracked by version control
*.o
Sapfor/.idea/
Sapfor/cmake-build-debug/
Sapfor/.vs/
Sapfor/_bin/
Sapfor/_lib/
Sapfor/Inliner/x64/
Sapfor/Parser/x64/
Sapfor/SageLib/x64/
Sapfor/SageNewSrc/x64/
Sapfor/SageOldSrc/x64/
Sapfor/Sapfor/x64/
Sapfor/TransformCommonLib/x64/
Sapfor/TransformLib/x64/
Sapfor/TransformUtils/x64/
dvm/fdvm/trunk/.svn/
Sapfor/.svn/
sapfor/transformers
sapfor/transformers/.svn/
Sapfor/_src/boost
Sapfor/Sapfor/Sapfor.vcxproj.user
sapfor/analyzers/
sapfor/general/
sapfor/generators/
sapfor/idb/
sapfor/CMakeLists.txt
sapfor/experts/expert/
sapfor/experts/expert_maxim_last_version/
sapfor/experts/visualizer/
sapfor/.svn/
Sapfor/cmake-build-debug/
Sapfor/build/
Sapfor/Inliner/build/
Sapfor/Parser/build/
Sapfor/Sapfor/*.o
sapfor/transformers/ftransform/trunk/cmake-build-debug/
sapfor/transformers/ftransform/trunk/build/
sapfor/transformers/ftransform/trunk/parser/build/
**/.idea
dvm/cdvm/
dvm/cdvmh-clang/
dvm/driver/
dvm/general/
dvm/releases/
dvm/rts/
dvm/rts-dvmh/
dvm/tools/projectStructureForFortran/
dvm/tools/pppa/.svn
dvm/tools/Zlib/.svn
dvm/tools/predictor/
dvm/tools/omp-dbg/
dvm/tools/omp-otc/
dvm/tools/omp-pa/
dvm/CMakeLists.txt
dvm/.svn/
dvm/fdvm/branches/
Sapfor/TransformCommonLib/TransformCommonLib.vcxproj.user
Sapfor/SageOldSrc/SageOldSrc.vcxproj.user
Sapfor/SageNewSrc/SageNewSrc.vcxproj.user
Sapfor/SageLib/SageLib.vcxproj.user
Sapfor/Inliner/Inliner.vcxproj.user
Sapfor/TransformUtils/TransformUtils.vcxproj.user
Sapfor/Parser/Parser.vcxproj.user
.vscode/*
.vs/
**/**/.DS_Store
Sapfor/Sapc++/Sapc++/Sapc++.vcxproj.user
Sapfor/Sapc++/Sapc++/Sapc++.vcxproj.filters
Sapfor/Sapc++/Sapc++/Sapc++.vcxproj
Sapfor/Sapc++/Sapc++/x64/
Sapfor/Sapc++/x64/
/build
/cmake-build-debug
Sapfor/out/
Sapfor/_bin/*

6
.gitmodules vendored Normal file
View File

@@ -0,0 +1,6 @@
[submodule "projects/dvm"]
path = projects/dvm
url = https://dvmguest:dvmguest@dvm.keldysh.ru/dvm-system/dvm
[submodule "projects/libpredictor"]
path = projects/libpredictor
url = https://dvmguest:dvmguest@dvm.keldysh.ru/sapfor/dvm-perfm

533
CMakeLists.txt Normal file
View File

@@ -0,0 +1,533 @@
cmake_minimum_required(VERSION 3.10)
set(project Sapfor)
if (TARGET ${project})
return()
endif ()
project(${project})
message("processing ${project}")
#include(CTest)
add_definitions("-D SYS5")
add_definitions("-D YYDEBUG")
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_C_STANDARD 17)
set(fdvm_include projects/dvm/fdvmh/include/fdvmh/)
set(fdvm_sources projects/dvm/fdvmh/tools/fdvmh/)
set(sage_include_1 projects/dvm/fdvmh/include/sage/lib/)
set(sage_include_2 projects/dvm/fdvmh/include/sage/h/)
set(libdb_sources projects/dvm/fdvmh/lib/sage/db/)
set(sage_sources projects/dvm/fdvmh/lib/sage/sage/)
set(sagepp_sources projects/dvm/fdvmh/lib/sage/sage++/)
set(parser_sources projects/dvm/fdvmh/tools/parser/)
set(pppa_sources projects/dvm/pppa/src/)
set(zlib_sources projects/dvm/third-party/Zlib/)
set(libpred_sources projects/libpredictor/src/)
set(libpred_include projects/libpredictor/include/)
include_directories(src)
include_directories(src/Utils)
include_directories(src/SgUtils)
include_directories(src/Distribution)
include_directories(src/GraphCall)
include_directories(src/GraphLoop)
include_directories(src/Transformations/ExpressionSubstitution)
include_directories(src/Transformations)
#Sage lib includes
include_directories(${fdvm_include})
include_directories(${sage_include_1})
include_directories(${sage_include_2})
#Zlib includes
include_directories(${zlib_sources}/include)
#PPPA includes
include_directories(${pppa_sources})
#Libpredictor includes
include_directories(${libpred_include})
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(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(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
src/Utils/json.hpp)
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
src/PrivateAnalyzer/private_arrays_search.cpp
src/PrivateAnalyzer/private_arrays_search.h
src/PrivateAnalyzer/range_structures.cpp
src/PrivateAnalyzer/range_structures.h
src/PrivateAnalyzer/region.cpp
src/PrivateAnalyzer/region.h)
set(FDVM ${fdvm_sources}/acc.cpp
${fdvm_sources}/acc_across.cpp
${fdvm_sources}/acc_across_analyzer.cpp
${fdvm_sources}/acc_analyzer.cpp
${fdvm_sources}/acc_data.cpp
${fdvm_sources}/acc_f2c.cpp
${fdvm_sources}/acc_f2c_handlers.cpp
${fdvm_sources}/acc_rtc.cpp
${fdvm_sources}/acc_rtc.cpp
${fdvm_sources}/acc_utilities.cpp
${fdvm_sources}/aks_analyzeLoops.cpp
${fdvm_sources}/aks_structs.cpp
${fdvm_sources}/checkpoint.cpp
${fdvm_sources}/debug.cpp
${fdvm_sources}/dvm.cpp
${fdvm_sources}/calls.cpp
${fdvm_sources}/funcall.cpp
${fdvm_sources}/help.cpp
${fdvm_sources}/hpf.cpp
${fdvm_sources}/io.cpp
${fdvm_sources}/omp.cpp
${fdvm_sources}/ompdebug.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(TR_DEAD_CODE src/Transformations/DeadCodeRemoving/dead_code.cpp
src/Transformations/DeadCodeRemoving/dead_code.h)
set(TR_CP src/Transformations/CheckPoints/checkpoints.cpp
src/Transformations/CheckPoints/checkpoints.h)
set(TR_VECTOR src/Transformations/VectorAssignToLoop/array_assign_to_loop.cpp
src/Transformations/VectorAssignToLoop/array_assign_to_loop.h)
set(TR_ENDDO_LOOP src/Transformations/LoopEndDoConverter/enddo_loop_converter.cpp
src/Transformations/LoopEndDoConverter/enddo_loop_converter.h)
set(TR_LOOP_NEST src/Transformations/LoopNesting/loop_transform.cpp
src/Transformations/LoopNesting/loop_transform.h)
set(TR_LOOP_COMB src/Transformations/LoopCombining/loops_combiner.cpp
src/Transformations/LoopCombining/loops_combiner.h)
set(TR_LOOP_SPLIT src/Transformations/LoopSplitting/loops_splitter.cpp
src/Transformations/LoopSplitting/loops_splitter.h)
set(TR_LOOP_UNROLL src/Transformations/LoopUnrolling/loops_unrolling.cpp
src/Transformations/LoopUnrolling/loops_unrolling.h)
set(TR_PRIV_BR src/Transformations/PrivateArrayResizing/private_arrays_resizing.cpp
src/Transformations/PrivateArrayResizing/private_arrays_resizing.h)
set(TR_PRIV_DEL src/Transformations/PrivateArrayRemoving/private_removing.cpp
src/Transformations/PrivateArrayRemoving/private_removing.h)
set(TR_SWAP_ARR_DIMS src/Transformations/ArrayDimsSwapping/swap_array_dims.cpp
src/Transformations/ArrayDimsSwapping/swap_array_dims.h)
set(TR_FUNC_DUP src/Transformations/FunctionDuplication/uniq_call_chain_dup.cpp
src/Transformations/FunctionDuplication/uniq_call_chain_dup.h)
set(TR_FUNC_PURE src/Transformations/FunctionPurifying/function_purifying.cpp
src/Transformations/FunctionPurifying/function_purifying.h)
set(TR_GV src/Transformations/GlobalVariables/fix_common_blocks.cpp
src/Transformations/GlobalVariables/fix_common_blocks.h)
set(TR_CONV src/Transformations/ConvertToC/convert_to_c.cpp
src/Transformations/ConvertToC/convert_to_c.h)
set(TR_IMPLICIT_NONE src/Transformations/SetImplicitNone/set_implicit_none.cpp
src/Transformations/SetImplicitNone/set_implicit_none.h)
set(TR_REPLACE_ARRAYS_IN_IO src/Transformations/ReplaceArraysInIO/replace_dist_arrays_in_io.cpp
src/Transformations/ReplaceArraysInIO/replace_dist_arrays_in_io.h)
set(TR_EXPR_TRANSFORM src/Transformations/ExpressionSubstitution/control_flow_graph_part.cpp
src/Transformations/ExpressionSubstitution/expr_transform.cpp
src/Transformations/ExpressionSubstitution/expr_transform.h)
set(TR_INLINER src/Transformations/FunctionInlining/inliner.cpp
src/Transformations/FunctionInlining/inliner.h)
set(TR_RENAME_SYMBOLS src/Transformations/RenameSymbols/rename_symbols.cpp
src/Transformations/RenameSymbols/rename_symbols.h)
set(TRANSFORMS
${TR_DEAD_CODE}
${TR_CP}
${TR_VECTOR}
${TR_ENDDO_LOOP}
${TR_LOOP_NEST}
${TR_LOOP_COMB}
${TR_LOOP_SPLIT}
${TR_PRIV_BR}
${TR_SWAP_ARR_DIMS}
${TR_FUNC_DUP}
${TR_FUNC_PURE}
${TR_LOOP_UNROLL}
${TR_GV}
${TR_PRIV_DEL}
${TR_CONV}
${TR_PRIV_DEL}
${TR_IMPLICIT_NONE}
${TR_REPLACE_ARRAYS_IN_IO}
${TR_EXPR_TRANSFORM}
${TR_INLINER}
${TR_RENAME_SYMBOLS})
set(CFG src/CFGraph/IR.cpp
src/CFGraph/IR.h
src/CFGraph/IR_domTree.cpp
src/CFGraph/IR_domTree.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
)
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(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(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(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(LOOP_ANALYZER src/LoopAnalyzer/allocations_prepoc.cpp
src/LoopAnalyzer/dep_analyzer.cpp
src/LoopAnalyzer/loop_analyzer.cpp
src/LoopAnalyzer/loop_analyzer.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(LIBPREDICTOR ${libpred_sources}/cluster.cpp
${libpred_sources}/predictor.cpp
${libpred_sources}/transfer.cpp
${libpred_sources}/utils.cpp
${libpred_include}/libpredict/predictor.h
${libpred_include}/internal/cluster.h
${libpred_include}/internal/transfer.h
${libpred_include}/internal/utils.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
${parser_sources}/gram1.tab.c
${parser_sources}/hash.c
${parser_sources}/init.c
${parser_sources}/lexfdvm.c
${parser_sources}/lists.c
${parser_sources}/low_hpf.c
${parser_sources}/misc.c
${parser_sources}/stat.c
${parser_sources}/sym.c
${parser_sources}/types.c
${parser_sources}/unparse_hpf.c)
set(PPPA ${pppa_sources}/inter.cpp
${pppa_sources}/potensyn.cpp
${pppa_sources}/stat.cpp
${pppa_sources}/statfile.cpp
${pppa_sources}/statinter.cpp
${pppa_sources}/statlist.cpp
${pppa_sources}/statprintf.cpp
${pppa_sources}/statread.cpp
${pppa_sources}/treeinter.cpp
${pppa_sources}/bool.h
${pppa_sources}/dvmh_stat.h
${pppa_sources}/inter.h
${pppa_sources}/potensyn.h
${pppa_sources}/statist.h
${pppa_sources}/statlist.h
${pppa_sources}/statprintf.h
${pppa_sources}/statread.h
${pppa_sources}/strall.h
${pppa_sources}/sysstat.h
${pppa_sources}/treeinter.h
${pppa_sources}/ver.h
${pppa_sources}/statinter.h
${pppa_sources}/json.hpp)
set(ZLIB ${zlib_sources}/src/adler32.c
${zlib_sources}/src/compress.c
${zlib_sources}/src/crc32.c
${zlib_sources}/src/deflate.c
${zlib_sources}/src/gzio.c
${zlib_sources}/src/infblock.c
${zlib_sources}/src/infcodes.c
${zlib_sources}/src/inffast.c
${zlib_sources}/src/inflate.c
${zlib_sources}/src/inftrees.c
${zlib_sources}/src/infutil.c
${zlib_sources}/src/trees.c
${zlib_sources}/src/uncompr.c
${zlib_sources}/src/zutil.c)
set(SOURCE_EXE
${CFG}
${DATA_FLOW}
${CREATE_INTER_T}
${DIRA}
${DISTR}
${DVMH_REG}
${DYNA}
${GR_CALL}
${GR_LOOP}
${LOOP_ANALYZER}
${TRANSFORMS}
${PARALLEL_REG}
${PRIV}
${FDVM}
${OMEGA}
${UTILS}
${VERIF}
${VS_CALLS}
${MAIN}
${PREDICTOR}
${LIBPREDICTOR}
${PARSER}
${PPPA}
${ZLIB}
${GR_LAYOUT}
${PR_PARAM}
${PROJ_MAN})
add_executable(Sapfor_F ${SOURCE_EXE})
source_group (CFGraph FILES ${CFG})
source_group (CFGraph\\DataFlow FILES ${DATA_FLOW})
source_group (Transformations\\DeadCodeRemoving FILES ${TR_DEAD_CODE})
source_group (Transformations\\ExpressionSubstitution FILES ${TR_EXPR_TRANSFORM})
source_group (Transformations\\CheckPoints FILES ${TR_CP})
source_group (Transformations\\LoopEndDoConverter FILES ${TR_ENDDO_LOOP})
source_group (Transformations\\LoopNesting FILES ${TR_LOOP_NEST})
source_group (Transformations\\LoopCombining FILES ${TR_LOOP_COMB})
source_group (Transformations\\LoopSplitting FILES ${TR_LOOP_SPLIT})
source_group (Transformations\\LoopUnrolling FILES ${TR_LOOP_UNROLL})
source_group (Transformations\\FunctionDuplication FILES ${TR_FUNC_DUP})
source_group (Transformations\\FunctionInlining FILES ${TR_INLINER})
source_group (Transformations\\FunctionPurifying FILES ${TR_FUNC_PURE})
source_group (Transformations\\ArrayDimsSwapping FILES ${TR_SWAP_ARR_DIMS})
source_group (Transformations\\PrivateArrayResizing FILES ${TR_PRIV_BR})
source_group (Transformations\\PrivateArrayRemoving FILES ${TR_PRIV_DEL})
source_group (Transformations\\VectorAssignToLoop FILES ${TR_VECTOR})
source_group (Transformations\\RenameSymbols FILES ${TR_RENAME_SYMBOLS})
source_group (Transformations\\GlobalVariables FILES ${TR_GV})
source_group (Transformations\\ConvertToC FILES ${TR_CONV})
source_group (Transformations\\SetImplicitNone FILES ${TR_IMPLICIT_NONE})
source_group (Transformations\\ReplaceArraysInIO FILES ${TR_REPLACE_ARRAYS_IN_IO})
source_group (CreateIntervals FILES ${CREATE_INTER_T})
source_group (DirectiveProcessing FILES ${DIRA})
source_group (Distribution FILES ${DISTR})
source_group (DvmhRegions FILES ${DVMH_REG})
source_group (DynamicAnalysis FILES ${DYNA})
source_group (GraphCall FILES ${GR_CALL})
source_group (GraphLoop FILES ${GR_LOOP})
source_group (LoopAnalyzer FILES ${LOOP_ANALYZER})
source_group (ParallelizationRegions FILES ${PARALLEL_REG})
source_group (PrivateAnalyzer FILES ${PRIV})
source_group (FDVM_Compiler FILES ${FDVM})
source_group (SageExtension FILES ${OMEGA})
source_group (Utils FILES ${UTILS})
source_group (VerificationCode FILES ${VERIF})
source_group (ProjectParameters FILES ${PR_PARAM})
source_group (ProjectManipulation FILES ${PROJ_MAN})
source_group (VisualizerCalls FILES ${VS_CALLS})
source_group (VisualizerCalls\\GraphLayout FILES ${GR_LAYOUT})
source_group (_SapforMain FILES ${MAIN})
source_group (Predictor\\Analyzer FILES ${PREDICTOR})
source_group (Predictor\\Library FILES ${LIBPREDICTOR})
source_group (Parser FILES ${PARSER})
source_group (PPPA\\PPPA FILES ${PPPA})
source_group (PPPA\\ZLib FILES ${ZLIB})
if (MSVC_IDE)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP /Zc:__cplusplus")
else()
if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 6.0)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17")
else()
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
endif()
if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3")
endif()
endif()
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_definitions("-D __SPF_BUILT_IN_FDVM")
add_definitions("-D __SPF_BUILT_IN_PARSER")
add_definitions("-D __SPF_BUILT_IN_PPPA")
if (WIN32)
target_link_libraries(Sapfor_F SageNewSrc SageLib SageOldSrc)
elseif(APPLE)
target_link_libraries(Sapfor_F SageNewSrc SageLib SageOldSrc pthread)
elseif(UNIX)
if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 6.0)
target_link_libraries(Sapfor_F SageNewSrc SageLib SageOldSrc pthread stdc++fs)
else()
target_link_libraries(Sapfor_F SageNewSrc SageLib SageOldSrc pthread)
endif()
endif()
#install(TARGETS <name.exe/dll>
# LIBRARY DESTINATION <name_f>
# RUNTIME DESTINATION <name_f>)

View File

@@ -1,12 +1,12 @@
# Общие правила по работе с SAPFOR #
Перед началом работы с репозиторием необходимо убрать настройку git по автоматической замене LF -> CRLF
Перед началом работы с репозиторием необходимо выставить настройку git по автоматической замене LF -> CRLF
* либо командой git config --global core.autocrlf false
* либо командой git config --local core.autocrlf false
* либо командой git config --global core.autocrlf true
* либо командой git config --local core.autocrlf true
Инструкция по SAPFOR находится в Вики этого репозитория.
Проект Диалоговой оболочки (Визуализатора): http://alex-freenas.ddns.net:3000/M/VisualSapfor
Проект Диалоговой оболочки (Визуализатора): http://dvmh-server.ddns.net:3000/M/VisualSapfor
Инструкция для установки и настройки Диалоговой оболочки: https://cloud.mail.ru/public/NDxu/LJJhQgQUG

View File

@@ -1 +0,0 @@
add_subdirectory(trunk)

View File

@@ -1,7 +0,0 @@
set(DVM_FORTRAN_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/include)
add_subdirectory(Sage)
add_subdirectory(parser)
add_subdirectory(fdvm)
add_subdirectory(InlineExpansion)

View File

@@ -1,23 +0,0 @@
set(INLINE_SOURCES inl_exp.cpp inliner.cpp hlp.cpp)
if(MSVC_IDE)
file(GLOB_RECURSE INLINE_HEADERS RELATIVE
${CMAKE_CURRENT_SOURCE_DIR} *.h)
foreach(DIR ${DVM_FORTRAN_INCLUDE_DIRS})
file(GLOB_RECURSE FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "${DIR}/*.h")
set(INLINE_HEADERS ${INLINE_HEADERS} ${FILES})
endforeach()
endif()
add_executable(inl_exp ${INLINE_SOURCES} ${INLINE_HEADERS})
add_dependencies(inl_exp db sage sage++)
target_link_libraries(inl_exp db sage sage++)
target_include_directories(inl_exp PRIVATE "${DVM_FORTRAN_INCLUDE_DIRS}")
set_target_properties(inl_exp PROPERTIES
FOLDER "${DVM_TOOL_FOLDER}"
RUNTIME_OUTPUT_DIRECTORY ${DVM_BIN_DIR}
COMPILE_PDB_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>
PDB_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>
)

View File

@@ -1,85 +0,0 @@
#define HPF_TEMPLATE_STAT 296
#define HPF_ALIGN_STAT 297
#define HPF_PROCESSORS_STAT 298
#define DVM_DISTRIBUTE_DIR 277
#define DVM_REDISTRIBUTE_DIR 299
#define DVM_PARALLEL_ON_DIR 211
#define DVM_SHADOW_START_DIR 212
#define DVM_SHADOW_GROUP_DIR 213
#define DVM_SHADOW_WAIT_DIR 214
#define DVM_REDUCTION_START_DIR 215
#define DVM_REDUCTION_GROUP_DIR 216
#define DVM_REDUCTION_WAIT_DIR 217
#define DVM_DYNAMIC_DIR 218
#define DVM_ALIGN_DIR 219
#define DVM_REALIGN_DIR 220
#define DVM_REALIGN_NEW_DIR 221
#define DVM_REMOTE_ACCESS_DIR 222
#define HPF_INDEPENDENT_DIR 223
#define DVM_SHADOW_DIR 224
#define DVM_NEW_VALUE_DIR 247
#define DVM_VAR_DECL 248
#define DVM_POINTER_DIR 249
#define DVM_DEBUG_DIR 146
#define DVM_ENDDEBUG_DIR 147
#define DVM_TRACEON_DIR 148
#define DVM_TRACEOFF_DIR 149
#define DVM_INTERVAL_DIR 128
#define DVM_ENDINTERVAL_DIR 129
#define DVM_TASK_REGION_DIR 605
#define DVM_END_TASK_REGION_DIR 606
#define DVM_ON_DIR 607
#define DVM_END_ON_DIR 608
#define DVM_TASK_DIR 609
#define DVM_MAP_DIR 610
#define DVM_PARALLEL_TASK_DIR 611
#define DVM_INHERIT_DIR 612
#define DVM_INDIRECT_GROUP_DIR 613
#define DVM_INDIRECT_ACCESS_DIR 614
#define DVM_REMOTE_GROUP_DIR 615
#define DVM_RESET_DIR 616
#define DVM_PREFETCH_DIR 617
#define DVM_OWN_DIR 618
#define DVM_HEAP_DIR 619
#define DVM_ASYNCID_DIR 620
#define DVM_ASYNCHRONOUS_DIR 621
#define DVM_ENDASYNCHRONOUS_DIR 622
#define DVM_ASYNCWAIT_DIR 623
#define DVM_F90_DIR 624
#define DVM_BARRIER_DIR 625
#define FORALL_STAT 626
#define DVM_CONSISTENT_GROUP_DIR 627
#define DVM_CONSISTENT_START_DIR 628
#define DVM_CONSISTENT_WAIT_DIR 629
#define DVM_CONSISTENT_DIR 630
#define BLOCK_OP 705
#define NEW_SPEC_OP 706
#define REDUCTION_OP 707
#define SHADOW_RENEW_OP 708
#define SHADOW_START_OP 709
#define SHADOW_WAIT_OP 710
#define DIAG_OP 711
#define REMOTE_ACCESS_OP 712
#define TEMPLATE_OP 713
#define PROCESSORS_OP 714
#define DYNAMIC_OP 715
#define ALIGN_OP 716
#define DISTRIBUTE_OP 717
#define SHADOW_OP 718
#define INDIRECT_ACCESS_OP 719
#define ACROSS_OP 720
#define NEW_VALUE_OP 721
#define SHADOW_COMP_OP 722
#define STAGE_OP 723
#define FORALL_OP 724
#define CONSISTENT_OP 725
#define SHADOW_GROUP_NAME 523
#define REDUCTION_GROUP_NAME 524
#define REF_GROUP_NAME 525
#define ASYNC_ID 526
#define CONSISTENT_GROUP_NAME 527

View File

@@ -1,622 +0,0 @@
/**************************************************************\
* Inline Expansion *
* *
* Miscellaneous help routines *
\**************************************************************/
#include "inline.h"
#include <ctype.h>
#include <stdlib.h>
#ifdef __SPF
#include <string>
#endif
//*************************************************************
/*
* Error - formats the error message then call "err" to print it
*
* input:
* s - string that specifies the conversion format
* t - string that to be formated according to s
* num - error message number
* stmt - pointer to the statement
*/
//*************************************************************
void Error(const char *s, const char *t, int num, SgStatement *stmt)
{
char *buff = new char[strlen(s) + strlen(t) + 32];
sprintf(buff, s, t);
err(buff, num, stmt);
delete[]buff;
}
/*
* Err_g - formats and prints the special kind error message (without statement reference)
*
* input:
* s - string that specifies the conversion format
* t - string that to be formated according to s
* num - error message number
*/
void Err_g(const char *s, const char *t, int num)
{
char *buff = new char[strlen(s) + strlen(t) + 32];
char num3s[16];
sprintf(buff, s, t);
format_num(num, num3s);
errcnt++;
(void)fprintf(stderr, "Error %s in %s of %s: %s\n", num3s, cur_func->symbol()->identifier(), cur_func->fileName(), buff);
delete[]buff;
}
/*
* err -- prints the error message
*
* input:
* s - string to be printed out
* num - error message number
* stmt - pointer to the statement
*/
void err(const char *s, int num, SgStatement *stmt)
{
char num3s[16];
format_num(num, num3s);
errcnt++;
// printf( "Error on line %d : %s\n", stmt->lineNumber(), s);
#ifdef __SPF
char message[256];
sprintf(message, "Error %d: %s", num, s);
std::string toPrint = "|";
toPrint += std::to_string(1) + " "; // ERROR
toPrint += std::string(stmt->fileName()) + " ";
toPrint += std::to_string(stmt->lineNumber()) + " ";
toPrint += std::to_string(0);
toPrint += "|" + std::string(message);
printf("@%s@\n", toPrint.c_str());
#else
(void)fprintf(stderr, "Error %s on line %d of %s: %s\n", num3s, stmt->lineNumber(), stmt->fileName(), s);
#endif
}
/*
* Warning -- formats a warning message then call "warn" to print it out
*
* input:
* s - string that specifies the conversion format
* t - string that to be converted according to s
* num - warning message number
* stmt - pointer to the statement
*/
void Warning(const char *s, const char *t, int num, SgStatement *stmt)
{
char *buff = new char[strlen(s) + strlen(t) + 32];
sprintf(buff, s, t);
warn(buff, num, stmt);
delete[]buff;
}
/*
* warn -- print the warning message if specified
*
* input:
* s - string to be printed
* num - warning message number
* stmt - pointer to the statement
*/
void warn(const char *s, int num, SgStatement *stmt)
{
char num3s[16];
format_num(num, num3s);
// printf( "Warning on line %d: %s\n", stmt->lineNumber(), s);
(void)fprintf(stderr, "Warning %s on line %d of %s: %s\n", num3s, stmt->lineNumber(), stmt->fileName(), s);
}
void Warn_g(const char *s, const char *t, int num)
{
char *buff = new char[strlen(s) + strlen(t) + 32];
char num3s[16];
format_num(num, num3s);
sprintf(buff, s, t);
(void)fprintf(stderr, "Warning %s in %s of %s: %s\n", num3s, cur_func->symbol()->identifier(), cur_func->fileName(), buff);
delete[]buff;
}
//*********************************************************************
void printVariantName(int i) {
if ((i >= 0 && i < MAXTAGS) && tag[i]) printf("%s", tag[i]);
else printf("not a known node variant");
}
//***********************************
char *UnparseExpr(SgExpression *e)
{
char *buf;
int l;
Init_Unparser();
buf = Tool_Unparse2_LLnode(e->thellnd);
l = strlen(buf);
char *ustr = new char[l + 1];
strcpy(ustr, buf);
//ustr[l] = ' ';
//ustr[l+1] = '\0';
return(ustr);
}
//************************************
const char* header(int i) {
switch (i) {
case(PROG_HEDR):
return("program");
case(PROC_HEDR):
return("subroutine");
case(FUNC_HEDR):
return("function");
default:
return("error");
}
}
SgLabel* firstLabel(SgFile *f)
{
SetCurrentFileTo(f->filept);
SwitchToFile(GetFileNumWithPt(f->filept));
return LabelMapping(PROJ_FIRST_LABEL());
}
int isLabel(int num) {
PTR_LABEL lab;
for (lab = PROJ_FIRST_LABEL(); lab; lab = LABEL_NEXT(lab))
if (num == LABEL_STMTNO(lab))
return 1;
return 0;
}
SgLabel *isLabelWithScope(int num, SgStatement *stmt) {
PTR_LABEL lab;
for (lab = PROJ_FIRST_LABEL(); lab; lab = LABEL_NEXT(lab))
//if( num == LABEL_STMTNO(lab) && LABEL_BODY(lab)->scope == stmt->thebif)
if (num == LABEL_STMTNO(lab) && LABEL_SCOPE(lab) == stmt->thebif)
return LabelMapping(lab);
return NULL;
}
SgLabel * GetLabel()
{
static int lnum = 90000;
if (lnum > max_lab)
return (new SgLabel(lnum--));
while (isLabel(lnum))
lnum--;
return (new SgLabel(lnum--));
}
SgLabel * GetNewLabel()
{
static int lnum = 99999;
if (lnum > max_lab) /* for current file must be set before first call GetNewLabel() :max_lab = getLastLabelId(); */
return (new SgLabel(lnum--));
while (isLabel(lnum))
lnum--;
return (new SgLabel(lnum--));
/*
int lnum;
if(max_lab <99999)
return(new SgLabel(++max_lab));
lnum = 1;
while(isLabel(lnum))
lnum++;
return(new SgLabel(lnum));
*/
}
SgLabel * NewLabel()
{
if (max_lab < 99999)
return(new SgLabel(++max_lab));
++num_lab;
while (isLabel(num_lab))
++num_lab;
return(new SgLabel(num_lab));
}
void SetScopeOfLabel(SgLabel *lab, SgStatement *scope)
{
LABEL_SCOPE(lab->thelabel) = scope->thebif;
}
/*
SgLabel * NewLabel(int lnum)
{
if(max_lab <99999)
return(new SgLabel(++max_lab));
while(isLabel(lnum))
++lnum;
return(new SgLabel(lnum));
}
*/
int isSymbolName(char *name)
//
{
SgSymbol *s;
for (s = current_file->firstSymbol(); s; s = s->next())
if (!strcmp(name, s->identifier()))
return 1;
return 0;
}
int isSymbolNameInScope(char *name, SgStatement *scope)
{
SgSymbol *s;
for (s = current_file->firstSymbol(); s; s = s->next())
if (scope == s->scope() && !strcmp(name, s->identifier()))
return 1;
return 0;
}
/*
{
PTR_SYMB sym;
for(sym=PROJ_FIRST_SYMB(); sym; sym=SYMB_NEXT(sym))
if( SYMB_SCOPE(sym) == scope->thebif && (!strcmp(name,SYMB_IDENT(sym)) ) )
return 1;
return 0;
}
*/
void format_num(int num, char num3s[])
{
if (num > 99)
num3s[sprintf(num3s, "%3d", num)] = 0;
else if (num > 9)
num3s[sprintf(num3s, "0%2d", num)] = 0;
else
num3s[sprintf(num3s, "00%1d", num)] = 0;
}
SgExpression *ConnectList(SgExpression *el1, SgExpression *el2)
{
SgExpression *el;
if (!el1)
return(el2);
if (!el2)
return(el1);
for (el = el1; el->rhs(); el = el->rhs())
;
el->setRhs(el2);
return(el1);
}
int is_integer_value(char *str)
{
char *p;
p = str;
for (; *str != '\0'; str++)
if (!isdigit(*str))
return 0;
return (atoi(p));
}
void PrintSymbolTable(SgFile *f)
{
SgSymbol *s;
printf("\nS Y M B O L T A B L E \n");
for (s = f->firstSymbol(); s; s = s->next())
//printf(" %s/%d/ ", s->identifier(), s->id() );
printSymb(s);
}
void printSymb(SgSymbol *s)
{
const char *head;
head = isHeaderStmtSymbol(s) ? "HEADER " : " ";
printf("SYMB[%3d] scope=STMT[%3d] : %s %s", s->id(), (s->scope()) ? (s->scope())->id() : -1, s->identifier(), head);
printType(s->type());
printf("\n");
}
void printType(SgType *t)
{
SgArrayType *arrayt;
/*SgExpression *e = new SgExpression(TYPE_RANGES(t->thetype));*/
int i, n;
if (!t) { printf("no type "); return; }
else printf("TYPE[%d]:", t->id());
if ((arrayt = isSgArrayType(t)) != 0)
{
printf("dimension(");
n = arrayt->dimension();
for (i = 0; i < n; i++)
{
(arrayt->sizeInDim(i))->unparsestdout();
if (i < n - 1) printf(", ");
}
printf(") ");
}
else
{
switch (t->variant())
{
case T_INT: printf("integer "); break;
case T_FLOAT: printf("real "); break;
case T_DOUBLE: printf("double precision "); break;
case T_CHAR: printf("character "); break;
case T_STRING: printf("Character ");
UnparseLLND(TYPE_RANGES(t->thetype));
/*if(t->length()) printf("[%d]",t->length()->variant());*/
/*((SgArrayType *) t)->getDimList()->unparsestdout();*/
break;
case T_BOOL: printf("logical "); break;
case T_COMPLEX: printf("complex "); break;
case T_DCOMPLEX: printf("double complex "); break;
default: break;
}
}
/* if(e) e->unparsestdout();*/
if (t->hasBaseType())
{
printf("of ");
printType(t->baseType());
}
}
void PrintTypeTable(SgFile *f)
{
SgType *t;
printf("\nT Y P E T A B L E \n");
for (t = f->firstType(); t; t = t->next())
{
printType(t); printf("\n");
}
}
SgExpression *ReplaceParameter(SgExpression *e)
{
if (!e)
return(e);
if (e->variant() == CONST_REF) {
SgConstantSymb * sc = isSgConstantSymb(e->symbol());
return(ReplaceParameter(&(sc->constantValue()->copy())));
}
e->setLhs(ReplaceParameter(e->lhs()));
e->setRhs(ReplaceParameter(e->rhs()));
return(e);
}
SgExpression *ReplaceIntegerParameter(SgExpression *e)
{
if (!e)
return(e);
if (e->variant() == CONST_REF && e->type()->variant() == T_INT) {
SgConstantSymb * sc = isSgConstantSymb(e->symbol());
return(ReplaceIntegerParameter(&(sc->constantValue()->copy())));
}
e->setLhs(ReplaceIntegerParameter(e->lhs()));
e->setRhs(ReplaceIntegerParameter(e->rhs()));
return(e);
}
/*
SgExpression *ReplaceFuncCall(SgExpression *e)
{
if(!e)
return(e);
if(isSgFunctionCallExp(e) && e->symbol()) {//function call
if( !e->lhs() && (!strcmp(e->symbol()->identifier(),"number_of_processors") || !strcmp(e->symbol()->identifier(),"actual_num_procs"))) { //NUMBER_OF_PROCESSORS() or
// ACTUAL_NUM_PROCS()
SgExprListExp *el1,*el2;
if(!strcmp(e->symbol()->identifier(),"number_of_processors"))
el1 = new SgExprListExp(*ParentPS());
else
el1 = new SgExprListExp(*CurrentPS());
el2 = new SgExprListExp(*ConstRef(0));
e->setSymbol(fdvm[GETSIZ]);
fmask[GETSIZ] = 1;
el1->setRhs(el2);
e->setLhs(el1);
return(e);
}
if( !e->lhs() && (!strcmp(e->symbol()->identifier(),"processors_rank"))) {
//PROCESSORS_RANK()
SgExprListExp *el1;
el1 = new SgExprListExp(*ParentPS());
e->setSymbol(fdvm[GETRNK]);
fmask[GETRNK] = 1;
e->setLhs(el1);
return(e);
}
if(!strcmp(e->symbol()->identifier(),"processors_size")) {
//PROCESSORS_SIZE()
SgExprListExp *el1;
el1 = new SgExprListExp(*ParentPS());
e->setSymbol(fdvm[GETSIZ]);
fmask[GETSIZ] = 1;
el1->setRhs(*(e->lhs())+(*ConstRef(0))); //el1->setRhs(e->lhs());
e->setLhs(el1);
return(e);
}
}
e->setLhs(ReplaceFuncCall(e->lhs()));
e->setRhs(ReplaceFuncCall(e->rhs()));
return(e);
}
*/
/* version from dvm.cpp
SgExpression *Calculate(SgExpression *e)
{ SgExpression *er;
er = ReplaceParameter( &(e->copy()));
if(er->isInteger())
return( new SgValueExp(er->valueInteger()));
else
return(e);
}
*/
/* new version */
SgExpression *Calculate(SgExpression *e)
{
if (e->isInteger())
return(new SgValueExp(e->valueInteger()));
else
return(e);
}
SgExpression *Calculate_List(SgExpression *e)
{
SgExpression *el;
for (el = e; el; el = el->rhs())
el->setLhs(Calculate(el->lhs()));
return(e);
}
int ExpCompare(SgExpression *e1, SgExpression *e2)
{//compares two expressions
// returns 1 if they are textually identical
if (!e1 && !e2) // both expressions are null
return(1);
if (!e1 || !e2) // one of them is null
return(0);
if (e1->variant() != e2->variant()) // variants are not equal
return(0);
switch (e1->variant()) {
case INT_VAL:
return(NODE_IV(e1->thellnd) == NODE_IV(e2->thellnd));
case FLOAT_VAL:
case DOUBLE_VAL:
case BOOL_VAL:
case CHAR_VAL:
case STRING_VAL:
return(!strcmp(NODE_STR(e1->thellnd), NODE_STR(e2->thellnd)));
case COMPLEX_VAL:
return(ExpCompare(e1->lhs(), e2->lhs()) && ExpCompare(e1->rhs(), e2->rhs()));
case CONST_REF:
case VAR_REF:
return(e1->symbol() == e2->symbol());
case ARRAY_REF:
case FUNC_CALL:
if (e1->symbol() == e2->symbol())
return(ExpCompare(e1->lhs(), e2->lhs())); // compares subscript/argument lists
else
return(0);
case EXPR_LIST:
{SgExpression *el1, *el2;
for (el1 = e1, el2 = e2; el1&&el2; el1 = el1->rhs(), el2 = el2->rhs())
if (!ExpCompare(el1->lhs(), el2->lhs())) // the corresponding elements of lists are not identical
return(0);
if (el1 || el2) //one list is shorter than other
return(0);
else
return(1);
}
case MINUS_OP: //unary operations
case NOT_OP:
return(ExpCompare(e1->lhs(), e2->lhs())); // compares operands
default:
return(ExpCompare(e1->lhs(), e2->lhs()) && ExpCompare(e1->rhs(), e2->rhs()));
}
}
SgExpression *LowerBound(SgSymbol *ar, int i)
// lower bound of i-nd dimension of array ar (i= 0,...,Rank(ar)-1)
{
SgArrayType *artype;
SgExpression *e;
SgSubscriptExp *sbe;
//if(IS_POINTER(ar))
// return(new SgValueExp(1));
artype = isSgArrayType(ar->type());
if (!artype)
return(NULL);
e = artype->sizeInDim(i);
if (!e)
return(NULL);
if ((sbe = isSgSubscriptExp(e)) != NULL) {
if (sbe->lbound())
return(sbe->lbound());
//else if(IS_ALLOCATABLE_POINTER(ar)){
// if(HEADER(ar))
// return(header_ref(ar,Rank(ar)+3+i));
// else
// return(LBOUNDFunction(ar,i+1));
//}
else
return(new SgValueExp(1));
}
else
return(new SgValueExp(1)); // by default lower bound = 1
}
int Rank(SgSymbol *s)
{
SgArrayType *artype;
//if(IS_POINTER(s))
// return(PointerRank(s));
artype = isSgArrayType(s->type());
if (artype)
return (artype->dimension());
else
return (0);
}
SgExpression *UpperBound(SgSymbol *ar, int i)
// upper bound of i-nd dimension of array ar (i= 0,...,Rank(ar)-1)
{
SgArrayType *artype;
SgExpression *e;
SgSubscriptExp *sbe;
artype = isSgArrayType(ar->type());
if (!artype)
return(NULL);
e = artype->sizeInDim(i);
if (!e)
return(NULL);
if ((sbe = isSgSubscriptExp(e)) != NULL) {
if (sbe->ubound())
return(sbe->ubound());
//else if(HEADER(ar))
// return(&(*GetSize(HeaderRefInd(ar,1),i+1)-*HeaderRefInd(ar,Rank(ar)+3+i)+*new SgValueExp(1)));
//else
// return(UBOUNDFunction(ar,i+1));
}
else
return(e);
// !!!! test case "*"
return(e);
}
symb_list *AddToSymbList(symb_list *ls, SgSymbol *s)
{
symb_list *l;
//adding the symbol 's' to symb_list 'ls'
if (!ls) {
ls = new symb_list;
ls->symb = s;
ls->next = NULL;
}
else {
l = new symb_list;
l->symb = s;
l->next = ls;
ls = l;
}
return(ls);
}

File diff suppressed because it is too large Load Diff

View File

@@ -1,643 +0,0 @@
#include "user.h"
#define MAXTAGS 1000
#include "dvm_tag.h"
#ifdef IN_M_
#define EXTERN
#else
#define EXTERN extern
#endif
struct graph_node {
int id; //a number of node
graph_node *next;
graph_node *next_header_node; //???
graph_node *Inext;
SgFile *file;
SgStatement *st_header;
SgSymbol *symb; //??? st_header->symbol()
struct edge *to_called; //outcoming
struct edge *from_calling; //incoming
int split; //flag
int tmplt; //flag
int visited; //flag for partition algorithm
int clone; //flag is clone node
int count; //counter of inline expansions
};
struct graph_node_list {
graph_node_list *next;
graph_node *node;
};
struct edge {
edge *next;
graph_node *from;
graph_node *to;
int inlined; //1 - inlined, 0 - not inlined
};
struct edge_list {
edge_list *next;
edge *edg;
};
struct block_list {
block_list *next;
block_list *same_name;
SgExpression *block;
};
struct distribute_list {
distribute_list *next;
SgStatement *stdis;
};
struct stmt_list {
stmt_list *next;
SgStatement *st;
};
struct label_list {
label_list *next;
SgLabel *lab;
SgLabel *newlab;
};
struct dist_symb_list {
dist_symb_list *next;
SgSymbol *symb;
};
struct align {
SgSymbol * symb;
align * next;
align * alignees;
SgStatement * align_stmt;
};
struct mod_attr{
SgSymbol *symb;
SgSymbol *symb_list;
};
struct algn_attr {
int type;
align *ref;
};
struct rem_var {
int index;
int amv;
int ncolon;
};
struct rem_acc {
SgExpression *rml;
SgStatement *rmout;
int rmbuf_use[5];
rem_acc *next;
};
struct group_name_list {
group_name_list *next;
SgSymbol *symb;
};
struct symb_list {
symb_list *next;
SgSymbol *symb;
};
struct base_list {
base_list *next;
SgSymbol *type_symbol;
SgSymbol *base_symbol;
};
struct D_do_list {
D_do_list *next;
int No;
int num_line;
SgLabel *end_lab;
SgSymbol *do_var;
};
struct interval_list {
interval_list *prev;
int No;
SgStatement *begin_st;
};
struct D_fragment {
D_fragment *next;
int No;
};
struct fragment_list {
int No;
SgStatement *begin_st;
int dlevel;
int elevel;
int dlevel_spec;
int elevel_spec;
fragment_list *next;
};
struct fragment_list_in {
int N1;
int N2;
int level;
fragment_list_in *next;
};
struct reduction_list {
reduction_list *next;
int red_op;
SgExpression *red_var;
int ind;
};
struct IND_ref_list {
IND_ref_list *next;
SgExpression *rmref;
SgExpression *axis[7];
SgExpression *coef[7];
SgExpression *cons[7];
int nc;
int ind;
};
struct coeffs {
SgSymbol *sc[10];
int use;
};
struct heap_pointer_list {
heap_pointer_list *next;
SgSymbol *symb_heap;
SgSymbol *symb_p;
};
struct filename_list {
filename_list *next;
char *name;
SgSymbol *fns;
};
const int ROOT = 1;
const int NODE = 2;
const int GRAPH_NODE = 1000;
const int PRE_BOUND = 1001;
const int CONSTANT_MAP = 1002;
const int ARRAY_MAP = 1003;
const int ARRAY_MAP_1 = 1004;
const int ARRAY_MAP_2 = 1005;
const int ADJUSTABLE_ = 1006;
const int MAX_INTRINSIC_NUM =300;
const int MAX_LOOP_LEVEL = 10; // 7 - maximal number of loops in parallel loop nest
const int MAX_LOOP_NEST = 25; // maximal number of nested loops
const int MAX_FILE_NUM = 100; // maximal number of file reference in procedure
const int SIZE_IO_BUF = 262144; //4185600; // IO buffer size in elements
const int ANTIDEP = 0;
const int FLOWDEP = 1;
#define FICT_INT 2000000000 /* -2147483648 0x7FFFFFFFL*/
//enum{ Integer, Real, Double, Complex, Logical, DoubleComplex};
enum {UNIT_,FMT_,REC_,ERR_,IOSTAT_,END_,NML_,EOR_,SIZE_,ADVANCE_};
enum {U_,FILE_,STATUS_,ER_,IOST_,ACCESS_,FORM_,RECL_,BLANK_,EXIST_,
OPENED_,NUMBER_,NAMED_,NAME_,SEQUENTIAL_,DIRECT_,NEXTREC_,FORMATTED_,
UNFORMATTED_,POSITION_,ACTION_,READWRITE_,READ_,WRITE_,DELIM_,PAD_};
enum {ICHAR, CHAR,INT,IFIX,IDINT,FLOAT,REAL,SNGL,DBLE,CMPLX,DCMPLX,AINT,DINT,ANINT,DNINT,NINT,IDNINT,ABS,IABS,DABS,CABS,
MOD,AMOD,DMOD, SIGN,ISIGN, DSIGN, DIM,IDIM,DDIM, MAX,MAX0, AMAX1,DMAX1, AMAX0,MAX1, MIN,MIN0,
AMIN1,DMIN1,AMIN0,MIN1,LEN,INDEX,AIMAG,DIMAG,CONJG,DCONJG,SQRT,DSQRT,CSQRT,EXP,DEXP,CEXP,LOG,ALOG,DLOG,CLOG,
LOG10,ALOG10,DLOG10,SIN,DSIN,CSIN,COS,DCOS,CCOS,TAN,DTAN,ASIN,DASIN,ACOS,DACOS,ATAN,DATAN,
ATAN2,DATAN2,SINH,DSINH,COSH,DCOSH,TANH,DTANH, LGE,LGT,LLE,LLT};
//universal: ANINT,NINT,ABS, MOD,SIGN,DIM,MAX,MIN,SQRT,EXP,LOG,LOG10,SIN,COS,TAN,ASIN,ACOS,ATAN,ATAN2,SINH,COSH,TANH
//enum {SIZE,LBOUND,UBOUND,LEN,CHAR,KIND,F_INT,F_REAL,F_CHAR,F_LOGICAL,F_CMPLX}; //intrinsic functions of Fortran 90
const int Integer = 0;
const int Real = 1;
const int Double = 2;
const int Complex = 3;
const int Logical = 4;
const int DComplex = 5;
#define ATTR_NODE(A) ((graph_node **)(A)->attributeValue(0,GRAPH_NODE))
#define GRAPHNODE(A) (*((graph_node **)(A)->attributeValue(0,GRAPH_NODE)))
#define PREBOUND(A) ((SgExpression **)(A)->attributeValue(0,PRE_BOUND))
#define ARRAYMAP(A) ((SgExpression *)(A)->attributeValue(0,ARRAY_MAP_1))
#define ARRAYMAP2(A) ((SgExpression *)(A)->attributeValue(0,ARRAY_MAP_2))
#define CONSTANTMAP(A) ((SgExpression *)(A)->attributeValue(0,CONSTANT_MAP))
#define ADJUSTABLE(A) ((SgExpression *)(A)->attributeValue(0,ADJUSTABLE_))
#define HEADER(A) ((int*)(ORIGINAL_SYMBOL(A))->attributeValue(0,ARRAY_HEADER))
#define INDEX(A) (*((int*)(ORIGINAL_SYMBOL(A))->attributeValue(0,ARRAY_HEADER)))
#define DVM000(N) (new SgArrayRefExp(*dvmbuf, *new SgValueExp(N)))
#define SH_GROUP(S) (*((int *) (S) -> attributeValue(0, SHADOW_GROUP_IND)))
#define RED_GROUP(S) (*((int *) (S) -> attributeValue(0, RED_GROUP_IND)))
#define SHADOW_(A) ((SgExpression **)(ORIGINAL_SYMBOL(A))->attributeValue(0,SHADOW_WIDTH))
#define POINTER_DIR(A) ((SgStatement **)(ORIGINAL_SYMBOL(A))->attributeValue(0,POINTER_))
#define DISTRIBUTE_DIRECTIVE(A) ((SgStatement **)(ORIGINAL_SYMBOL(A))->attributeValue(0,DISTRIBUTE_))
#define ARRAY_BASE_SYMBOL(A) ((SgSymbol **)(ORIGINAL_SYMBOL(A))->attributeValue(0,ARRAY_BASE))
#define INDEX_SYMBOL(A) ((SgSymbol **)(A)->attributeValue(0,INDEX_DELTA))
#define INIT_LOOP_VAR(A) ((SgSymbol **)(A)->attributeValue(0,INIT_LOOP))
#define CONSISTENT_HEADER(A) (*((SgSymbol **)(ORIGINAL_SYMBOL(A))->attributeValue(0,CONSISTENT_ARRAY_HEADER)))
#define POINTER_INDEX(A) (*((int *)(A)->attributeValue(0,HEAP_INDEX)))
#define BUFFER_INDEX(A) (*((int*)(ORIGINAL_SYMBOL(A))->attributeValue(0,BUFFER_COUNT)))
#define BUFFER_COUNT_PLUS_1(A) (*((int*)(ORIGINAL_SYMBOL(A))->attributeValue(0,BUFFER_COUNT))) = (*((int*)(ORIGINAL_SYMBOL(A))->attributeValue(0,BUFFER_COUNT)))+1;
#define PS_INDEX(A) (*((int *)(A)->attributeValue(0,TASK_INDEX)))
#define DEBUG_INDEX(A) (*((int*)(ORIGINAL_SYMBOL(A))->attributeValue(0,DEBUG_AR_INDEX)))
#define TASK_SYMBOL(A) (*((SgSymbol **)(ORIGINAL_SYMBOL(A))->attributeValue(0,TSK_SYMBOL)))
#define AR_COEFFICIENTS(A) ((coeffs *) (ORIGINAL_SYMBOL(A))->attributeValue(0,ARRAY_COEF))
#define MAX_DVM maxdvm = (maxdvm < ndvm) ? ndvm-1 : maxdvm
#define FREE_DVM(A) maxdvm = (maxdvm < ndvm) ? ndvm-1 : maxdvm; ndvm-=A
#define SET_DVM(A) maxdvm = (maxdvm < ndvm) ? ndvm-1 : maxdvm; ndvm=A
#define FREE_HPF(A) maxhpf = (maxhpf < nhpf) ? nhpf-1 : maxhpf; nhpf-=A
#define SET_HPF(A) maxhpf = (maxhpf < nhpf) ? nhpf-1 : maxhpf; nhpf=A
#define HPF000(N) (new SgArrayRefExp(*hpfbuf, *new SgValueExp(N)))
#define IS_DUMMY(A) ((A)->thesymb->entry.var_decl.local == IO)
#define IS_TEMPLATE(A) ((A)->attributes() & TEMPLATE_BIT)
#define IN_COMMON(A) ((A)->attributes() & COMMON_BIT)
#define IN_DATA(A) ((A)->attributes() & DATA_BIT)
#define IN_EQUIVALENCE(A) ((A)->attributes() & EQUIVALENCE_BIT)
#define IS_ARRAY(A) ((A)->attributes() & DIMENSION_BIT)
#define IS_ALLOCATABLE(A) ((A)->attributes() & ALLOCATABLE_BIT)
#define IS_ALLOCATABLE_POINTER(A) (((A)->attributes() & ALLOCATABLE_BIT) || ((A)->attributes() & POINTER_BIT))
#define IS_POINTER_F90(A) ((A)->attributes() & POINTER_BIT)
#define CURRENT_SCOPE(A) (((A)->scope() == cur_func) && ((A)->thesymb->entry.var_decl.local != BY_USE) )
#define IS_BY_USE(A) ((A)->thesymb->entry.Template.base_name != 0)
/*#define ORIGINAL_SYMBOL(A) (OriginalSymbol(A)) */
#define ORIGINAL_SYMBOL(A) (IS_BY_USE(A) ? (A)->moduleSymbol() : (A))
#define IS_SAVE(A) (((A)->attributes() & SAVE_BIT) || (saveall && !IS_TEMPLATE(A) && !IN_COMMON(A) && !IS_DUMMY(A)) )
#define IS_POINTER(A) ((A)->attributes() & DVM_POINTER_BIT)
#define IS_SH_GROUP_NAME(A) ((A)->variant() == SHADOW_GROUP_NAME)
#define IS_RED_GROUP_NAME(A) ((A)->variant() == REDUCTION_GROUP_NAME)
#define IS_GROUP_NAME(A) (((A)->variant() == SHADOW_GROUP_NAME) || ((A)->variant() == REDUCTION_GROUP_NAME) || ((A)->variant() == REF_GROUP_NAME))
#define IS_DVM_ARRAY(A) (((A)->attributes() & DISTRIBUTE_BIT) || ((A)->attributes() & ALIGN_BIT) || ((A)->attributes() & INHERIT_BIT))
#define IS_DISTR_ARRAY(A) (((A)->attributes() & DISTRIBUTE_BIT) || ((A)->attributes() & ALIGN_BIT) || ((A)->attributes() & INHERIT_BIT))
#define IN_MODULE (cur_func->variant() == MODULE_STMT)
#define IN_MAIN_PROGRAM (cur_func->variant() == PROG_HEDR)
#define DVM_PROC_IN_MODULE(A) ((mod_attr *)(A)->attributeValue(0,MODULE_STR))
#define LINE_NUMBER_BEFORE(ST,WHERE) doAssignStmtBefore(new SgValueExp((ST)->lineNumber()),WHERE); ndvm--; InsertNewStatementBefore((many_files ? D_FileLine(ndvm,ST) : D_Lnumb(ndvm)) ,WHERE)
#define LINE_NUMBER_STL_BEFORE(STL,ST,WHERE) doAssignStmtBefore(new SgValueExp((ST)->lineNumber()),WHERE); ndvm--; InsertNewStatementBefore(STL= (many_files ? D_FileLine(ndvm,ST) : D_Lnumb(ndvm)),WHERE)
#define LINE_NUMBER_AFTER(ST,WHERE) InsertNewStatementAfter ((many_files ? D_FileLine(ndvm,ST) : D_Lnumb(ndvm)),WHERE,(WHERE)->controlParent()); doAssignStmtBefore(new SgValueExp((ST)->lineNumber()),cur_st); ndvm--
#define LINE_NUMBER_N_AFTER(N,WHERE,CP) InsertNewStatementAfter((many_files ? D_FileLine(ndvm,CP): D_Lnumb(ndvm)),WHERE,CP); doAssignStmtBefore(new SgValueExp(N),cur_st); ndvm--
#define LINE_NUMBER_NEXP_AFTER(NE,WHERE,CP) InsertNewStatementAfter((many_files ? D_DummyFileLine(ndvm,"dvm_check"): D_Lnumb(ndvm)),WHERE,CP); doAssignStmtBefore((NE),cur_st); ndvm--
#define ALIGN_RULE_INDEX(A) ((int*)(A)->attributeValue(0,ALIGN_RULE))
#define INTERVAL_LINE (St_frag->begin_st->lineNumber())
#define INTERVAL_NUMBER (St_frag->No)
#define GROUP_REF(S,I) (new SgArrayRefExp(*(S),*new SgValueExp(I)))
#define IS_DO_VARIABLE_USE(E) ((SgExpression **)(E)->attributeValue(0,DO_VARIABLE_USE))
#define HEADER_SIZE(A) (1+(maxbuf+1)*2*(Rank(A)+1))
#define HSIZE(R) (2*R + 2)
#define ARRAY_ELEMENT(A,I) (new SgArrayRefExp(*A, *new SgValueExp(I)))
#define INTEGER_VALUE(E,C) ((E)->variant() == INT_VAL && (E)->valueInteger() == (C))
#define IS_INTRINSIC_TYPE(T) (!TYPE_RANGES((T)->thetype) && !TYPE_KIND_LEN((T)->thetype) && ((T)->variant() != T_DERIVED_TYPE))
//----------------------------------------------------------------------------------------
#define DECL(A) ((A)->thesymb->decl)
#define HEDR(A) ((A)->thesymb->entry.Template.func_hedr)
#define PROGRAM_HEADER(A) ((A)->thesymb->entry.prog_decl.prog_hedr)
#define NON_CONFORMABLE 0
#define _IDENTICAL_ 1
#define _CONSTANT_ 2
#define _ARRAY_ 3
#define SCALAR_ARRAYREF 4
#define VECTOR_ARRAYREF 5
#define _SUBARRAY_ 6
EXTERN SgConstantSymb *Iconst[10];
EXTERN const char *tag[MAXTAGS];
EXTERN int ndvm; // index for buffer array 'dvm000'
EXTERN int maxdvm; // size of array 'dvm000'
EXTERN int loc_distr;
EXTERN int send; //set to 1 if I/O statement require 'send' operation
EXTERN char *fin_name; //input file name
EXTERN SgFile *current_file; //current file
EXTERN SgStatement *where;//used in doAssignStmt: new statement is inserted before 'where' statement
EXTERN int nio;
EXTERN SgSymbol *bufIO[6];
EXTERN SgSymbol *loop_var[8]; // for generatig DO statements
EXTERN SgStatement *par_do; // first DO statement of current parallel loop
EXTERN int iplp; //dvm000 element number for storing ParLoopRef
EXTERN int irg; //dvm000 element number for storing RedGroupRef
EXTERN int irgts; //dvm000 element number for storing RedGroupRef(task_region)
EXTERN int idebrg; //dvm000 element number for storing DebRedGroupRef
EXTERN SgExpression *redgref; // reduction group reference
EXTERN SgExpression *redgrefts; // reduction group reference for TASK_REGION
EXTERN SgExpression *debredgref; // debug reduction group reference
EXTERN SgExpression *red_list; // reduction operation list in FDVM program
EXTERN SgExpression *task_red_list; // reduction operation list (in TASK_REGION directive)
EXTERN int iconsg; //dvm000 element number for storing ConsistGroupRef
EXTERN int iconsgts; //dvm000 element number for storing ConsistGroupRef(task_region)
EXTERN int idebcg; //dvm000 element number for storing DebRedGroupRef
EXTERN SgExpression *consgref; // consistent group reference
EXTERN SgExpression *consgrefts; // consistent group reference for TASK_REGION
EXTERN SgExpression *debconsgref; // debug reduction(consistent) group reference
EXTERN SgExpression *cons_list; // consistent array list in FDVM program
EXTERN SgExpression *task_cons_list; // consistent array list (in TASK_REGION directive)
EXTERN SgLabel *end_lab, *begin_lab; //labels for parallel loop nest
EXTERN D_do_list *cur_do;
EXTERN D_do_list *free_list;
EXTERN int Dloop_No;
EXTERN int pardo_No;
EXTERN int taskreg_No;
EXTERN int pardo_line;
EXTERN int D_end_do;
EXTERN int nfrag ; //counter of intervals for performance analizer
EXTERN interval_list *St_frag ;
EXTERN interval_list *St_loop_first;
EXTERN interval_list *St_loop_last;
EXTERN int perf_analysis ; //set to 1 by -e1
EXTERN int close_loop_interval;
EXTERN stmt_list *goto_list;
EXTERN int len_int; //set by option -bind
EXTERN int len_long;//set by option -bind
EXTERN int bind;//set by option -bind
EXTERN int dvm_debug ; //set to 1 by -d1 or -d2 or -d3 or -d4 flag
EXTERN int only_debug ; //set to 1 by -s flag
EXTERN int level_debug ; //set to 1 by -d1, to 2 by -d2, ...
EXTERN fragment_list_in *debug_fragment; //set by option -d
EXTERN fragment_list_in *perf_fragment; //set by option -e
EXTERN int debug_regim; //set by option -d
EXTERN int check_regim; //set by option -dc
EXTERN int dbg_if_regim; //set by option -dbif
EXTERN int IOBufSize; //set by option -bufio
EXTERN SgSymbol *dbg_var;
EXTERN int HPF_program;
EXTERN int rmbuf_size[6];
EXTERN int first_time;
EXTERN SgStatement *indep_st; //first INDEPENDENT directive of loop nest
EXTERN SgStatement *ins_st1, *ins_st2; // for INDEPENDENT loop
EXTERN SgSymbol *DoVar[MAX_LOOP_NEST], **IND_var, **IEX_var;
EXTERN int iarg; // for INDEPENDENT loop
//---------------------------------------------------------------------
EXTERN int errcnt; // counter of errors in file
EXTERN graph_node *first_node, *node_list, *first_header_node, *cur_node, *DAG_list, *top_node;
EXTERN graph_node_list *all_node_list, *header_node_list, *dead_node_list, *nobody_node_list;
EXTERN SgStatement *cur_func; // current function
EXTERN SgSymbol *cur_symb, *top_symb_list, *sub_symb_list;
EXTERN int do_dummy, do_stmtfn; // flag for building call graph: by default do_dummy=0, do_stmtfn=0
EXTERN int gcount;
EXTERN SgStatement *cur_st; // current statement (for inserting)
EXTERN SgStatement *global_st; // first statement of file (global_bfnd)
EXTERN stmt_list *entryst_list;
//EXTERN stmt_list *DATA_list;
EXTERN int max_lab; // maximal label in file
EXTERN int num_lab; // maximal(last) new label
EXTERN int vcounter;
EXTERN SgStatement *top_header, *top_last,* top_first_executable,*top_last_declaration, *top_global;
EXTERN label_list *format_labels, *top_labels, *proc_labels;
EXTERN SgSymbol *do_var[10];
EXTERN symb_list *top_temp_vars;
EXTERN block_list *common_list, *common_list_l, *equiv_list, *equiv_list_l;
EXTERN block_list *top_common_list, *top_common_list_l, *top_equiv_list, *top_equiv_list_l;
EXTERN int modified;
EXTERN int intrinsic_type[MAX_INTRINSIC_NUM];
EXTERN const char *intrinsic_name[MAX_INTRINSIC_NUM];
EXTERN int deb_reg, with_cmnt;
//---------------------------------------------------------------------
/* inl_exp.cpp */
void initialize();
void InlinerDriver(SgFile *f);
void CallGraph(SgStatement *func);
void initVariantNames();
int isDummyArgument(SgSymbol *s);
int isStatementFunction(SgSymbol *s);
void FunctionCallSearch(SgExpression *e);
void FunctionCallSearch_Left(SgExpression *e);
void Arg_FunctionCallSearch(SgExpression *e);
stmt_list *addToStmtList(stmt_list *pstmt, SgStatement *stat);
stmt_list *delFromStmtList(stmt_list *pstmt);
graph_node_list *addToNodeList(graph_node_list *pnode, graph_node *gnode);
graph_node_list *delFromNodeList(graph_node_list *pnode, graph_node *gnode);
graph_node_list *isInNodeList(graph_node_list *pnode, graph_node *gnode);
graph_node *CreateGraphNode(SgSymbol *s, SgStatement *header_st);
graph_node *NewGraphNode(SgSymbol *s, SgStatement *header_st);
void PrintGraphNode(graph_node *gnode);
void PrintGraphNodeWithAllEdges(graph_node *gnode);
void PrintWholeGraph();
void PrintWholeGraph_kind_2 ();
graph_node *NodeForSymbInGraph(SgSymbol *s, SgStatement *stheader);
void Call_Site(SgSymbol *s, int inlined);
edge *CreateOutcomingEdge(graph_node *gnode, int inlined);
edge *CreateIncomingEdge(graph_node *gnode, int inlined);
edge *NewEdge(graph_node *from, graph_node *to, int inlined);
void BuildingHeaderNodeList();
void RemovingDeadSubprograms();
int isHeaderNode(graph_node *gnode);
int isDeadNode(graph_node *gnode);
int isHeaderStmtSymbol(SgSymbol *s);
void DeleteIncomingEdgeFrom(graph_node *gnode, graph_node *from);
void ScanSymbolTable(SgFile *f);
void NoBodySubprograms();
void DeleteOutcomingEdgeTo(graph_node *gnode, graph_node *gto);
int isNoBodyNode(graph_node *gnode);
void ReseatEdges(graph_node *gnode, graph_node *newnode);
graph_node *SplittingNode(graph_node *gnode);
graph_node *CloneNode(graph_node *gnode);
void CopyOutcomingEdges(graph_node *gnode, graph_node *gnew);
void CopyIncomingEdges (graph_node *gnode, graph_node *gnew);
void RemovingUninlinedEdges();
void Partition();
void MoveEdgesPointTo(graph_node *gnode);
int unvisited_in(graph_node_list *interval);
int inInterval(graph_node *gnode,graph_node_list *interval);
int allPredecessorInInterval(graph_node *gnode,graph_node_list *interval);
void ReseatEdgesOutsideToNew(graph_node *gnode, graph_node *gnew,graph_node_list *interval);
void initIntrinsicNames();
/* hlp.cpp */
SgLabel * firstLabel(SgFile *f);
int isLabel(int num) ;
SgLabel * GetLabel();
SgLabel * GetNewLabel();
SgLabel * NewLabel();
//SgLabel * NewLabel(int lnum);
const char* header(int i);
char *UnparseExpr(SgExpression *e) ;
void printVariantName(int i);
void Error(const char *s, const char *t, int num, SgStatement *stmt);
void err(const char *s, int num, SgStatement *stmt);
void Err_g(const char *s, const char *t, int num);
void Warning(const char *s, const char *t, int num, SgStatement *stmt);
void warn(const char *s, int num, SgStatement *stmt);
void Warn_g(const char *s, const char *t, int num);
void errN(const char *s, int num, SgStatement *stmt);
void format_num (int num, char num3s[]);
SgExpression *ConnectList(SgExpression *el1, SgExpression *el2);
int is_integer_value(char *str);
void PrintSymbolTable(SgFile *f);
void printSymb(SgSymbol *s);
void printType(SgType *t);
void PrintTypeTable(SgFile *f);
int isSymbolNameInScope(char *name, SgStatement *scope);
int isSymbolName(char *name);
SgExpression *ReplaceIntegerParameter(SgExpression *e);
void SetScopeOfLabel(SgLabel *lab, SgStatement *scope);
SgLabel *isLabelWithScope(int num, SgStatement *stmt) ;
SgExpression *UpperBound(SgSymbol *ar, int i);
SgExpression *LowerBound(SgSymbol *ar, int i);
int Rank (SgSymbol *s);
symb_list *AddToSymbList ( symb_list *ls, SgSymbol *s);
void MakeDeclarationForTempVarsInTop();
SgExpression *Calculate(SgExpression *er);
int ExpCompare(SgExpression *e1, SgExpression *e2);
SgExpression *Calculate_List(SgExpression *e);
/* inliner.cpp */
void Inliner(graph_node *gtop);
void EntryPointList(SgFile *file);
void IntegerConstantSubstitution(SgStatement *header);
int isIntrinsicFunctionName(char *name);
char *ChangeIntrinsicFunctionName(char *name);
void RoutineCleaning(SgStatement *header);
void StatementCleaning(SgStatement *stmt);
SgSymbol *SearchFunction(SgExpression *e,SgStatement *stmt);
SgSymbol *PrecalculateFtoVar(SgExpression *e,SgStatement *stmt);
void PrecalculateActualParameters(SgSymbol *s,SgExpression *e,SgStatement *stmt);
void PrecalculateExpression(SgSymbol *sp,SgExpression *e,SgStatement *stmt);
void InsertNewStatementBefore (SgStatement *stat, SgStatement *current);
void InsertNewStatementAfter (SgStatement *stat, SgStatement *current, SgStatement *cp);
int ParameterType(SgExpression *e,SgStatement *stmt);
int TestSubscripts(SgExpression *e,SgStatement *stmt);
int TestRange(SgExpression *e,SgStatement *stmt);
SgSymbol *GetTempVarForF(SgSymbol *sf, SgType *t);
SgSymbol *GetTempVarForArg(int i, SgSymbol *sf, SgType *t);
SgSymbol *GetTempVarForSubscr(SgType *t);
SgSymbol *GetTempVarForBound(SgSymbol *sa);
SgStatement *InlineExpansion(graph_node *gtop, SgStatement *stmt, SgSymbol *sf, SgExpression *args);
int isInSymbolTable(SgSymbol *sym);
SgStatement * CreateTemplate(graph_node *gnode);
void SiteIndependentTransformation(graph_node *gnode); //(SgStatement *header);
void MoveToTopOfRoutine(SgStatement *entrystmt, SgStatement *first_executable);
void LogIf_to_IfThen(SgStatement *stmt);
void MoveToTopOfRoutine(SgStatement *entrystmt, SgStatement *first_executable);
SgStatement *ReplaceByGoToBottomOfRoutine(SgStatement *retstmt, SgLabel *lab_return);
void MoveFormatToTopOfRoutine(SgStatement *format_stmt, SgStatement *last_declaration);
int TestFormatLabel(SgLabel *lab);
int isInlinedCall(graph_node *gtop, graph_node *gnode);
void ReplaceReturnByContinue(SgStatement *return_st);
SgStatement *MoveFormatIntoTopLevel(SgStatement *format_stmt, int clone);
graph_node *getNodeForSymbol(graph_node *gtop,char *name);
int isInlinedCallSite(SgStatement *stmt);
graph_node *getAttrNodeForSymbol(SgSymbol *sf);
label_list *addToLabelList(label_list *lablist, SgLabel *lab);
int isInLabelList(SgLabel *lab, label_list *lablist);
void ReplaceFormatLabelsInStmts(SgStatement *header);
int isLabelOfTop(SgLabel *lab);
void LabelList(SgStatement *header);
SgLabel *isInFormatMap(SgLabel *lab);
void SetScopeToLabels(SgStatement *header);
void AdjustableArrayBounds(SgStatement *header, SgStatement *after);
int isAdustableBound(SgExpression *bound);
int SearchVarRef(SgExpression *e);
void PrecalculateArrayBound(SgSymbol *ar,SgExpression *bound, SgStatement *after, SgStatement *header);
void ReplaceWholeArrayRefInIOStmts(SgStatement *header);
SgExpression *ImplicitLoop(SgSymbol *ar);
SgSymbol *GetImplicitDoVar(int j);
SgExpression * LowerLoopBound(SgSymbol *ar, int i);
SgExpression * UpperLoopBound(SgSymbol *ar, int i);
void RemapLocalVariables(SgStatement *header);
SgSymbol *CreateListOfLocalVariables(SgStatement *header);
void MakeDeclarationStmtInTop(SgSymbol *s);
SgSymbol *NextSymbol(SgSymbol *s);
SgSymbol *GetNewTopSymbol(SgSymbol *s);
int isInTopSymbList(SgSymbol *sym);
SgSymbol *GetImplicitDoVar(int j);
char *NewName(char *name);
SgSymbol *isTopName(char *name);
SgSymbol *isTopNameOfType(char *name, SgType *type);
void ReplaceIntegerParameterInTypeOfVars(SgStatement *header, SgStatement *last);
void ReplaceIntegerParameter_InType(SgType *t);
void MakeDeclarationStmtsForConstant(SgSymbol *s);
void RemapFunctionResultVar(SgExpression *topref, SgSymbol *sf);
SgStatement *TranslateSubprogramReferences(SgStatement *header);
//void TranslateExpression(SgExpression * e, int md[]);
SgExpression *TranslateExpression(SgExpression * e, int *md);
SgSymbol *SymbolMap(SgSymbol *s);
void InsertBlockAfter(SgStatement *after, SgStatement *first, SgStatement *last);
void ExtractSubprogramsOfCallGraph(graph_node *gtop);
int CompareConstants(SgSymbol *rs, SgSymbol *ts);
void RemapConstants(SgStatement *header,SgStatement *first_exec);
void RemapLocalObject(SgSymbol *s);
void CommonBlockList(SgStatement *stmt);
void TopCommonBlockList(SgStatement *stmt);
block_list *AddToBlockList(block_list *blist_last, SgExpression *eb);
void EquivBlockList(SgStatement *stmt);
void TranslateExpression_1(SgExpression *e);
void TranslateExpressionList(SgExpression *e) ;
SgStatement *DeclaringCommonBlock(SgExpression *bl);
void RemapCommonBlocks(SgStatement *header);
int isUnconflictingCommon(SgSymbol *s);
block_list *isConflictingCommon(SgSymbol *s);
SgType *BaseType(SgType *type);
block_list *isInCommonList(SgSymbol *s, block_list *blc );
int areOfSameType(SgSymbol *st, SgSymbol *sr);
int IntrinsicTypeSize(SgType *t);
int TypeSize(SgType *t);
int TypeLength(SgType *t);
void MakeRefsConformable(SgExpression *tref, SgExpression *ref);
void CalculateTopLevelRef(SgSymbol *tops,SgExpression *tref, SgExpression *ref);
void CreateTopCommonBlockList();
void RemapCommonObject(SgSymbol *s,SgSymbol *tops);
void RemapCommonList(SgExpression *el);
int CompareValues(PTR_LLND pe1,PTR_LLND pe2);
SgType * TypeOfResult(SgExpression *e);
int is_IntrinsicFunction(SgSymbol *sf);
int IntrinsicInd(SgSymbol *sf);
SgType *TypeF(int indf,SgExpression *e);
SgType * SgTypeComplex(SgFile *f);
SgType * SgTypeDoubleComplex(SgFile *f);
void ConformActualAndFormalParameters(SgSymbol *scopy,SgExpression *args,SgStatement *parentSt);
SgSymbol *FirstDummy(SgSymbol *sf);
SgSymbol *NextDummy(SgSymbol *s);
int TestConformability(SgSymbol *darg, SgExpression *fact, SgStatement *parentSt);
int isScalar(SgSymbol *symb);
int SameType(SgSymbol *darg, SgExpression *fact);
int Same(SgType *ft,SgType *dt);
int isArray(SgSymbol *symb);
int TestShapes(SgArrayType *ftp, SgArrayType *dtp);
SgExpression *LowerBoundOfDim(SgExpression *e);
SgExpression *UpperBoundOfDim(SgExpression *e);
int IdenticalValues(SgExpression *e1, SgExpression *e2);
SgExpression *ArrayMap(SgSymbol *s);
//SgExpression *ArrayMap1(SgSymbol *s);
SgExpression *ArrayMap2(SgSymbol *s);
SgExpression *FirstIndexChange(SgExpression *e, SgExpression *index);
int SameShapes(SgArrayType *ftp, SgArrayType *dtp);
int is_NoExpansionFunction(SgSymbol *sf);
int isFormalProcedure(SgSymbol *symb);
int SameDims(SgExpression *fe,SgExpression *de);
SgExpression *FirstIndexesChange(SgExpression *mape, SgExpression *re);
void ConformReferences(SgSymbol *darg, SgExpression *fact, SgStatement *parentSt);
void TranslateArrayTypeExpressions(SgSymbol *darg);
int isAdjustableArray(SgSymbol *param);
int TestBounds(SgExpression *fact, SgArrayType *ftp, SgArrayType *dtp);
void TransformForFortran77();
SgExpression *IndexChange(SgExpression *e, SgExpression *index, SgExpression *lbe);
int TestVector(SgExpression *fact, SgArrayType *ftp, SgArrayType *dtp);
SgType *TypeOfArgument(SgExpression *e);
void ReplaceContext(SgStatement *stmt);
int isDoEndStmt(SgStatement *stmt);
void ReplaceDoNestLabel(SgStatement *last_st, SgLabel *new_lab);
void EditExpressionList(SgExpression *e);
void Add_Comment(graph_node *g, SgStatement *stmt, int flag);
void PrintTopSymbList();
void PrintSymbList(SgSymbol *slist, SgStatement *header);
/* driver.cpp */
//-----------------------------------------------------------------------
extern "C" char* funparse_bfnd(...);
extern "C" char* Tool_Unparse2_LLnode(...);
extern "C" void Init_Unparser(...);
//-----------------------------------------------------------------------
//extern SgLabel * LabelMapping(PTR_LABEL label);

File diff suppressed because it is too large Load Diff

View File

@@ -1,196 +0,0 @@
intrinsic_type[ICHAR] = 1;
intrinsic_type[CHAR] = 7;
intrinsic_type[INT] = 1; //
intrinsic_type[IFIX] = 1;
intrinsic_type[IDINT] = 1;
intrinsic_type[FLOAT] = 3;
intrinsic_type[REAL] = 3; //
intrinsic_type[SNGL] = 3;
intrinsic_type[DBLE] = 4; //
intrinsic_type[CMPLX] = 5; //
intrinsic_type[DCMPLX]= 6;
intrinsic_type[AINT] = 3; //
intrinsic_type[DINT] = 4;
intrinsic_type[ANINT] = 3; //
intrinsic_type[DNINT] = 4;
intrinsic_type[NINT] = 1; //
intrinsic_type[IDNINT]= 1;
intrinsic_type[ABS] =-1; //3
intrinsic_type[IABS] = 1;
intrinsic_type[DABS] = 4;
intrinsic_type[CABS] = 5;
intrinsic_type[MOD] =-1; //1
intrinsic_type[AMOD] = 3;
intrinsic_type[DMOD] = 4;
intrinsic_type[SIGN] =-1; //3
intrinsic_type[ISIGN] = 1;
intrinsic_type[DSIGN] = 4;
intrinsic_type[DIM] =-1; //3
intrinsic_type[IDIM] = 1;
intrinsic_type[DDIM] = 4;
intrinsic_type[MAX] =-1;
intrinsic_type[MAX0] = 1;
intrinsic_type[AMAX1] = 3;
intrinsic_type[DMAX1] = 4;
intrinsic_type[AMAX0] = 3;
intrinsic_type[MAX1] = 1;
intrinsic_type[MIN] =-1; //
intrinsic_type[MIN0] = 1;
intrinsic_type[AMIN1] = 3;
intrinsic_type[DMIN1] = 4;
intrinsic_type[AMIN0] = 3;
intrinsic_type[MIN1] = 1;
intrinsic_type[LEN] = 1;
intrinsic_type[INDEX] = 1;
intrinsic_type[AIMAG] =-1; //3
intrinsic_type[DIMAG] = 4;
intrinsic_type[CONJG] =-1; //5
intrinsic_type[DCONJG]= 6;
intrinsic_type[SQRT] =-1; //3
intrinsic_type[DSQRT] = 4;
intrinsic_type[CSQRT] = 5;
intrinsic_type[EXP] =-1; //3
intrinsic_type[DEXP] = 4;
intrinsic_type[CEXP] = 5;
intrinsic_type[LOG] =-1; //
intrinsic_type[ALOG] = 3;
intrinsic_type[DLOG] = 4;
intrinsic_type[CLOG] = 5;
intrinsic_type[LOG10] =-1; //
intrinsic_type[ALOG10]= 3;
intrinsic_type[DLOG10]= 4;
intrinsic_type[SIN] =-1; //3
intrinsic_type[DSIN] = 4;
intrinsic_type[CSIN] = 5;
intrinsic_type[COS] =-1; //3
intrinsic_type[DCOS] = 4;
intrinsic_type[CCOS] = 5;
intrinsic_type[TAN] =-1; //3
intrinsic_type[DTAN] = 4;
intrinsic_type[ASIN] =-1; //3
intrinsic_type[DASIN] = 4;
intrinsic_type[ACOS] =-1; //3
intrinsic_type[DACOS] = 4;
intrinsic_type[ATAN] =-1; //3
intrinsic_type[DATAN] = 4;
intrinsic_type[ATAN2] =-1; //3
intrinsic_type[DATAN2]= 4;
intrinsic_type[SINH] =-1; //3
intrinsic_type[DSINH] = 4;
intrinsic_type[COSH] =-1; //3
intrinsic_type[DCOSH] = 4;
intrinsic_type[TANH] =-1; //3
intrinsic_type[DTANH] = 4;
intrinsic_type[LGE] = 2;
intrinsic_type[LGT] = 2;
intrinsic_type[LLE] = 2;
intrinsic_type[LLT] = 2;
//intrinsic_type[] = ;
//intrinsic_type[] = ;
//{ICHAR, CHAR,INT,IFIX,IDINT,FLOAT,REAL,SNGL,DBLE,CMPLX,DCMPLX,AINT,DINT,ANINT,DNINT,NINT,IDNINT,ABS,IABS,DABS,CABS,
// MOD,AMOD,DMOD, SIGN,ISIGN, DSIGN, DIM,IDIM,DDIM, MAX,MAX0, AMAX1,DMAX1, AMAX0,MAX1, MIN,MIN0,
// AMIN1,DMIN1,AMIN0,MIN1,LEN,INDEX,AIMAG,DIMAG,CONJG,DCONJG,SQRT,DSQRT,CSQRT,EXP,DEXP.CEXP,LOG,ALOG,DLOG,CLOG,
// LOG10,ALOG10,DLOG10,SIN,DSIN,CSIN,COS,DCOS,CCOS,TAN,DTAN,ASIN,DASIN,ACOS,DACOS,ATAN,DATAN,
// ATAN2,DATAN2,SINH,DSINH,COSH,DCOSH,TANH,DTANH, LGE,LGT,LLE,LLT};
//universal: ANINT,NINT,ABS, MOD,SIGN,DIM,MAX,MIN,SQRT,EXP,LOG,LOG10,SIN,COS,TAN,ASIN,ACOS,ATAN,ATAN2,SINH,COSH,TANH
//universal name - -1
//integer - 1
//logical - 2
//real - 3
//double precision - 4
//complex - 5
//complex*16 - 6
//character - 7
intrinsic_name[ICHAR] = "ichar";
intrinsic_name[CHAR] = "char";
intrinsic_name[INT] = "int"; //
intrinsic_name[IFIX] = "ifix";
intrinsic_name[IDINT] = "idint";
intrinsic_name[FLOAT] = "float";
intrinsic_name[REAL] = "real"; //
intrinsic_name[SNGL] = "sngl";
intrinsic_name[DBLE] = "dble"; //
intrinsic_name[CMPLX] = "cmplx"; //
intrinsic_name[DCMPLX]= "dcmplx";
intrinsic_name[AINT] = "aint"; //
intrinsic_name[DINT] = "dint";
intrinsic_name[ANINT] = "anint"; //
intrinsic_name[DNINT] = "dnint";
intrinsic_name[NINT] = "nint"; //
intrinsic_name[IDNINT]= "idnint";
intrinsic_name[ABS] = "abs"; //
intrinsic_name[IABS] = "iabs";
intrinsic_name[DABS] = "dabs";
intrinsic_name[CABS] = "cabs";
intrinsic_name[MOD] = "mod"; //
intrinsic_name[AMOD] = "amod";
intrinsic_name[DMOD] = "dmod";
intrinsic_name[SIGN] = "sign"; //
intrinsic_name[ISIGN] = "isign";
intrinsic_name[DSIGN] = "dsign";
intrinsic_name[DIM] = "dim"; //
intrinsic_name[IDIM] = "idim";
intrinsic_name[DDIM] = "ddim";
intrinsic_name[MAX] = "max";
intrinsic_name[MAX0] = "max0";
intrinsic_name[AMAX1] = "amax1";
intrinsic_name[DMAX1] = "dmax1";
intrinsic_name[AMAX0] = "amax0";
intrinsic_name[MAX1] = "max1";
intrinsic_name[MIN] = "min"; //
intrinsic_name[MIN0] = "min0";
intrinsic_name[AMIN1] = "amin1";
intrinsic_name[DMIN1] = "dmin1";
intrinsic_name[AMIN0] = "amin0";
intrinsic_name[MIN1] = "min1";
intrinsic_name[LEN] = "len";
intrinsic_name[INDEX] = "index";
intrinsic_name[AIMAG] = "AIMAG"; //
intrinsic_name[DIMAG] = "DIMAG";
intrinsic_name[CONJG] = "conjg"; //
intrinsic_name[DCONJG]= "dconjg";
intrinsic_name[SQRT] = "sqrt"; //
intrinsic_name[DSQRT] = "dsqrt";
intrinsic_name[CSQRT] = "csqrt";
intrinsic_name[EXP] = "exp"; //
intrinsic_name[DEXP] = "dexp";
intrinsic_name[CEXP] = "cexp";
intrinsic_name[LOG] = "log"; //
intrinsic_name[ALOG] = "alog";
intrinsic_name[DLOG] = "dlog";
intrinsic_name[CLOG] = "clog";
intrinsic_name[LOG10] = "log10"; //
intrinsic_name[ALOG10]= "alog10";
intrinsic_name[DLOG10]= "dlog10";
intrinsic_name[SIN] = "sin"; //
intrinsic_name[DSIN] = "dsin";
intrinsic_name[CSIN] = "csin";
intrinsic_name[COS] = "cos"; //
intrinsic_name[DCOS] = "dcos";
intrinsic_name[CCOS] = "ccos";
intrinsic_name[TAN] = "tan"; //
intrinsic_name[DTAN] = "dtan";
intrinsic_name[ASIN] = "asin"; //
intrinsic_name[DASIN] = "dasin";
intrinsic_name[ACOS] = "acos"; //
intrinsic_name[DACOS] = "dacos";
intrinsic_name[ATAN] = "atan"; //
intrinsic_name[DATAN] = "datan";
intrinsic_name[ATAN2] = "atan2"; //
intrinsic_name[DATAN2]= "datan2";
intrinsic_name[SINH] = "sinh"; //
intrinsic_name[DSINH] = "dsinh";
intrinsic_name[COSH] = "cosh"; //
intrinsic_name[DCOSH] = "dcosh";
intrinsic_name[TANH] = "tanh"; //
intrinsic_name[DTANH] = "dtanh";
intrinsic_name[LGE] = "lge";
intrinsic_name[LGT] = "lgt";
intrinsic_name[LLE] = "lle";
intrinsic_name[LLT] = "llt";

View File

@@ -1,46 +0,0 @@
#echo#######################################################################
# Makefile for Fortran DVM transformator
#
#echo#######################################################################
# dvm/fdvm/fdvm_transform/makefile.uni
SAGEROOT = ../Sage
LIBDIR = ../lib
BINDIR = ../../bin
LIBINCLUDE = $(SAGEROOT)/lib/include
HINCLUDE = $(SAGEROOT)/h
DVMINCLUDE = ../include
EXECUTABLES = inl_exp
LOADER = $(LINKER)
INCL = -I. -I$(LIBINCLUDE) -I$(HINCLUDE) -I$(DVMINCLUDE)
CFLAGS = -c $(INCL) -Wall
LDFLAGS =
LIBS = $(LIBDIR)/libSage++.a $(LIBDIR)/libsage.a $(LIBDIR)/libdb.a
OBJS = inl_exp.o inliner.o hlp.o
$(BINDIR)/$(EXECUTABLES): $(OBJS)
$(LOADER) $(LDFLAGS) -o $(BINDIR)/$(EXECUTABLES) $(OBJS) $(LIBS)
all: $(BINDIR)/$(EXECUTABLES)
@echo "****** COMPILING $(EXECUTABLES) DONE ******"
clean:
rm -f $(OBJS)
cleanall:
rm -f $(OBJS)
############################# dependencies ############################
inl_exp.o: inl_exp.cpp inline.h
$(CXX) $(CFLAGS) inl_exp.cpp
inliner.o: inliner.cpp inline.h
$(CXX) $(CFLAGS) inliner.cpp
hlp.o: hlp.cpp inline.h
$(CXX) $(CFLAGS) hlp.cpp

View File

@@ -1,61 +0,0 @@
#######################################################################
## Copyright (C) 1999 ##
## Keldysh Institute of Appllied Mathematics ##
#######################################################################
# dvm/fdvm/fdvm_transform/makefile.win
OUTDIR = ..\obj
BINDIR = ..\..\bin
LIBDIR = ..\lib
SAGEROOT =..\Sage
LIBINCLUDE = $(SAGEROOT)\lib\include
HINCLUDE = $(SAGEROOT)\h
FDVMINCL = ..\include
EXECUTABLES = inl_exp
INCL = -I. -I$(LIBINCLUDE) -I$(HINCLUDE) -I$(FDVMINCL)
# -w don't issue warning now.
#CFLAGS=/nologo /ML /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D SYS5 $(INCL) \
# /Fp"$(OUTDIR)/fdvm_transform.pch" /YX /Fo"$(OUTDIR)/" /Fd"$(OUTDIR)/" /c
CFLAGS=/nologo /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D SYS5 $(INCL) \
/Fp"$(OUTDIR)/fdvm_transform.pch" /Fo"$(OUTDIR)/" /Fd"$(OUTDIR)/" /c
.cpp{$(OUTDIR)/}.obj:
$(CXX) $(CFLAGS) $<
LINK=$(LINKER)
LINK_FLAGS=/nologo /subsystem:console /incremental:no\
/pdb:"$(OUTDIR)\$(EXECUTABLES).pdb" /out:"$(BINDIR)\$(EXECUTABLES).exe"
LINK_FLAGS=/nologo /subsystem:console /incremental:no\
/pdb:"$(OUTDIR)\$(EXECUTABLES).pdb" /out:"$(BINDIR)\$(EXECUTABLES).exe"
OBJS = $(OUTDIR)/inl_exp.obj $(OUTDIR)/inliner.obj $(OUTDIR)/hlp.obj
LIBS = $(LIBDIR)/libSage++.lib $(LIBDIR)\libsage.lib $(LIBDIR)\libdb.lib
$(BINDIR)/$(EXECUTABLES).exe: $(OBJS)
$(LINK) @<<
$(LINK_FLAGS) $(OBJS) $(LIBS)
<<
all: $(BINDIR)/$(EXECUTABLES).exe
@echo "*** COMPILING EXECUTABLE $(EXECUTABLES) DONE"
clean:
cleanall:
# ***********************************************************
inl_exp.obj: inl_exp.cpp inline.h
inliner.obj: inliner.cpp inline.h
hlp.obj: hlp.cpp inline.h

View File

@@ -1,17 +0,0 @@
SHELL = /bin/sh
INSTALL = /bin/cp
SUBDIR = Sage parser fdvm
install:
@for i in ${SUBDIR}; do (cd $$i; \
echo " *** $$i DIRECTORY ***";\
$(MAKE) "MAKE=$(MAKE)" install); done
clean:
@for i in ${SUBDIR}; do (cd $$i; \
echo " *** $$i DIRECTORY ***";\
$(MAKE) "MAKE=$(MAKE)" clean); done

View File

@@ -1,4 +0,0 @@
set(DVM_SAGE_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/h)
add_subdirectory(lib)
add_subdirectory(Sage++)

View File

@@ -1,67 +0,0 @@
************************************************************************
./LICENSE pC++/Sage++ License Information (PHB 9/2/93)
************************************************************************
This file is a REQUIRED part of the pC++/Sage++ Environment
The pC++/Sage++ software is *not* in the public domain. However, it
is freely available without fee for education, research, and
non-profit purposes. By obtaining copies of this and other files that
comprise the pC++/Sage++ environment, you, the Licensee, agree to
abide by the following conditions and understandings with respect to
the copyrighted software:
1. The software is copyrighted by Indiana University (IU), University
of Oregon (UO), and the University of Rennes (UR), and they retain
ownership of the software.
2. Permission to use and modify this software and its documentation
for education, research, and non-profit purposes is hereby granted to
Licensee, provided that the copyright notice, the original author's
names and unit identification, and this permission notice appear on
all such works, and that no charge be made for such copies.
3. We request that the Licensee not distribute the pC++/Sage++
software. In order to maintain the software, we will distribute the
most up-to-date version of the software via FTP. Please "finger
sage@cica.indiana.edu" for more information. Furthermore, our funding
agencies would like to know what you think about pC++/Sage++. If you
are using the software, PLEASE join our mailing list by sending mail
to sage-request.cica.indiana.edu with the Subject: "subscribe". We
will notify you of important bug fixes and updates as they become
available.
Any entity desiring permission to incorporate this software into
commercial products should contact:
Dennis Gannon gannon@cs.indiana.edu
215 Lindley Hall
Department of Computer Science
Indiana Univerity
Bloomington, IN 47401
USA
4. Licensee may not use the name, logo, or any other symbol of
IU/UO/UR nor the names of any of its employees nor any adaptation
thereof in advertizing or publicity pertaining to the software without
specific prior written approval of the IU/UO/UR.
5. IU/UO/UR MAKES NO REPRESENTATIONS ABOUT THE SUITABILITY OF THE
SOFTWARE FOR ANY PURPOSE. IT IS PROVIDED "AS IS" WITHOUT EXPRESS OR
IMPLIED WARRANTY.
6. IU/UO/UR shall not be liable for any damages suffered by Licensee
from the use of this software.
7. The software was developed under agreements between the IU/UO/UR
and the Federal Government which entitle the Government to certain
rights.
************************************************************************
Copyright (c) 1993 Indiana University, University of Oregon,
University of Rennes. All Rights Reserved.
Funded by: ARPA under Rome Labs contract AF 30602-92-C-0135 and the
National Science Foundation Office of Advanced Scientific Computing
under grant ASC-9111616 and Esprit BRA APPARC

View File

@@ -1,106 +0,0 @@
#######################################################################
## pC++/Sage++ Copyright (C) 1993 ##
## Indiana University University of Oregon University of Rennes ##
#######################################################################
# sage/Makefile (phb)
# Pete Beckman (5/27/93)
#
# This makefile recursively calls MAKE in each subdirectory
#
# There are two configurations for this Makefile at the present time
# 1) Users/Developers of the Sage++ Compiler tools
# 2) Users/Developers of pC++, a Parallel C++ for Supercomputers
#
SHELL = /bin/sh
CONFIG_ARCH=iris4d
CC = gcc
#CC=cc#ENDIF##USE_CC#
#PTX#CC=cc#ENDIF#
CXX = g++
#USE_CFRONT#CXX= CC#ENDIF#
#USE_DECCXX#CXX=cxx#ENDIF#
#USE_IBMXLC#CXX=xlC#ENDIF#
CXX=DCC#ENDIF##USE_SGIDCC#
CXX = g++
LINKER = $(CC)
#PTX#EXTRASRC=target/symmetry/src#ENDIF#
#SYMMETRY#EXTRASRC=target/symmetry/src#ENDIF#
#CM5#EXTRASRC=target/cm5/src#ENDIF#
#PARAGON#EXTRASRC=target/paragon/src#ENDIF#
#PARAGON_XDEV#EXTRASRC=target/paragon/src#ENDIF#
#KSR#EXTRASRC=target/ksr1/src#ENDIF#
#SP1#EXTRASRC=target/sp1/src#ENDIF#
#CS2#EXTRASRC=target/cs2/src#ENDIF#
EXTRASRC=target/sgimp/src#ENDIF##SGIMP#
# instr temporarily removed until libSage++ stable
# Several types of configurations....
# tools EVERYONE needs
BASIC = lib Sage++
# Other Compiler Tools
SAGEXX = f2dep#ENDIF##SAGEXX#
# pC++ system
#PVM_INSTALLED#PVMTEMP=target/pvm/src#ENDIF#
TEMP = breezy instr dep2C++ target/uniproc/src $(PVMTEMP)
#PCXX#PCXX = $(TEMP) $(EXTRASRC) TestSuite#ENDIF#
# What to compile
SUBDIR1 = $(BASIC)
# Subdirectories to make resursively
SUBDIR = ${SUBDIR1}
all:
@echo "*********** RECURSIVELY MAKING SUBDIRECTORIES ***********"
@for i in ${SUBDIR1}; do (echo "*** COMPILING $$i DIRECTORY"; cd $$i;\
$(MAKE) "MAKE=$(MAKE)" "CC=$(CC)" "CXX=$(CXX)" "LINKER=$(LINKER)" ); done
@echo "***************** DONE ************************
# @echo "To run the TestSuite code (in uniprocessor mode) type:"
# @echo "cd TestSuite; make test"
clean:
for i in ${SUBDIR1} Sage++; do (cd $$i; $(MAKE) "MAKE=$(MAKE)" clean); done
cleandist: clean cleangood
cleaninstall: clean cleangood
cleangood:
@echo "Deleting *~ #* core *.a *.sl *.o *.dep"
@find . \( -name \*~ -o -name \#\* -o -name core \) \
-exec /bin/rm {} \; -print
@find . \( -name \*.a -o -name \*.sl -o -name \*.o -o -name \*.dep \) \
-exec /bin/rm {} \; -print
@if [ ! -d bin/$(CONFIG_ARCH) ] ; then true; \
else /bin/rm -r bin/$(CONFIG_ARCH) ; fi
@if [ ! -d lib/$(CONFIG_ARCH) ] ; then true; \
else /bin/rm -r lib/$(CONFIG_ARCH) ; fi
@if [ ! -d target/pvm/lib ] ; then true; \
else /bin/rm -r target/pvm/lib ; fi
install:
@echo "*********** RECURSIVELY MAKING SUBDIRECTORIES ***********"
@for i in ${SUBDIR1}; do (echo "*** COMPILING $$i DIRECTORY"; cd $$i;\
$(MAKE) "MAKE=$(MAKE)" "CC=$(CC)" "CXX=$(CXX)" "LINKER=$(LINKER)" install); done
@echo "***************** DONE ************************"
# @echo "To run the TestSuite code (in uniprocessor mode) type:"
# @echo "cd TestSuite; make test"
.RECURSIVE: ${SUBDIR1}
${SUBDIR}: FRC
cd $@; $(MAKE) "MAKE=$(MAKE)" "CC=$(CC)" "CXX=$(CXX)" "LINKER=$(LINKER)" all
FRC:

View File

@@ -1,14 +0,0 @@
set(SAGEP_SOURCES libSage++.cpp)
if(MSVC_IDE)
foreach(DIR ${DVM_SAGE_INCLUDE_DIRS})
file(GLOB_RECURSE FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
"${DIR}/*.h" "${DIR}/*.def" "${DIR}/head" "${DIR}/tag")
set(SAGEP_HEADERS ${SAGEP_HEADERS} ${FILES})
endforeach()
source_group("Header Files" FILES ${SAGEP_HEADERS})
endif()
add_library(sage++ ${SAGEP_SOURCES} ${SAGEP_HEADERS})
target_include_directories(sage++ PUBLIC "${DVM_SAGE_INCLUDE_DIRS}")
set_target_properties(sage++ PROPERTIES FOLDER "${DVM_LIBRARY_FOLDER}")

View File

@@ -1,97 +0,0 @@
#######################################################################
## pC++/Sage++ Copyright (C) 1993 ##
## Indiana University University of Oregon University of Rennes ##
#######################################################################
# sage/Sage++/Makefile (PHB)
SHELL = /bin/sh
CONFIG_ARCH=iris4d
RANLIB_TEST = [ -f /usr/bin/ranlib ] || [ -f /bin/ranlib ]
#NO_RANLIB#RANLIB_TEST = (exit 1)#ENDIF#
# Shared library hack for HP-UX
LSX = .a
#HP_CFLAGS#CEXTRA = -Aa +z#ENDIF#
#HP_CFLAGS#LSX = .sl#ENDIF#
PCXX = ../bin/$(CONFIG_ARCH)/pc++
CC = gcc
#CC=cc
CXX = #CC
#USE_CFRONT#CXX= CC#ENDIF#
#USE_DECCXX#CXX=cxx#ENDIF#
#USE_IBMXLC#CXX=xlC#ENDIF#
CXX=DCC#ENDIF##USE_SGIDCC#
CXX=g++
LOADER = $(CXX)
#INSTALLDEST = ../lib/$(CONFIG_ARCH)
INSTALLDEST = ../../libsage
INSTALL = /bin/cp
HDRS = ../h
LIBINCLUDE = ../lib/include
SAGEINCLUDE = -I$(HDRS) -I$(LIBINCLUDE)
# Directory in which include files can be found
INCLUDEDIR = ./h
INCLUDE = -I$(INCLUDEDIR) $(SAGEINCLUDE)
# -w don't issue warning now.
CFLAGS = $(INCLUDE) -g -Wall -c $(CEXTRA)
LDFLAGS =
#BISON= /usr/freeware/bin/bison
BISON= bison
TOOLSage++_SRC = libSage++.cpp
TOOLSage++_HDR = $(LIBINCLUDE)/macro.h $(LIBINCLUDE)/bif_node.def $(LIBINCLUDE)/type.def $(LIBINCLUDE)/symb.def $(LIBINCLUDE)/libSage++.h
TOOLSage++_OBJ = libSage++.o
SUBDIR1 = extentions
SUBDIR = ${SUBDIR1}
#all: $(TOOLSage++_OBJ) $(TOOLSage++_HDR)
# @for i in ${SUBDIR1}; do (echo "*** COMPILING $$i DIRECTORY"; cd $$i;\
# $(MAKE) "MAKE=$(MAKE)" "CC=$(CC)" "CXX=$(CXX)" "LINKER=$(LINKER)" $@); done
libSage++.a: libSage++.o $(TOOLSage++_HDR)
/bin/rm -f libSage++.a
ar qc libSage++.a libSage++.o
@if $(RANLIB_TEST) ; then ranlib libSage++.a ; \
else echo "\tNOTE: ranlib not required" ; fi
libSage++.o: libSage++.cpp $(TOOLSage++_HDR)
$(CXX) $(CFLAGS) libSage++.cpp
libSage++.dep: libSage++.cpp $(TOOLSage++_HDR)
$(PCXX) -deponly $(INCLUDE) libSage++.cpp -o libSage++.o
libSage++ : libSage++$(LSX)
clean:
/bin/rm -f libSage++$(LSX) libSage++.dep libSage++.proj
/bin/rm -f $(TOOLSage++_OBJ)
/bin/rm -f extentions/sgCallGraph.o
/bin/rm -f extentions/sgClassHierarchy.o
cleaninstall: clean
install:$(INSTALLDEST)/libSage++.a
# @for i in ${SUBDIR1}; do (echo "*** COMPILING $$i DIRECTORY"; cd $$i;\
# $(MAKE) "MAKE=$(MAKE)" "CC=$(CC)" "CXX=$(CXX)" "LINKER=$(LINKER)" $@); done
$(INSTALLDEST)/libSage++.a: libSage++.a
if [ -d $(INSTALLDEST) ] ; then true; \
else mkdir $(INSTALLDEST) ;fi
$(INSTALL) libSage++.a $(INSTALLDEST)
@if $(RANLIB_TEST) ; then ranlib $(INSTALLDEST)/libSage++.a ; \
else echo "\tNOTE: ranlib not required" ; fi
${SUBDIR}: FRC
cd $@; $(MAKE) "MAKE=$(MAKE)" "CC=$(CC)" "CXX=$(CXX)" "LINKER=$(LINKER)" all
FRC:

File diff suppressed because it is too large Load Diff

View File

@@ -1,40 +0,0 @@
#######################################################################
## Copyright (C) 1999 ##
## Keldysh Institute of Appllied Mathematics ##
#######################################################################
# sage/Sage++/makefile.win
LIBDIR = ../../lib
HDRS = ../h
LIBINCLUDE = ../lib/include
SAGEINCLUDE = -I$(HDRS) -I$(LIBINCLUDE)
# Directory in which include files can be found
INCLUDEDIR = ./h
INCL = -I$(INCLUDEDIR) $(SAGEINCLUDE)
CFLAGS = $(INCL) -c -Wall
TOOLSage_SRC = libSage++.cpp
TOOLSage_HDR = $(LIBINCLUDE)/macro.h $(LIBINCLUDE)/bif_node.def \
$(LIBINCLUDE)/type.def $(LIBINCLUDE)/symb.def $(LIBINCLUDE)/libSage++.h
TOOLSage_OBJ = libSage++.o
libSage++.o: libSage++.cpp $(TOOLSage_HDR)
$(CXX) $(CFLAGS) libSage++.cpp
$(LIBDIR)/libSage++.a: $(TOOLSage_OBJ)
ar qc $(LIBDIR)/libSage++.a $(TOOLSage_OBJ)
all : $(LIBDIR)/libSage++.a
@echo "*** COMPILING LIBRARY Sage++ DONE"
clean:
rm -f libSage++.o
cleanall:
rm -f libSage++.o

View File

@@ -1,49 +0,0 @@
#######################################################################
## Copyright (C) 1999 ##
## Keldysh Institute of Appllied Mathematics ##
#######################################################################
# sage/Sage++/makefile.win
OUTDIR = ../../obj
LIBDIR = ../../lib
HDRS = ../h
LIBINCLUDE = ../lib/include
SAGEINCLUDE = -I$(HDRS) -I$(LIBINCLUDE)
# Directory in which include files can be found
INCLUDEDIR = ./h
INCL = -I$(INCLUDEDIR) $(SAGEINCLUDE)
LIB32=$(LINKER) -lib
LIB32_FLAGS=/nologo /out:"$(LIBDIR)/libSage++.lib"
# -w don't issue warning now.
#CFLAGS=/nologo /ML /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" $(INCL) \
# /Fp"$(OUTDIR)/libSage++.pch" /YX /Fo"$(OUTDIR)/" /Fd"$(OUTDIR)/" /c
CFLAGS=/nologo /D "WIN32" /D "NDEBUG" /D "_WINDOWS" $(INCL) \
/Fp"$(OUTDIR)/libSage++.pch" /Fo"$(OUTDIR)/" /Fd"$(OUTDIR)/" /c
TOOLSage_SRC = libSage++.cpp
TOOLSage_HDR = $(LIBINCLUDE)/macro.h $(LIBINCLUDE)/bif_node.def \
$(LIBINCLUDE)/type.def $(LIBINCLUDE)/symb.def $(LIBINCLUDE)/libSage++.h
TOOLSage_OBJ = $(OUTDIR)/libSage++.obj
$(OUTDIR)/libSage++.obj: libSage++.cpp $(TOOLSage_HDR)
$(CXX) $(CFLAGS) libSage++.cpp
$(LIBDIR)/libSage++.lib: $(TOOLSage_OBJ)
$(LIB32) @<<
$(LIB32_FLAGS) $(TOOLSage_OBJ)
<<
all : $(LIBDIR)/libSage++.lib
@echo "*** COMPILING LIBRARY Sage++ DONE"
clean:
cleanall:

View File

@@ -1,20 +0,0 @@
#######################################################################
## pC++/Sage++ Copyright (C) 1993 ##
## Indiana University University of Oregon University of Rennes ##
#######################################################################
CC = gcc
CC = cc
CXX = g++
CXX = DCC
LINKER = $(CC)
all: tag.h
tag.h: head tag
( cat head; \
sed < tag \
'/#defin/s/\([^ ]*\) \([^ ]*\)\(.*\)/ tag \[ \2 \] = \"\2\";/')\
> tag.h

View File

@@ -1,453 +0,0 @@
/*********************************************************************/
/* pC++/Sage++ Copyright (C) 1993 */
/* Indiana University University of Oregon University of Rennes */
/*********************************************************************/
/************************************************************************
* *
* BIF NODES *
* *
************************************************************************/
struct bfnd {
int variant, id; /* variant and identification tags */
int index; /* used in the strongly con. comp. routines */
int g_line, l_line; /* global & local line numbers */
int decl_specs; /* declaration specifiers stored with
bif nodes: static, extern, friend, and inline */
PTR_LABEL label;
PTR_BFND thread;
PTR_FNAME filename; /* point to the source filename */
PTR_BFND control_parent; /* current bif node in on the control blob list
of control_parent */
PTR_PLNK prop_list; /* property list */
union bfnd_union {
struct {
PTR_BFND bf_ptr1; /* used by the parser and should */
PTR_CMNT cmnt_ptr; /* to attach comments */
PTR_SYMB symbol; /* a symbol table entry */
PTR_LLND ll_ptr1; /* an L-value expr tree */
PTR_LLND ll_ptr2; /* an R-value expr tree */
PTR_LLND ll_ptr3; /* a spare expr tree (see below) */
PTR_LABEL lbl_ptr; /* used by do */
PTR_BLOB bl_ptr1; /* a list of control dep subnodes */
PTR_BLOB bl_ptr2; /* another such list (for if stmt) */
PTR_DEP dep_ptr1; /* a list of dependences nodes */
PTR_DEP dep_ptr2; /* another list of dep nodes */
PTR_SETS sets; /* a list of sets like GEN, KILL etc */
} Template;
struct {
PTR_BFND proc_list; /* a list of procedures in this file */
PTR_CMNT cmnt_ptr;
PTR_SYMB list; /* list of global const and type */
PTR_LLND null_2;
PTR_LLND null_3;
PTR_LLND null_4;
PTR_LABEL null_5;
PTR_BLOB control; /* used for list of procedures */
PTR_BLOB null_6;
PTR_DEP null_7;
PTR_DEP null_8;
PTR_SETS null_9;
} Global;
struct {
PTR_BFND next_prog;
PTR_CMNT cmnt_ptr;
PTR_SYMB prog_symb;
PTR_LLND null_1;
PTR_LLND null_2;
PTR_LLND null_3;
PTR_LABEL null_4;
PTR_BLOB control;
PTR_BLOB format_group;
PTR_DEP null_5;
PTR_DEP null_6;
PTR_SETS null_7;
} program;
struct {
PTR_BFND next_proc;
PTR_CMNT cmnt_ptr;
PTR_SYMB proc_symb;
PTR_LLND null_1;
PTR_LLND null_2;
PTR_LLND null_3;
PTR_LABEL null_4;
PTR_BLOB control;
PTR_BLOB format_group;
PTR_DEP null_5;
PTR_DEP null_6;
PTR_SETS null_7;
} procedure;
struct {
PTR_BFND next_func;
PTR_CMNT cmnt_ptr;
PTR_SYMB func_symb;
PTR_LLND ftype;
PTR_LLND null_1;
PTR_LLND null_2;
PTR_LABEL null_3;
PTR_BLOB control;
PTR_BLOB format_group;
PTR_DEP null_4;
PTR_DEP null_5;
PTR_SETS null_6;
} function;
struct {
PTR_BFND next_bif;
PTR_CMNT cmnt_ptr;
PTR_SYMB null_1;
PTR_LLND null_2;
PTR_LLND null_3;
PTR_LLND null_4;
PTR_LABEL null_5;
PTR_BLOB control;
PTR_BLOB null_6;
PTR_DEP dep_from;
PTR_DEP dep_to;
PTR_SETS sets;
} basic_block;
struct {
PTR_BFND next_stat;
PTR_CMNT cmnt_ptr;
PTR_SYMB null_1;
PTR_LLND null_2;
PTR_LLND null_3;
PTR_LLND null_4;
PTR_LABEL null_5;
PTR_BLOB null_6;
PTR_BLOB null_7;
PTR_DEP null_8;
PTR_DEP null_9;
PTR_SETS sets;
} control_end;
struct {
PTR_BFND true_branch;
PTR_CMNT cmnt_ptr;
PTR_SYMB null_1;
PTR_LLND condition;
PTR_LLND null_2;
PTR_LLND null_3;
PTR_LABEL null_4;
PTR_BLOB control_true;
PTR_BLOB control_false;
PTR_DEP dep_from;
PTR_DEP dep_to;
PTR_SETS sets;
} if_node;
struct {
PTR_BFND true_branch;
PTR_CMNT cmnt_ptr;
PTR_SYMB null_1;
PTR_LLND condition;
PTR_LLND null_2;
PTR_LLND null_3;
PTR_LABEL null_4;
PTR_BLOB control_true;
PTR_BLOB control_false;
PTR_DEP dep_from;
PTR_DEP dep_to;
PTR_SETS sets;
} where_node;
struct {
PTR_BFND loop_end;
PTR_CMNT cmnt_ptr;
PTR_SYMB null_1;
PTR_LLND null_2;
PTR_LLND null_3;
PTR_LLND null_4;
PTR_LABEL null_5;
PTR_BLOB control;
PTR_BLOB null_6;
PTR_DEP dep_from;
PTR_DEP dep_to;
PTR_SETS sets;
} loop_node;
struct {
PTR_BFND for_end;
PTR_CMNT cmnt_ptr;
PTR_SYMB control_var;
PTR_LLND range;
PTR_LLND increment;
PTR_LLND where_cond;
PTR_LABEL doend;
PTR_BLOB control;
PTR_BLOB null_1;
PTR_DEP dep_from;
PTR_DEP dep_to;
PTR_SETS sets;
} for_node;
struct {
PTR_BFND forall_end;
PTR_CMNT cmnt_ptr;
PTR_SYMB control_var;
PTR_LLND range;
PTR_LLND increment;
PTR_LLND where_cond;
PTR_LABEL null_1;
PTR_BLOB control;
PTR_BLOB null_2;
PTR_DEP dep_from;
PTR_DEP dep_to;
PTR_SETS sets;
} forall_nd;
struct {
PTR_BFND alldo_end;
PTR_CMNT cmnt_ptr;
PTR_SYMB control_var;
PTR_LLND range;
PTR_LLND increment;
PTR_LLND null_0;
PTR_LABEL null_1;
PTR_BLOB control;
PTR_BLOB null_2;
PTR_DEP dep_from;
PTR_DEP dep_to;
PTR_SETS sets;
} alldo_nd;
struct {
PTR_BFND while_end;
PTR_CMNT cmnt_ptr;
PTR_SYMB null_1;
PTR_LLND condition;
PTR_LLND null_2;
PTR_LLND null_3;
PTR_LABEL null_4;
PTR_BLOB control;
PTR_BLOB null_5;
PTR_DEP dep_from;
PTR_DEP dep_to;
PTR_SETS sets;
} while_node;
struct {
PTR_BFND next_stat;
PTR_CMNT cmnt_ptr;
PTR_SYMB null_1;
PTR_LLND condition;
PTR_LLND null_2;
PTR_LLND null_3;
PTR_LABEL null_4;
PTR_BLOB control_true;
PTR_BLOB control_false;
PTR_DEP null_5;
PTR_DEP null_6;
PTR_SETS sets;
} exit_node;
struct {
PTR_BFND next_stat;
PTR_CMNT cmnt_ptr;
PTR_SYMB null_1;
PTR_LLND l_value;
PTR_LLND r_value;
PTR_LLND null_2;
PTR_LABEL null_3;
PTR_BLOB null_4;
PTR_BLOB null_5;
PTR_DEP dep_from;
PTR_DEP dep_to;
PTR_SETS sets;
} assign;
struct {
PTR_BFND next_stat;
PTR_CMNT cmnt_ptr;
PTR_SYMB null_1;
PTR_LLND l_value;
PTR_LLND r_value;
PTR_LLND null_2;
PTR_LABEL null_3;
PTR_BLOB null_4;
PTR_BLOB null_5;
PTR_DEP dep_from;
PTR_DEP dep_to;
PTR_SETS sets;
} identify;
struct {
PTR_BFND next_stat;
PTR_CMNT cmnt_ptr;
PTR_SYMB null_1;
PTR_LLND spec_string;
PTR_LLND null_2;
PTR_LLND null_3;
PTR_LABEL null_4;
PTR_BLOB null_5;
PTR_BLOB null_6;
PTR_DEP dep_from;
PTR_DEP dep_to;
PTR_SETS sets;
} format;
struct {
PTR_BFND next_stat;
PTR_CMNT cmnt_ptr;
PTR_SYMB null_1;
PTR_LLND format; /* used by blaze only */
PTR_LLND expr_list;
PTR_LLND control_list; /* used by cedar fortan only */
PTR_LABEL null_2;
PTR_BLOB null_3;
PTR_BLOB null_4;
PTR_DEP dep_from;
PTR_DEP dep_to;
PTR_SETS sets;
} write_stat;
struct {
PTR_BFND next_stat;
PTR_CMNT cmnt_ptr;
PTR_SYMB null_1;
PTR_LLND format; /* used by blaze only */
PTR_LLND var_list;
PTR_LLND control_list; /* used by cedar fortran */
PTR_LABEL null_2;
PTR_BLOB null_3;
PTR_BLOB null_4;
PTR_DEP dep_from;
PTR_DEP dep_to;
PTR_SETS sets;
} read_stat;
} entry;
};
#define __BIF_DEF__

View File

@@ -1,77 +0,0 @@
/*********************************************************************/
/* pC++/Sage++ Copyright (C) 1993 */
/* Indiana University University of Oregon University of Rennes */
/*********************************************************************/
/* Simple compatibility module for pC++/Sage (phb) */
/* include it only once... */
#ifndef COMPATIBLE_H
#define COMPATIBLE_H
#include "sage.h"
#ifndef _NEEDALLOCAH_
# if (defined(__ksr__) || (defined(SAGE_solaris2) && !defined(__GNUC__)))
# define _NEEDALLOCAH_
# endif
#endif
#ifdef __hpux
# ifndef SYS5
# define SYS5 1
# endif
#endif
#ifdef _SEQUENT_
# define NO_u_short
# ifndef SYS5
# define SYS5 1
# endif
#endif
#ifdef sparc
# if (defined(__svr4__) || defined(SAGE_solaris2)) /* Solaris 2!!! YUK! */
# ifndef SYS5
# define SYS5 1
# endif
# endif
#endif
#ifndef SYS5
# define BSD 1
#endif
#ifdef _NEEDCALLOC_
# ifdef CALLOC_DEF
# undef CALLOC_DEF
# endif
# ifndef CALLOC_DEF
# ifdef __GNUC__
extern void *calloc();
# define CALLOC_DEF
# endif
# endif
# ifndef CALLOC_DEF
# ifdef __ksr__
extern void *calloc();
# define CALLOC_DEF
# endif
# endif
# ifndef CALLOC_DEF
# ifdef cray
# include "fixcray.h"
# endif
# endif
# ifndef CALLOC_DEF
extern char *calloc();
# endif
#endif
#endif

View File

@@ -1,187 +0,0 @@
/*********************************************************************/
/* pC++/Sage++ Copyright (C) 1993 */
/* Indiana University University of Oregon University of Rennes */
/*********************************************************************/
/****************************************************************
* *
* db.h -- contains all definitions needed by the data base *
* management routines *
* *
****************************************************************/
#ifndef CallSiteE
#ifndef FILE
# include <stdio.h>
#endif
#ifndef DEP_DIR
# include "defs.h"
#endif
#ifndef __BIF_DEF__
# include "bif.h"
#endif
#ifndef __LL_DEF__
# include "ll.h"
#endif
#ifndef __SYMB_DEF__
# include "symb.h"
#endif
#ifndef MAX_LP_DEPTH
# include "sets.h"
#endif
/*
* Definitions for inquiring the information about variables
*/
#define Use 1 /* for inquiring USE info */
#define Mod 2 /* for inquiring MOD info */
#define UseMod 3 /* for inquiring both USE and MOD info */
#define Alias 4 /* for inquiring ALIAS information */
/*
* Definitions for inquiring the information about procedures
* This previous four definitions are shared here
*/
#define ProcDef 5 /* procedure's definition */
#define CallSite 6 /* list of the call sites of this procedure */
#define CallSiteE 7 /* the call sites extended with loop info */
#define ExternProc 8 /* list of external procedures references */
/*
* Definitions for inquiring the information about files
*/
#define IncludeFile 1 /* list of files included by this file */
#define GlobalVarRef 2 /* list of global variables referenced */
#define ExternProcRef 3 /* list of external procedure referenced */
/*
* Definitions for inquiring the information about project
*/
#define ProjFiles 1 /* get a list of .dep files make up the project */
#define ProjNames 2 /* list of all procedures in the project */
#define UnsolvRef 3 /* list of unsolved global references */
#define ProjGlobals 4 /* list of all global declarations */
#define ProjSrc 5 /* list of source files (e.g. .h, .c and .f) */
/*
* Definition for blobl tree
*/
#define IsLnk 0 /* this blob1 node is only a link */
#define IsObj 1 /* this blob1 node is a real object */
/*****************************
* Some data structures used *
******************************/
typedef struct proj_obj *PTR_PROJ;
typedef struct file_obj *PTR_FILE;
typedef struct blob1 *PTR_BLOB1;
typedef struct obj_info *PTR_INFO;
typedef char *(*PCF)();
/*
* structure for the whole project
*/
struct proj_obj {
char *proj_name; /* project filename */
PTR_BLOB file_chain; /* list of all opened files in the project */
PTR_BLOB *hash_tbl; /* hash table of procedures declared */
PTR_PROJ next; /* point to next project */
};
/*
* Structure for each files in the project
*/
struct file_obj {
char *filename; /* filename of the .dep file */
FILE *fid; /* its file id */
int lang; /* type of language */
PTR_HASH *hash_tbl; /* hash table for this file obj */
PTR_BFND global_bfnd; /* global BIF node for this file */
PTR_BFND head_bfnd, /* head of BIF node for this file */
cur_bfnd;
PTR_LLND head_llnd, /* head of low level node */
cur_llnd;
PTR_SYMB head_symb, /* head of symbol node */
cur_symb;
PTR_TYPE head_type, /* head of type node */
cur_type;
PTR_BLOB head_blob, /* head of blob node */
cur_blob;
PTR_DEP head_dep, /* head of dependence node */
cur_dep;
PTR_LABEL head_lab, /* head of label node */
cur_lab;
PTR_CMNT head_cmnt, /* head of comment node */
cur_cmnt;
PTR_FNAME head_file;
int num_blobs, /* no. of blob nodes */
num_bfnds, /* no. of bif nodes */
num_llnds, /* no. of ll nodes */
num_symbs, /* no. of symb nodes */
num_label, /* no. of label nodes */
num_types, /* no. of type nodes */
num_files, /* no. of filename nodes */
num_dep, /* no. of dependence nodes */
num_cmnt; /* no. of comment nodes */
};
/*
* A cons obj structure
*/
struct blob1{
char tag; /* type of this blob node */
char *ref; /* pointer to the objects of interest */
PTR_BLOB1 next;/* point to next cons obj */
};
/*
* Structure for information objects
*/
struct obj_info {
char *filename; /* filename of the reference */
int g_line; /* absolute line number in the file */
int l_line; /* relative line number to the object */
char *source; /* source line */
};
/*
* Structure for property list
*/
struct prop_link {
char *prop_name; /* property name */
char *prop_val; /* property value */
PTR_PLNK next; /* point to the next property list */
};
/*
* declaration of data base routines
*/
PTR_PROJ OpenProj();
PTR_PROJ SelectProj();
PTR_BLOB1 GetProjInfo();
PTR_BLOB1 GetProcInfo();
PTR_BLOB1 GetTypeInfo();
PTR_BLOB1 GetTypeDef ();
PTR_BLOB1 GetVarInfo ();
PTR_BLOB1 GetDepInfo ();
int AddToProj();
int DelFromProj();
#endif /* CallSiteE */

View File

@@ -1,190 +0,0 @@
/*********************************************************************/
/* pC++/Sage++ Copyright (C) 1993 */
/* Indiana University University of Oregon University of Rennes */
/*********************************************************************/
/****************************************************************
* *
* db.h -- contains all definitions needed by the data base *
* management routines *
* *
****************************************************************/
#ifndef CallSiteE
#ifndef FILE
# include <stdio.h>
#endif
#ifndef DEP_DIR
# include "defs.h"
#endif
#ifndef __BIF_DEF__
# include "bif.h"
#endif
#ifndef __LL_DEF__
# include "ll.h"
#endif
#ifndef __SYMB_DEF__
# include "symb.h"
#endif
#ifndef MAX_LP_DEPTH
# include "sets.h"
#endif
/*
* Definitions for inquiring the information about variables
*/
#define Use 1 /* for inquiring USE info */
#define Mod 2 /* for inquiring MOD info */
#define UseMod 3 /* for inquiring both USE and MOD info */
#define Alias 4 /* for inquiring ALIAS information */
/*
* Definitions for inquiring the information about procedures
* This previous four definitions are shared here
*/
#define ProcDef 5 /* procedure's definition */
#define CallSite 6 /* list of the call sites of this procedure */
#define CallSiteE 7 /* the call sites extended with loop info */
#define ExternProc 8 /* list of external procedures references */
/*
* Definitions for inquiring the information about files
*/
#define IncludeFile 1 /* list of files included by this file */
#define GlobalVarRef 2 /* list of global variables referenced */
#define ExternProcRef 3 /* list of external procedure referenced */
/*
* Definitions for inquiring the information about project
*/
#define ProjFiles 1 /* get a list of .dep files make up the project */
#define ProjNames 2 /* list of all procedures in the project */
#define UnsolvRef 3 /* list of unsolved global references */
#define ProjGlobals 4 /* list of all global declarations */
#define ProjSrc 5 /* list of source files (e.g. .h, .c and .f) */
/*
* Definition for blobl tree
*/
#define IsLnk 0 /* this blob1 node is only a link */
#define IsObj 1 /* this blob1 node is a real object */
/*****************************
* Some data structures used *
******************************/
typedef struct proj_obj *PTR_PROJ;
typedef struct file_obj *PTR_FILE;
typedef struct blob1 *PTR_BLOB1;
typedef struct obj_info *PTR_INFO;
/*
* structure for the whole project
*/
struct proj_obj {
char *proj_name; /* project filename */
PTR_BLOB file_chain; /* list of all opened files in the project */
PTR_BLOB *hash_tbl; /* hash table of procedures declared */
PTR_PROJ next; /* point to next project */
};
/*
* Structure for each files in the project
*/
struct file_obj {
char *filename; /* filename of the .dep file */
FILE *fid; /* its file id */
int lang; /* type of language */
PTR_HASH *hash_tbl; /* hash table for this file obj */
PTR_BFND global_bfnd; /* global BIF node for this file */
PTR_BFND head_bfnd, /* head of BIF node for this file */
cur_bfnd;
PTR_LLND head_llnd, /* head of low level node */
cur_llnd;
PTR_SYMB head_symb, /* head of symbol node */
cur_symb;
PTR_TYPE head_type, /* head of type node */
cur_type;
PTR_BLOB head_blob, /* head of blob node */
cur_blob;
PTR_DEP head_dep, /* head of dependence node */
cur_dep;
PTR_LABEL head_lab, /* head of label node */
cur_lab;
PTR_CMNT head_cmnt, /* head of comment node */
cur_cmnt;
PTR_FNAME head_file;
int num_blobs, /* no. of blob nodes */
num_bfnds, /* no. of bif nodes */
num_llnds, /* no. of ll nodes */
num_symbs, /* no. of symb nodes */
num_label, /* no. of label nodes */
num_types, /* no. of type nodes */
num_files, /* no. of filename nodes */
num_dep, /* no. of dependence nodes */
num_cmnt; /* no. of comment nodes */
};
/*
* A cons obj structure
*/
struct blob1{
char tag; /* type of this blob node */
char *ref; /* pointer to the objects of interest */
PTR_BLOB1 next;/* point to next cons obj */
};
/*
* Structure for information objects
*/
struct obj_info {
char *filename; /* filename of the reference */
int g_line; /* absolute line number in the file */
int l_line; /* relative line number to the object */
char *source; /* source line */
};
/*
* Structure for property list
*/
struct prop_link {
char *prop_name; /* property name */
char *prop_val; /* property value */
PTR_PLNK next; /* point to the next property list */
};
/*
* declaration of data base routines
*/
typedef char *(*PCF)();
extern PCF UnparseBfnd[];
extern PCF UnparseLlnd[];
extern PCF UnparseSymb[];
extern PCF UnparseType[];
PTR_PROJ OpenProj();
PTR_BLOB1 GetProjInfo();
PTR_BLOB1 GetProcInfo();
PTR_BLOB1 GetTypeInfo();
PTR_BLOB1 GetTypeDef ();
PTR_BLOB1 GetVarInfo ();
PTR_BLOB1 GetDepInfo ();
#endif CallSiteE

View File

@@ -1,56 +0,0 @@
/*********************************************************************/
/* pC++/Sage++ Copyright (C) 1993 */
/* Indiana University University of Oregon University of Rennes */
/*********************************************************************/
/* label type codes */
#define LABUNKNOWN 0
#define LABEXEC 1
#define LABFORMAT 2
#define LABOTHER 3
/* parser states */
#define OUTSIDE 0
#define INSIDE 1
#define INDCL 2
#define INDATA 3
#define INEXEC 4
/* nesting states */
#define IN_OUTSIDE 4
#define IN_MODULE 3
#define IN_PROC 2
#define IN_INTERNAL_PROC 1
/* Control stack type */
#define CTLIF 0
#define CTLELSEIF 1
#define CTLELSE 2
#define CTLDO 3
#define CTLALLDO 4
/* name classes -- vclass values */
#define CLUNKNOWN 0
#define CLPARAM 1
#define CLVAR 2
#define CLENTRY 3
#define CLMAIN 4
#define CLBLOCK 5
#define CLPROC 6
#define CLNAMELIST 7
/* These are tobe used in decl_stat field of symbol */
#define SOFT 0 /* Canbe Redeclared */
#define HARD 1 /* Not allowed to redeclre */
/* Attributes (used in attr) */
#define ATT_CLUSTER 0
#define ATT_GLOBAL 1
#define SECTION_SUBSCRIPT 1

View File

@@ -1,131 +0,0 @@
/*********************************************************************/
/* pC++/Sage++ Copyright (C) 1993 */
/* Indiana University University of Oregon University of Rennes */
/*********************************************************************/
#include "tag"
#define hashMax 1007 /*max hash table size */
/**************** variant tags for dependence nodes *********************/
#define DEP_DIR 0200 /* direction vector information only */
#define DEP_DIST 0000 /* direction and distance vector */
#define NO_ALL_ST_DEP 0010 /* no all statiionary dir for this pair of statements */
#define DEP_CROSS 0100 /* dependence MUST wrap around loop */
#define DEP_UNCROSS 0000 /* dependence MAY not wrap around loop */
#define DEP_FLOW 0
#define DEP_ANTI 1
#define DEP_OUTPUT 2
/************************************************************************/
typedef struct bfnd *PTR_BFND;
typedef struct llnd *PTR_LLND;
typedef struct blob *PTR_BLOB;
//typedef struct string *PTR_STRING;
typedef struct symb *PTR_SYMB;
typedef struct hash_entry *PTR_HASH;
typedef struct data_type *PTR_TYPE;
typedef struct dep *PTR_DEP;
typedef struct sets *PTR_SETS;
typedef struct def *PTR_DEF;
typedef struct deflst *PTR_DEFLST;
typedef struct Label *PTR_LABEL;
typedef struct cmnt *PTR_CMNT;
typedef struct file_name *PTR_FNAME;
typedef struct prop_link *PTR_PLNK;
struct blob {
PTR_BFND ref;
PTR_BLOB next;
};
struct Label {
int id; /* identification tag */
PTR_BFND scope; /* level at which ident is declared */
PTR_BLOB ud_chain; /* use-definition chain */
unsigned labused :1; /* if it's been referenced */
unsigned labinacc:1; /* illegal use of this label */
unsigned labdefined:1; /* if this label been defined */
unsigned labtype:2; /* UNKNOWN, EXEC, FORMAT, and OTHER */
long stateno; /* statement label */
PTR_LABEL next; /* point to next label entry */
PTR_BFND statbody; /* point to body of statement */
PTR_SYMB label_name; /* label name for VPC++ */
/* The variant will be LABEL_NAME */
};
struct Ctlframe {
int ctltype; /* type of control frame */
int level; /* block level */
int dolabel; /* DO loop's end label */
PTR_SYMB donamep; /* DO loop's control variable name */
PTR_SYMB block_list; /* start of local decl */
PTR_SYMB block_end; /* end of local decl */
PTR_BFND loop_hedr; /* save the current loop header */
PTR_BFND header; /* header of the block */
PTR_BFND topif; /* keep track of if header */
struct Ctlframe *next; /* thread */
};
struct cmnt {
int id;
int type;
int counter; /* New Added for VPC++ */
char* string;
struct cmnt *next;
struct cmnt *thread;
};
struct file_name { /* for keep source filenames in the project */
int id;
char *name;
PTR_FNAME next;
};
#define NO 0
#define YES 1
#ifndef FALSE
# define FALSE 0
#endif
#ifndef TRUE
# define TRUE 1
#endif
#define BOOL int
#define EOL -1
#define SAME_GROUP 0
#define NEW_GROUP1 1
#define NEW_GROUP2 2
#define FULL 0
#define HALF 1
#define DEFINITE 1
#define DEFINITE_SAME 7
#define DEFINITE_DIFFER 0
#define FIRST_LARGER 2
#define SECOND_LARGER 4
/*
* Tags for various languages
*/
#define ForSrc 0 /* This is a Fortran program */
#define CSrc 1 /* This is a C program */
#define BlaSrc 2 /* This is a Blaze program */
#define BFNULL (PTR_BFND) 0
#define LLNULL (PTR_LLND) 0
#define BLNULL (PTR_BLOB) 0
#define SMNULL (PTR_SYMB) 0
#define HSNULL (PTR_HASH) 0
#define TYNULL (PTR_TYPE) 0
#define LBNULL (PTR_LABEL)0
#define CMNULL (PTR_CMNT)0

View File

@@ -1,39 +0,0 @@
/*********************************************************************/
/* pC++/Sage++ Copyright (C) 1993 */
/* Indiana University University of Oregon University of Rennes */
/*********************************************************************/
/************************************************************************/
/* */
/* DEPENDENCE NODES */
/* */
/************************************************************************/
# define MAX_LP_DEPTH 10
# define MAX_DEP (MAX_LP_DEPTH+1)
struct ref { /* reference of a variable */
PTR_BFND stmt; /* statement containing reference */
PTR_LLND refer; /* pointer to the actual reference */
} ;
struct dep { /* data dependencies */
int id; /* identification for reading/writing */
PTR_DEP thread;
char type; /* flow-, output-, or anti-dependence */
char direct[MAX_DEP]; /* direction/distance vector */
PTR_SYMB symbol; /* symbol table entry */
struct ref from; /* tail of dependence */
struct ref to; /* head of dependence */
PTR_BFND from_hook, to_hook; /* bifs where dep is hooked in */
PTR_DEP from_fwd, from_back; /* list of dependencies going to tail */
PTR_DEP to_fwd, to_back; /* list of dependencies going to head */
} ;

View File

@@ -1,173 +0,0 @@
/*********************************************************************/
/* pC++/Sage++ Copyright (C) 1993 */
/* Indiana University University of Oregon University of Rennes */
/*********************************************************************/
/****************************************************************
* *
* Structure of the dep files generated by parsers *
* *
****************************************************************/
/*#include <sys/types.h>
*/
#ifndef MAX_DEP
#include dep.h
#endif
#include "compatible.h"
/*#ifdef NO_u_short
*#ifndef DEF_USHORT
*#define DEF_USHORT 1
*/
typedef unsigned int u_shrt;
/*#endif
#endif
*/
#define D_MAGIC 0420
struct preamble { /* structure of preamble of dep file */
u_shrt ptrsize; /* bit length of pointers (32 or 64) phb */
u_shrt language; /* source language type */
u_shrt num_blobs; /* number of blob nodes */
u_shrt num_bfnds; /* number of bif nodes */
u_shrt num_llnds; /* number of low level nodes */
u_shrt num_symbs; /* number of symbol nodes */
u_shrt num_types; /* number of type nodes */
u_shrt num_label; /* number of label nodes */
u_shrt num_dep; /* number of dep nodes */
u_shrt num_cmnts; /* number of comment nodes */
u_shrt num_files; /* number of filename nodes */
u_shrt global_bfnd; /* id of the global bif node */
};
struct locs {
long llnd; /* offset of llnd in the dep file */
long symb; /* symbol nodes */
long type; /* type nodes */
long labs; /* label nodes */
long cmnt; /* comment nodes */
long file; /* filename nodes */
long deps; /* dep nodes */
long strs; /* string tables */
};
struct bf_nd { /* structure of bif node in dep file */
u_shrt id; /* id of this bif node */
u_shrt variant; /* type of this bif node */
u_shrt cp; /* control parent of this node */
u_shrt bf_ptr1;
u_shrt cmnt_ptr;
u_shrt symbol;
u_shrt ll_ptr1;
u_shrt ll_ptr2;
u_shrt ll_ptr3;
u_shrt dep_ptr1;
u_shrt dep_ptr2;
u_shrt label;
u_shrt lbl_ptr;
u_shrt g_line;
u_shrt l_line;
u_shrt decl_specs;
u_shrt filename;
};
struct ll_nd {
u_shrt id;
u_shrt variant;
u_shrt type;
};
struct sym_nd {
u_shrt id;
u_shrt variant;
u_shrt type;
u_shrt attr;
u_shrt next;
u_shrt scope;
u_shrt ident;
};
struct typ_nd {
u_shrt id;
u_shrt variant;
u_shrt name;
};
struct lab_nd {
u_shrt id;
u_shrt labtype;
u_shrt body;
u_shrt name;
long stat_no;
};
struct fil_nd {
u_shrt id;
u_shrt name;
};
struct cmt_nd {
u_shrt id;
u_shrt type;
u_shrt next;
u_shrt str;
};
struct dep_nd {
u_shrt id;
u_shrt type;
u_shrt sym;
u_shrt from_stmt;
u_shrt from_ref;
u_shrt to_stmt;
u_shrt to_ref;
u_shrt from_hook;
u_shrt to_hook;
u_shrt from_fwd;
u_shrt from_back;
u_shrt to_fwd;
u_shrt to_back;
u_shrt dire[MAX_DEP];
};

View File

@@ -1,147 +0,0 @@
/*********************************************************************/
/* pC++/Sage++ Copyright (C) 1993 */
/* Indiana University University of Oregon University of Rennes */
/*********************************************************************/
/****************************************************************
* *
* Structure of the dep files generated by parsers *
* *
****************************************************************/
/*#include <sys/types.h>
*/
#ifndef MAX_DEP
#include dep.h
#endif
#include "compatible.h"
/*#ifdef NO_u_short
*#ifndef DEF_USHORT
*#define DEF_USHORT 1
*/
/*typedef unsigned int u_short;*/
/*#endif
#endif
*/
#define D_MAGIC 0420
struct preamble { /* structure of preamble of dep file */
u_short ptrsize; /* bit length of pointers (32 or 64) phb */
u_short language; /* source language type */
u_short num_blobs; /* number of blob nodes */
u_short num_bfnds; /* number of bif nodes */
u_short num_llnds; /* number of low level nodes */
u_short num_symbs; /* number of symbol nodes */
u_short num_types; /* number of type nodes */
u_short num_label; /* number of label nodes */
u_short num_dep; /* number of dep nodes */
u_short num_cmnts; /* number of comment nodes */
u_short num_files; /* number of filename nodes */
u_short global_bfnd; /* id of the global bif node */
};
struct locs {
long llnd; /* offset of llnd in the dep file */
long symb; /* symbol nodes */
long type; /* type nodes */
long labs; /* label nodes */
long cmnt; /* comment nodes */
long file; /* filename nodes */
long deps; /* dep nodes */
long strs; /* string tables */
};
struct bf_nd { /* structure of bif node in dep file */
u_short id; /* id of this bif node */
u_short variant; /* type of this bif node */
u_short cp; /* control parent of this node */
u_short bf_ptr1;
u_short cmnt_ptr;
u_short symbol;
u_short ll_ptr1;
u_short ll_ptr2;
u_short ll_ptr3;
u_short dep_ptr1;
u_short dep_ptr2;
u_short label;
u_short lbl_ptr;
u_short g_line;
u_short l_line;
u_short decl_specs;
u_short filename;
};
struct ll_nd {
u_short id;
u_short variant;
u_short type;
};
struct sym_nd {
u_short id;
u_short variant;
u_short type;
u_short attr;
u_short next;
u_short scope;
u_short ident;
};
struct typ_nd {
u_short id;
u_short variant;
u_short name;
};
struct lab_nd {
u_short id;
u_short labtype;
u_short body;
u_short name;
long stat_no;
};
struct fil_nd {
u_short id;
u_short name;
};
struct cmt_nd {
u_short id;
u_short type;
u_short next;
u_short str;
};
struct dep_nd {
u_short id;
u_short type;
u_short sym;
u_short from_stmt;
u_short from_ref;
u_short to_stmt;
u_short to_ref;
u_short from_hook;
u_short to_hook;
u_short from_fwd;
u_short from_back;
u_short to_fwd;
u_short to_back;
u_short dire[MAX_DEP];
};

View File

@@ -1,79 +0,0 @@
/*********************************************************************/
/* pC++/Sage++ Copyright (C) 1993 */
/* Indiana University University of Oregon University of Rennes */
/*********************************************************************/
struct ELIST_rec
{
int type; /* 0 for int, 1 for string, 2 for ELIST */
char * car;
struct ELIST_rec * cdr;
};
#define TEINT 0
#define TESTRING 1
#define TELIST 2
typedef struct ELIST_rec * ELIST;
/*
the following two defines are pretty bad. But have been done so as to
avoid globals which look like global variables. For these to go away
libdb.a has to change.
*/
#define currentFile cur_file
#define currentProject cur_proj
extern PTR_FILE currentFile; /* actually cur_file */
extern PTR_PROJ currentProject; /* actually cur_proj */
#ifndef TRUE
# define TRUE 1
#endif
#ifndef FALSE
# define FALSE 0
#endif
/* functions that are used within the cbaselib */
ELIST ENew( /* etype */ );
void EFree( /* e */ );
ELIST ECopy( /* e */ );
ELIST ECpCar( /* e */ );
ELIST ECpCdr( /* e */ );
ELIST EAppend( /* e1, e2 */ );
ELIST EString( /* s */ );
ELIST ENumber( /* n */ );
ELIST ECons( /* e1, e2 */ );
int ENumP(/*e*/);
int EStringP(/*e*/);
int EListP(/*e*/);
#define ECar(x) ((x)->car)
#define ECdr(x) ((x)->cdr)
#define ECaar(x) (ECar((ELIST)ECar(x)))
#define ECdar(x) (ECdr((ELIST)ECar(x)))
#define ECadr(x) (ECar(ECdr(x)))
#define ECddr(x) (ECdr(ECdr(x)))
#define ECaaar(x) (ECar((ELIST)ECaar(x)))
#define ECdaar(x) (ECdr((ELIST)ECaar(x)))
#define ECadar(x) (ECar(ECdar(x)))
#define ECaadr(x) (ECar((ELIST)ECadr(x)))
#define ECaddr(x) (ECar(ECddr(x)))
#define ECddar(x) (ECdr(ECdar(x)))
#define ECdadr(x) (ECdr((ELIST)ECadr(x)))
#define ECdddr(x) (ECdr(ECddr(x)))
char *Allocate(/* size */);
PTR_BFND FindCurrBifNode( /* id */ );
PTR_LLND FindLLNode( /* id */ );
PTR_LABEL FindLabNode(/* id */);
PTR_SYMB FindSymbolNode(/* id */);
PTR_TYPE FindTypeNode(/* id */);
PTR_FILE FindFileObj(/* filename */);
PTR_DEP FindDepNode(/* id */);
PTR_BFND MakeDeclStmt(/* s */);
int VarId(/* id */);

View File

@@ -1,27 +0,0 @@
/*********************************************************************/
/* pC++/Sage++ Copyright (C) 1993 */
/* Indiana University University of Oregon University of Rennes */
/*********************************************************************/
/* The following 16 different options are used to
declare variables are as follows:
( stored in symptr->attr ) */
#define ALLOCATABLE_BIT 1
#define DIMENSION_BIT 2
#define EXTERNAL_BIT 8
#define IN_BIT 16
#define INOUT_BIT 32
#define INTRINSIC_BIT 64
#define OPTIONAL_BIT 128
#define OUT_BIT 256
#define PARAMETER_BIT 512
#define POINTER_BIT 1024
#define PRIVATE_BIT 2048
#define PUBLIC_BIT 4096
#define SAVE_BIT 8192
#define SEQUENCE_BIT 16384
#define RECURSIVE_BIT 32768
#define TARGET_BIT 65536
#define PROCESSORS_BIT 131072

View File

@@ -1,10 +0,0 @@
/*********************************************************************/
/* pC++/Sage++ Copyright (C) 1993 */
/* Indiana University University of Oregon University of Rennes */
/*********************************************************************/
# ifdef CRAY-C90
extern void *calloc();
# define CALLOC_DEF
# endif

View File

@@ -1,10 +0,0 @@
/*********************************************************************/
/* pC++/Sage++ Copyright (C) 1993 */
/* Indiana University University of Oregon University of Rennes */
/*********************************************************************/
/* FORTRAN M additions */
#define PLAIN 0
#define LCTN 1
#define SUBM 2

View File

@@ -1,2 +0,0 @@
/* don't modify this file directly, it is made by a clever 'sed'
script using "tag". Run make tag.h to regenerate this file */

View File

@@ -1,18 +0,0 @@
#pragma once
#ifdef _WIN32
#ifdef _DEBUG
#define _CRTDBG_MAP_ALLOC
#include <stdlib.h>
#include <crtdbg.h>
#ifdef _DEBUG
#ifndef DBG_NEW
#define DBG_NEW new ( _NORMAL_BLOCK , __FILE__ , __LINE__ )
#define new DBG_NEW
#endif
#endif
#endif
#endif

View File

@@ -1,34 +0,0 @@
/*********************************************************************/
/* pC++/Sage++ Copyright (C) 1993 */
/* Indiana University University of Oregon University of Rennes */
/*********************************************************************/
#define BIFNDE 0
#define DEPNDE 1
#define LLNDE 2
#define SYMNDE 3
#define LISNDE 4
#define BIFLISNDE 5
#define UNUSED -1
#define NUMLIS 100
#define DEPARC 1
#define MAXGRNODE 50
typedef struct lis_node *LIST;
struct lis_node {
int variant; /* one of BIFNDE, BIFLISNDE, DEPNDE, LLNDE, SYMNDE, LISNDE */
union list_union {
PTR_BFND bfnd;
PTR_BLOB biflis;
PTR_DEP dep;
PTR_LLND llnd;
PTR_SYMB symb;
LIST lisp;
} entry;
LIST next;
} ;

View File

@@ -1,163 +0,0 @@
/*********************************************************************/
/* pC++/Sage++ Copyright (C) 1993 */
/* Indiana University University of Oregon University of Rennes */
/*********************************************************************/
/************************************************************************/
/* */
/* low level nodes */
/* */
/************************************************************************/
struct llnd {
int variant, id; /* variant and identification tags */
PTR_LLND thread; /* connects nodes together by allocation order */
PTR_TYPE type; /* to be modified */
union llnd_union {
char *string_val;/* for integers floats doubles and strings*/
int ival;
double dval; /* for floats and doubles */
char cval;
int bval; /* for booleans */
struct { /* for range, upper, and lower */
PTR_SYMB symbol;
int dim;
} array_op;
struct {
PTR_SYMB symbol;
PTR_LLND ll_ptr1;
PTR_LLND ll_ptr2;
} Template;
struct { /* for complexes and double complexes */
PTR_SYMB null;
PTR_LLND real_part;
PTR_LLND imag_part;
} complex;
struct {
PTR_LABEL lab_ptr;
PTR_LLND null_1;
PTR_LLND next;
} label_list;
struct {
PTR_SYMB null_1;
PTR_LLND item;
PTR_LLND next;
} list;
struct {
PTR_SYMB null_1;
PTR_LLND size;
PTR_LLND list;
} cons;
struct {
PTR_SYMB control_var;
PTR_LLND array;
PTR_LLND range;
} access;
struct {
PTR_SYMB control_var;
PTR_LLND array;
PTR_LLND range;
} ioaccess;
struct {
PTR_SYMB symbol;
PTR_LLND null_1;
PTR_LLND null_2;
} const_ref;
struct {
PTR_SYMB symbol;
PTR_LLND null_1;
PTR_LLND null_2;
} var_ref;
struct {
PTR_SYMB symbol;
PTR_LLND index;
PTR_LLND array_elt;
} array_ref;
struct {
PTR_SYMB null_1;
PTR_LLND access;
PTR_LLND index;
} access_ref;
struct {
PTR_SYMB null_1;
PTR_LLND cons;
PTR_LLND index;
} cons_ref;
struct {
PTR_SYMB symbol;
PTR_LLND null_1;
PTR_LLND rec_field; /* for record fields */
} record_ref;
struct {
PTR_SYMB symbol;
PTR_LLND param_list;
PTR_LLND next_call;
} proc;
struct {
PTR_SYMB null_1;
PTR_LLND operand;
PTR_LLND null_2;
} unary_op;
struct {
PTR_SYMB null_1;
PTR_LLND l_operand;
PTR_LLND r_operand;
} binary_op;
struct {
PTR_SYMB null_1;
PTR_LLND ddot;
PTR_LLND stride;
} seq;
struct {
PTR_SYMB null_1;
PTR_LLND sp_label;
PTR_LLND sp_value;
} spec_pair;
} entry;
};
#define __LL_DEF__

View File

@@ -1,24 +0,0 @@
/*********************************************************************/
/* pC++/Sage++ Copyright (C) 1993 */
/* Indiana University University of Oregon University of Rennes */
/*********************************************************************/
/****************************************************************
* *
* Definitions for the property list *
* *
****************************************************************/
#ifndef __PROP__
typedef struct prop_link *PTR_PLNK;
struct prop_link {
char *prop_name; /* property name */
char *prop_val; /* property value */
PTR_PLNK next; /* point to the next property list */
};
#define __PROP__
#endif

View File

@@ -1,21 +0,0 @@
/*********************************************************************/
/* pC++/Sage++ Copyright (C) 1993 */
/* Indiana University University of Oregon University of Rennes */
/*********************************************************************/
/* Standard include file for all sage products (phb) */
/* include it only once... */
#ifndef SAGE_H
#define SAGE_H
#include "version.h"
#include "sageroot.h"
#include "sagearch.h"
#define SAGE_INFO "'finger sage@cica.indiana.edu' for more information.\n \
Send bug reports to sage-bugs@cica.indiana.edu\n"
#endif

View File

@@ -1,2 +0,0 @@
#define SAGE_iris4d
#define SAGE_ARCH iris4d

View File

@@ -1 +0,0 @@
#define SAGEROOT "/usr/people/podd/sage"

View File

@@ -1,86 +0,0 @@
/*********************************************************************/
/* pC++/Sage++ Copyright (C) 1993 */
/* Indiana University University of Oregon University of Rennes */
/*********************************************************************/
# define MAX_LP_DEPTH 10
# define MAX_DEP 11
struct ref { /* reference of a variable */
PTR_BFND stmt; /* statement containing reference */
PTR_LLND refer; /* pointer to the actual reference */
} ;
struct refl {
PTR_SYMB id;
struct ref * node;
struct refl * next;
};
typedef struct refl * PTR_REFL;
/* Added by Mannho from here */
struct aref {
PTR_SYMB id;
PTR_LLND decl_ranges;
PTR_LLND use_bnd0; /* undecidable list because index with variables */
PTR_LLND mod_bnd0;
PTR_LLND use_bnd1; /* decidable with induction variables */
PTR_LLND mod_bnd1;
PTR_LLND use_bnd2; /* decidable with only constants */
PTR_LLND mod_bnd2;
struct aref *next;
};
typedef struct aref *PTR_AREF;
/* Added by Mannho to here */
struct sets {
PTR_REFL gen; /* local attribute */
PTR_REFL in_def; /* inhereted attrib */
PTR_REFL use; /* local attribute */
PTR_REFL in_use; /* inherited attrib */
PTR_REFL out_def; /* synth. attrib */
PTR_REFL out_use; /* synth. attrib */
PTR_AREF arefl; /* array reference */
};
struct dep { /* data dependencies */
int id; /* identification for reading/writing */
PTR_DEP thread;
char type; /* flow-, output-, or anti-dependence */
char direct[MAX_DEP]; /* direction/distance vector */
PTR_SYMB symbol; /* symbol table entry */
struct ref from; /* tail of dependence */
struct ref to; /* head of dependence */
PTR_DEP from_fwd, from_back; /* list of dependencies going to tail */
PTR_DEP to_fwd, to_back; /* list of dependencies going to head */
} ;
#define AR_DIM_MAX 5
#define MAX_NEST_DEPTH 10
struct subscript{
int decidable; /* if 1 then analysis is ok. if 2 then vector range */
/* if it is 0 it is not analizable. */
PTR_LLND parm_exp; /* this is a symbolic expression involving */
/* procedure parameters or common variables. */
int offset; /* This is the constant term in a linear form */
PTR_LLND vector; /* pointer to ddot for vector range */
int coefs[MAX_NEST_DEPTH]; /* if coef[2] = 3 then the second */
/* level nesting induction var has*/
/* coef 3 in this position. */
PTR_LLND coefs_symb[MAX_NEST_DEPTH];
/* if coefs[2] is not null then this is the*/
/* pointer to a symbolic coef. in terms of */
/* procedure parameters, globals or commons*/
};

View File

@@ -1,225 +0,0 @@
/*********************************************************************/
/* pC++/Sage++ Copyright (C) 1993 */
/* Indiana University University of Oregon University of Rennes */
/*********************************************************************/
/* VPC Version modified by Jenq-Kuen Lee Nov 15 , 1987 */
/* Original Filename : symb.h */
/* New filename : vsymb.h */
/************************************************************************
* *
* hash and symbol table entries *
* *
************************************************************************/
struct hash_entry
{
char *ident;
struct hash_entry *next_entry;
PTR_SYMB id_attr;
};
struct symb {
int variant;
int id;
char *ident;
struct hash_entry *parent;
PTR_SYMB outer; /* pointer to symbol in enclosing block */
PTR_SYMB next_symb; /* pointer to next symbol in same block */
PTR_SYMB id_list; /* used for making lists of ids */
PTR_SYMB thread; /* list of all allocated symbol pointers */
PTR_TYPE type; /* data type of this identifier */
PTR_BFND scope; /* level at which ident is declared */
PTR_BLOB ud_chain; /* use_definition chain */
int attr; /* attributes of the variable */
int dovar; /* set if used as loop's control variable */
int decl; /* field that the parser use in keeping track
of declarations */
union symb_union {
PTR_LLND const_value; /* for constants */
struct { /* for enum-field and record field */
int tag;
int offset;
PTR_SYMB declared_name ; /* used for friend construct */
PTR_SYMB next;
PTR_SYMB base_name; /* name of record or enumerated type */
PTR_LLND restricted_bit ; /* Used by VPC++ for restricted bit number */
} field;
struct { /* for variant fields */
int tag;
int offset;
PTR_SYMB next;
PTR_SYMB base_name;
PTR_LLND variant_list;
} variant_field;
struct { /* for program */
PTR_SYMB symb_list;
PTR_LABEL label_list;
PTR_BFND prog_hedr;
} prog_decl;
struct { /* for PROC */
int seen;
int num_input, num_output, num_io;
PTR_SYMB in_list;
PTR_SYMB out_list;
PTR_SYMB symb_list;
int local_size;
PTR_LABEL label_list;
PTR_BFND proc_hedr;
PTR_LLND call_list;
} proc_decl;
struct { /* for FUNC */
int seen;
int num_input, num_output, num_io;
PTR_SYMB in_list;
PTR_SYMB out_list;
PTR_SYMB symb_list;
int local_size;
PTR_LABEL label_list;
PTR_BFND func_hedr;
PTR_LLND call_list;
} func_decl;
struct { /* for variable declaration */
int local; /* local or input or output or both param*/
int num1, num2, num3 ; /*24.02.03*/
PTR_SYMB next_out; /* for list of output parameters*//*perestanovka c next_out *24.02.03*/
PTR_SYMB next_in; /* for list of input parameters*/
int offset;
int dovar; /* set if being used as DO control var */
} var_decl;
struct {
int seen ;
int num_input, num_output, num_io ;
PTR_SYMB in_list ;
PTR_SYMB out_list ;
PTR_SYMB symb_list;
int local_size;
PTR_LABEL label_list ;
PTR_BFND func_hedr ;
PTR_LLND call_list ;
/* the following information for field */
int tag ;
int offset ;
PTR_SYMB declared_name; /* used for friend construct */
PTR_SYMB next ;
PTR_SYMB base_name ;
/* the following is newly added */
} member_func ; /* New one for VPC */
/* an attempt to unify the data structure */
struct {
int seen ;
int num_input, num_output, num_io ;
PTR_SYMB in_list ;
PTR_SYMB out_list ;
PTR_SYMB symb_list;
int local_size;
PTR_LABEL label_list ;
PTR_BFND func_hedr ;
PTR_LLND call_list ;
/* the following information for field */
int tag ;
int offset ;
PTR_SYMB declared_name; /* used for friend construct */
PTR_SYMB next ;
PTR_SYMB base_name ;
/* the following is newly added */
} Template ; /* New one for VPC */
} entry;
};
struct data_type {
int variant;
int id;
int length;
PTR_TYPE thread; /* list of all allocated symbol pointers */
PTR_SYMB name; /* type name */
PTR_BLOB ud_chain; /* use_definition chain */
union type_union {
/* no entry needed for T_INT, T_CHAR, T_FLOAT, T_DOUBLE, T_VOID T_BOOL */
struct { /* for T_SUBRANGE */
PTR_TYPE base_type; /* = to T_INT, T_CHAR, T_FLOAT */
PTR_LLND lower, upper;
} subrange;
struct { /* for T_ARRAY */
PTR_TYPE base_type; /* New order */
int num_dimensions;
PTR_LLND ranges;
} ar_decl;
struct {
PTR_TYPE base_type ;
int dummy1;
PTR_LLND ranges ;
PTR_LLND kind_len ;
int dummy3;
int dummy4;
int dummy5;
} Template ; /* for T_DESCRIPT,T_ARRAY,T_FUNCTION,T_POINTER */
PTR_TYPE base_type; /* for T_LIST */
struct { /* for T_RECORD or T_ENUM */
int num_fields;
int record_size;
PTR_SYMB first;
} re_decl;
/* the following is added fro VPC */
struct {
PTR_SYMB symbol;
PTR_SYMB scope_symbol;
} derived_type ; /* for type name deriving type */
struct { /* for class T_CLASS T_UNION T_STRUCT */
int num_fields;
int record_size;
PTR_SYMB first;
PTR_BFND original_class ;
PTR_TYPE base_type; /* base type or inherited collection */
} derived_class ;
struct { /* for class T_DERIVED_TEMPLATE */
PTR_SYMB templ_name;
PTR_LLND args; /* argument list for templ */
} templ_decl ;
/* for T_MEMBER_POINTER and */
struct { /* for class T_DERIVED_COLLECTION */
PTR_SYMB collection_name;
PTR_TYPE base_type; /* base type or inherited collection */
} col_decl ;
struct { /* for T_DESCRIPT */
PTR_TYPE base_type ;
int signed_flag ;
PTR_LLND ranges ;
int long_short_flag ;
int mod_flag ;
int storage_flag;
int access_flag;
} descriptive ;
} entry;
};
#define __SYMB_DEF__

View File

@@ -1,17 +0,0 @@
/*********************************************************************/
/* pC++/Sage++ Copyright (C) 1993 */
/* Indiana University University of Oregon University of Rennes */
/*********************************************************************/
typedef struct sblob *PTR_SBLOB;
struct sblob { PTR_SYMB symb;
PTR_SBLOB next;
};
struct sblob syms[100];

View File

@@ -1,621 +0,0 @@
/*********************************************************************/
/* pC++/Sage++ Copyright (C) 1993 */
/* Indiana University University of Oregon University of Rennes */
/*********************************************************************/
/******************* variant tags for bif nodes **********************/
#define GLOBAL 100
#define PROG_HEDR 101
#define PROC_HEDR 102
#define BASIC_BLOCK 103
#define CONTROL_END 104
#define IF_NODE 105
#define LOOP_NODE 106
#define FOR_NODE 107
#define FORALL_NODE 108
#define WHILE_NODE 109
#define EXIT_NODE 110
#define ASSIGN_STAT 111
#define M_ASSIGN_STAT 112
#define PROC_STAT 113
#define SUM_ACC 114 /* accumulation statements */
#define MULT_ACC 115
#define MAX_ACC 116
#define MIN_ACC 117
#define CAT_ACC 118
#define OR_ACC 119
#define AND_ACC 120
#define READ_STAT 121
#define WRITE_STAT 122
#define OTHERIO_STAT 123
#define CDOALL_NODE 124
#define SDOALL_NODE 125
#define DOACROSS_NODE 126
#define CDOACROSS_NODE 127
#define DVM_INTERVAL_DIR 128 /* DVM-F */
#define DVM_ENDINTERVAL_DIR 129 /* DVM-F */
#define FUNC_HEDR 130
#define WHERE_NODE 131
#define ALLDO_NODE 132
#define IDENTIFY 133
#define FORMAT_STAT 134
#define STOP_STAT 135
#define RETURN_STAT 136
#define ELSEIF_NODE 137
#define ARITHIF_NODE 138
#define GOTO_NODE 139
#define ASSGOTO_NODE 140
#define COMGOTO_NODE 141
#define PAUSE_NODE 142
#define STOP_NODE 143
#define ASSLAB_STAT 144
#define LOGIF_NODE 145
#define DVM_DEBUG_DIR 146 /* DVM-F */
#define DVM_ENDDEBUG_DIR 147 /* DVM-F */
#define DVM_TRACEON_DIR 148 /* DVM-F */
#define DVM_TRACEOFF_DIR 149 /* DVM-F */
#define BLOB 150
#define SIZES 151
#define COMMENT_STAT 152
#define CONT_STAT 153
#define VAR_DECL 154
#define PARAM_DECL 155
#define COMM_STAT 156
#define EQUI_STAT 157
#define IMPL_DECL 158
#define DATA_DECL 159
#define SAVE_DECL 160
#define ENTRY_STAT 162
#define STMTFN_STAT 163
#define DIM_STAT 164
#define BLOCK_DATA 165
#define EXTERN_STAT 166
#define INTRIN_STAT 167
#define ENUM_DECL 168 /* New added for VPC */
#define CLASS_DECL 169 /* New added for VPC */
#define UNION_DECL 170 /* New added for VPC */
#define STRUCT_DECL 171 /* New added for VPC */
#define DERIVED_CLASS_DECL 172 /* New added for VPC */
#define EXPR_STMT_NODE 173 /* New added for VPC */
#define DO_WHILE_NODE 174 /* New added for VPC */
#define SWITCH_NODE 175 /* New added for VPC */
#define CASE_NODE 176 /* New added for VPC */
#define DEFAULT_NODE 177 /* New added for VPC */
#define BREAK_NODE 178 /* New added for VPC */
#define CONTINUE_NODE 179 /* New added for VPC */
#define RETURN_NODE 180 /* New added for VPC */
#define ASM_NODE 181 /* New added for VPC */
#define SPAWN_NODE 182 /* New added for CC++ */
#define PARFOR_NODE 183 /* New added for CC++ */
#define PAR_NODE 184 /* New added for CC++ */
#define LABEL_STAT 185 /* New added for VPC */
#define PROS_COMM 186 /* Fortran M */
#define ATTR_DECL 187 /* attribute declaration */
#define NAMELIST_STAT 188
#define FUTURE_STMT 189 /* NEW added for VPC */
#define COLLECTION_DECL 190 /* NEW added for PC++ */
#define TEMPLATE_DECL 191 /* added by dbg for templates */
#define TEMPLATE_FUNDECL 192 /* added by dbg for template function*/
#define TECLASS_DECL 193 /* added for pC++ */
#define ELSEWH_NODE 194 /*F95*/
#define STATIC_STMT 195 /*F95*/
#define INCLUDE_LINE 196 /*F95*/
#define PREPROCESSOR_DIR 197 /*C,C++*/
#define PRINT_STAT 200
#define BACKSPACE_STAT 201
#define REWIND_STAT 202
#define ENDFILE_STAT 203
#define INQUIRE_STAT 204
#define OPEN_STAT 205
#define CLOSE_STAT 206
#define EXTERN_C_STAT 207 /* Added by PHB for 'extern "C" {}' */
#define INCLUDE_STAT 208
#define TRY_STAT 209 /* added by dbg for C++ exceptions */
#define CATCH_STAT 210 /* moreexcpt handling (part of try) */
#define DVM_PARALLEL_ON_DIR 211 /* DVM-F */
#define DVM_SHADOW_START_DIR 212 /* DVM-F */
#define DVM_SHADOW_GROUP_DIR 213 /* DVM-F */
#define DVM_SHADOW_WAIT_DIR 214 /* DVM-F */
#define DVM_REDUCTION_START_DIR 215 /* DVM-F */
#define DVM_REDUCTION_GROUP_DIR 216 /* DVM-F */
#define DVM_REDUCTION_WAIT_DIR 217 /* DVM-F */
#define DVM_DYNAMIC_DIR 218 /* DVM-F */
#define DVM_ALIGN_DIR 219 /* DVM-F */
#define DVM_REALIGN_DIR 220 /* DVM-F */
#define DVM_REALIGN_NEW_DIR 221 /* DVM-F */
#define DVM_REMOTE_ACCESS_DIR 222 /* DVM-F */
#define HPF_INDEPENDENT_DIR 223 /* HPF */
#define DVM_SHADOW_DIR 224 /* DVM-F */
#define PARDO_NODE 225 /* Following added for PCF Fortran */
#define PARSECTIONS_NODE 226
#define SECTION_NODE 227
#define GUARDS_NODE 228
#define LOCK_NODE 229
#define UNLOCK_NODE 230
#define CRITSECTION_NODE 231
#define POST_NODE 232
#define WAIT_NODE 233
#define CLEAR_NODE 234
#define POSTSEQ_NODE 235
#define WAITSEQ_NODE 236
#define SETSEQ_NODE 237
#define ASSIGN_NODE 238
#define RELEASE_NODE 239
#define PRIVATE_NODE 240
#define SCOMMON_NODE 241
#define PARREGION_NODE 242
#define PDO_NODE 243
#define PSECTIONS_NODE 244
#define SINGLEPROCESS_NODE 245
#define SKIPPASTEOF_NODE 246
#define DVM_NEW_VALUE_DIR 247 /* DVM-F */
#define DVM_VAR_DECL 248 /* DVM-F */
#define DVM_POINTER_DIR 249 /* DVM-F */
#define INTENT_STMT 250 /* Added for Fortran 90 */
#define OPTIONAL_STMT 251
#define PUBLIC_STMT 252
#define PRIVATE_STMT 253
#define ALLOCATABLE_STMT 254
#define POINTER_STMT 255
#define TARGET_STMT 256
#define ALLOCATE_STMT 257
#define NULLIFY_STMT 258
#define DEALLOCATE_STMT 259
#define SEQUENCE_STMT 260
#define CYCLE_STMT 261
#define EXIT_STMT 262
#define CONTAINS_STMT 263
#define WHERE_BLOCK_STMT 264
#define MODULE_STMT 265
#define USE_STMT 266
#define INTERFACE_STMT 267
#define MODULE_PROC_STMT 268
#define OVERLOADED_ASSIGN_STAT 269
#define POINTER_ASSIGN_STAT 270
#define OVERLOADED_PROC_STAT 271
#define DECOMPOSITION_STMT 275
#define ALIGN_STMT 276
#define DVM_DISTRIBUTE_DIR 277 /* DVM-F */
#define REDUCE_STMT 278
#define PROS_HEDR 279 /* Fortran M */
#define PROS_STAT 280 /* Fortran M */
#define PROS_STAT_LCTN 281 /* Fortran M */
#define PROS_STAT_SUBM 282 /* Fortran M */
#define PROCESSES_STAT 283 /* Fortran M */
#define PROCESSES_END 284 /* Fortran M */
#define PROCESS_DO_STAT 285 /* Fortran M */
#define PROCESSORS_STAT 286 /* Fortran M */
#define CHANNEL_STAT 287 /* Fortran M */
#define MERGER_STAT 288 /* Fortran M */
#define MOVE_PORT 289 /* Fortran M */
#define SEND_STAT 290 /* Fortran M */
#define RECEIVE_STAT 291 /* Fortran M */
#define ENDCHANNEL_STAT 292 /* Fortran M */
#define PROBE_STAT 293 /* Fortran M */
#define INPORT_DECL 294 /* Fortran M */
#define OUTPORT_DECL 295 /* Fortran M */
#define HPF_TEMPLATE_STAT 296 /* HPF */
#define HPF_ALIGN_STAT 297 /* HPF */
#define HPF_PROCESSORS_STAT 298 /* HPF */
#define DVM_REDISTRIBUTE_DIR 299 /* DVM-F */
#define DVM_TASK_REGION_DIR 605 /* DVM-F */
#define DVM_END_TASK_REGION_DIR 606 /* DVM-F */
#define DVM_ON_DIR 607 /* DVM-F */
#define DVM_END_ON_DIR 608 /* DVM-F */
#define DVM_TASK_DIR 609 /* DVM-F */
#define DVM_MAP_DIR 610 /* DVM-F */
#define DVM_PARALLEL_TASK_DIR 611 /* DVM-F */
#define DVM_INHERIT_DIR 612 /* DVM-F */
#define DVM_INDIRECT_GROUP_DIR 613 /* DVM-F */
#define DVM_INDIRECT_ACCESS_DIR 614 /* DVM-F */
#define DVM_REMOTE_GROUP_DIR 615 /* DVM-F */
#define DVM_RESET_DIR 616 /* DVM-F */
#define DVM_PREFETCH_DIR 617 /* DVM-F */
#define DVM_OWN_DIR 618 /* DVM-F */
#define DVM_HEAP_DIR 619 /* DVM-F */
#define DVM_ASYNCID_DIR 620 /* DVM-F */
#define DVM_ASYNCHRONOUS_DIR 621 /* DVM-F */
#define DVM_ENDASYNCHRONOUS_DIR 622 /* DVM-F */
#define DVM_ASYNCWAIT_DIR 623 /* DVM-F */
#define DVM_F90_DIR 624 /* DVM-F */
#define DVM_BARRIER_DIR 625 /* DVM-F */
#define FORALL_STAT 626 /* F95 */
#define DVM_CONSISTENT_GROUP_DIR 627 /* DVM-F */
#define DVM_CONSISTENT_START_DIR 628 /* DVM-F */
#define DVM_CONSISTENT_WAIT_DIR 629 /* DVM-F */
#define DVM_CONSISTENT_DIR 630 /* DVM-F */
#define DVM_CHECK_DIR 631 /* DVM-F */
#define DVM_IO_MODE_DIR 632 /* DVM-F */
#define DVM_LOCALIZE_DIR 633 /* DVM-F */
#define DVM_SHADOW_ADD_DIR 634 /* DVM-F */
#define DVM_CP_CREATE_DIR 635 /* DVM-F */
#define DVM_CP_LOAD_DIR 636 /* DVM-F */
#define DVM_CP_SAVE_DIR 637 /* DVM-F */
#define DVM_CP_WAIT_DIR 638 /* DVM-F */
#define DVM_EXIT_INTERVAL_DIR 639 /* DVM-F */
#define DVM_TEMPLATE_CREATE_DIR 640 /* DVM-F */
#define DVM_TEMPLATE_DELETE_DIR 641 /* DVM-F */
/***************** variant tags for low level nodes ********************/
#define INT_VAL 300
#define FLOAT_VAL 301
#define DOUBLE_VAL 302
#define BOOL_VAL 303
#define CHAR_VAL 304
#define STRING_VAL 305
#define CONST_REF 306
#define VAR_REF 307
#define ARRAY_REF 308
#define RECORD_REF 309 /* diff struct between Blaze and VPC++ */
#define ENUM_REF 310
#define VAR_LIST 311
#define EXPR_LIST 312
#define RANGE_LIST 313
#define CASE_CHOICE 314
#define DEF_CHOICE 315
#define VARIANT_CHOICE 316
#define COMPLEX_VAL 317
#define LABEL_REF 318
#define KEYWORD_VAL 319 /* Strings to be printed with quotes */
#define DDOT 324
#define RANGE_OP 325
#define UPPER_OP 326
#define LOWER_OP 327
#define EQ_OP 328
#define LT_OP 329
#define GT_OP 330
#define NOTEQL_OP 331
#define LTEQL_OP 332
#define GTEQL_OP 333
#define ADD_OP 334
#define SUBT_OP 335
#define OR_OP 336
#define MULT_OP 337
#define DIV_OP 338
#define MOD_OP 339
#define AND_OP 340
#define EXP_OP 341
#define ARRAY_MULT 342
#define CONCAT_OP 343 /* cancatenation of strings */
#define XOR_OP 344 /* .XOR. in fortran */
#define EQV_OP 345 /* .EQV. in fortran */
#define NEQV_OP 346 /* .NEQV. in fortran */
#define MINUS_OP 350 /* unary operations */
#define NOT_OP 351
#define ASSGN_OP 352 /* New ADDED For VPC */
#define DEREF_OP 353 /* New ADDED For VPC */
#define POINTST_OP 354 /* New ADDED For VPC */ /* ptr->x */
#define FUNCTION_OP 355 /* New ADDED For VPC */ /* (*DD)() */
#define MINUSMINUS_OP 356 /* New ADDED For VPC */
#define PLUSPLUS_OP 357 /* New ADDED For VPC */
#define BITAND_OP 358 /* New ADDED For VPC */
#define BITOR_OP 359 /* New ADDED For VPC */
#define STAR_RANGE 360 /* operations with no operands 360.. */
#define PROC_CALL 370
#define FUNC_CALL 371
#define CONSTRUCTOR_REF 380
#define ACCESS_REF 381
#define CONS 382
#define ACCESS 383
#define IOACCESS 384
#define CONTROL_LIST 385
#define SEQ 386
#define SPEC_PAIR 387
#define COMM_LIST 388
#define STMT_STR 389
#define EQUI_LIST 390
#define IMPL_TYPE 391
#define STMTFN_DECL 392
#define BIT_COMPLEMENT_OP 393
#define EXPR_IF 394
#define EXPR_IF_BODY 395
#define FUNCTION_REF 396
#define LSHIFT_OP 397
#define RSHIFT_OP 398
#define UNARY_ADD_OP 399
#define SIZE_OP 400
#define INTEGER_DIV_OP 401
#define SUB_OP 402
#define LE_OP 403 /* New added for VPC */
#define GE_OP 404 /* New added for VPC */
#define NE_OP 405 /* New added for VPC */
#define CLASSINIT_OP 406 /* New added for VPC */
#define CAST_OP 407 /* New added for VPC */
#define ADDRESS_OP 408 /* New added for VPC */
#define POINSTAT_OP 409 /* New added for VPC */
#define COPY_NODE 410 /* New added for VPC */
#define INIT_LIST 411 /* New added for VPC */
#define VECTOR_CONST 412 /* New added for VPC */
#define BIT_NUMBER 413 /* New added for VPC */
#define ARITH_ASSGN_OP 414 /* New added for VPC */
#define ARRAY_OP 415 /* New added for VPC */
#define NEW_OP 416 /* New added for VPC */
#define DELETE_OP 417 /* New added for VPC */
#define NAMELIST_LIST 418
#define THIS_NODE 419 /* New added for VPC */
#define SCOPE_OP 420 /* New added for VPC */
#define PLUS_ASSGN_OP 421 /* New added for VPC */
#define MINUS_ASSGN_OP 422 /* New added for VPC */
#define AND_ASSGN_OP 423 /* New added for VPC */
#define IOR_ASSGN_OP 424 /* New added for VPC */
#define MULT_ASSGN_OP 425 /* New added for VPC */
#define DIV_ASSGN_OP 426 /* New added for VPC */
#define MOD_ASSGN_OP 427 /* New added for VPC */
#define XOR_ASSGN_OP 428 /* New added for VPC */
#define LSHIFT_ASSGN_OP 429 /* New added for VPC */
#define RSHIFT_ASSGN_OP 430 /* New added for VPC */
#define ORDERED_OP 431 /* Following added for PCF FORTRAN */
#define EXTEND_OP 432
#define MAXPARALLEL_OP 433
#define SAMETYPE_OP 434
#define TYPE_REF 450 /* Added for FORTRAN 90 */
#define STRUCTURE_CONSTRUCTOR 451
#define ARRAY_CONSTRUCTOR 452
#define SECTION_REF 453
#define VECTOR_SUBSCRIPT 454
#define SECTION_OPERANDS 455
#define KEYWORD_ARG 456
#define OVERLOADED_CALL 457
#define INTERFACE_REF 458
#define RENAME_NODE 459
#define TYPE_NODE 460
#define PAREN_OP 461
#define PARAMETER_OP 462
#define PUBLIC_OP 463
#define PRIVATE_OP 464
#define ALLOCATABLE_OP 465
#define DIMENSION_OP 466
#define EXTERNAL_OP 467
#define IN_OP 468
#define OUT_OP 469
#define INOUT_OP 470
#define INTRINSIC_OP 471
#define POINTER_OP 472
#define OPTIONAL_OP 473
#define SAVE_OP 474
#define TARGET_OP 475
#define ONLY_NODE 476
#define LEN_OP 477
#define TYPE_OP 479
#define DOTSTAR_OP 480 /* C++ .* operator */
#define ARROWSTAR_OP 481 /* C++ ->* operator */
#define FORDECL_OP 482 /* C++ for(int i; needs a new op */
#define THROW_OP 483 /* C++ throw operator */
#define PROCESSORS_REF 484 /* Fortran M */
#define PORT_TYPE_OP 485 /* Fortran M */
#define INPORT_TYPE_OP 486 /* Fortran M */
#define OUTPORT_TYPE_OP 487 /* Fortran M */
#define INPORT_NAME 488 /* Fortran M */
#define OUTPORT_NAME 489 /* Fortran M */
#define FROMPORT_NAME 490 /* Fortran M */
#define TOPORT_NAME 491 /* Fortran M */
#define IOSTAT_STORE 492 /* Fortran M */
#define EMPTY_STORE 493 /* Fortran M */
#define ERR_LABEL 494 /* Fortran M */
#define END_LABEL 495 /* Fortran M */
#define PROS_CALL 496 /* Fortran M */
#define STATIC_OP 497 /* F95*/
#define LABEL_ARG 498
#define DATA_IMPL_DO 700 /* Fortran M */
#define DATA_ELT 701 /* Fortran M */
#define DATA_SUBS 702 /* Fortran M */
#define DATA_RANGE 703 /* Fortran M */
#define ICON_EXPR 704 /* Fortran M */
#define BLOCK_OP 705 /* DVM-F */
#define NEW_SPEC_OP 706 /* DVM-F */
#define REDUCTION_OP 707 /* DVM-F */
#define SHADOW_RENEW_OP 708 /* DVM-F */
#define SHADOW_START_OP 709 /* DVM-F */
#define SHADOW_WAIT_OP 710 /* DVM-F */
#define DIAG_OP 711 /* DVM-F */
#define REMOTE_ACCESS_OP 712 /* DVM-F */
#define TEMPLATE_OP 713 /* DVM-F */
#define PROCESSORS_OP 714 /* DVM-F */
#define DYNAMIC_OP 715 /* DVM-F */
#define ALIGN_OP 716 /* DVM-F */
#define DISTRIBUTE_OP 717 /* DVM-F */
#define SHADOW_OP 718 /* DVM-F */
#define INDIRECT_ACCESS_OP 719 /* DVM-F */
#define ACROSS_OP 720 /* DVM-F */
#define NEW_VALUE_OP 721 /* DVM-F */
#define SHADOW_COMP_OP 722 /* DVM-F */
#define STAGE_OP 723 /* DVM-F */
#define FORALL_OP 724 /* F95 */
#define CONSISTENT_OP 725 /* DVM-F */
#define INTERFACE_OPERATOR 726 /* F95 */
#define INTERFACE_ASSIGNMENT 727 /* F95 */
#define VAR_DECL_90 728 /* F95 */
#define ASSIGNMENT_OP 729 /* F95 */
#define OPERATOR_OP 730 /* F95 */
#define KIND_OP 731 /* F95 */
#define LENGTH_OP 732 /* F95 */
#define RECURSIVE_OP 733 /* F95 */
#define ELEMENTAL_OP 734 /* F95 */
#define PURE_OP 735 /* F95 */
#define DEFINED_OP 736 /* F95 */
#define PARALLEL_OP 737 /*DVM-F */
#define INDIRECT_OP 738 /*DVM-F */
#define DERIVED_OP 739 /*DVM-F */
#define DUMMY_REF 740 /*DVM-F */
#define COMMON_OP 741 /*DVM-F */
#define SHADOW_NAMES_OP 742 /*DVM-F */
/***************** variant tags for symbol table entries ********************/
#define CONST_NAME 500 /* constant types */
#define ENUM_NAME 501
#define FIELD_NAME 502
#define VARIABLE_NAME 503
#define TYPE_NAME 504
#define PROGRAM_NAME 505
#define PROCEDURE_NAME 506
#define VAR_FIELD 507
#define LABEL_VAR 508 /* dest of assigned goto stmt */
#define FUNCTION_NAME 509
#define MEMBER_FUNC 510 /* new added for VPC */
#define CLASS_NAME 511 /* new added for VPC */
#define UNION_NAME 512 /* new added for VPC */
#define STRUCT_NAME 513 /* new added for VPC */
#define LABEL_NAME 514 /* new added for VPC */
#define COLLECTION_NAME 515 /* new added for VPC */
#define ROUTINE_NAME 516 /*added for external statement*/
#define CONSTRUCT_NAME 517
#define INTERFACE_NAME 518
#define MODULE_NAME 519
#define TEMPLATE_CL_NAME 520
#define TEMPLATE_FN_NAME 521
#define TECLASS_NAME 522
#define SHADOW_GROUP_NAME 523 /* DVM_F */
#define REDUCTION_GROUP_NAME 524 /* DVM_F */
#define REF_GROUP_NAME 525 /* DVM_F */
#define ASYNC_ID 526 /* DVM_F */
#define CONSISTENT_GROUP_NAME 527 /* DVM_F */
#define NAMELIST_NAME 528
#define COMMON_NAME 529 /* name of a common block (add Kataev N.A., 02.04.2014)*/
#define DEFAULT 550
#define T_INT 551 /* scalar types */
#define T_FLOAT 552
#define T_DOUBLE 553
#define T_CHAR 554
#define T_BOOL 555
#define T_STRING 556
#define T_ENUM 557
#define T_SUBRANGE 558
#define T_LIST 559
#define T_ARRAY 560
#define T_RECORD 561
#define T_ENUM_FIELD 562
#define T_UNKNOWN 563
#define T_COMPLEX 564
#define T_VOID 565 /* New one for VPC */
#define T_DESCRIPT 566 /* New one for VPC */
#define T_FUNCTION 567 /* New one for VPC */
#define T_POINTER 568 /* New one for VPC */
#define T_UNION 569 /* New one for VPC */
#define T_STRUCT 570 /* New one for VPC */
#define T_CLASS 571 /* New one for VPC */
#define T_DERIVED_CLASS 572 /* New one for VPC */
#define T_DERIVED_TYPE 573 /* New one for VPC */
#define T_COLLECTION 574 /* New one for PC++*/
#define T_DERIVED_COLLECTION 575 /* New one for PC++*/
#define T_REFERENCE 576 /* New one for PC++*/
#define T_DERIVED_TEMPLATE 577 /* template type T<A,3,4> */
#define T_MEMBER_POINTER 578 /* need for C::* (ptr to memb ) */
#define T_TECLASS 579 /* new one for pC++*/
#define T_GATE 580 /* added for PCF FORTRAN */
#define T_EVENT 581
#define T_SEQUENCE 582
#define T_DCOMPLEX 583
#define T_LONG 584
#define BY_USE 599 /* Fortran 90 */
#define LOCAL 600 /* variable type */
#define INPUT 601
#define OUTPUT 602
#define IO 603
#define PROCESS_NAME 604 /* Fortran M */
#define OMP_PRIVATE 801 /* OpenMP Fortran */
#define OMP_SHARED 802 /* OpenMP Fortran */
#define OMP_FIRSTPRIVATE 803 /* OpenMP Fortran */
#define OMP_LASTPRIVATE 804 /* OpenMP Fortran */
#define OMP_THREADPRIVATE 805 /* OpenMP Fortran */
#define OMP_COPYIN 806 /* OpenMP Fortran */
#define OMP_COPYPRIVATE 807 /* OpenMP Fortran */
#define OMP_DEFAULT 808 /* OpenMP Fortran */
#define OMP_ORDERED 809 /* OpenMP Fortran */
#define OMP_SCHEDULE 810 /* OpenMP Fortran */
#define OMP_REDUCTION 811 /* OpenMP Fortran */
#define OMP_IF 812 /* OpenMP Fortran */
#define OMP_NUM_THREADS 813 /* OpenMP Fortran */
#define OMP_NOWAIT 814 /* OpenMP Fortran */
#define OMP_PARALLEL_DIR 820 /* OpenMP Fortran */
#define OMP_END_PARALLEL_DIR 821 /* OpenMP Fortran */
#define OMP_DO_DIR 822 /* OpenMP Fortran */
#define OMP_END_DO_DIR 823 /* OpenMP Fortran */
#define OMP_SECTIONS_DIR 824 /* OpenMP Fortran */
#define OMP_END_SECTIONS_DIR 825 /* OpenMP Fortran */
#define OMP_SECTION_DIR 826 /* OpenMP Fortran */
#define OMP_SINGLE_DIR 827 /* OpenMP Fortran */
#define OMP_END_SINGLE_DIR 828 /* OpenMP Fortran */
#define OMP_WORKSHARE_DIR 829 /* OpenMP Fortran */
#define OMP_END_WORKSHARE_DIR 830 /* OpenMP Fortran */
#define OMP_PARALLEL_DO_DIR 831 /* OpenMP Fortran */
#define OMP_END_PARALLEL_DO_DIR 832 /* OpenMP Fortran */
#define OMP_PARALLEL_SECTIONS_DIR 833 /* OpenMP Fortran */
#define OMP_END_PARALLEL_SECTIONS_DIR 834 /* OpenMP Fortran */
#define OMP_PARALLEL_WORKSHARE_DIR 835 /* OpenMP Fortran */
#define OMP_END_PARALLEL_WORKSHARE_DIR 836 /* OpenMP Fortran */
#define OMP_MASTER_DIR 837 /* OpenMP Fortran */
#define OMP_END_MASTER_DIR 838 /* OpenMP Fortran */
#define OMP_CRITICAL_DIR 839 /* OpenMP Fortran */
#define OMP_END_CRITICAL_DIR 840 /* OpenMP Fortran */
#define OMP_BARRIER_DIR 841 /* OpenMP Fortran */
#define OMP_ATOMIC_DIR 842 /* OpenMP Fortran */
#define OMP_FLUSH_DIR 843 /* OpenMP Fortran */
#define OMP_ORDERED_DIR 844 /* OpenMP Fortran */
#define OMP_END_ORDERED_DIR 845 /* OpenMP Fortran */
#define RECORD_DECL 846 /* OpenMP Fortran */
#define FUNC_STAT 847 /* OpenMP Fortran */
#define OMP_ONETHREAD_DIR 848 /* OpenMP Fortran */
#define OMP_THREADPRIVATE_DIR 849 /* OpenMP Fortran */
#define OMP_DEFAULT_SECTION_DIR 850 /* OpenMP Fortran */
#define OMP_COLLAPSE 851 /* OpenMP Fortran */
#define ACC_REGION_DIR 900 /* ACC Fortran */
#define ACC_END_REGION_DIR 901 /* ACC Fortran */
#define ACC_CALL_STMT 907 /* ACC Fortran */
#define ACC_KERNEL_HEDR 908 /* ACC Fortran */
#define ACC_GET_ACTUAL_DIR 909 /* ACC Fortran */
#define ACC_ACTUAL_DIR 910 /* ACC Fortran */
#define ACC_CHECKSECTION_DIR 911 /* ACC Fortran */
#define ACC_END_CHECKSECTION_DIR 912 /* ACC Fortran */
#define ACC_ROUTINE_DIR 913 /* ACC Fortran */
#define ACC_TIE_OP 930 /* ACC Fortran */
#define ACC_INLOCAL_OP 931 /* ACC Fortran */
#define ACC_INOUT_OP 932 /* ACC Fortran */
#define ACC_IN_OP 933 /* ACC Fortran */
#define ACC_OUT_OP 934 /* ACC Fortran */
#define ACC_LOCAL_OP 935 /* ACC Fortran */
#define ACC_PRIVATE_OP 936 /* ACC Fortran */
#define ACC_DEVICE_OP 937 /* ACC Fortran */
#define ACC_CUDA_OP 938 /* ACC Fortran */
#define ACC_HOST_OP 939 /* ACC Fortran */
#define ACC_GLOBAL_OP 940 /* ACC Fortran */
#define ACC_ATTRIBUTES_OP 941 /* ACC Fortran */
#define ACC_VALUE_OP 942 /* ACC Fortran */
#define ACC_SHARED_OP 943 /* ACC Fortran */
#define ACC_CONSTANT_OP 944 /* ACC Fortran */
#define ACC_USES_OP 945 /* ACC Fortran */
#define ACC_CALL_OP 946 /* ACC Fortran */
#define ACC_CUDA_BLOCK_OP 947 /* ACC Fortran */
#define ACC_TARGETS_OP 948 /* ACC Fortran */
#define ACC_ASYNC_OP 949 /* ACC Fortran */
#define SPF_ANALYSIS_DIR 950 /* SAPFOR */
#define SPF_PARALLEL_DIR 951 /* SAPFOR */
#define SPF_TRANSFORM_DIR 952 /* SAPFOR */
#define SPF_NOINLINE_OP 953 /* SAPFOR */
#define SPF_PARALLEL_REG_DIR 954 /* SAPFOR */
#define SPF_END_PARALLEL_REG_DIR 955 /* SAPFOR */
#define SPF_REGION_NAME 956 /* SAPFOR */
#define SPF_EXPAND_OP 957 /* SAPFOR */
#define SPF_FISSION_OP 958 /* SAPFOR */
#define SPF_SHRINK_OP 959 /* SAPFOR */
#define SPF_CHECKPOINT_DIR 960 /* SAPFOR */
#define SPF_TYPE_OP 961 /* SAPFOR */
#define SPF_VARLIST_OP 962 /* SAPFOR */
#define SPF_EXCEPT_OP 963 /* SAPFOR */
#define SPF_FILES_COUNT_OP 964 /* SAPFOR */
#define SPF_INTERVAL_OP 965 /* SAPFOR */
#define SPF_TIME_OP 966 /* SAPFOR */
#define SPF_ITER_OP 967 /* SAPFOR */
#define SPF_FLEXIBLE_OP 968 /* SAPFOR */
#define SPF_PARAMETER_OP 969 /* SAPFOR */
#define SPF_CODE_COVERAGE_OP 970 /* SAPFOR */
#define SPF_UNROLL_OP 971 /* SAPFOR */

View File

@@ -1,274 +0,0 @@
/************************************************************************
* *
* This file contains the documentation of the tags used in various *
* structures of the Sigma database *
* *
************************************************************************/
/******************* variant tags for bif nodes **********************/
#define GLOBAL 100 /* pseudo root node */
#define PROG_HEDR 101 /* main program node */
#define PROC_HEDR 102 /* procedure/function node */
#define BASIC_BLOCK 103 /* start node of a basic block */
#define CONTROL_END 104 /* end of a block */
#define IF_NODE 105 /* an IF statement */
#define ARITHIF_NODE 138 /* an arithmatic IF statement */
#define LOGIF_NODE 145 /* a logical IF statement */
#define LOOP_NODE 106 /* a loop statement */
#define FOR_NODE 107 /* a DO (in fortran) or a for (in C) statement */
#define FORALL_NODE 108 /* a forall (Blaze??) statement */
#define WHILE_NODE 109 /* a while statement */
#define CDOALL_NODE 124 /* a CDOALL statement */
#define SDOALL_NODE 125 /* a SDOALL statement */
#define DOACROSS_NODE 126 /* a DOACROSS statement */
#define CDOACROSS_NODE 127 /* a CDOACROSS statement */
#define EXIT_NODE 110 /* an EXIT statement */
#define GOTO_NODE 139 /* a GOTO statement */
#define ASSGOTO_NODE 140 /* an ASSIGN GOTO statement */
#define COMGOTO_NODE 141 /* a COMPUTED GOGO statement */
#define PAUSE_NODE 142 /* a PAUSE statement */
#define STOP_NODE 143 /* a STOP statement */
#define ASSIGN_STAT 111 /* an assignment statement */
#define M_ASSIGN_STAT 112 /* a multiple assignment statement (Blaze??) */
#define PROC_STAT 113 /* */
#define ASSLAB_STAT 146
#define SUM_ACC 114 /* accumulation statements */
#define MULT_ACC 115
#define MAX_ACC 116
#define MIN_ACC 117
#define CAT_ACC 118
#define OR_ACC 119
#define AND_ACC 120
#define READ_STAT 121
#define WRITE_STAT 122
#define OTHERIO_STAT 123
#define BLOB 150
#define SIZES 151
#define FUNC_HEDR 130
#define WHERE_NODE 131
#define ALLDO_NODE 132
#define IDENTIFY 133
#define FORMAT_STAT 134
#define STOP_STAT 135
#define RETURN_STAT 136
#define ELSEIF_NODE 137
/* NO_OP nodes */
#define COMMENT_STAT 152
#define CONT_STAT 153
#define VAR_DECL 154
#define PARAM_DECL 155
#define COMM_STAT 156
#define EQUI_STAT 157
#define IMPL_DECL 158
#define DATA_DECL 159
#define SAVE_DECL 160
#define ENTRY_STAT 162
#define STMTFN_STAT 163
#define DIM_STAT 164
#define BLOCK_DATA 165
#define EXTERN_STAT 166
#define INTRIN_STAT 167
#define ENUM_DECL 168 /* New added for VPC */
#define CLASS_DECL 169 /* New added for VPC */
#define UNION_DECL 170 /* New added for VPC */
#define STRUCT_DECL 171 /* New added for VPC */
#define DERIVED_CLASS_DECL 172 /* New added for VPC */
#define EXPR_STMT_NODE 173 /* New added for VPC */
#define DO_WHILE_NODE 174 /* New added for VPC */
#define SWITCH_NODE 175 /* New added for VPC */
#define CASE_NODE 176 /* New added for VPC */
#define DEFAULT_NODE 177 /* New added for VPC */
#define BREAK_NODE 178 /* New added for VPC */
#define CONTINUE_NODE 179 /* New added for VPC */
#define RETURN_NODE 180 /* New added for VPC */
#define ASM_NODE 181 /* New added for VPC */
#define COBREAK_NODE 182 /* New added for VPC */
#define COLOOP_NODE 183 /* New added for VPC */
#define COEXEC_NODE 184 /* New added for VPC */
#define LABEL_STAT 185 /* New added for VPC */
#define PROC_COM 186 /* process common */
#define ATTR_DECL 187 /* attribute declaration */
#define NAMELIST_STAT 188
#define FUTURE_STMT 189 /* NEW added for VPC */
/***************** variant tags for low level nodes ********************/
#define INT_VAL 300
#define FLOAT_VAL 301
#define DOUBLE_VAL 302
#define BOOL_VAL 303
#define CHAR_VAL 304
#define STRING_VAL 305
#define COMPLEX_VAL 317
#define CONST_REF 306
#define VAR_REF 307
#define ARRAY_REF 308
#define RECORD_REF 309 /* different structure between Blaze and VPC++ */
#define ENUM_REF 310
#define LABEL_REF 318
#define VAR_LIST 311
#define EXPR_LIST 312
#define RANGE_LIST 313
#define CASE_CHOICE 314
#define DEF_CHOICE 315
#define VARIANT_CHOICE 316
#define DDOT 324
#define RANGE_OP 325
#define UPPER_OP 326
#define LOWER_OP 327
#define EQ_OP 328
#define LT_OP 329
#define GT_OP 330
#define NOTEQL_OP 331
#define LTEQL_OP 332
#define GTEQL_OP 333
#define ADD_OP 334
#define SUBT_OP 335
#define OR_OP 336
#define MULT_OP 337
#define DIV_OP 338
#define MOD_OP 339
#define AND_OP 340
#define EXP_OP 341
#define ARRAY_MULT 342
#define CONCAT_OP 343 /* cancatenation of strings */
#define XOR_OP 344 /* .XOR. in fortran */
#define EQV_OP 345 /* .EQV. in fortran */
#define NEQV_OP 346 /* .NEQV. in fortran */
#define MINUS_OP 350 /* unary operations */
#define NOT_OP 351
#define ASSGN_OP 352 /* New ADDED For VPC */
#define DEREF_OP 353 /* New ADDED For VPC */
#define POINTST_OP 354 /* New ADDED For VPC */ /* ptr->x */
#define FUNCTION_OP 355 /* New ADDED For VPC */ /* (*DD)() */
#define MINUSMINUS_OP 356 /* New ADDED For VPC */
#define PLUSPLUS_OP 357 /* New ADDED For VPC */
#define BITAND_OP 358 /* New ADDED For VPC */
#define BITOR_OP 359 /* New ADDED For VPC */
#define STAR_RANGE 360 /* operations with no operands 360.. */
#define PROC_CALL 370
#define FUNC_CALL 371
#define CONSTRUCTOR_REF 380
#define ACCESS_REF 381
#define CONS 382
#define ACCESS 383
#define IOACCESS 384
#define CONTROL_LIST 385
#define SEQ 386
#define SPEC_PAIR 387
#define COMM_LIST 388
#define STMT_STR 389
#define EQUI_LIST 390
#define IMPL_TYPE 391
#define STMTFN_DECL 392
#define BIT_COMPLEMENT_OP 393
#define EXPR_IF 394
#define EXPR_IF_BODY 395
#define FUNCTION_REF 396
#define LSHIFT_OP 397
#define RSHIFT_OP 398
#define UNARY_ADD_OP 399
#define SIZE_OP 400
#define INTEGER_DIV_OP 401
#define SUB_OP 402
#define LE_OP 403 /* New added for VPC */
#define GE_OP 404 /* New added for VPC */
#define NE_OP 405 /* New added for VPC */
#define CLASSINIT_OP 406 /* New added for VPC */
#define CAST_OP 407 /* New added for VPC */
#define ADDRESS_OP 408 /* New added for VPC */
#define POINSTAT_OP 409 /* New added for VPC */
#define COPY_NODE 410 /* New added for VPC */
#define INIT_LIST 411 /* New added for VPC */
#define VECTOR_CONST 412 /* New added for VPC */
#define BIT_NUMBER 413 /* New added for VPC */
#define ARITH_ASSGN_OP 414 /* New added for VPC */
#define ARRAY_OP 415 /* New added for VPC */
#define NEW_OP 416 /* New added for VPC */
#define DELETE_OP 417 /* New added for VPC */
#define NAMELIST_LIST 418
#define THIS_NODE 419 /* New added for VPC */
#define SCOPE_OP 420 /* New added for VPC */
/***************** variant tags for symbol table entries ********************/
#define CONST_NAME 500 /* constant types */
#define ENUM_NAME 501
#define FIELD_NAME 502
#define VARIABLE_NAME 503
#define TYPE_NAME 504
#define PROGRAM_NAME 505
#define PROCEDURE_NAME 506
#define VAR_FIELD 507
#define LABEL_VAR 508 /* dest of assigned goto stmt */
#define FUNCTION_NAME 509
#define MEMBER_FUNC 510 /* new added for VPC */
#define CLASS_NAME 511 /* new added for VPC */
#define UNION_NAME 512 /* new added for VPC */
#define STRUCT_NAME 513 /* new added for VPC */
#define LABEL_NAME 514 /* new added for VPC */
#define DEFAULT 550
#define T_INT 551 /* scalar types */
#define T_FLOAT 552
#define T_DOUBLE 553
#define T_CHAR 554
#define T_BOOL 555
#define T_STRING 556
#define T_COMPLEX 564
#define T_ENUM 557
#define T_SUBRANGE 558
#define T_LIST 559
#define T_ARRAY 560
#define T_RECORD 561
#define T_ENUM_FIELD 562
#define T_UNKNOWN 563
#define T_VOID 565 /* New one for VPC */
#define T_DESCRIPT 566 /* New one for VPC */
#define T_FUNCTION 567 /* New one for VPC */
#define T_POINTER 568 /* New one for VPC */
#define T_UNION 569 /* New one for VPC */
#define T_STRUCT 570 /* New one for VPC */
#define T_CLASS 571 /* New one for VPC */
#define T_DERIVED_CLASS 572 /* New one for VPC */
#define T_DERIVED_TYPE 573 /* New one for VPC */
#define LOCAL 600 /* variable type */
#define INPUT 601
#define OUTPUT 602
#define IO 603

View File

@@ -1,623 +0,0 @@
/* don't modify this file directly, it is made by a clever 'sed'
script using "tag". Run make tag.h to regenerate this file */
/*********************************************************************/
/* pC++/Sage++ Copyright (C) 1993 */
/* Indiana University University of Oregon University of Rennes */
/*********************************************************************/
/******************* variant tags for bif nodes **********************/
tag [ GLOBAL ] = "GLOBAL";
tag [ PROG_HEDR ] = "PROG_HEDR";
tag [ PROC_HEDR ] = "PROC_HEDR";
tag [ BASIC_BLOCK ] = "BASIC_BLOCK";
tag [ CONTROL_END ] = "CONTROL_END";
tag [ IF_NODE ] = "IF_NODE";
tag [ LOOP_NODE ] = "LOOP_NODE";
tag [ FOR_NODE ] = "FOR_NODE";
tag [ FORALL_NODE ] = "FORALL_NODE";
tag [ WHILE_NODE ] = "WHILE_NODE";
tag [ EXIT_NODE ] = "EXIT_NODE";
tag [ ASSIGN_STAT ] = "ASSIGN_STAT";
tag [ M_ASSIGN_STAT ] = "M_ASSIGN_STAT";
tag [ PROC_STAT ] = "PROC_STAT";
tag [ SUM_ACC ] = "SUM_ACC";
tag [ MULT_ACC ] = "MULT_ACC";
tag [ MAX_ACC ] = "MAX_ACC";
tag [ MIN_ACC ] = "MIN_ACC";
tag [ CAT_ACC ] = "CAT_ACC";
tag [ OR_ACC ] = "OR_ACC";
tag [ AND_ACC ] = "AND_ACC";
tag [ READ_STAT ] = "READ_STAT";
tag [ WRITE_STAT ] = "WRITE_STAT";
tag [ OTHERIO_STAT ] = "OTHERIO_STAT";
tag [ CDOALL_NODE ] = "CDOALL_NODE";
tag [ SDOALL_NODE ] = "SDOALL_NODE";
tag [ DOACROSS_NODE ] = "DOACROSS_NODE";
tag [ CDOACROSS_NODE ] = "CDOACROSS_NODE";
tag [ DVM_INTERVAL_DIR ] = "DVM_INTERVAL_DIR";
tag [ DVM_ENDINTERVAL_DIR ] = "DVM_ENDINTERVAL_DIR";
tag [ FUNC_HEDR ] = "FUNC_HEDR";
tag [ WHERE_NODE ] = "WHERE_NODE";
tag [ ALLDO_NODE ] = "ALLDO_NODE";
tag [ IDENTIFY ] = "IDENTIFY";
tag [ FORMAT_STAT ] = "FORMAT_STAT";
tag [ STOP_STAT ] = "STOP_STAT";
tag [ RETURN_STAT ] = "RETURN_STAT";
tag [ ELSEIF_NODE ] = "ELSEIF_NODE";
tag [ ARITHIF_NODE ] = "ARITHIF_NODE";
tag [ GOTO_NODE ] = "GOTO_NODE";
tag [ ASSGOTO_NODE ] = "ASSGOTO_NODE";
tag [ COMGOTO_NODE ] = "COMGOTO_NODE";
tag [ PAUSE_NODE ] = "PAUSE_NODE";
tag [ STOP_NODE ] = "STOP_NODE";
tag [ ASSLAB_STAT ] = "ASSLAB_STAT";
tag [ LOGIF_NODE ] = "LOGIF_NODE";
tag [ DVM_DEBUG_DIR ] = "DVM_DEBUG_DIR";
tag [ DVM_ENDDEBUG_DIR ] = "DVM_ENDDEBUG_DIR";
tag [ DVM_TRACEON_DIR ] = "DVM_TRACEON_DIR";
tag [ DVM_TRACEOFF_DIR ] = "DVM_TRACEOFF_DIR";
tag [ BLOB ] = "BLOB";
tag [ SIZES ] = "SIZES";
tag [ COMMENT_STAT ] = "COMMENT_STAT";
tag [ CONT_STAT ] = "CONT_STAT";
tag [ VAR_DECL ] = "VAR_DECL";
tag [ PARAM_DECL ] = "PARAM_DECL";
tag [ COMM_STAT ] = "COMM_STAT";
tag [ EQUI_STAT ] = "EQUI_STAT";
tag [ IMPL_DECL ] = "IMPL_DECL";
tag [ DATA_DECL ] = "DATA_DECL";
tag [ SAVE_DECL ] = "SAVE_DECL";
tag [ ENTRY_STAT ] = "ENTRY_STAT";
tag [ STMTFN_STAT ] = "STMTFN_STAT";
tag [ DIM_STAT ] = "DIM_STAT";
tag [ BLOCK_DATA ] = "BLOCK_DATA";
tag [ EXTERN_STAT ] = "EXTERN_STAT";
tag [ INTRIN_STAT ] = "INTRIN_STAT";
tag [ ENUM_DECL ] = "ENUM_DECL";
tag [ CLASS_DECL ] = "CLASS_DECL";
tag [ UNION_DECL ] = "UNION_DECL";
tag [ STRUCT_DECL ] = "STRUCT_DECL";
tag [ DERIVED_CLASS_DECL ] = "DERIVED_CLASS_DECL";
tag [ EXPR_STMT_NODE ] = "EXPR_STMT_NODE";
tag [ DO_WHILE_NODE ] = "DO_WHILE_NODE";
tag [ SWITCH_NODE ] = "SWITCH_NODE";
tag [ CASE_NODE ] = "CASE_NODE";
tag [ DEFAULT_NODE ] = "DEFAULT_NODE";
tag [ BREAK_NODE ] = "BREAK_NODE";
tag [ CONTINUE_NODE ] = "CONTINUE_NODE";
tag [ RETURN_NODE ] = "RETURN_NODE";
tag [ ASM_NODE ] = "ASM_NODE";
tag [ SPAWN_NODE ] = "SPAWN_NODE";
tag [ PARFOR_NODE ] = "PARFOR_NODE";
tag [ PAR_NODE ] = "PAR_NODE";
tag [ LABEL_STAT ] = "LABEL_STAT";
tag [ PROS_COMM ] = "PROS_COMM";
tag [ ATTR_DECL ] = "ATTR_DECL";
tag [ NAMELIST_STAT ] = "NAMELIST_STAT";
tag [ FUTURE_STMT ] = "FUTURE_STMT";
tag [ COLLECTION_DECL ] = "COLLECTION_DECL";
tag [ TEMPLATE_DECL ] = "TEMPLATE_DECL";
tag [ TEMPLATE_FUNDECL ] = "TEMPLATE_FUNDECL";
tag [ TECLASS_DECL ] = "TECLASS_DECL";
tag [ ELSEWH_NODE ] = "ELSEWH_NODE";
tag [ STATIC_STMT ] = "STATIC_STMT";
tag [ INCLUDE_LINE ] = "INCLUDE_LINE";
tag [ PREPROCESSOR_DIR ] = "PREPROCESSOR_DIR";
tag [ PRINT_STAT ] = "PRINT_STAT";
tag [ BACKSPACE_STAT ] = "BACKSPACE_STAT";
tag [ REWIND_STAT ] = "REWIND_STAT";
tag [ ENDFILE_STAT ] = "ENDFILE_STAT";
tag [ INQUIRE_STAT ] = "INQUIRE_STAT";
tag [ OPEN_STAT ] = "OPEN_STAT";
tag [ CLOSE_STAT ] = "CLOSE_STAT";
tag [ EXTERN_C_STAT ] = "EXTERN_C_STAT";
tag [ INCLUDE_STAT ] = "INCLUDE_STAT";
tag [ TRY_STAT ] = "TRY_STAT";
tag [ CATCH_STAT ] = "CATCH_STAT";
tag [ DVM_PARALLEL_ON_DIR ] = "DVM_PARALLEL_ON_DIR";
tag [ DVM_SHADOW_START_DIR ] = "DVM_SHADOW_START_DIR";
tag [ DVM_SHADOW_GROUP_DIR ] = "DVM_SHADOW_GROUP_DIR";
tag [ DVM_SHADOW_WAIT_DIR ] = "DVM_SHADOW_WAIT_DIR";
tag [ DVM_REDUCTION_START_DIR ] = "DVM_REDUCTION_START_DIR";
tag [ DVM_REDUCTION_GROUP_DIR ] = "DVM_REDUCTION_GROUP_DIR";
tag [ DVM_REDUCTION_WAIT_DIR ] = "DVM_REDUCTION_WAIT_DIR";
tag [ DVM_DYNAMIC_DIR ] = "DVM_DYNAMIC_DIR";
tag [ DVM_ALIGN_DIR ] = "DVM_ALIGN_DIR";
tag [ DVM_REALIGN_DIR ] = "DVM_REALIGN_DIR";
tag [ DVM_REALIGN_NEW_DIR ] = "DVM_REALIGN_NEW_DIR";
tag [ DVM_REMOTE_ACCESS_DIR ] = "DVM_REMOTE_ACCESS_DIR";
tag [ HPF_INDEPENDENT_DIR ] = "HPF_INDEPENDENT_DIR";
tag [ DVM_SHADOW_DIR ] = "DVM_SHADOW_DIR";
tag [ PARDO_NODE ] = "PARDO_NODE";
tag [ PARSECTIONS_NODE ] = "PARSECTIONS_NODE";
tag [ SECTION_NODE ] = "SECTION_NODE";
tag [ GUARDS_NODE ] = "GUARDS_NODE";
tag [ LOCK_NODE ] = "LOCK_NODE";
tag [ UNLOCK_NODE ] = "UNLOCK_NODE";
tag [ CRITSECTION_NODE ] = "CRITSECTION_NODE";
tag [ POST_NODE ] = "POST_NODE";
tag [ WAIT_NODE ] = "WAIT_NODE";
tag [ CLEAR_NODE ] = "CLEAR_NODE";
tag [ POSTSEQ_NODE ] = "POSTSEQ_NODE";
tag [ WAITSEQ_NODE ] = "WAITSEQ_NODE";
tag [ SETSEQ_NODE ] = "SETSEQ_NODE";
tag [ ASSIGN_NODE ] = "ASSIGN_NODE";
tag [ RELEASE_NODE ] = "RELEASE_NODE";
tag [ PRIVATE_NODE ] = "PRIVATE_NODE";
tag [ SCOMMON_NODE ] = "SCOMMON_NODE";
tag [ PARREGION_NODE ] = "PARREGION_NODE";
tag [ PDO_NODE ] = "PDO_NODE";
tag [ PSECTIONS_NODE ] = "PSECTIONS_NODE";
tag [ SINGLEPROCESS_NODE ] = "SINGLEPROCESS_NODE";
tag [ SKIPPASTEOF_NODE ] = "SKIPPASTEOF_NODE";
tag [ DVM_NEW_VALUE_DIR ] = "DVM_NEW_VALUE_DIR";
tag [ DVM_VAR_DECL ] = "DVM_VAR_DECL";
tag [ DVM_POINTER_DIR ] = "DVM_POINTER_DIR";
tag [ INTENT_STMT ] = "INTENT_STMT";
tag [ OPTIONAL_STMT ] = "OPTIONAL_STMT";
tag [ PUBLIC_STMT ] = "PUBLIC_STMT";
tag [ PRIVATE_STMT ] = "PRIVATE_STMT";
tag [ ALLOCATABLE_STMT ] = "ALLOCATABLE_STMT";
tag [ POINTER_STMT ] = "POINTER_STMT";
tag [ TARGET_STMT ] = "TARGET_STMT";
tag [ ALLOCATE_STMT ] = "ALLOCATE_STMT";
tag [ NULLIFY_STMT ] = "NULLIFY_STMT";
tag [ DEALLOCATE_STMT ] = "DEALLOCATE_STMT";
tag [ SEQUENCE_STMT ] = "SEQUENCE_STMT";
tag [ CYCLE_STMT ] = "CYCLE_STMT";
tag [ EXIT_STMT ] = "EXIT_STMT";
tag [ CONTAINS_STMT ] = "CONTAINS_STMT";
tag [ WHERE_BLOCK_STMT ] = "WHERE_BLOCK_STMT";
tag [ MODULE_STMT ] = "MODULE_STMT";
tag [ USE_STMT ] = "USE_STMT";
tag [ INTERFACE_STMT ] = "INTERFACE_STMT";
tag [ MODULE_PROC_STMT ] = "MODULE_PROC_STMT";
tag [ OVERLOADED_ASSIGN_STAT ] = "OVERLOADED_ASSIGN_STAT";
tag [ POINTER_ASSIGN_STAT ] = "POINTER_ASSIGN_STAT";
tag [ OVERLOADED_PROC_STAT ] = "OVERLOADED_PROC_STAT";
tag [ DECOMPOSITION_STMT ] = "DECOMPOSITION_STMT";
tag [ ALIGN_STMT ] = "ALIGN_STMT";
tag [ DVM_DISTRIBUTE_DIR ] = "DVM_DISTRIBUTE_DIR";
tag [ REDUCE_STMT ] = "REDUCE_STMT";
tag [ PROS_HEDR ] = "PROS_HEDR";
tag [ PROS_STAT ] = "PROS_STAT";
tag [ PROS_STAT_LCTN ] = "PROS_STAT_LCTN";
tag [ PROS_STAT_SUBM ] = "PROS_STAT_SUBM";
tag [ PROCESSES_STAT ] = "PROCESSES_STAT";
tag [ PROCESSES_END ] = "PROCESSES_END";
tag [ PROCESS_DO_STAT ] = "PROCESS_DO_STAT";
tag [ PROCESSORS_STAT ] = "PROCESSORS_STAT";
tag [ CHANNEL_STAT ] = "CHANNEL_STAT";
tag [ MERGER_STAT ] = "MERGER_STAT";
tag [ MOVE_PORT ] = "MOVE_PORT";
tag [ SEND_STAT ] = "SEND_STAT";
tag [ RECEIVE_STAT ] = "RECEIVE_STAT";
tag [ ENDCHANNEL_STAT ] = "ENDCHANNEL_STAT";
tag [ PROBE_STAT ] = "PROBE_STAT";
tag [ INPORT_DECL ] = "INPORT_DECL";
tag [ OUTPORT_DECL ] = "OUTPORT_DECL";
tag [ HPF_TEMPLATE_STAT ] = "HPF_TEMPLATE_STAT";
tag [ HPF_ALIGN_STAT ] = "HPF_ALIGN_STAT";
tag [ HPF_PROCESSORS_STAT ] = "HPF_PROCESSORS_STAT";
tag [ DVM_REDISTRIBUTE_DIR ] = "DVM_REDISTRIBUTE_DIR";
tag [ DVM_TASK_REGION_DIR ] = "DVM_TASK_REGION_DIR";
tag [ DVM_END_TASK_REGION_DIR ] = "DVM_END_TASK_REGION_DIR";
tag [ DVM_ON_DIR ] = "DVM_ON_DIR";
tag [ DVM_END_ON_DIR ] = "DVM_END_ON_DIR";
tag [ DVM_TASK_DIR ] = "DVM_TASK_DIR";
tag [ DVM_MAP_DIR ] = "DVM_MAP_DIR";
tag [ DVM_PARALLEL_TASK_DIR ] = "DVM_PARALLEL_TASK_DIR";
tag [ DVM_INHERIT_DIR ] = "DVM_INHERIT_DIR";
tag [ DVM_INDIRECT_GROUP_DIR ] = "DVM_INDIRECT_GROUP_DIR";
tag [ DVM_INDIRECT_ACCESS_DIR ] = "DVM_INDIRECT_ACCESS_DIR";
tag [ DVM_REMOTE_GROUP_DIR ] = "DVM_REMOTE_GROUP_DIR";
tag [ DVM_RESET_DIR ] = "DVM_RESET_DIR";
tag [ DVM_PREFETCH_DIR ] = "DVM_PREFETCH_DIR";
tag [ DVM_OWN_DIR ] = "DVM_OWN_DIR";
tag [ DVM_HEAP_DIR ] = "DVM_HEAP_DIR";
tag [ DVM_ASYNCID_DIR ] = "DVM_ASYNCID_DIR";
tag [ DVM_ASYNCHRONOUS_DIR ] = "DVM_ASYNCHRONOUS_DIR";
tag [ DVM_ENDASYNCHRONOUS_DIR ] = "DVM_ENDASYNCHRONOUS_DIR";
tag [ DVM_ASYNCWAIT_DIR ] = "DVM_ASYNCWAIT_DIR";
tag [ DVM_F90_DIR ] = "DVM_F90_DIR";
tag [ DVM_BARRIER_DIR ] = "DVM_BARRIER_DIR";
tag [ FORALL_STAT ] = "FORALL_STAT";
tag [ DVM_CONSISTENT_GROUP_DIR ] = "DVM_CONSISTENT_GROUP_DIR";
tag [ DVM_CONSISTENT_START_DIR ] = "DVM_CONSISTENT_START_DIR";
tag [ DVM_CONSISTENT_WAIT_DIR ] = "DVM_CONSISTENT_WAIT_DIR";
tag [ DVM_CONSISTENT_DIR ] = "DVM_CONSISTENT_DIR";
tag [ DVM_CHECK_DIR ] = "DVM_CHECK_DIR";
tag [ DVM_IO_MODE_DIR ] = "DVM_IO_MODE_DIR";
tag [ DVM_LOCALIZE_DIR ] = "DVM_LOCALIZE_DIR";
tag [ DVM_SHADOW_ADD_DIR ] = "DVM_SHADOW_ADD_DIR";
tag [ DVM_CP_CREATE_DIR ] = "DVM_CP_CREATE_DIR";
tag [ DVM_CP_LOAD_DIR ] = "DVM_CP_LOAD_DIR";
tag [ DVM_CP_SAVE_DIR ] = "DVM_CP_SAVE_DIR";
tag [ DVM_CP_WAIT_DIR ] = "DVM_CP_WAIT_DIR";
tag [ DVM_EXIT_INTERVAL_DIR ] = "DVM_EXIT_INTERVAL_DIR";
tag [ DVM_TEMPLATE_CREATE_DIR ] = "DVM_TEMPLATE_CREATE_DIR";
tag [ DVM_TEMPLATE_DELETE_DIR ] = "DVM_TEMPLATE_DELETE_DIR";
/***************** variant tags for low level nodes ********************/
tag [ INT_VAL ] = "INT_VAL";
tag [ FLOAT_VAL ] = "FLOAT_VAL";
tag [ DOUBLE_VAL ] = "DOUBLE_VAL";
tag [ BOOL_VAL ] = "BOOL_VAL";
tag [ CHAR_VAL ] = "CHAR_VAL";
tag [ STRING_VAL ] = "STRING_VAL";
tag [ CONST_REF ] = "CONST_REF";
tag [ VAR_REF ] = "VAR_REF";
tag [ ARRAY_REF ] = "ARRAY_REF";
tag [ RECORD_REF ] = "RECORD_REF";
tag [ ENUM_REF ] = "ENUM_REF";
tag [ VAR_LIST ] = "VAR_LIST";
tag [ EXPR_LIST ] = "EXPR_LIST";
tag [ RANGE_LIST ] = "RANGE_LIST";
tag [ CASE_CHOICE ] = "CASE_CHOICE";
tag [ DEF_CHOICE ] = "DEF_CHOICE";
tag [ VARIANT_CHOICE ] = "VARIANT_CHOICE";
tag [ COMPLEX_VAL ] = "COMPLEX_VAL";
tag [ LABEL_REF ] = "LABEL_REF";
tag [ KEYWORD_VAL ] = "KEYWORD_VAL";
tag [ DDOT ] = "DDOT";
tag [ RANGE_OP ] = "RANGE_OP";
tag [ UPPER_OP ] = "UPPER_OP";
tag [ LOWER_OP ] = "LOWER_OP";
tag [ EQ_OP ] = "EQ_OP";
tag [ LT_OP ] = "LT_OP";
tag [ GT_OP ] = "GT_OP";
tag [ NOTEQL_OP ] = "NOTEQL_OP";
tag [ LTEQL_OP ] = "LTEQL_OP";
tag [ GTEQL_OP ] = "GTEQL_OP";
tag [ ADD_OP ] = "ADD_OP";
tag [ SUBT_OP ] = "SUBT_OP";
tag [ OR_OP ] = "OR_OP";
tag [ MULT_OP ] = "MULT_OP";
tag [ DIV_OP ] = "DIV_OP";
tag [ MOD_OP ] = "MOD_OP";
tag [ AND_OP ] = "AND_OP";
tag [ EXP_OP ] = "EXP_OP";
tag [ ARRAY_MULT ] = "ARRAY_MULT";
tag [ CONCAT_OP ] = "CONCAT_OP";
tag [ XOR_OP ] = "XOR_OP";
tag [ EQV_OP ] = "EQV_OP";
tag [ NEQV_OP ] = "NEQV_OP";
tag [ MINUS_OP ] = "MINUS_OP";
tag [ NOT_OP ] = "NOT_OP";
tag [ ASSGN_OP ] = "ASSGN_OP";
tag [ DEREF_OP ] = "DEREF_OP";
tag [ POINTST_OP ] = "POINTST_OP";
tag [ FUNCTION_OP ] = "FUNCTION_OP";
tag [ MINUSMINUS_OP ] = "MINUSMINUS_OP";
tag [ PLUSPLUS_OP ] = "PLUSPLUS_OP";
tag [ BITAND_OP ] = "BITAND_OP";
tag [ BITOR_OP ] = "BITOR_OP";
tag [ STAR_RANGE ] = "STAR_RANGE";
tag [ PROC_CALL ] = "PROC_CALL";
tag [ FUNC_CALL ] = "FUNC_CALL";
tag [ CONSTRUCTOR_REF ] = "CONSTRUCTOR_REF";
tag [ ACCESS_REF ] = "ACCESS_REF";
tag [ CONS ] = "CONS";
tag [ ACCESS ] = "ACCESS";
tag [ IOACCESS ] = "IOACCESS";
tag [ CONTROL_LIST ] = "CONTROL_LIST";
tag [ SEQ ] = "SEQ";
tag [ SPEC_PAIR ] = "SPEC_PAIR";
tag [ COMM_LIST ] = "COMM_LIST";
tag [ STMT_STR ] = "STMT_STR";
tag [ EQUI_LIST ] = "EQUI_LIST";
tag [ IMPL_TYPE ] = "IMPL_TYPE";
tag [ STMTFN_DECL ] = "STMTFN_DECL";
tag [ BIT_COMPLEMENT_OP ] = "BIT_COMPLEMENT_OP";
tag [ EXPR_IF ] = "EXPR_IF";
tag [ EXPR_IF_BODY ] = "EXPR_IF_BODY";
tag [ FUNCTION_REF ] = "FUNCTION_REF";
tag [ LSHIFT_OP ] = "LSHIFT_OP";
tag [ RSHIFT_OP ] = "RSHIFT_OP";
tag [ UNARY_ADD_OP ] = "UNARY_ADD_OP";
tag [ SIZE_OP ] = "SIZE_OP";
tag [ INTEGER_DIV_OP ] = "INTEGER_DIV_OP";
tag [ SUB_OP ] = "SUB_OP";
tag [ LE_OP ] = "LE_OP";
tag [ GE_OP ] = "GE_OP";
tag [ NE_OP ] = "NE_OP";
tag [ CLASSINIT_OP ] = "CLASSINIT_OP";
tag [ CAST_OP ] = "CAST_OP";
tag [ ADDRESS_OP ] = "ADDRESS_OP";
tag [ POINSTAT_OP ] = "POINSTAT_OP";
tag [ COPY_NODE ] = "COPY_NODE";
tag [ INIT_LIST ] = "INIT_LIST";
tag [ VECTOR_CONST ] = "VECTOR_CONST";
tag [ BIT_NUMBER ] = "BIT_NUMBER";
tag [ ARITH_ASSGN_OP ] = "ARITH_ASSGN_OP";
tag [ ARRAY_OP ] = "ARRAY_OP";
tag [ NEW_OP ] = "NEW_OP";
tag [ DELETE_OP ] = "DELETE_OP";
tag [ NAMELIST_LIST ] = "NAMELIST_LIST";
tag [ THIS_NODE ] = "THIS_NODE";
tag [ SCOPE_OP ] = "SCOPE_OP";
tag [ PLUS_ASSGN_OP ] = "PLUS_ASSGN_OP";
tag [ MINUS_ASSGN_OP ] = "MINUS_ASSGN_OP";
tag [ AND_ASSGN_OP ] = "AND_ASSGN_OP";
tag [ IOR_ASSGN_OP ] = "IOR_ASSGN_OP";
tag [ MULT_ASSGN_OP ] = "MULT_ASSGN_OP";
tag [ DIV_ASSGN_OP ] = "DIV_ASSGN_OP";
tag [ MOD_ASSGN_OP ] = "MOD_ASSGN_OP";
tag [ XOR_ASSGN_OP ] = "XOR_ASSGN_OP";
tag [ LSHIFT_ASSGN_OP ] = "LSHIFT_ASSGN_OP";
tag [ RSHIFT_ASSGN_OP ] = "RSHIFT_ASSGN_OP";
tag [ ORDERED_OP ] = "ORDERED_OP";
tag [ EXTEND_OP ] = "EXTEND_OP";
tag [ MAXPARALLEL_OP ] = "MAXPARALLEL_OP";
tag [ SAMETYPE_OP ] = "SAMETYPE_OP";
tag [ TYPE_REF ] = "TYPE_REF";
tag [ STRUCTURE_CONSTRUCTOR ] = "STRUCTURE_CONSTRUCTOR";
tag [ ARRAY_CONSTRUCTOR ] = "ARRAY_CONSTRUCTOR";
tag [ SECTION_REF ] = "SECTION_REF";
tag [ VECTOR_SUBSCRIPT ] = "VECTOR_SUBSCRIPT";
tag [ SECTION_OPERANDS ] = "SECTION_OPERANDS";
tag [ KEYWORD_ARG ] = "KEYWORD_ARG";
tag [ OVERLOADED_CALL ] = "OVERLOADED_CALL";
tag [ INTERFACE_REF ] = "INTERFACE_REF";
tag [ RENAME_NODE ] = "RENAME_NODE";
tag [ TYPE_NODE ] = "TYPE_NODE";
tag [ PAREN_OP ] = "PAREN_OP";
tag [ PARAMETER_OP ] = "PARAMETER_OP";
tag [ PUBLIC_OP ] = "PUBLIC_OP";
tag [ PRIVATE_OP ] = "PRIVATE_OP";
tag [ ALLOCATABLE_OP ] = "ALLOCATABLE_OP";
tag [ DIMENSION_OP ] = "DIMENSION_OP";
tag [ EXTERNAL_OP ] = "EXTERNAL_OP";
tag [ IN_OP ] = "IN_OP";
tag [ OUT_OP ] = "OUT_OP";
tag [ INOUT_OP ] = "INOUT_OP";
tag [ INTRINSIC_OP ] = "INTRINSIC_OP";
tag [ POINTER_OP ] = "POINTER_OP";
tag [ OPTIONAL_OP ] = "OPTIONAL_OP";
tag [ SAVE_OP ] = "SAVE_OP";
tag [ TARGET_OP ] = "TARGET_OP";
tag [ ONLY_NODE ] = "ONLY_NODE";
tag [ LEN_OP ] = "LEN_OP";
tag [ TYPE_OP ] = "TYPE_OP";
tag [ DOTSTAR_OP ] = "DOTSTAR_OP";
tag [ ARROWSTAR_OP ] = "ARROWSTAR_OP";
tag [ FORDECL_OP ] = "FORDECL_OP";
tag [ THROW_OP ] = "THROW_OP";
tag [ PROCESSORS_REF ] = "PROCESSORS_REF";
tag [ PORT_TYPE_OP ] = "PORT_TYPE_OP";
tag [ INPORT_TYPE_OP ] = "INPORT_TYPE_OP";
tag [ OUTPORT_TYPE_OP ] = "OUTPORT_TYPE_OP";
tag [ INPORT_NAME ] = "INPORT_NAME";
tag [ OUTPORT_NAME ] = "OUTPORT_NAME";
tag [ FROMPORT_NAME ] = "FROMPORT_NAME";
tag [ TOPORT_NAME ] = "TOPORT_NAME";
tag [ IOSTAT_STORE ] = "IOSTAT_STORE";
tag [ EMPTY_STORE ] = "EMPTY_STORE";
tag [ ERR_LABEL ] = "ERR_LABEL";
tag [ END_LABEL ] = "END_LABEL";
tag [ PROS_CALL ] = "PROS_CALL";
tag [ STATIC_OP ] = "STATIC_OP";
tag [ LABEL_ARG ] = "LABEL_ARG";
tag [ DATA_IMPL_DO ] = "DATA_IMPL_DO";
tag [ DATA_ELT ] = "DATA_ELT";
tag [ DATA_SUBS ] = "DATA_SUBS";
tag [ DATA_RANGE ] = "DATA_RANGE";
tag [ ICON_EXPR ] = "ICON_EXPR";
tag [ BLOCK_OP ] = "BLOCK_OP";
tag [ NEW_SPEC_OP ] = "NEW_SPEC_OP";
tag [ REDUCTION_OP ] = "REDUCTION_OP";
tag [ SHADOW_RENEW_OP ] = "SHADOW_RENEW_OP";
tag [ SHADOW_START_OP ] = "SHADOW_START_OP";
tag [ SHADOW_WAIT_OP ] = "SHADOW_WAIT_OP";
tag [ DIAG_OP ] = "DIAG_OP";
tag [ REMOTE_ACCESS_OP ] = "REMOTE_ACCESS_OP";
tag [ TEMPLATE_OP ] = "TEMPLATE_OP";
tag [ PROCESSORS_OP ] = "PROCESSORS_OP";
tag [ DYNAMIC_OP ] = "DYNAMIC_OP";
tag [ ALIGN_OP ] = "ALIGN_OP";
tag [ DISTRIBUTE_OP ] = "DISTRIBUTE_OP";
tag [ SHADOW_OP ] = "SHADOW_OP";
tag [ INDIRECT_ACCESS_OP ] = "INDIRECT_ACCESS_OP";
tag [ ACROSS_OP ] = "ACROSS_OP";
tag [ NEW_VALUE_OP ] = "NEW_VALUE_OP";
tag [ SHADOW_COMP_OP ] = "SHADOW_COMP_OP";
tag [ STAGE_OP ] = "STAGE_OP";
tag [ FORALL_OP ] = "FORALL_OP";
tag [ CONSISTENT_OP ] = "CONSISTENT_OP";
tag [ INTERFACE_OPERATOR ] = "INTERFACE_OPERATOR";
tag [ INTERFACE_ASSIGNMENT ] = "INTERFACE_ASSIGNMENT";
tag [ VAR_DECL_90 ] = "VAR_DECL_90";
tag [ ASSIGNMENT_OP ] = "ASSIGNMENT_OP";
tag [ OPERATOR_OP ] = "OPERATOR_OP";
tag [ KIND_OP ] = "KIND_OP";
tag [ LENGTH_OP ] = "LENGTH_OP";
tag [ RECURSIVE_OP ] = "RECURSIVE_OP";
tag [ ELEMENTAL_OP ] = "ELEMENTAL_OP";
tag [ PURE_OP ] = "PURE_OP";
tag [ DEFINED_OP ] = "DEFINED_OP";
tag [ PARALLEL_OP ] = "PARALLEL_OP";
tag [ INDIRECT_OP ] = "INDIRECT_OP";
tag [ DERIVED_OP ] = "DERIVED_OP";
tag [ DUMMY_REF ] = "DUMMY_REF";
tag [ COMMON_OP ] = "COMMON_OP";
tag [ SHADOW_NAMES_OP ] = "SHADOW_NAMES_OP";
/***************** variant tags for symbol table entries ********************/
tag [ CONST_NAME ] = "CONST_NAME";
tag [ ENUM_NAME ] = "ENUM_NAME";
tag [ FIELD_NAME ] = "FIELD_NAME";
tag [ VARIABLE_NAME ] = "VARIABLE_NAME";
tag [ TYPE_NAME ] = "TYPE_NAME";
tag [ PROGRAM_NAME ] = "PROGRAM_NAME";
tag [ PROCEDURE_NAME ] = "PROCEDURE_NAME";
tag [ VAR_FIELD ] = "VAR_FIELD";
tag [ LABEL_VAR ] = "LABEL_VAR";
tag [ FUNCTION_NAME ] = "FUNCTION_NAME";
tag [ MEMBER_FUNC ] = "MEMBER_FUNC";
tag [ CLASS_NAME ] = "CLASS_NAME";
tag [ UNION_NAME ] = "UNION_NAME";
tag [ STRUCT_NAME ] = "STRUCT_NAME";
tag [ LABEL_NAME ] = "LABEL_NAME";
tag [ COLLECTION_NAME ] = "COLLECTION_NAME";
tag [ ROUTINE_NAME ] = "ROUTINE_NAME";
tag [ CONSTRUCT_NAME ] = "CONSTRUCT_NAME";
tag [ INTERFACE_NAME ] = "INTERFACE_NAME";
tag [ MODULE_NAME ] = "MODULE_NAME";
tag [ TEMPLATE_CL_NAME ] = "TEMPLATE_CL_NAME";
tag [ TEMPLATE_FN_NAME ] = "TEMPLATE_FN_NAME";
tag [ TECLASS_NAME ] = "TECLASS_NAME";
tag [ SHADOW_GROUP_NAME ] = "SHADOW_GROUP_NAME";
tag [ REDUCTION_GROUP_NAME ] = "REDUCTION_GROUP_NAME";
tag [ REF_GROUP_NAME ] = "REF_GROUP_NAME";
tag [ ASYNC_ID ] = "ASYNC_ID";
tag [ CONSISTENT_GROUP_NAME ] = "CONSISTENT_GROUP_NAME";
tag [ NAMELIST_NAME ] = "NAMELIST_NAME";
tag [ COMMON_NAME ] = "COMMON_NAME";
tag [ DEFAULT ] = "DEFAULT";
tag [ T_INT ] = "T_INT";
tag [ T_FLOAT ] = "T_FLOAT";
tag [ T_DOUBLE ] = "T_DOUBLE";
tag [ T_CHAR ] = "T_CHAR";
tag [ T_BOOL ] = "T_BOOL";
tag [ T_STRING ] = "T_STRING";
tag [ T_ENUM ] = "T_ENUM";
tag [ T_SUBRANGE ] = "T_SUBRANGE";
tag [ T_LIST ] = "T_LIST";
tag [ T_ARRAY ] = "T_ARRAY";
tag [ T_RECORD ] = "T_RECORD";
tag [ T_ENUM_FIELD ] = "T_ENUM_FIELD";
tag [ T_UNKNOWN ] = "T_UNKNOWN";
tag [ T_COMPLEX ] = "T_COMPLEX";
tag [ T_VOID ] = "T_VOID";
tag [ T_DESCRIPT ] = "T_DESCRIPT";
tag [ T_FUNCTION ] = "T_FUNCTION";
tag [ T_POINTER ] = "T_POINTER";
tag [ T_UNION ] = "T_UNION";
tag [ T_STRUCT ] = "T_STRUCT";
tag [ T_CLASS ] = "T_CLASS";
tag [ T_DERIVED_CLASS ] = "T_DERIVED_CLASS";
tag [ T_DERIVED_TYPE ] = "T_DERIVED_TYPE";
tag [ T_COLLECTION ] = "T_COLLECTION";
tag [ T_DERIVED_COLLECTION ] = "T_DERIVED_COLLECTION";
tag [ T_REFERENCE ] = "T_REFERENCE";
tag [ T_DERIVED_TEMPLATE ] = "T_DERIVED_TEMPLATE";
tag [ T_MEMBER_POINTER ] = "T_MEMBER_POINTER";
tag [ T_TECLASS ] = "T_TECLASS";
tag [ T_GATE ] = "T_GATE";
tag [ T_EVENT ] = "T_EVENT";
tag [ T_SEQUENCE ] = "T_SEQUENCE";
tag [ T_DCOMPLEX ] = "T_DCOMPLEX";
tag [ T_LONG ] = "T_LONG";
tag [ BY_USE ] = "BY_USE";
tag [ LOCAL ] = "LOCAL";
tag [ INPUT ] = "INPUT";
tag [ OUTPUT ] = "OUTPUT";
tag [ IO ] = "IO";
tag [ PROCESS_NAME ] = "PROCESS_NAME";
tag [ OMP_PRIVATE ] = "OMP_PRIVATE";
tag [ OMP_SHARED ] = "OMP_SHARED";
tag [ OMP_FIRSTPRIVATE ] = "OMP_FIRSTPRIVATE";
tag [ OMP_LASTPRIVATE ] = "OMP_LASTPRIVATE";
tag [ OMP_THREADPRIVATE ] = "OMP_THREADPRIVATE";
tag [ OMP_COPYIN ] = "OMP_COPYIN";
tag [ OMP_COPYPRIVATE ] = "OMP_COPYPRIVATE";
tag [ OMP_DEFAULT ] = "OMP_DEFAULT";
tag [ OMP_ORDERED ] = "OMP_ORDERED";
tag [ OMP_SCHEDULE ] = "OMP_SCHEDULE";
tag [ OMP_REDUCTION ] = "OMP_REDUCTION";
tag [ OMP_IF ] = "OMP_IF";
tag [ OMP_NUM_THREADS ] = "OMP_NUM_THREADS";
tag [ OMP_NOWAIT ] = "OMP_NOWAIT";
tag [ OMP_PARALLEL_DIR ] = "OMP_PARALLEL_DIR";
tag [ OMP_END_PARALLEL_DIR ] = "OMP_END_PARALLEL_DIR";
tag [ OMP_DO_DIR ] = "OMP_DO_DIR";
tag [ OMP_END_DO_DIR ] = "OMP_END_DO_DIR";
tag [ OMP_SECTIONS_DIR ] = "OMP_SECTIONS_DIR";
tag [ OMP_END_SECTIONS_DIR ] = "OMP_END_SECTIONS_DIR";
tag [ OMP_SECTION_DIR ] = "OMP_SECTION_DIR";
tag [ OMP_SINGLE_DIR ] = "OMP_SINGLE_DIR";
tag [ OMP_END_SINGLE_DIR ] = "OMP_END_SINGLE_DIR";
tag [ OMP_WORKSHARE_DIR ] = "OMP_WORKSHARE_DIR";
tag [ OMP_END_WORKSHARE_DIR ] = "OMP_END_WORKSHARE_DIR";
tag [ OMP_PARALLEL_DO_DIR ] = "OMP_PARALLEL_DO_DIR";
tag [ OMP_END_PARALLEL_DO_DIR ] = "OMP_END_PARALLEL_DO_DIR";
tag [ OMP_PARALLEL_SECTIONS_DIR ] = "OMP_PARALLEL_SECTIONS_DIR";
tag [ OMP_END_PARALLEL_SECTIONS_DIR ] = "OMP_END_PARALLEL_SECTIONS_DIR";
tag [ OMP_PARALLEL_WORKSHARE_DIR ] = "OMP_PARALLEL_WORKSHARE_DIR";
tag [ OMP_END_PARALLEL_WORKSHARE_DIR ] = "OMP_END_PARALLEL_WORKSHARE_DIR";
tag [ OMP_MASTER_DIR ] = "OMP_MASTER_DIR";
tag [ OMP_END_MASTER_DIR ] = "OMP_END_MASTER_DIR";
tag [ OMP_CRITICAL_DIR ] = "OMP_CRITICAL_DIR";
tag [ OMP_END_CRITICAL_DIR ] = "OMP_END_CRITICAL_DIR";
tag [ OMP_BARRIER_DIR ] = "OMP_BARRIER_DIR";
tag [ OMP_ATOMIC_DIR ] = "OMP_ATOMIC_DIR";
tag [ OMP_FLUSH_DIR ] = "OMP_FLUSH_DIR";
tag [ OMP_ORDERED_DIR ] = "OMP_ORDERED_DIR";
tag [ OMP_END_ORDERED_DIR ] = "OMP_END_ORDERED_DIR";
tag [ RECORD_DECL ] = "RECORD_DECL";
tag [ FUNC_STAT ] = "FUNC_STAT";
tag [ OMP_ONETHREAD_DIR ] = "OMP_ONETHREAD_DIR";
tag [ OMP_THREADPRIVATE_DIR ] = "OMP_THREADPRIVATE_DIR";
tag [ OMP_DEFAULT_SECTION_DIR ] = "OMP_DEFAULT_SECTION_DIR";
tag [ OMP_COLLAPSE ] = "OMP_COLLAPSE";
tag [ ACC_REGION_DIR ] = "ACC_REGION_DIR";
tag [ ACC_END_REGION_DIR ] = "ACC_END_REGION_DIR";
tag [ ACC_CALL_STMT ] = "ACC_CALL_STMT";
tag [ ACC_KERNEL_HEDR ] = "ACC_KERNEL_HEDR";
tag [ ACC_GET_ACTUAL_DIR ] = "ACC_GET_ACTUAL_DIR";
tag [ ACC_ACTUAL_DIR ] = "ACC_ACTUAL_DIR";
tag [ ACC_CHECKSECTION_DIR ] = "ACC_CHECKSECTION_DIR";
tag [ ACC_END_CHECKSECTION_DIR ] = "ACC_END_CHECKSECTION_DIR";
tag [ ACC_ROUTINE_DIR ] = "ACC_ROUTINE_DIR";
tag [ ACC_TIE_OP ] = "ACC_TIE_OP";
tag [ ACC_INLOCAL_OP ] = "ACC_INLOCAL_OP";
tag [ ACC_INOUT_OP ] = "ACC_INOUT_OP";
tag [ ACC_IN_OP ] = "ACC_IN_OP";
tag [ ACC_OUT_OP ] = "ACC_OUT_OP";
tag [ ACC_LOCAL_OP ] = "ACC_LOCAL_OP";
tag [ ACC_PRIVATE_OP ] = "ACC_PRIVATE_OP";
tag [ ACC_DEVICE_OP ] = "ACC_DEVICE_OP";
tag [ ACC_CUDA_OP ] = "ACC_CUDA_OP";
tag [ ACC_HOST_OP ] = "ACC_HOST_OP";
tag [ ACC_GLOBAL_OP ] = "ACC_GLOBAL_OP";
tag [ ACC_ATTRIBUTES_OP ] = "ACC_ATTRIBUTES_OP";
tag [ ACC_VALUE_OP ] = "ACC_VALUE_OP";
tag [ ACC_SHARED_OP ] = "ACC_SHARED_OP";
tag [ ACC_CONSTANT_OP ] = "ACC_CONSTANT_OP";
tag [ ACC_USES_OP ] = "ACC_USES_OP";
tag [ ACC_CALL_OP ] = "ACC_CALL_OP";
tag [ ACC_CUDA_BLOCK_OP ] = "ACC_CUDA_BLOCK_OP";
tag [ ACC_TARGETS_OP ] = "ACC_TARGETS_OP";
tag [ ACC_ASYNC_OP ] = "ACC_ASYNC_OP";
tag [ SPF_ANALYSIS_DIR ] = "SPF_ANALYSIS_DIR";
tag [ SPF_PARALLEL_DIR ] = "SPF_PARALLEL_DIR";
tag [ SPF_TRANSFORM_DIR ] = "SPF_TRANSFORM_DIR";
tag [ SPF_NOINLINE_OP ] = "SPF_NOINLINE_OP";
tag [ SPF_PARALLEL_REG_DIR ] = "SPF_PARALLEL_REG_DIR";
tag [ SPF_END_PARALLEL_REG_DIR ] = "SPF_END_PARALLEL_REG_DIR";
tag [ SPF_REGION_NAME ] = "SPF_REGION_NAME";
tag [ SPF_EXPAND_OP ] = "SPF_EXPAND_OP";
tag [ SPF_FISSION_OP ] = "SPF_FISSION_OP";
tag [ SPF_SHRINK_OP ] = "SPF_SHRINK_OP";
tag [ SPF_CHECKPOINT_DIR ] = "SPF_CHECKPOINT_DIR";
tag [ SPF_TYPE_OP ] = "SPF_TYPE_OP";
tag [ SPF_VARLIST_OP ] = "SPF_VARLIST_OP";
tag [ SPF_EXCEPT_OP ] = "SPF_EXCEPT_OP";
tag [ SPF_FILES_COUNT_OP ] = "SPF_FILES_COUNT_OP";
tag [ SPF_INTERVAL_OP ] = "SPF_INTERVAL_OP";
tag [ SPF_TIME_OP ] = "SPF_TIME_OP";
tag [ SPF_ITER_OP ] = "SPF_ITER_OP";
tag [ SPF_FLEXIBLE_OP ] = "SPF_FLEXIBLE_OP";
tag [ SPF_PARAMETER_OP ] = "SPF_PARAMETER_OP";
tag [ SPF_CODE_COVERAGE_OP ] = "SPF_CODE_COVERAGE_OP";
tag [ SPF_UNROLL_OP ] = "SPF_UNROLL_OP";

View File

@@ -1,7 +0,0 @@
all: tag.h
tag.h: head tag
( cat head; \
sed < tag \
'/#defin/s/\([^ ]*\) \([^ ]*\)\(.*\)/ tag \[ \2 \] = \"\2\";/')\
> tag.h

View File

@@ -1,2 +0,0 @@
#define VERSION_NUMBER "6.9"
#define VERSION_NUMBER_INT "69"

View File

@@ -1,167 +0,0 @@
/*********************************************************************/
/* pC++/Sage++ Copyright (C) 1993 */
/* Indiana University University of Oregon University of Rennes */
/*********************************************************************/
/* Modified By Jenq-Kuen Lee Nov 20, 1987 */
extern int NoWarnings; /* Used by newer code pC++2dep (phb) */
extern int nowarnflag; /* Used by older obsolete code c2dep, f2dep */
/* The following variable used by verrors.c */
extern int yylineno;
extern char *infname;
extern int nwarn;
extern int errcnt;
extern int errline;
extern int wait_first_include_name;
extern char *first_line_name;
/* leave it out */
/*
extern char yytext[];
extern int yyleng;
extern int lineno;
extern int needkwd;
extern int inioctl;
extern int shiftcase;
extern int parstate;
extern int blklevel;
extern int procclass;
extern long procleng;
extern int nentry;
extern int blklevel;
extern int undeftype;
extern int dorange;
extern char intonly;
*/
extern int num_bfnds; /* total # of bif nodes */
extern int num_llnds; /* total # of low level nodes */
extern int num_symbs; /* total # of symbol nodes */
extern int num_types; /* total # of types nodes */
extern int num_blobs; /* total # of blob nodes */
extern int num_sets; /* total # of set nodes */
extern int num_cmnt;
extern int num_def; /* total # of dependncy nodes */
extern int num_dep;
extern int num_deflst;
extern int num_label; /* total # of label nodes */
extern int num_files;
extern int cur_level; /* current block level */
extern int next_level;
extern char *tag[610];
extern PTR_SYMB global_list;
extern PTR_BFND head_bfnd, /* start of bfnd chain */
cur_bfnd, /* poextern int to current bfnd */
pred_bfnd, /* used in finding the predecessor */
last_bfnd;
extern PTR_LLND head_llnd, cur_llnd;
extern PTR_SYMB head_symb, cur_symb;
extern PTR_TYPE head_type, cur_type;
extern PTR_LABEL head_label, cur_label, thislabel;
extern PTR_FNAME head_file,cur_thread_file;
extern PTR_BLOB head_blob, cur_blob;
extern PTR_SETS head_sets, cur_sets;
extern PTR_DEF head_def, cur_def;
extern PTR_DEFLST head_deflst, cur_deflst;
extern PTR_DEP head_dep, cur_dep, pre_dep;
/*************************************************************************/
/* DECLARE is defined to be null (nothing) so that the variable is declared,
or it is defined to be "extern". (phb) */
#ifndef DECLARE
#define DECLARE extern
#endif
DECLARE PTR_CMNT head_cmnt, cur_cmnt;
DECLARE PTR_BLOB global_blob ;
DECLARE PTR_BFND global_bfnd;
DECLARE PTR_SYMB star_symb;
DECLARE PTR_TYPE vartype;
DECLARE PTR_CMNT comments;
#undef DECLARE
/*************************************************************************/
extern PTR_CMNT cur_comment;
/* struct Ctlframe *ctlsp = (struct Ctlframe *)NULL; */
extern PTR_TYPE make_type();
extern PTR_SYMB make_symb();
extern PTR_BFND make_bfnd();
extern PTR_BFND make_bfndnt(); /* non-threaded ver. (lib/oldsrc/make_nodes.c */
extern PTR_BFND get_bfnd();
extern PTR_BLOB make_blob();
extern PTR_LLND make_llnd();
extern void init_hash();
extern PTR_TYPE global_int, global_float, global_double, global_char, global_string,global_void;
extern PTR_TYPE global_bool, global_complex, global_default, global_string_2;
extern char *ckalloc();
extern char *copyn(), *copys();
#define ALLOC(x) (struct x *) ckalloc(sizeof(struct x))
#define INLOOP(x) ((LOOP_NODE <= x) && (x <= WHILE_NODE))
/* Used By pC++2dep */
extern int ExternLangDecl; /* PHB */
extern int mod_offset ;
extern int old_line ;
extern int branch_flag;
extern int main_type_flag ;
extern int primary_flag;
extern int function_flag ;
extern int friend_flag ;
extern int cur_flag ;
extern int exception_flag ;
extern PTR_SYMB first_symbol,right_symbol ;
extern PTR_BFND passed_bfnd;
extern PTR_BFND new_cur_bfnd ;
extern PTR_LLND new_cur_llnd ;
extern PTR_TYPE new_cur_type ;
extern PTR_SYMB new_cur_symb;
extern char *new_cur_fname;
extern char *line_pos_fname;
extern PTR_HASH cur_id_entry ;
extern PTR_CMNT new_cur_comment;
extern int yydebug ;
extern int TRACEON ;
extern int declare_flag ;
extern int not_fetch_yet ; /* for comments */
extern int recursive_yylex; /* for comments */
extern int line_pos_1 ;
extern PTR_FILE fi;
PTR_TYPE get_type();
PTR_LABEL get_label();
extern PTR_SYMB elementtype_symb;

View File

@@ -1,126 +0,0 @@
/*********************************************************************/
/* pC++/Sage++ Copyright (C) 1993 */
/* Indiana University University of Oregon University of Rennes */
/*********************************************************************/
/* Modified By Jenq-Kuen Lee Sep 30, 1987 */
/* Define constants for communication with parse.y. */
/* Copyright (C) 1987 Free Software Foundation, Inc. */
#include <stdio.h>
enum rid
{
RID_UNUSED,
RID_INT,
RID_CHAR,
RID_FLOAT,
RID_DOUBLE,
RID_VOID,
RID_UNUSED1,
RID_UNSIGNED,
RID_SHORT,
RID_LONG,
RID_AUTO,
RID_STATIC,
RID_EXTERN,
RID_REGISTER,
RID_TYPEDEF,
RID_SIGNED,
RID_CONST,
RID_VOLATILE,
RID_PRIVATE,
RID_FUTURE,
RID_VIRTUAL,
RID_INLINE,
RID_FRIEND,
RID_PUBLIC,
RID_PROTECTED,
RID_SYNC,
RID_GLOBL,
RID_ATOMIC,
RID_KSRPRIVATE,
RID_RESTRICT,
RID_MAX,
RID_CUDA_GLOBAL,
RID_CUDA_SHARED,
RID_CUDA_DEVICE,
LONG_UNSIGNED_TYPE_CONST, /* For numerical constant */
LONG_INTEGER_TYPE_CONST,
UNSIGNED_TYPE_CONST,
INTEGER_TYPE_CONST,
FLOAT_TYPE_CONST,
LONG_DOUBLE_TYPE_CONST,
DOUBLE_TYPE_CONST,
/* For char constant */
UNSIGNED_CHAR_TYPE_CONST,
CHAR_TYPE_CONST,
CHAR_ARRAY_TYPE_CONST,
PLUS_EXPR , /* Statement code */
MINUS_EXPR,
BIT_AND_EXPR,
BIT_IOR_EXPR,
MULT_EXPR,
TRUNC_DIV_EXPR,
TRUNC_MOD_EXPR,
BIT_XOR_EXPR,
LSHIFT_EXPR ,
RSHIFT_EXPR,
LT_EXPR,
GT_EXPR,
LE_EXPR,
GE_EXPR,
NE_EXPR,
EQ_EXPR
};
/* #define RID_FIRST_MODIFIER RID_UNSIGNED */
#define NEXT_FULL 10 /*for comments type, FULL, HALF, NEXT_FULL */
/* for access_flag */
#define BIT_PROTECTED 1 /* note: also see PROTECTED_FIELD */
#define BIT_PUBLIC 2 /* note: also see PUBLIC_FIELD */
#define BIT_PRIVATE 4 /* note: also see PRIVATE_FIELD */
#define BIT_FUTURE 8
#define BIT_VIRTUAL 16
#define BIT_INLINE 32
/*for signed_flag */
#define BIT_UNSIGNED 64
#define BIT_SIGNED 128
/* for long_short_flag */
#define BIT_SHORT 256
#define BIT_LONG 512
/* for mod_flag */
#define BIT_VOLATILE 1024
#define BIT_CONST 1024*2
#define BIT_GLOBL 1024*128*2
#define BIT_SYNC 1024*128*4
#define BIT_ATOMIC 1024*128*8
#define BIT_KSRPRIVATE 1024*128*16
#define BIT_RESTRICT 1024*128*32
/* for storage flag */
#define BIT_TYPEDEF 1024*4
#define BIT_EXTERN 1024*8
#define BIT_AUTO 1024*128 /* swapped values for AUTO and FRIEND */
#define BIT_STATIC 1024*32
#define BIT_REGISTER 1024*64
#define BIT_FRIEND 1024*16 /* so that friend would fit in u_short BW*/
#define MAX_BIT 1024*128*64
#define STORAGE_FLAG 1024*(4+8+16+32+64+128)
#define BIT_OPENMP 1024*128*128 /* OpenMP Fortran */
#define BIT_CUDA_GLOBAL 1024*128*256 /* Cuda */
#define BIT_CUDA_SHARED 1024*128*512 /* Cuda */
#define BIT_CUDA_DEVICE 1024*128*1024 /* Cuda */

View File

@@ -1,182 +0,0 @@
/*********************************************************************/
/* pC++/Sage++ Copyright (C) 1993 */
/* Indiana University University of Oregon University of Rennes */
/*********************************************************************/
/* TAG : pC++2dep used Created by Jenq_kuen Lee Nov 28, 1987 */
/* definitions of Some Key_echo */
/* Define results of standard character escape sequences. */
#define TARGET_BELL 007
#define TARGET_BS 010
#define TARGET_TAB 011
#define TARGET_NEWLINE 012
#define TARGET_VT 013
#define TARGET_FF 014
#define TARGET_CR 015
#define BITS_PER_UNIT 8
#define pedantic 1
/* Debugging flag */
/* switch used for parser */
#define UP_TO_CLASS 6
#define UP_ONE_LEVEL 5
#define UP_TO_NODECL 4
#define UP_TO_FUNC_HEDR 3
#define OTHER 2
#define ON 1
#define OFF 0
/* switch used for parser */
#define ONE 1
#define TWO 2
#define THREE 3
#define DONOT_CARE 0
#define TYPE_CLEAN 0
#define TYPE_ONE 1
#define TYPE_TWO 2
#define TYPE_THREE 3
#define TYPE_FOUR 4
#define TYPE_FIVE 5
#define BRANCH_OFF 0
#define BRANCH_ON 1
/* flag for declarator rule */
/* information kept in cur_flag */
#define RULE_PARAM 1
#define RULE_ID 2
#define RULE_MULTIPLE_ID 4
#define RULE_LR 8
#define RULE_DEREF 16
#define RULE_ARRAY 32
#define RULE_ARRAY_E 64
#define RULE_CLASSINIT 128
#define RULE_ERROR 256
#define LAZY_INSTALL 512
#define CLEAN 0
/* flag for primary_flag */
#define ID_ONLY 1
#define RANGE_APPEAR 2
#define EXCEPTION_ON 4
#define EXPR_LR 8
#define VECTOR_CONST_APPEAR 16
#define ARRAY_OP_NEED 32
/* flag for access_class for parameter_flag */
#define XDECL 4096
/* automata state for comments.c */
#define ZERO 0
#define STATE_1 1
#define STATE_2 2
#define STATE_3 3
#define STATE_4 4
#define STATE_5 5
#define STATE_6 6
#define STATE_7 7
#define STATE_8 8
#define STATE_9 9
#define STATE_10 10
#define STATE_11 11
#define STATE_12 12
#define STATE_13 13
#define STATE_14 14
#define STATE_15 15
#define STATE_16 16
#define STATE_17 17
#define STATE_18 18
#define STATE_19 19
#define STATE_20 20
#define IF_STATE 30
#define IF_STATE_2 32
#define IF_STATE_3 33
#define IF_STATE_4 34
#define ELSE_EXPECTED_STATE 35
#define BLOCK_STATE 40
#define BLOCK_STATE_2 42
#define WHILE_STATE 50
#define WHILE_STATE_2 52
#define FOR_STATE 55
#define FOR_STATE_2 56
#define CASE_STATE 57
#define COEXEC_STATE 58
#define COEXEC_STATE_2 59
#define COLOOP_STATE 60
#define COLOOP_STATE_2 61
#define DO_STATE 62
#define DO_STATE_1 63
#define DO_STATE_2 64
#define DO_STATE_3 65
#define DO_STATE_4 66
#define DO_STATE_5 67
#define DO_STATE_6 68
#define RETURN_STATE 70
#define RETURN_STATE_2 71
#define RETURN_STATE_3 72
#define GOTO_STATE 75
#define GOTO_STATE_2 76
#define SWITCH_STATE 80
#define SWITCH_STATE_2 81
#define STATE_ARG 82
#define BLOCK_STATE_WAITSEMI 83
#define TEMPLATE_STATE 84
#define TEMPLATE_STATE_2 85
#define CONSTR_STATE 86
/* for comments.c */
#define MAX_NESTED_SIZE 800
/* parameter for function body and struct declaration body */
#define NOT_SEEN 1
#define BEEN_SEEN 0
#define FUNCTION_BODY_APPEAR 700
/* parameter for find_type_symbol */
#define TYPE_ONLY 1 /* TYPE_NAME */
#define STRUCT_ONLY 2
#define VAR_ONLY 4
#define FIELD_ONLY 8
#define FUNCTION_NAME_ONLY 16
#define MEMBER_FUNC_ONLY 32
/*flag for the error message of lazy_install */
/* No More symbol, Alliant C compiler's symbol table is full */
/* #define NOW 1 */
/* #define DELAY 2 */
/* For symbptr->attr */
#define ATT_CLUSTER 0
#define ATT_GLOBAL 1
#define PURE 8
#define PRIVATE_FIELD 16
#define PROTECTED_FIELD 32
#define PUBLIC_FIELD 64
#define ELEMENT_FIELD 128
#define COLLECTION_FIELD 256
#define CONSTRUCTOR 512
#define DESTRUCTOR 1024
#define PCPLUSPLUS_DOSUBSET 2048
#define INVALID 4096
#define SUBCOLLECTION 4096*2
/* #define OVOPERATOR 4096*4 (defined in macro.h) (phb) */
#define VIRTUAL_DESTRUCTOR 4096*8 /* added by BW */
/* For find_type_symbol() */
/* for check_field_decl_3 */
#define ALL_FIELDS 1
#define CLASS_ONLY 2
#define COLLECTION_ONLY 3
#define ELEMENT_ONLY 4
#define FUNCTION_ONLY 5
/* for collection nested dimension */
#define MAX_NESTED_DIM 5

View File

@@ -1,71 +0,0 @@
/*********************************************************************/
/* pC++/Sage++ Copyright (C) 1993 */
/* Indiana University University of Oregon University of Rennes */
/*********************************************************************/
#define MAX_WINDOW 256
#define MAX_ARRAYREF 256
#define MAX_STEP 10000
#define NO_STEP 10000
struct WINDOW
{
int dimension;
int Array_Id[MAX_ARRAYREF];
int level;
int level_update;
char name[64];
char gain[128];
int coeff[MAXTILE][MAXTILE];
int inf[MAXTILE];
int sup[MAXTILE];
int nb_ref;
PTR_SYMB symb;
PTR_SYMB array_symbol;
PTR_SYMB pt;
int lambda[MAXTILE];
int delta[MAXTILE];
int size[MAXTILE];
int cst[MAXTILE];
};
struct WINDOWS
{
int nb_windows;
int nb_loop;
int tile_order[MAXTILE];
int tile_sup[MAXTILE];
int tile_inf[MAXTILE];
int tile_bounds[MAXTILE];
struct WINDOW thewindow[MAX_WINDOW];
PTR_SYMB index[MAXTILE];
};
#define WINDS_NB(NODE) ((NODE).nb_windows)
#define WINDS_INDEX(NODE) ((NODE).index)
#define WINDS_NB_LOOP(NODE) ((NODE).nb_loop)
#define WINDS_TILE_INF(NODE) ((NODE).tile_inf)
#define WINDS_TILE_SUP(NODE) ((NODE).tile_sup)
#define WINDS_TILE_ORDER(NODE) ((NODE).tile_order)
#define WINDS_TILE_BOUNDS(NODE) ((NODE).tile_bounds)
#define WINDS_WINDOWS(NODE,NUM) (&((NODE).thewindow[NUM]))
#define WIND_DIM(NODE) ((NODE)->dimension)
#define WIND_ARRAY(NODE) ((NODE)->Array_Id)
#define WIND_LEVEL(NODE) ((NODE)->level)
#define WIND_LEVEL_UPDATE(NODE) ((NODE)->level_update)
#define WIND_NB_REF(NODE) ((NODE)->nb_ref)
#define WIND_SYMBOL(NODE) ((NODE)->symb)
#define WIND_POINTER(NODE) ((NODE)->pt)
#define WIND_NAME(NODE) ((NODE)->name)
#define WIND_GAIN(NODE) ((NODE)->gain)
#define WIND_COEFF(NODE) ((NODE)->coeff)
#define WIND_INF(NODE) ((NODE)->inf)
#define WIND_SUP(NODE) ((NODE)->sup)
#define WIND_LAMBDA(NODE) ((NODE)->lambda)
#define WIND_DELTA(NODE) ((NODE)->delta)
#define WIND_SIZE_DIM(NODE) ((NODE)->size)
#define WIND_DIM_CST(NODE) ((NODE)->cst)
#define WIND_ARRAY_SYMBOL(NODE) ((NODE)->array_symbol)

View File

@@ -1,6 +0,0 @@
set(DVM_SAGE_INCLUDE_DIRS ${DVM_SAGE_INCLUDE_DIRS}
${CMAKE_CURRENT_SOURCE_DIR}/include)
set(DVM_SAGE_INCLUDE_DIRS ${DVM_SAGE_INCLUDE_DIRS} PARENT_SCOPE)
add_subdirectory(newsrc)
add_subdirectory(oldsrc)

View File

@@ -1,55 +0,0 @@
#######################################################################
## pC++/Sage++ Copyright (C) 1993 ##
## Indiana University University of Oregon University of Rennes ##
#######################################################################
# sage/lib/Makefile (phb)
SHELL = /bin/sh
INSTALL = /bin/cp
# Flags passed down to Makefiles in subdirectories
MFLAGS =
CC = gcc
#CC=cc#ENDIF##USE_CC#
CXX = g++
CXX = /usr/WorkShop/usr/bin/DCC
LINKER = $(CC)
NOP = echo
#C90#EXTRAOBJ=alloca-c90.o#ENDIF#
#C90#NOP = @/bin/rm -f alloca-c90.o#ENDIF#
SUBDIR1 = oldsrc newsrc
# Subdirectories to make resursively
SUBDIR = ${SUBDIR1}
all: ${SUBDIR} $(EXTRAOBJ)
clean:
$(NOP)
for i in ${SUBDIR1}; do (cd $$i; $(MAKE) "MAKE=$(MAKE)" clean); done
install: FRC $(EXTRAOBJ)
@for i in ${SUBDIR1}; do (cd $$i; \
echo " *** COMPILING $$i DIRECTORY";\
$(MAKE) "MAKE=$(MAKE)" "CC=$(CC)" "CXX=$(CXX)" "LINKER=$(LINKER)" install); done
# If you are on a C90, you will need the gnu alloca()
alloca-c90.o: alloca-c90.c
$(CC) -c alloca-c90.c
if [ -d c90 ] ; then true; \
else mkdir c90 ;fi
$(INSTALL) alloca-c90.o c90
.RECURSIVE: ${SUBDIR}
${SUBDIR}: FRC
@echo " *** COMPILING $@ DIRECTORY"; cd $@; \
$(MAKE) "MAKE=$(MAKE)" "CC=$(CC)" "CXX=$(CXX)" "LINKER=$(LINKER)" all
FRC:

View File

@@ -1,95 +0,0 @@
////////////////////////////////////////////////////////////////////////////////////////////////////////
//
// Defines the data structure for attributes in sage
// attributes can be used to store any information for any statement, expression, symbol or types nodes
// F. Bodin Indiana July 94.
//
//
////////////////////////////////////////////////////////////////////////////////////////////////////////
class SgAttribute{
private:
// the attribute data;
int type; // a label;
void *data; // the data;
int dataSize; // the size of the data in bytes to allow data to be copied;
SgAttribute *next; // to the next attribute of a statements (do that way or not??);
// link to sage node, allow to go from an attribute to sage stuffs;
typenode typeNode; // indicates if SgStatement, SgExpression, ... ptToSage is pointed to;
void *ptToSage; // pointer to SgStatement, SgExpression, ... ;
int fileNumber; // the file methods;
// the methods to access the structure of an attributes;
public:
SgAttribute(int t, void *pt, int size, SgStatement &st, int filenum);
SgAttribute(int t, void *pt, int size, SgSymbol &st, int filenum);
SgAttribute(int t, void *pt, int size, SgExpression &st, int filenum);
SgAttribute(int t, void *pt, int size, SgType &st, int filenum);
SgAttribute(int t, void *pt, int size, SgLabel &st, int filenum); //Kataev 21.03.2013
SgAttribute(int t, void *pt, int size, SgFile &st, int filenum); //Kataev 15.07.2013
SgAttribute(const SgAttribute& copy)
{
type = copy.type;
data = copy.data;
dataSize = copy.dataSize;
next = NULL;
typeNode = copy.typeNode;
ptToSage = copy.ptToSage;
fileNumber = copy.fileNumber;
}
~SgAttribute();
int getAttributeType();
void setAttributeType(int t);
void *getAttributeData();
void *setAttributeData(void *d);
int getAttributeSize();
void setAttributeSize(int s);
typenode getTypeNode();
void *getPtToSage();
void setPtToSage(void *sa);
void resetPtToSage();
void setPtToSage(SgStatement &st);
void setPtToSage(SgSymbol &st);
void setPtToSage(SgExpression &st);
void setPtToSage(SgType &st);
void setPtToSage(SgLabel &st); //Kataev 21.03.2013
void setPtToSage(SgFile &st); //Kataev 15.07.2013
SgStatement *getStatement();
SgExpression *getExpression();
SgSymbol *getSgSymbol();
SgType *getType();
SgLabel *getLabel(); //Kataev 21.03.2013
SgFile *getFile(); //Kataev 15.07.2013
int getfileNumber();
SgAttribute *copy();
SgAttribute *getNext();
void setNext(SgAttribute *s);
int listLenght();
SgAttribute *getInlist(int num);
void save(FILE *file);
void save(FILE *file, void (*savefunction)(void *dat,FILE *f));
};
///////////////////////////////////////////////////////////////////////////////////////
// The ATTRIBUTE TYPE ALREADY USED
///////////////////////////////////////////////////////////////////////////////////////
#define DEPENDENCE_ATTRIBUTE -1001
#define INDUCTION_ATTRIBUTE -1002
#define ACCESS_ATTRIBUTE -1003
#define DEPGRAPH_ATTRIBUTE -1004
#define USEDLIST_ATTRIBUTE -1005
#define DEFINEDLIST_ATTRIBUTE -1006
#define NOGARBAGE_ATTRIBUTE -1007
#define GARBAGE_ATTRIBUTE -1008
// store the annotation expression; it is then visible from the
// garbage collection
#define ANNOTATION_EXPR_ATTRIBUTE -1009

View File

@@ -1,124 +0,0 @@
// ----------------------------------
// Darryl Brown
// University of Oregon pC++/Sage++
//
// baseClasses.h - module for basic classes used by
// breakpoint modules.
//
//
// ----------------------------------
//if already included, skip this file...
#ifdef BASE_CL_ALREADY_INCLUDED
// do nothing;
#else
#define BASE_CL_ALREADY_INCLUDED 1
// -------------------------------------------------------------;
// this class is the base pointer type of all elements ;
// stored in linked lists;
class brk_basePtr {
public:
virtual void print();
// this function should be overridden by later classes.;
virtual void print(int);
// this function should be overridden by later classes.;
virtual void printToBuf(int, char *);
// this function should be overridden by later classes.;
virtual void print(int t, FILE *fptr);
// this function should be overridden by later classes.;
virtual void printAll();
// this function should be overridden by later classes.;
virtual void printAll(int);
// this function should be overridden by later classes.;
#if 0
virtual void printAll(int, FILE *);
// this function should be overridden by later classes.;
virtual void printAll(FILE *);
// this function should be overridden by later classes.;
#endif
int (* userCompare)(brk_basePtr *, brk_basePtr *);
// this function should be overridden by later classes.;
virtual int compare(brk_basePtr *);
// this function should be overridden by later classes.;
brk_basePtr();
};
// -------------------------------------------------------------
// the nodes of the linked lists kept for children and parents of each class;
class brk_ptrNode : public brk_basePtr {
public:
brk_ptrNode *next; // next node;
brk_ptrNode *prev; // previous node;
brk_basePtr *node; // the ptr to the hierarchy at this node;
// constructors;
brk_ptrNode (void);
brk_ptrNode (brk_basePtr *h);
virtual int compare(brk_basePtr *);
// compares this heirarchy with another alphabetically using className;
};
// -------------------------------------------------------------
// the class implementing the linked list for
class brk_linkedList : public brk_basePtr {
public:
brk_ptrNode *end; // end of list;
brk_ptrNode *start; // start of list;
brk_ptrNode *current; // pointer to current element in list,
// used for traversal of list.;
int length; // length of list;
// constructor;
brk_linkedList();
// access functions;
void push (brk_basePtr *h); // push hierarchy h onto front of list;
void pushLast (brk_basePtr *h); // push hierarchy h onto back of list;
brk_basePtr *pop (); // remove and return the first element in list;
brk_basePtr *popLast (); // remove and return the last element in list;
brk_basePtr *searchList (); // begin traversal of list;
brk_basePtr *nextItem(); // give the next item in list during traversal;
brk_basePtr *remove (int i); // remove & return the i-th element of list;
brk_basePtr *getIth (int i); // return the i-th element of list;
brk_basePtr *insert(int i, brk_basePtr * p);
// insert *p at point i in list;
brk_ptrNode *findMember (brk_basePtr *); // look for this element and
// return the brk_ptrNode that points to it;
int memberNum(brk_ptrNode *); // what order does this element fall in list;
virtual void print(int); // print all elements;
virtual void print(int, FILE *ftpr); // print all elements;
virtual void print(); // print all elements;
virtual void printIth(int i); // print i-th element of list;
virtual void printToBuf(int, char *);
// this function should be overridden by later classes.;
void sort (); // sorts the list, elements must have compare function.,;
void sort(int (* compareFunc) (brk_basePtr *, brk_basePtr *));
virtual void swap(brk_ptrNode *l, brk_ptrNode *r);
// swaps these two basic elements
};
// ---------------------------------------------------
// external declarations.
// ---------------------------------------------------
extern char * brk_stringSave(char * str);
extern int brk_strsame(char * str, char * str1);
extern void brk_printtabs(int tabs);
extern void brk_printtabs(int tabs, FILE *fptr);
// here is the endif
#endif

View File

@@ -1,588 +0,0 @@
/*********************************************************************/
/* pC++/Sage++ Copyright (C) 1993 */
/* Indiana University University of Oregon University of Rennes */
/*********************************************************************/
/* format description
'_' stands for no.
'e' stands for control end statement
'd' declaration statement // what is not executable
DEFNODECODE(f1,f2,f3,f4,f5,f6,f7,f8,f9,f10)
f1 : variant of the node
f2 : string that gives the name (not used yet)
f3 : kind of node (stmt, declaration); not used yet
f4 : number of child (2 if blob list2, 1 if cp, 0 if leaf)
f5 : type of the node BIFNODE...
-------- particular info ---------------
f6 : is a declaration node 'd' or executable 'e' ,'c' controlend
f7 : is a declarator node if bif node 's' (for structure, union , enum)
for low lewe node c indicate constant expression
f8 : has a symbol associated 's' valid for bif and llnode
f9 : is a control parent 'p' or a control end 'c'
f10: not used yet
*/
DEFNODECODE(GLOBAL,"nodetext",'s',1,BIFNODE, 'd','_','_','_','_')
DEFNODECODE(PROG_HEDR,"nodetext",'s',1,BIFNODE, 'd','_','_','_','_')
DEFNODECODE(PROC_HEDR,"nodetext",'s',1,BIFNODE, 'd','_','_','_','_')
DEFNODECODE(PROS_HEDR,"nodetext",'s',1,BIFNODE, 'd','_','_','_','_')
DEFNODECODE(BASIC_BLOCK,"nodetext",'s',1,BIFNODE, 'e','_','_','_','_')
DEFNODECODE(CONTROL_END,"nodetext",'s',0,BIFNODE, 'c','_','_','_','_')
DEFNODECODE(IF_NODE,"nodetext",'s',2,BIFNODE, 'e','_','_','_','_')
DEFNODECODE(WHERE_BLOCK_STMT,"nodetext",'s',2,BIFNODE, 'e','_','_','_','_')
DEFNODECODE(ARITHIF_NODE,"nodetext",'s',0,BIFNODE, 'e','_','_','_','_')
DEFNODECODE(LOGIF_NODE,"nodetext",'s',1,BIFNODE, 'e','_','_','_','_')
DEFNODECODE(FORALL_STAT,"nodetext",'s',1,BIFNODE, 'e','_','_','_','_')
DEFNODECODE(LOOP_NODE,"nodetext",'s',1,BIFNODE, 'e','_','_','_','_')
DEFNODECODE(FOR_NODE,"nodetext",'s',1,BIFNODE, 'e','_','_','_','_')
DEFNODECODE(PROCESS_DO_STAT,"nodetext",'s',1,BIFNODE, 'e','_','_','_','_')
DEFNODECODE(TRY_STAT,"nodetext",'s',1,BIFNODE, 'e','_','_','_','_')
DEFNODECODE(CATCH_STAT,"nodetext",'s',0,BIFNODE, 'e','_','_','_','_')
DEFNODECODE(FORALL_NODE,"nodetext",'s',1,BIFNODE, 'e','_','_','_','_')
DEFNODECODE(WHILE_NODE,"nodetext",'s',1,BIFNODE, 'e','_','_','_','_')
DEFNODECODE(CDOALL_NODE,"nodetext",'s',1,BIFNODE, '_','_','_','_','_')
DEFNODECODE(SDOALL_NODE,"nodetext",'s',1,BIFNODE, '_','_','_','_','_')
DEFNODECODE(DOACROSS_NODE,"nodetext",'s',1,BIFNODE, '_','_','_','_','_')
DEFNODECODE(CDOACROSS_NODE,"nodetext",'s',1,BIFNODE, '_','_','_','_','_')
DEFNODECODE(EXIT_NODE,"nodetext",'s',0,BIFNODE, '_','_','_','_','_')
DEFNODECODE(GOTO_NODE,"nodetext",'s',0,BIFNODE, '_','_','_','_','_')
DEFNODECODE(ASSGOTO_NODE,"nodetext",'s',0,BIFNODE, '_','_','_','_','_')
DEFNODECODE(COMGOTO_NODE,"nodetext",'s',0,BIFNODE, '_','_','_','_','_')
DEFNODECODE(PAUSE_NODE,"nodetext",'s',0,BIFNODE, '_','_','_','_','_')
DEFNODECODE(STOP_NODE,"nodetext",'s',0,BIFNODE, '_','_','_','_','_')
DEFNODECODE(ALLOCATE_STMT,"nodetext",'s',0,BIFNODE, '_','_','_','_','_')
DEFNODECODE(DEALLOCATE_STMT,"nodetext",'s',0,BIFNODE, '_','_','_','_','_')
DEFNODECODE(NULLIFY_STMT,"nodetext",'s',0,BIFNODE, '_','_','_','_','_')
DEFNODECODE(ASSIGN_STAT,"nodetext",'s',0,BIFNODE, '_','_','_','_','_')
DEFNODECODE(POINTER_ASSIGN_STAT,"nodetext",'s',0,BIFNODE, '_','_','_','_','_')
DEFNODECODE(M_ASSIGN_STAT,"nodetext",'s',0,BIFNODE, '_','_','_','_','_')
DEFNODECODE(PROC_STAT,"nodetext",'s',1,BIFNODE, '_','_','_','_','_')
DEFNODECODE(PROS_STAT,"nodetext",'s',1,BIFNODE, '_','_','_','_','_')
DEFNODECODE(PROS_STAT_LCTN,"nodetext",'s',2,BIFNODE, '_','_','_','_','_')
DEFNODECODE(PROS_STAT_SUBM,"nodetext",'s',2,BIFNODE, '_','_','_','_','_')
DEFNODECODE(ASSLAB_STAT,"nodetext",'s',0,BIFNODE, '_','_','_','_','_')
DEFNODECODE(SUM_ACC,"nodetext",'s',0,BIFNODE, '_','_','_','_','_')
DEFNODECODE(MULT_ACC,"nodetext",'s',0,BIFNODE, '_','_','_','_','_')
DEFNODECODE(MAX_ACC,"nodetext",'s',0,BIFNODE, '_','_','_','_','_')
DEFNODECODE(MIN_ACC,"nodetext",'s',0,BIFNODE, '_','_','_','_','_')
DEFNODECODE(CAT_ACC,"nodetext",'s',0,BIFNODE, '_','_','_','_','_')
DEFNODECODE(OR_ACC,"nodetext",'s',0,BIFNODE, '_','_','_','_','_')
DEFNODECODE(AND_ACC,"nodetext",'s',0,BIFNODE, '_','_','_','_','_')
DEFNODECODE(READ_STAT,"nodetext",'s',0,BIFNODE, '_','_','_','_','_')
DEFNODECODE(WRITE_STAT,"nodetext",'s',0,BIFNODE, '_','_','_','_','_')
DEFNODECODE(OTHERIO_STAT,"nodetext",'s',0,BIFNODE, '_','_','_','_','_')
DEFNODECODE(BLOB,"nodetext",'s',0,BIFNODE, '_','_','_','_','_')
DEFNODECODE(SIZES,"nodetext",'s',0,BIFNODE, '_','_','_','_','_')
DEFNODECODE(FUNC_HEDR,"nodetext",'s',1,BIFNODE, 'd','_','_','_','_')
DEFNODECODE(MODULE_STMT,"nodetext",'s',1,BIFNODE, 'd','_','_','_','_')
DEFNODECODE(USE_STMT,"nodetext",'s',1,BIFNODE, 'd','_','_','_','_')
DEFNODECODE(WHERE_NODE,"nodetext",'s',1,BIFNODE, '_','_','_','_','_')
DEFNODECODE(ALLDO_NODE,"nodetext",'s',1,BIFNODE, '_','_','_','_','_')
DEFNODECODE(IDENTIFY,"nodetext",'s',0,BIFNODE, '_','_','_','_','_')
DEFNODECODE(FORMAT_STAT,"nodetext",'s',0,BIFNODE, '_','_','_','_','_')
DEFNODECODE(STOP_STAT,"nodetext",'s',0,BIFNODE, '_','_','_','_','_')
DEFNODECODE(RETURN_STAT,"nodetext",'s',0,BIFNODE, '_','_','_','_','_')
DEFNODECODE(ELSEIF_NODE,"nodetext",'s',2,BIFNODE, '_','_','_','_','_')
DEFNODECODE(ELSEWH_NODE,"nodetext",'s',2,BIFNODE, '_','_','_','_','_')
DEFNODECODE(INCLUDE_LINE,"nodetext",'s',0,BIFNODE, '_','_','_','_','_')
DEFNODECODE(PREPROCESSOR_DIR,"nodetext",'s',0,BIFNODE, '_','_','_','_','_')
/*NO_OPnodes*/
DEFNODECODE(COMMENT_STAT,"nodetext",'s',0,BIFNODE, 'd','_','_','_','_')
DEFNODECODE(CONT_STAT,"nodetext",'s',0,BIFNODE, 'c','_','_','_','_')
DEFNODECODE(VAR_DECL,"nodetext",'s',0,BIFNODE, 'd','_','_','_','_')
DEFNODECODE(VAR_DECL_90,"nodetext",'s',0,BIFNODE, 'd','_','_','_','_')
DEFNODECODE(PARAM_DECL,"nodetext",'s',0,BIFNODE, 'd','_','_','_','_')
DEFNODECODE(COMM_STAT,"nodetext",'s',0,BIFNODE, 'd','_','_','_','_')
DEFNODECODE(EQUI_STAT,"nodetext",'s',0,BIFNODE, 'd','_','_','_','_')
DEFNODECODE(IMPL_DECL,"nodetext",'s',0,BIFNODE, 'd','_','_','_','_')
DEFNODECODE(DATA_DECL,"nodetext",'s',0,BIFNODE, 'd','_','_','_','_')
DEFNODECODE(SAVE_DECL,"nodetext",'s',0,BIFNODE, 'd','_','_','_','_')
DEFNODECODE(ENTRY_STAT,"nodetext",'s',0,BIFNODE, 'd','_','_','_','_')
DEFNODECODE(STMTFN_STAT,"nodetext",'s',0,BIFNODE, 'd','_','_','_','_')
DEFNODECODE(DIM_STAT,"nodetext",'s',0,BIFNODE, 'd','_','_','_','_')
DEFNODECODE(PROCESSORS_STAT,"nodetext",'s',0,BIFNODE, 'd','_','_','_','_')
DEFNODECODE(BLOCK_DATA,"nodetext",'s',0,BIFNODE, 'd','_','_','_','_')
DEFNODECODE(EXTERN_STAT,"nodetext",'s',0,BIFNODE, 'd','_','_','_','_')
DEFNODECODE(INTRIN_STAT,"nodetext",'s',0,BIFNODE, 'd','_','_','_','_')
DEFNODECODE(ENUM_DECL,"nodetext",'d',1,BIFNODE, 'd','e','_','_','_')
DEFNODECODE(CLASS_DECL,"nodetext",'d',1,BIFNODE, 'd','s','_','_','_')
DEFNODECODE(TECLASS_DECL,"nodetext",'d',1,BIFNODE, 'd','s','_','_','_')
DEFNODECODE(COLLECTION_DECL,"nodetext",'d',1,BIFNODE, 'd','s','_','_','_')
DEFNODECODE(TEMPLATE_FUNDECL,"nodetext",'d',1,BIFNODE, 'd','s','_','_','_')
DEFNODECODE(TEMPLATE_DECL,"nodetext",'d',1,BIFNODE, 'd','s','_','_','_')
DEFNODECODE(UNION_DECL,"nodetext",'d',1,BIFNODE, 'd','u','_','_','_')
DEFNODECODE(STRUCT_DECL,"nodetext",'d',1,BIFNODE, 'd','s','_','_','_')
DEFNODECODE(DERIVED_CLASS_DECL,"nodetext",'d',1,BIFNODE,'d','_','_','_','_')
DEFNODECODE(EXPR_STMT_NODE,"nodetext",'s',0,BIFNODE, '_','_','_','_','_')
DEFNODECODE(DO_WHILE_NODE,"nodetext",'s',1,BIFNODE, '_','_','_','_','_')
DEFNODECODE(SWITCH_NODE,"nodetext",'s',1,BIFNODE, '_','_','_','_','_')
DEFNODECODE(CASE_NODE,"nodetext",'s',1,BIFNODE, '_','_','_','_','_')
DEFNODECODE(DEFAULT_NODE,"nodetext",'s',1,BIFNODE, '_','_','_','_','_')
DEFNODECODE(BREAK_NODE,"nodetext",'s',0,BIFNODE, '_','_','_','_','_')
DEFNODECODE(CONTINUE_NODE,"nodetext",'s',0,BIFNODE, '_','_','_','_','_')
DEFNODECODE(RETURN_NODE,"nodetext",'s',0,BIFNODE, '_','_','_','_','_')
DEFNODECODE(ASM_NODE,"nodetext",'s',0,BIFNODE, '_','_','_','_','_')
DEFNODECODE(SPAWN_NODE,"nodetext",'s',0,BIFNODE, '_','_','_','_','_')
DEFNODECODE(PARFOR_NODE,"nodetext",'s',1,BIFNODE, '_','_','_','_','_')
DEFNODECODE(PAR_NODE,"nodetext",'s',0,BIFNODE, '_','_','_','_','_')
DEFNODECODE(LABEL_STAT,"nodetext",'s',0,BIFNODE, '_','_','_','_','_')
DEFNODECODE(PROS_COMM,"nodetext",'s',0,BIFNODE, 'd','_','_','_','_')
DEFNODECODE(ATTR_DECL,"nodetext",'s',0,BIFNODE, 'd','_','_','_','_')
DEFNODECODE(NAMELIST_STAT,"nodetext",'s',0,BIFNODE, 'd','_','_','_','_')
DEFNODECODE(PROCESSES_STAT,"nodetext",'s',0,BIFNODE, '_','_','_','_','_')
DEFNODECODE(PROCESSES_END,"nodetext",'s',0,BIFNODE, 'c','_','_','_','_')
DEFNODECODE(INPORT_DECL,"nodetext",'d',2,BIFNODE, 'd','-','_','_','_')
DEFNODECODE(OUTPORT_DECL,"nodetext",'d',2,BIFNODE, 'd','-','_','_','_')
DEFNODECODE(CHANNEL_STAT,"nodetext",'s',1,BIFNODE, 'e','-','_','_','_')
DEFNODECODE(MERGER_STAT,"nodetext",'s',1,BIFNODE, 'e','-','_','_','_')
DEFNODECODE(MOVE_PORT,"nodetext",'s',1,BIFNODE, 'e','-','_','_','_')
DEFNODECODE(SEND_STAT,"nodetext",'s',2,BIFNODE, 'e','-','_','_','_')
DEFNODECODE(RECEIVE_STAT,"nodetext",'s',2,BIFNODE, 'e','-','_','_','_')
DEFNODECODE(ENDCHANNEL_STAT,"nodetext",'s',1,BIFNODE, 'e','-','_','_','_')
DEFNODECODE(PROBE_STAT,"nodetext",'s',1,BIFNODE, 'e','-','_','_','_')
DEFNODECODE(INTENT_STMT,"nodetext",'s',0,BIFNODE, 'd','_','_','_','_')
DEFNODECODE(PRIVATE_STMT,"nodetext",'s',0,BIFNODE, 'd','_','_','_','_')
DEFNODECODE(PUBLIC_STMT,"nodetext",'s',0,BIFNODE, 'd','_','_','_','_')
DEFNODECODE(OPTIONAL_STMT,"nodetext",'s',0,BIFNODE, 'd','_','_','_','_')
DEFNODECODE(ALLOCATABLE_STMT,"nodetext",'s',0,BIFNODE, 'd','_','_','_','_')
DEFNODECODE(POINTER_STMT,"nodetext",'s',0,BIFNODE, 'd','_','_','_','_')
DEFNODECODE(TARGET_STMT,"nodetext",'s',0,BIFNODE, 'd','_','_','_','_')
DEFNODECODE(STATIC_STMT,"nodetext",'s',0,BIFNODE, 'd','_','_','_','_')
DEFNODECODE(MODULE_PROC_STMT,"nodetext",'s',0,BIFNODE, 'd','_','_','_','_')
DEFNODECODE(INTERFACE_STMT,"nodetext",'s',0,BIFNODE, 'd','_','_','_','_')
DEFNODECODE(INTERFACE_OPERATOR,"nodetext",'s',0,BIFNODE,'d','_','_','_','_')
DEFNODECODE(INTERFACE_ASSIGNMENT,"nodetext",'s',0,BIFNODE,'d','_','_','_','_')
DEFNODECODE(SEQUENCE_STMT,"nodetext",'s',0,BIFNODE, 'd','_','_','_','_')
/*****************variant tags for low level nodes********************/
DEFNODECODE(INT_VAL,"nodetext",'c',0,LLNODE, '_','c','_','_','_')
DEFNODECODE(FLOAT_VAL,"nodetext",'c',0,LLNODE, '_','c','_','_','_')
DEFNODECODE(DOUBLE_VAL,"nodetext",'c',0,LLNODE, '_','c','_','_','_')
DEFNODECODE(BOOL_VAL,"nodetext",'c',0,LLNODE, '_','c','_','_','_')
DEFNODECODE(CHAR_VAL,"nodetext",'c',0,LLNODE, '_','c','_','_','_')
DEFNODECODE(STRING_VAL,"nodetext",'c',0,LLNODE, '_','c','_','_','_')
DEFNODECODE(KEYWORD_VAL,"nodetext",'c',0,LLNODE, '_','c','_','_','_')
DEFNODECODE(COMPLEX_VAL,"nodetext",'c',0,LLNODE, '_','c','_','_','_')
DEFNODECODE(CONST_REF,"nodetext",'r',0,LLNODE, '_','_','s','_','_')
DEFNODECODE(VAR_REF,"nodetext",'r',0,LLNODE, '_','_','s','_','_')
DEFNODECODE(ARRAY_REF,"nodetext",'r',1,LLNODE, '_','_','s','_','_')
DEFNODECODE(PROCESSORS_REF,"nodetext",'r',1,LLNODE, '_','_','s','_','_')
DEFNODECODE(RECORD_REF,"nodetext",'r',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(STRUCTURE_CONSTRUCTOR,"nodetext",'r',1,LLNODE, '_','_','s','_','_')
DEFNODECODE(CONSTRUCTOR_REF,"nodetext",'r',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(ENUM_REF,"nodetext",'r',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(LABEL_REF,"nodetext",'r',0,LLNODE, '_','_','_','_','_')
DEFNODECODE(TYPE_OP,"nodetext",'e',1,LLNODE, '_','_','_','_','_')
DEFNODECODE(PORT_TYPE_OP,"nodetext",'e',1,LLNODE, '_','_','_','_','_')
DEFNODECODE(INPORT_TYPE_OP,"nodetext",'e',1,LLNODE, '_','_','_','_','_')
DEFNODECODE(OUTPORT_TYPE_OP,"nodetext",'e',1,LLNODE, '_','_','_','_','_')
DEFNODECODE(TYPE_REF,"nodetext",'e',0,LLNODE, '_','_','s','_','_')
DEFNODECODE(VAR_LIST,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(EXPR_LIST,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(RANGE_LIST,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(CASE_CHOICE,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(DEF_CHOICE,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(VARIANT_CHOICE,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(DDOT,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(KEYWORD_ARG,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(RANGE_OP,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(FORALL_OP,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(UPPER_OP,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(LOWER_OP,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(EQ_OP,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(LT_OP,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(GT_OP,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(NOTEQL_OP,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(LTEQL_OP,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(GTEQL_OP,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(ADD_OP,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(SUBT_OP,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(OR_OP,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(MULT_OP,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(DIV_OP,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(MOD_OP,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(AND_OP,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(EXP_OP,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(ARRAY_MULT,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(CONCAT_OP,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(XOR_OP,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(EQV_OP,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(NEQV_OP,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(MINUS_OP,"nodetext",'e',1,LLNODE, '_','_','_','_','_')
DEFNODECODE(NOT_OP,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(ASSGN_OP,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(DEREF_OP,"nodetext",'e',1,LLNODE, '_','_','_','_','_')
DEFNODECODE(RENAME_NODE,"nodetext",'e',1,LLNODE, '_','_','_','_','_')
DEFNODECODE(ONLY_NODE,"nodetext",'e',1,LLNODE, '_','_','_','_','_')
DEFNODECODE(POINTST_OP,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(FUNCTION_OP,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(MINUSMINUS_OP,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(PLUSPLUS_OP,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(BITAND_OP,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(BITOR_OP,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(DIMENSION_OP,"nodetext",'e',1,LLNODE, '_','_','_','_','_')
DEFNODECODE(ALLOCATABLE_OP,"nodetext",'e',0,LLNODE, '_','_','_','_','_')
DEFNODECODE(PARAMETER_OP,"nodetext",'e',0,LLNODE, '_','_','_','_','_')
DEFNODECODE(TARGET_OP,"nodetext",'e',0,LLNODE, '_','_','_','_','_')
DEFNODECODE(STATIC_OP,"nodetext",'e',0,LLNODE, '_','_','_','_','_')
DEFNODECODE(SAVE_OP,"nodetext",'e',0,LLNODE, '_','_','_','_','_')
DEFNODECODE(POINTER_OP,"nodetext",'e',0,LLNODE, '_','_','_','_','_')
DEFNODECODE(INTRINSIC_OP,"nodetext",'e',0,LLNODE, '_','_','_','_','_')
DEFNODECODE(OPTIONAL_OP,"nodetext",'e',0,LLNODE, '_','_','_','_','_')
DEFNODECODE(EXTERNAL_OP,"nodetext",'e',0,LLNODE, '_','_','_','_','_')
DEFNODECODE(PRIVATE_OP,"nodetext",'e',0,LLNODE, '_','_','_','_','_')
DEFNODECODE(PUBLIC_OP,"nodetext",'e',0,LLNODE, '_','_','_','_','_')
DEFNODECODE(IN_OP,"nodetext",'e',0,LLNODE, '_','_','_','_','_')
DEFNODECODE(OUT_OP,"nodetext",'e',0,LLNODE, '_','_','_','_','_')
DEFNODECODE(INOUT_OP,"nodetext",'e',0,LLNODE, '_','_','_','_','_')
DEFNODECODE(LABEL_ARG,"nodetext",'e',1,LLNODE, '_','_','_','_','_')
DEFNODECODE(STAR_RANGE,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(PROC_CALL,"nodetext",'e',2,LLNODE, '_','_','s','_','_')
DEFNODECODE(PROS_CALL,"nodetext",'e',2,LLNODE, '_','_','s','_','_')
DEFNODECODE(FUNC_CALL,"nodetext",'e',1,LLNODE, '_','_','s','_','_')
DEFNODECODE(OVERLOADED_CALL,"nodetext",'e',1,LLNODE, '_','_','s','_','_')
DEFNODECODE(THROW_OP,"nodetext",'e',1,LLNODE, '_','_','s','_','_')
DEFNODECODE(DEFINED_OP,"nodetext",'e',2,LLNODE, '_','_','s','_','_')
DEFNODECODE(ACCESS_REF,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(CONS,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(ACCESS,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(IOACCESS,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(CONTROL_LIST,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(SEQ,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(SPEC_PAIR,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(COMM_LIST,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(STMT_STR,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(EQUI_LIST,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(IMPL_TYPE,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(STMTFN_DECL,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(BIT_COMPLEMENT_OP,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(EXPR_IF,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(EXPR_IF_BODY,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(FUNCTION_REF,"nodetext",'e',2,LLNODE, '_','_','s','_','_')
DEFNODECODE(LSHIFT_OP,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(RSHIFT_OP,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(UNARY_ADD_OP,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(SIZE_OP,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(INTEGER_DIV_OP,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(SUB_OP,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(LE_OP,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(GE_OP,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(NE_OP,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(CLASSINIT_OP,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(CAST_OP,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(ADDRESS_OP,"nodetext",'e',1,LLNODE, '_','_','_','_','_')
DEFNODECODE(POINSTAT_OP,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(COPY_NODE,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(INIT_LIST,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(VECTOR_CONST,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(BIT_NUMBER,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(ARITH_ASSGN_OP,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(ARRAY_OP,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(NEW_OP,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(DELETE_OP,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(NAMELIST_LIST,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(INPORT_NAME,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(OUTPORT_NAME,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(FROMPORT_NAME,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(TOPORT_NAME,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(IOSTAT_STORE,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(EMPTY_STORE,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(ERR_LABEL,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(END_LABEL,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(DATA_IMPL_DO,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(DATA_ELT,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(DATA_SUBS,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(DATA_RANGE,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(ICON_EXPR,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
/* new tag for some expression */
DEFNODECODE(CEIL_DIV_EXPR,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(MAX_OP,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(BIF_SAVE_EXPR,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(MIN_OP,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(BIF_ADDR_EXPR,"nodetext",'e',1,LLNODE, '_','_','_','_','_')
DEFNODECODE(BIF_NOP_EXPR,"nodetext",'e',1,LLNODE, '_','_','_','_','_')
DEFNODECODE(BIF_RTL_EXPR,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(TRUNC_MOD_EXPR,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(TRUNC_DIV_EXPR,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(FLOOR_DIV_EXPR,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(FLOOR_MOD_EXPR,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(CEIL_MOD_EXPR,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(ROUND_DIV_EXPR,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(ROUND_MOD_EXPR,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(RDIV_EXPR,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(EXACT_DIV_EXPR,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(CONVERT_EXPR,"nodetext",'e',1,LLNODE, '_','_','_','_','_')
DEFNODECODE(CONST_DECL,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(ABS_EXPR,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(TRUTH_ANDIF_EXPR,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(TRUTH_AND_EXPR,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(TRUTH_NOT_EXPR,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(TRUTH_ORIF_EXPR,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(PREINCREMENT_EXPR,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(PREDECREMENT_EXPR,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(COMPOUND_EXPR,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(FLOAT_EXPR,"nodetext",'e',1,LLNODE, '_','_','_','_','_')
DEFNODECODE(BIT_IOR_EXPR,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(BIT_XOR_EXPR,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(BIT_ANDTC_EXPR,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(TRUTH_OR_EXPR,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(FIX_TRUNC_EXPR,"nodetext",'e',1,LLNODE, '_','_','_','_','_')
DEFNODECODE(RROTATE_EXPR,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(LROTATE_EXPR,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(RANGE_EXPR,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(POSTDECREMENT_EXPR,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(REFERENCE_TYPE,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(FIX_FLOOR_EXPR,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(FIX_ROUND_EXPR,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(FIX_CEIL_EXPR ,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(FUNCTION_DECL ,"nodetext",'d',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(MODIFY_EXPR,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(REFERENCE_EXPR,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(RESULT_DECL,"nodetext",'d',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(PARM_DECL,"nodetext",'d',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(LEN_OP,"nodetext",'e',1,LLNODE, '_','_','_','_','_')
DEFNODECODE(THIS_NODE,"nodetext",'e',0,LLNODE, '_','_','_','_','_')
DEFNODECODE(SCOPE_OP,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(PLUS_ASSGN_OP,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(MINUS_ASSGN_OP,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(AND_ASSGN_OP,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(IOR_ASSGN_OP,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(MULT_ASSGN_OP,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(DIV_ASSGN_OP,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(MOD_ASSGN_OP,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(XOR_ASSGN_OP,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(LSHIFT_ASSGN_OP,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(RSHIFT_ASSGN_OP,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(ARROWSTAR_OP,"nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(DOTSTAR_OP, "nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(FORDECL_OP, "nodetext",'e',1,LLNODE, '_','_','_','_','_')
DEFNODECODE(OPERATOR_OP, "nodetext",'e',1,LLNODE, '_','_','_','_','_')
DEFNODECODE(ASSIGNMENT_OP, "nodetext",'e',1,LLNODE, '_','_','_','_','_')
DEFNODECODE(KIND_OP, "nodetext",'e',1,LLNODE, '_','_','_','_','_')
DEFNODECODE(LENGTH_OP, "nodetext",'e',1,LLNODE, '_','_','_','_','_')
DEFNODECODE(RECURSIVE_OP, "nodetext",'e',0,LLNODE, '_','_','_','_','_')
DEFNODECODE(ELEMENTAL_OP, "nodetext",'e',0,LLNODE, '_','_','_','_','_')
DEFNODECODE(PURE_OP, "nodetext",'e',0,LLNODE, '_','_','_','_','_')
/* DVM tags */
DEFNODECODE(BLOCK_OP, "nodetext",'e',1,LLNODE, '_','_','_','_','_')
DEFNODECODE(INDIRECT_OP, "nodetext",'e',1,LLNODE, '_','_','_','_','_')
DEFNODECODE(DERIVED_OP, "nodetext",'e',1,LLNODE, '_','_','_','_','_')
DEFNODECODE(NEW_SPEC_OP, "nodetext",'e',1,LLNODE, '_','_','_','_','_')
DEFNODECODE(REDUCTION_OP, "nodetext",'e',1,LLNODE, '_','_','_','_','_')
DEFNODECODE(SHADOW_RENEW_OP, "nodetext",'e',1,LLNODE, '_','_','_','_','_')
DEFNODECODE(SHADOW_START_OP, "nodetext",'e',0,LLNODE, '_','_','_','_','_')
DEFNODECODE(SHADOW_WAIT_OP, "nodetext",'e',0,LLNODE, '_','_','_','_','_')
DEFNODECODE(DIAG_OP, "nodetext",'e',0,LLNODE, '_','_','_','_','_')
DEFNODECODE(REMOTE_ACCESS_OP, "nodetext",'e',1,LLNODE, '_','_','_','_','_')
DEFNODECODE(TEMPLATE_OP, "nodetext",'e',0,LLNODE, '_','_','_','_','_')
DEFNODECODE(PROCESSORS_OP, "nodetext",'e',0,LLNODE, '_','_','_','_','_')
DEFNODECODE(DYNAMIC_OP, "nodetext",'e',0,LLNODE, '_','_','_','_','_')
DEFNODECODE(ALIGN_OP, "nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(DISTRIBUTE_OP, "nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(SHADOW_OP, "nodetext",'e',1,LLNODE, '_','_','_','_','_')
DEFNODECODE(SHADOW_COMP_OP, "nodetext",'e',1,LLNODE, '_','_','_','_','_')
DEFNODECODE(INDIRECT_ACCESS_OP, "nodetext",'e',1,LLNODE, '_','_','_','_','_')
DEFNODECODE(ACROSS_OP, "nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(NEW_VALUE_OP, "nodetext",'e',1,LLNODE, '_','_','_','_','_')
DEFNODECODE(CONSISTENT_OP, "nodetext",'e',1,LLNODE, '_','_','_','_','_')
DEFNODECODE(STAGE_OP, "nodetext",'e',1,LLNODE, '_','_','_','_','_')
DEFNODECODE(COMMON_OP, "nodetext",'e',0,LLNODE, '_','_','_','_','_')
DEFNODECODE(ACC_CALL_OP,"nodetext",'e',2,LLNODE, '_','_','s','_','_')
DEFNODECODE(ACC_DEVICE_OP, "nodetext",'e',0,LLNODE, '_','_','_','_','_')
DEFNODECODE(ACC_SHARED_OP, "nodetext",'e',0,LLNODE, '_','_','_','_','_')
DEFNODECODE(ACC_CONSTANT_OP, "nodetext",'e',0,LLNODE, '_','_','_','_','_')
DEFNODECODE(ACC_VALUE_OP, "nodetext",'e',0,LLNODE, '_','_','_','_','_')
DEFNODECODE(ACC_HOST_OP, "nodetext",'e',0,LLNODE, '_','_','_','_','_')
DEFNODECODE(ACC_GLOBAL_OP, "nodetext",'e',0,LLNODE, '_','_','_','_','_')
DEFNODECODE(ACC_ATTRIBUTES_OP, "nodetext",'e',1,LLNODE, '_','_','_','_','_')
DEFNODECODE(ACC_PRIVATE_OP, "nodetext",'e',1,LLNODE, '_','_','_','_','_')
DEFNODECODE(ACC_CUDA_OP, "nodetext",'e',0,LLNODE, '_','_','_','_','_')
DEFNODECODE(ACC_CUDA_BLOCK_OP, "nodetext",'e',1,LLNODE, '_','_','_','_','_')
DEFNODECODE(ACC_PRIVATE_OP, "nodetext",'e',1,LLNODE, '_','_','_','_','_')
DEFNODECODE(ACC_INOUT_OP, "nodetext",'e',1,LLNODE, '_','_','_','_','_')
DEFNODECODE(ACC_IN_OP, "nodetext",'e',1,LLNODE, '_','_','_','_','_')
DEFNODECODE(ACC_OUT_OP, "nodetext",'e',1,LLNODE, '_','_','_','_','_')
DEFNODECODE(ACC_LOCAL_OP, "nodetext",'e',1,LLNODE, '_','_','_','_','_')
DEFNODECODE(ACC_INLOCAL_OP, "nodetext",'e',1,LLNODE, '_','_','_','_','_')
DEFNODECODE(ACC_TARGETS_OP, "nodetext",'e',1,LLNODE, '_','_','_','_','_')
DEFNODECODE(ACC_ASYNC_OP, "nodetext",'e',0,LLNODE, '_','_','_','_','_')
DEFNODECODE(SHADOW_NAMES_OP, "nodetext",'e',1,LLNODE, '_','_','_','_','_')
DEFNODECODE(ACC_TIE_OP, "nodetext",'e',1,LLNODE, '_','_','_','_','_')
DEFNODECODE(ACC_CALL_STMT,"nodetext",'s',2,BIFNODE, '_','_','_','_','_')
DEFNODECODE(DVM_NEW_VALUE_DIR,"nodetext",'s',1,BIFNODE, '_','_','_','_','_')
DEFNODECODE(ACC_ROUTINE_DIR,"nodetext",'s',1,BIFNODE, '_','_','_','_','_')
/* SAPFOR */
DEFNODECODE(SPF_NOINLINE_OP, "nodetext",'e',0,LLNODE, '_','_','_','_','_')
DEFNODECODE(SPF_FISSION_OP, "nodetext",'e',1,LLNODE, '_','_','_','_','_')
DEFNODECODE(SPF_EXPAND_OP, "nodetext",'e',0,LLNODE, '_','_','_','_','_')
DEFNODECODE(SPF_SHRINK_OP, "nodetext",'e',1,LLNODE, '_','_','_','_','_')
DEFNODECODE(SPF_TYPE_OP, "nodetext",'e',1,LLNODE, '_','_','_','_','_')
DEFNODECODE(SPF_VARLIST_OP, "nodetext",'e',1,LLNODE, '_','_','_','_','_')
DEFNODECODE(SPF_EXCEPT_OP, "nodetext",'e',1,LLNODE, '_','_','_','_','_')
DEFNODECODE(SPF_FILES_COUNT_OP, "nodetext",'e',1,LLNODE, '_','_','_','_','_')
DEFNODECODE(SPF_INTERVAL_OP, "nodetext",'e',2,LLNODE, '_','_','_','_','_')
DEFNODECODE(SPF_TIME_OP, "nodetext",'e',0,LLNODE, '_','_','_','_','_')
DEFNODECODE(SPF_ITER_OP, "nodetext",'e',0,LLNODE, '_','_','_','_','_')
DEFNODECODE(SPF_FLEXIBLE_OP, "nodetext",'e',0,LLNODE, '_','_','_','_','_')
DEFNODECODE(SPF_PARAMETER_OP, "nodetext",'e',1,LLNODE, '_','_','_','_','_')
DEFNODECODE(SPF_CODE_COVERAGE_OP, "nodetext",'e',0,LLNODE, '_','_','_','_','_')
DEFNODECODE(SPF_UNROLL_OP, "nodetext",'e',1,LLNODE, '_','_','_','_','_')
DEFNODECODE(SPF_ANALYSIS_DIR,"nodetext",'s',0,BIFNODE, '_','_','_','_','_')
DEFNODECODE(SPF_PARALLEL_DIR,"nodetext",'s',0,BIFNODE, '_','_','_','_','_')
DEFNODECODE(SPF_TRANSFORM_DIR,"nodetext",'s',0,BIFNODE, '_','_','_','_','_')
DEFNODECODE(SPF_PARALLEL_REG_DIR,"nodetext",'s',0,BIFNODE, '_','_','_','_','_')
DEFNODECODE(SPF_END_PARALLEL_REG_DIR,"nodetext",'s',0,BIFNODE, '_','_','_','_','_')
DEFNODECODE(SPF_CHECKPOINT_DIR,"nodetext",'s',0,BIFNODE, '_','_','_','_','_')
/* OpenMP Fortran tags */
DEFNODECODE(OMP_NOWAIT, "nodetext",'e',0,LLNODE, '_','_','_','_','_')
DEFNODECODE(OMP_NUM_THREADS, "nodetext",'e',0,LLNODE, '_','_','_','_','_')
DEFNODECODE(OMP_IF, "nodetext",'e',0,LLNODE, '_','_','_','_','_')
DEFNODECODE(OMP_ORDERED, "nodetext",'e',0,LLNODE, '_','_','_','_','_')
DEFNODECODE(OMP_DEFAULT, "nodetext",'e',0,LLNODE, '_','_','_','_','_')
DEFNODECODE(OMP_SCHEDULE, "nodetext",'e',0,LLNODE, '_','_','_','_','_')
DEFNODECODE(OMP_PRIVATE, "nodetext",'e',0,LLNODE, '_','_','_','_','_')
DEFNODECODE(OMP_REDUCTION, "nodetext",'e',0,LLNODE, '_','_','_','_','_')
DEFNODECODE(OMP_FIRSTPRIVATE, "nodetext",'e',0,LLNODE, '_','_','_','_','_')
DEFNODECODE(OMP_LASTPRIVATE, "nodetext",'e',0,LLNODE, '_','_','_','_','_')
DEFNODECODE(OMP_SHARED, "nodetext",'e',0,LLNODE, '_','_','_','_','_')
DEFNODECODE(OMP_COPYIN, "nodetext",'e',0,LLNODE, '_','_','_','_','_')
DEFNODECODE(OMP_COPYPRIVATE, "nodetext",'e',0,LLNODE, '_','_','_','_','_')
DEFNODECODE(OMP_COLLAPSE, "nodetext",'e',0,LLNODE, '_','_','_','_','_')
DEFNODECODE(OMP_THREADPRIVATE, "nodetext",'e',0,LLNODE, '_','_','_','_','_')
DEFNODECODE(OMP_PARALLEL_DIR,"nodetext",'s',0,BIFNODE, 'e','_','_','_','_')
DEFNODECODE(OMP_END_PARALLEL_DIR,"nodetext",'s',0,BIFNODE, 'e','_','_','_','_')
DEFNODECODE(OMP_DO_DIR,"nodetext",'s',1,BIFNODE, 'e','_','_','_','_')
DEFNODECODE(OMP_END_DO_DIR,"nodetext",'s',1,BIFNODE, 'e','_','_','_','_')
DEFNODECODE(OMP_SECTIONS_DIR,"nodetext",'s',1,BIFNODE, 'e','_','_','_','_')
DEFNODECODE(OMP_END_SECTIONS_DIR,"nodetext",'s',1,BIFNODE, 'e','_','_','_','_')
DEFNODECODE(OMP_SECTION_DIR,"nodetext",'s',1,BIFNODE, 'e','_','_','_','_')
DEFNODECODE(OMP_SINGLE_DIR,"nodetext",'s',1,BIFNODE, 'e','_','_','_','_')
DEFNODECODE(OMP_END_SINGLE_DIR,"nodetext",'s',1,BIFNODE, 'e','_','_','_','_')
DEFNODECODE(OMP_WORKSHARE_DIR,"nodetext",'s',1,BIFNODE, 'e','_','_','_','_')
DEFNODECODE(OMP_END_WORKSHARE_DIR,"nodetext",'s',1,BIFNODE, 'e','_','_','_','_')
DEFNODECODE(OMP_PARALLEL_DO_DIR,"nodetext",'s',1,BIFNODE, 'e','_','_','_','_')
DEFNODECODE(OMP_END_PARALLEL_DO_DIR,"nodetext",'s',1,BIFNODE, 'e','_','_','_','_')
DEFNODECODE(OMP_PARALLEL_SECTIONS_DIR,"nodetext",'s',1,BIFNODE, 'e','_','_','_','_')
DEFNODECODE(OMP_END_PARALLEL_SECTIONS_DIR,"nodetext",'s',1,BIFNODE, 'e','_','_','_','_')
DEFNODECODE(OMP_PARALLEL_WORKSHARE_DIR,"nodetext",'s',1,BIFNODE, 'e','_','_','_','_')
DEFNODECODE(OMP_END_PARALLEL_WORKSHARE_DIR,"nodetext",'s',1,BIFNODE, 'e','_','_','_','_')
DEFNODECODE(OMP_MASTER_DIR,"nodetext",'s',1,BIFNODE, 'e','_','_','_','_')
DEFNODECODE(OMP_END_MASTER_DIR,"nodetext",'s',1,BIFNODE, 'e','_','_','_','_')
DEFNODECODE(OMP_CRITICAL_DIR,"nodetext",'s',1,BIFNODE, 'e','_','_','_','_')
DEFNODECODE(OMP_END_CRITICAL_DIR,"nodetext",'s',1,BIFNODE, 'e','_','_','_','_')
DEFNODECODE(OMP_BARRIER_DIR,"nodetext",'s',1,BIFNODE, 'e','_','_','_','_')
DEFNODECODE(OMP_ATOMIC_DIR,"nodetext",'s',1,BIFNODE, 'e','_','_','_','_')
DEFNODECODE(OMP_FLUSH_DIR,"nodetext",'s',1,BIFNODE, 'e','_','_','_','_')
DEFNODECODE(OMP_ORDERED_DIR,"nodetext",'s',1,BIFNODE, 'e','_','_','_','_')
DEFNODECODE(OMP_END_ORDERED_DIR,"nodetext",'s',1,BIFNODE, 'e','_','_','_','_')
DEFNODECODE(OMP_THREADPRIVATE_DIR, "nodetext",'d',0,BIFNODE, 'd','_','_','_','_')
DEFNODECODE(RECORD_DECL,"nodetext",'d',0,BIFNODE, 'd','_','_','_','_')
DEFNODECODE(FUNC_STAT,"nodetext",'d',0,BIFNODE, 'd','_','_','_','_')
DEFNODECODE(POINTER_ASSIGN_STAT,"nodetext",'s',0,BIFNODE, '_','_','_','_','_')
DEFNODECODE(CYCLE_STMT,"nodetext",'s',0,BIFNODE, '_','_','_','_','_')
DEFNODECODE(OMP_ONETHREAD_DIR,"nodetext",'s',1,BIFNODE, 'd','_','_','_','_')
/*****************variant tags for symbol table entries********************/
DEFNODECODE(BIF_PARM_DECL,"nodetext",'r',0,SYMBNODE,'_','_','_','_','_')
DEFNODECODE(CONST_NAME,"nodetext",'r',0,SYMBNODE,'_','_','_','_','_')
DEFNODECODE(ENUM_NAME,"nodetext",'r',0,SYMBNODE,'_','_','_','_','_')
DEFNODECODE(FIELD_NAME,"nodetext",'r',0,SYMBNODE,'_','_','_','_','_')
DEFNODECODE(VARIABLE_NAME,"nodetext",'r',0,SYMBNODE,'_','_','_','_','_')
DEFNODECODE(TYPE_NAME,"nodetext",'r',0,SYMBNODE,'_','_','_','_','_')
DEFNODECODE(PROGRAM_NAME,"nodetext",'r',0,SYMBNODE,'_','_','_','_','_')
DEFNODECODE(PROCEDURE_NAME,"nodetext",'r',0,SYMBNODE,'_','_','_','_','_')
DEFNODECODE(PROCESS_NAME,"nodetext",'r',0,SYMBNODE,'_','_','_','_','_')
DEFNODECODE(VAR_FIELD,"nodetext",'r',0,SYMBNODE,'_','_','_','_','_')
DEFNODECODE(LABEL_VAR,"nodetext",'r',0,SYMBNODE,'_','_','_','_','_')
DEFNODECODE(FUNCTION_NAME,"nodetext",'r',0,SYMBNODE,'_','_','_','_','_')
DEFNODECODE(MEMBER_FUNC,"nodetext",'r',0,SYMBNODE,'_','_','_','_','_')
DEFNODECODE(CLASS_NAME,"nodetext",'r',0,SYMBNODE,'_','_','_','_','_')
DEFNODECODE(TECLASS_NAME,"nodetext",'r',0,SYMBNODE,'_','_','_','_','_')
DEFNODECODE(UNION_NAME,"nodetext",'r',0,SYMBNODE,'_','_','_','_','_')
DEFNODECODE(STRUCT_NAME,"nodetext",'r',0,SYMBNODE,'_','_','_','_','_')
DEFNODECODE(LABEL_NAME,"nodetext",'r',0,SYMBNODE,'_','_','_','_','_')
DEFNODECODE(COLLECTION_NAME,"nodetext",'r',0,SYMBNODE,'_','_','_','_','_')
DEFNODECODE(ROUTINE_NAME,"nodetext",'r',0,SYMBNODE,'_','_','_','_','_')
DEFNODECODE(CONSTRUCT_NAME,"nodetext",'r',0,SYMBNODE,'_','_','_','_','_')
DEFNODECODE(INTERFACE_NAME,"nodetext",'r',0,SYMBNODE,'_','_','_','_','_')
DEFNODECODE(MODULE_NAME,"nodetext",'r',0,SYMBNODE,'_','_','_','_','_')
DEFNODECODE(COMMON_NAME,"nodetext",'r',0,SYMBNODE,'_','_','_','_','_')
DEFNODECODE(SPF_REGION_NAME,"nodetext",'r',0,SYMBNODE,'_','_','_','_','_')
DEFNODECODE(DEFAULT,"nodetext",'t',0,TYPENODE,'_','_','_','_','_')
DEFNODECODE(T_INT,"nodetext",'t',0,TYPENODE,'_','_','_','_','_')
DEFNODECODE(T_FLOAT,"nodetext",'t',0,TYPENODE,'_','_','_','_','_')
DEFNODECODE(T_DOUBLE,"nodetext",'t',0,TYPENODE,'_','_','_','_','_')
DEFNODECODE(T_CHAR,"nodetext",'t',0,TYPENODE,'_','_','_','_','_')
DEFNODECODE(T_BOOL,"nodetext",'t',0,TYPENODE,'_','_','_','_','_')
DEFNODECODE(T_STRING,"nodetext",'t',0,TYPENODE,'_','_','_','_','_')
DEFNODECODE(T_COMPLEX,"nodetext",'t',0,TYPENODE,'_','_','_','_','_')
DEFNODECODE(T_DCOMPLEX,"nodetext",'t',0,TYPENODE,'_','_','_','_','_')
DEFNODECODE(T_LONG,"nodetext",'t',0,TYPENODE,'_','_','_','_','_')
DEFNODECODE(T_ENUM,"nodetext",'t',0,TYPENODE,'_','_','_','_','_')
DEFNODECODE(T_SUBRANGE,"nodetext",'t',0,TYPENODE,'_','_','_','_','_')
DEFNODECODE(T_LIST,"nodetext",'t',0,TYPENODE,'_','_','_','_','_')
DEFNODECODE(T_ARRAY,"nodetext",'t',0,TYPENODE,'_','_','_','_','_')
DEFNODECODE(T_RECORD,"nodetext",'t',0,TYPENODE,'_','_','_','_','_')
DEFNODECODE(T_ENUM_FIELD,"nodetext",'t',0,TYPENODE,'_','_','_','_','_')
DEFNODECODE(T_UNKNOWN,"nodetext",'t',0,TYPENODE,'_','_','_','_','_')
DEFNODECODE(T_VOID,"nodetext",'t',0,TYPENODE,'_','_','_','_','_')
DEFNODECODE(T_DESCRIPT,"nodetext",'t',0,TYPENODE,'_','_','_','_','_')
DEFNODECODE(T_FUNCTION,"nodetext",'t',0,TYPENODE,'_','_','_','_','_')
DEFNODECODE(T_POINTER,"nodetext",'t',0,TYPENODE,'_','_','_','_','_')
DEFNODECODE(T_UNION,"nodetext",'t',0,TYPENODE,'_','_','_','_','_')
DEFNODECODE(T_STRUCT,"nodetext",'t',0,TYPENODE,'_','_','_','_','_')
DEFNODECODE(T_CLASS,"nodetext",'t',0,TYPENODE,'_','_','_','_','_')
DEFNODECODE(T_TECLASS,"nodetext",'t',0,TYPENODE,'_','_','_','_','_')
DEFNODECODE(T_DERIVED_CLASS,"nodetext",'t',0,TYPENODE,'_','_','_','_','_')
DEFNODECODE(T_DERIVED_TYPE,"nodetext",'t',0,TYPENODE,'_','_','_','_','_')
DEFNODECODE(T_COLLECTION,"nodetext",'t',0,TYPENODE,'_','_','_','_','_')
DEFNODECODE(T_DERIVED_COLLECTION,"nodetext",'t',0,TYPENODE,'_','_','_','_','_')
DEFNODECODE(T_MEMBER_POINTER,"nodetext",'t',0,TYPENODE,'_','_','_','_','_')
DEFNODECODE(T_GATE,"nodetext",'t',0,TYPENODE,'_','_','_','_','_')
DEFNODECODE(T_EVENT,"nodetext",'t',0,TYPENODE,'_','_','_','_','_')
DEFNODECODE(T_SEQUENCE,"nodetext",'t',0,TYPENODE,'_','_','_','_','_')
DEFNODECODE(T_DERIVED_TEMPLATE,"nodetext",'t',0,TYPENODE,'_','_','_','_','_')
DEFNODECODE(T_REFERENCE,"nodetext",'t',0,TYPENODE,'_','_','_','_','_')
DEFNODECODE(LOCAL,"nodetext",'t',0,TYPENODE,'_','_','_','_','_')
DEFNODECODE(INPUT,"nodetext",'t',0,TYPENODE,'_','_','_','_','_')
DEFNODECODE(OUTPUT,"nodetext",'t',0,TYPENODE,'_','_','_','_','_')
DEFNODECODE(IO,"nodetext",'t',0,TYPENODE,'_','_','_','_','_')

View File

@@ -1,117 +0,0 @@
/*********************************************************************/
/* pC++/Sage++ Copyright (C) 1993 */
/* Indiana University University of Oregon University of Rennes */
/*********************************************************************/
/* declaration for the dependencies computation and use in the toolbox */
/* on declare de macro d'acces aux dependence de donnee */
#define BIF_DEP_STRUCT1(NODE) ((NODE)->entry.Template.dep_ptr1)
#define BIF_DEP_STRUCT2(NODE) ((NODE)->entry.Template.dep_ptr2)
#define FIRST_DEP_IN_PROJ(X) ((X)->head_dep)
/* decription d'une dependance */
#define DEP_ID(DEP) ((DEP)->id)
#define DEP_NEXT(DEP) ((DEP)->thread)
#define DEP_TYPE(DEP) ((DEP)->type)
#define DEP_DIRECTION(DEP) ((DEP)->direct)
#define DEP_SYMB(DEP) ((DEP)->symbol)
#define DEP_FROM_BIF(DEP) (((DEP)->from).stmt)
#define DEP_FROM_LL(DEP) (((DEP)->from).refer)
#define DEP_TO_BIF(DEP) (((DEP)->to).stmt)
#define DEP_TO_LL(DEP) (((DEP)->to).refer)
#define DEP_FROM_FWD(DEP) ((DEP)->from_fwd)
#define DEP_FROM_BACK(DEP) ((DEP)->from_back)
#define DEP_TO_FWD(DEP) ((DEP)->to_fwd)
#define DEP_TO_BACK(DEP) ((DEP)->to_back)
/* la forme normale de dependence de donnee est le vecteur de direction */
/* on rappel temporairement la forme des dep (sets.h)
struct dep { data dependencies
int id; identification for reading/writing
PTR_DEP thread;
char type; flow-, output-, or anti-dependence
char direct[MAX_DEP]; direction/distance vector
PTR_SYMB symbol; symbol table entry
struct ref from; tail of dependence
struct ref to; head of dependence
PTR_DEP from_fwd, from_back; list of dependencies going to tail
PTR_DEP to_fwd, to_back; list of dependencies going to head
} ;
*/
/* pour la gestion memoire */
struct chaining
{
char *zone;
struct chaining *list;
};
typedef struct chaining *ptchaining;
struct stack_chaining
{
ptchaining first;
ptchaining last;
struct stack_chaining *prev;
struct stack_chaining *next;
int level;
};
typedef struct stack_chaining *ptstack_chaining;
/* structure pour les graphes de dependence */
#define MAXSUC 100
struct graph
{
int id; /* identificateur */
int linenum;
int mark;
int order;
PTR_BFND stmt;
PTR_LLND expr;
PTR_LLND from_expr[MAXSUC];
PTR_LLND to_expr[MAXSUC];
PTR_DEP dep_struct[MAXSUC];
char *dep_vect[MAXSUC];
char type[MAXSUC];
struct graph *suc[MAXSUC]; /* next */
struct graph *pred[MAXSUC]; /* next */
struct graph *list; /* chaine les noeuds d'un graphe */
};
typedef struct graph *PTR_GRAPH;
#define CHAIN_LIST(NODE) ((NODE)->list)
#define GRAPH_ID(NODE) ((NODE)->id)
#define GRAPH_ORDER(NODE) ((NODE)->order)
#define GRAPH_MARK(NODE) ((NODE)->mark)
#define GRAPH_LINE(NODE) ((NODE)->linenum)
#define GRAPH_BIF(NODE) ((NODE)->stmt)
#define GRAPH_LL(NODE) ((NODE)->expr)
#define GRAPH_DEP(NODE) (((NODE)->dep_struct))
#define GRAPH_VECT(NODE) (((NODE)->dep_vect))
#define GRAPH_TYPE(NODE) ((NODE)->type)
#define GRAPH_SUC(NODE) (((NODE)->suc))
#define GRAPH_PRED(NODE) (((NODE)->pred))
#define GRAPH_LL_FROM(NODE) (((NODE)->from_expr))
#define GRAPH_LL_TO(NODE) (((NODE)->to_expr))
#define NOT_ORDERED -1

View File

@@ -1,56 +0,0 @@
/*********************************************************************/
/* pC++/Sage++ Copyright (C) 1993 */
/* Indiana University University of Oregon University of Rennes */
/*********************************************************************/
extern char *Unparse_Annotation();
extern PTR_LLND Parse_Annotation();
extern Is_Annotation();
extern Is_Annotation_Cont();
extern char * Get_Annotation_String();
extern char * Get_to_Next_Annotation_String();
extern Init_Annotation();
extern PTR_LLND Get_Define_Field();
extern char * Get_Define_Label_Field();
extern char * Get_Label_Field();
extern PTR_LLND Get_ApplyTo_Field();
extern PTR_LLND Get_ApplyToIf_Field();
extern PTR_LLND Get_LocalVar_Field();
extern PTR_LLND Get_Annotation_Field();
extern char * Get_Annotation_Field_Label();
extern char * Does_Annotation_Defines();
extern int Set_The_Define_Field();
extern int Get_Annotation_With_Label();
extern Get_Scope_Of_Annotation();
extern Propagate_defined_value();
extern PTR_LLND Does_Annotation_Apply();
extern PTR_LLND Get_Annotation_Field_List_For_Stmt();
extern PTR_LLND Get_Annotation_List_For_Stmt();
extern Get_Number_of_Annotation();
extern PTR_BFND Get_Annotation_Bif();
extern PTR_LLND Get_Annotation_Expr();
extern char * Get_String_of_Annotation();
extern PTR_CMNT Get_Annotation_Comment();
extern int Is_Annotation_Defined();
extern char * Annotation_Defines_string();
extern int Annotation_Defines_string_Value();
extern PTR_LLND Annotation_LLND[];
extern PTR_TYPE global_int_annotation;

View File

@@ -1,29 +0,0 @@
/*********************************************************************/
/* pC++/Sage++ Copyright (C) 1993 */
/* Indiana University University of Oregon University of Rennes */
/*********************************************************************/
extern int tiling_p ();/*non implante, mais ne plante pas*/
extern void tiling ();
extern void strip_mining ();
extern PTR_BLOB Distribute_Loop ();
extern PTR_BLOB Distribute_Loop_SCC ();
extern Loop_Fusion ();
extern Unroll_Loop ();
extern Interchange_Loops ();
extern Compute_With_Maple ();
extern Unimodular ();
extern Expand_Scalar ();
extern PTR_BFND Scalar_Forward_Substitution ();
extern int Normalized ();
extern Normalize_Loop ();
extern int Vectorize ();
extern int Vectorize_Nest ();
extern Print_Property_For_Loop ();

View File

@@ -1,24 +0,0 @@
/*********************************************************************/
/* pC++/Sage++ Copyright (C) 1993 */
/* Indiana University University of Oregon University of Rennes */
/*********************************************************************/
extern PTR_FILE cur_file;
extern char *main_input_filename; /*not find in lib*/
extern PTR_PROJ cur_proj; /* pointer to the project header */
extern char *cunparse_bfnd();
extern char *cunparse_llnd();
extern char *funparse_bfnd();
extern char *funparse_llnd();
extern char *cunparse_blck();
extern char *funparse_blck();
extern PTR_SYMB Current_Proc_Graph_Symb; /*not find in lib*/
/*extern FILE *finput;
extern FILE *outfile;*/
extern char node_code_type[];
extern int node_code_length[];
extern enum typenode node_code_kind[];

View File

@@ -1,268 +0,0 @@
/*********************************************************************/
/* pC++/Sage++ Copyright (C) 1993 */
/* Indiana University University of Oregon University of Rennes */
/*********************************************************************/
/* DO NOT EDIT THIS FILE! */
/* This file was automatically created by /u/sage/bin/mkCextern */
/* Source file: /u/sage/project/sage/lib/newsrc/low_level.c */
/* Created on Mon Jul 11 13:40:50 EST 1994 (phb) */
extern POINTER newNode();
extern PTR_BFND FindNearBifNode();
extern PTR_BFND Get_Last_Node_Of_Project();
extern PTR_BFND Get_bif_with_id();
extern PTR_BFND GetcountInStmtNode1();
extern PTR_BFND LibGetScopeForDeclare();
extern PTR_BFND LibWhereIsSymbDeclare();
extern PTR_BFND LibcreateCollectionWithType();
extern PTR_BFND LibdeleteStmt();
extern PTR_BFND LibextractStmt();
extern PTR_BFND LibextractStmtBody();
extern PTR_BFND LibfirstElementMethod();
extern PTR_BFND LibgetInnermostLoop();
extern PTR_BFND LibgetNextNestedLoop();
extern PTR_BFND LibgetPreviousNestedLoop();
extern PTR_BFND LiblastDeclaration();
extern PTR_BFND LocalRedoBifNextChain();
extern PTR_BFND Redo_Bif_Next_Chain_Internal();
extern PTR_BFND childfInBlobList();
extern PTR_BFND computeControlParent();
extern PTR_BFND deleteBfnd();
extern PTR_BFND deleteBfndFromBlobAndLabel();
extern PTR_BFND duplicateOneStmt();
extern PTR_BFND duplicateStmts();
extern PTR_BFND duplicateStmtsBlock();
extern PTR_BFND duplicateStmtsNoExtract();
extern PTR_BFND extractBifSectionBetween();
extern PTR_BFND getBodyOfSymb();
extern PTR_BFND getFirstStmt();
extern PTR_BFND getFuncScope();
extern PTR_BFND getFunctionHeader();
extern PTR_BFND getFunctionHeaderAllFile();
extern PTR_BFND getFunctionNumHeader();
extern PTR_BFND getGlobalFunctionHeader();
extern PTR_BFND getLastNodeList();
extern PTR_BFND getLastNodeOfStmt();
extern PTR_BFND getLastNodeOfStmtNoControlEnd();
extern PTR_BFND getMainProgram();
extern PTR_BFND getNodeBefore();
extern PTR_BFND getObjectStmt();
extern PTR_BFND getScopeForLabel();
extern PTR_BFND getStatementNumber();
extern PTR_BFND getStructNumHeader();
extern PTR_BFND getWhereToInsertInBfnd();
extern PTR_BFND lastBifInBlobList();
extern PTR_BFND lastBifInBlobList1();
extern PTR_BFND lastBifInBlobList2();
extern PTR_BFND makeDeclStmt();
extern PTR_BFND makeDeclStmtWPar();
extern PTR_BFND rec_num_near_search();
extern PTR_BLOB appendBlob();
extern PTR_BLOB deleteBfndFrom();
extern PTR_BLOB getLabelUDChain();
extern PTR_BLOB lastBlobInBlobList();
extern PTR_BLOB lastBlobInBlobList1();
extern PTR_BLOB lastBlobInBlobList2();
extern PTR_BLOB lookForBifInBlobList();
extern PTR_CMNT Get_cmnt_with_id();
extern PTR_FILE GetFileWithNum();
extern PTR_FILE GetPointerOnFile();
extern PTR_LABEL Get_label_with_id();
extern PTR_LABEL getLastLabel();
extern PTR_LLND Follow_Llnd();
extern PTR_LLND Follow_Llnd0();
extern PTR_LLND Get_First_Parameter_For_Call();
extern PTR_LLND Get_Second_Parameter_For_Call();
extern PTR_LLND Get_Th_Parameter_For_Call();
extern PTR_LLND Get_ll_with_id();
extern PTR_LLND LibIsSymbolInExpression();
extern PTR_LLND LibarrayRefs();
extern PTR_LLND LibsymbRefs();
extern PTR_LLND Make_Function_Call();
extern PTR_LLND addLabelRefToExprList();
extern PTR_LLND addSymbRefToExprList();
extern PTR_LLND addToExprList();
extern PTR_LLND addToList();
extern PTR_LLND copyLlNode();
extern PTR_LLND deleteNodeInExprList();
extern PTR_LLND deleteNodeWithItemInExprList();
extern PTR_LLND findPtrRefExp();
extern PTR_LLND getPositionInExprList();
extern PTR_LLND getPositionInList();
extern PTR_LLND giveLlSymbInDeclList();
extern PTR_LLND makeDeclExp();
extern PTR_LLND makeDeclExpWPar();
extern PTR_LLND makeInt();
extern PTR_LLND newExpr();
extern PTR_SYMB GetThOfFieldList();
extern PTR_SYMB GetThOfFieldListForType();
extern PTR_SYMB GetThParam();
extern PTR_SYMB Get_Symb_with_id();
extern PTR_SYMB doesClassInherit();
extern PTR_SYMB duplicateParamList();
extern PTR_SYMB duplicateSymbol();
extern PTR_SYMB duplicateSymbolAcrossFiles();
extern PTR_SYMB duplicateSymbolLevel1();
extern PTR_SYMB duplicateSymbolLevel2();
extern PTR_SYMB getClassNextFieldOrMember();
extern PTR_SYMB getFieldOfStructWithName();
extern PTR_SYMB getFirstFieldOfStruct();
extern PTR_SYMB getSymbolWithName();
extern PTR_SYMB getSymbolWithNameInScope();
extern PTR_SYMB lookForNameInParamList();
extern PTR_SYMB newSymbol();
extern PTR_TYPE FollowTypeBaseAndDerived();
extern PTR_TYPE GetAtomicType();
extern PTR_TYPE Get_type_with_id();
extern PTR_TYPE addToBaseTypeList();
extern PTR_TYPE createDerivedCollectionType();
extern PTR_TYPE duplicateType();
extern PTR_TYPE duplicateTypeAcrossFiles();
extern PTR_TYPE getDerivedTypeWithName();
extern PTR_TYPE lookForInternalBasetype();
extern PTR_TYPE lookForTypeDescript();
extern char *allocateFreeListNodeExpression();
extern char* Get_Function_Name_For_Call();
extern char* Remove_Carriage_Return();
extern char* UnparseTypeBuffer();
extern char* filter();
extern char* mymalloc();
extern char* xmalloc();
extern int Apply_To_Bif();
extern int Check_Lang_C();
extern int Check_Lang_Fortran();
extern int GetFileNum();
extern int GetFileNumWithPt();
extern int Init_Tool_Box();
extern int IsRefToSymb();
extern int Is_String_Val_With_Val();
extern int LibClanguage();
extern int LibFortranlanguage();
extern int LibIsSymbolInScope();
extern int LibIsSymbolReferenced();
extern int LibisEnddoLoop();
extern int LibisMethodOfElement();
extern int LibnumberOfFiles();
extern int LibperfectlyNested();
extern void Message();
extern int Replace_String_In_Expression();
extern int appendBfndListToList1();
extern int appendBfndListToList2();
extern int appendBfndToList();
extern int appendBfndToList1();
extern int appendBfndToList2();
extern int arraySymbol();
extern int blobListLength();
extern int buildLinearRep();
extern int buildLinearRepSign();
extern int convertToEnddoLoop();
extern int countInStmtNode1();
extern int countInStmtNode2();
extern int exprListLength();
extern int findBif();
extern int findBifInList1();
extern int findBifInList2();
extern int firstBfndInList1();
extern int firstBfndInList2();
extern int firstInBfndList2();
extern int getElementEvaluate();
extern int getLastLabelId();
extern int getNumberOfFunction();
extern int getNumberOfStruct();
extern int getTypeNumDimension();
extern int hasNodeASymb();
extern int hasTypeBaseType();
extern int hasTypeSymbol();
extern int inScope();
extern int insertBfndInList1();
extern int insertBfndInList2();
extern int insertBfndListIn();
extern int insertBfndListInList1();
extern int isABifNode();
extern int isAControlEnd();
extern int isADeclBif();
extern int isAEnumDeclBif();
extern int isALoNode();
extern int isAStructDeclBif();
extern int isASymbNode();
extern int isATypeNode();
extern int isAUnionDeclBif();
extern int isAtomicType();
extern int isElementType();
extern int isEnumType();
extern int isInStmt();
extern int isIntegerType();
extern int isItInSection();
extern int isNodeAConst();
extern int isPointerType();
extern int isStructType();
extern int isTypeEquivalent();
extern int isUnionType();
extern int lenghtOfFieldList();
extern int lenghtOfFieldListForType();
extern int lenghtOfParamList();
extern int localToFunction();
extern int lookForTypeInType();
extern int makeLinearExpr();
extern int makeLinearExpr_Sign();
extern int numberOfBifsInBlobList();
extern int open_proj_toolbox();
extern int open_proj_files_toolbox();
extern int patternMatchExpression();
extern int pointerType();
extern int replaceTypeInType();
extern int sameName();
extern int* evaluateExpression();
extern void Count_Bif_Next_Chain();
extern void LibAddComment();
extern void LibSetAllComments();
extern void LibconvertLogicIf();
extern void LibreplaceSymbByExp();
extern void LibreplaceSymbByExpInStmts();
extern void LibreplaceWithStmt();
extern void LibsaveDepFile();
extern void Redo_Bif_Next_Chain();
extern void Reset_Bif_Next();
extern void Reset_Bif_Next_Chain();
extern void Reset_Tool_Box();
extern void SetCurrentFileTo();
extern void UnparseBif();
extern void UnparseLLND();
extern void UnparseProgram();
extern void addControlEndToList2();
extern void addControlEndToStmt();
extern void addElementEvaluate();
extern void addSymbToFieldList();
extern void allocateValueEvaluate();
extern void appendSymbToArgList();
extern void declareAVar();
extern void declareAVarWPar();
extern void duplicateAllSymbolDeclaredInStmt();
extern void insertBfndBeforeIn();
extern void insertSymbInArgList();
extern void libFreeExpression();
extern void make_a_malloc_stack();
extern void myfree();
extern void replaceSymbInExpression();
extern void replaceSymbInExpressionSameName();
extern void replaceSymbInStmts();
extern void replaceSymbInStmtsSameName();
extern void replaceTypeForSymb();
extern void replaceTypeInExpression();
extern void replaceTypeInStmts();
extern void replaceTypeUsedInStmt();
extern void resetDoVarForSymb();
extern void resetFreeListForExpressionNode();
extern void resetPresetEvaluate();
extern void setFreeListForExpressionNode();
extern void updateControlParent();
extern void updateTypesAndSymbolsInBody();
extern void writeDepFileInDebugdep();
extern void updateTypeAndSymbolInStmts();
extern void updateTypesAndSymbolsInBodyOfRoutine();
extern PTR_SYMB duplicateSymbolOfRoutine();
extern char* UnparseBif_Char();
extern void UnparseProgram_ThroughAllocBuffer();

View File

@@ -1,64 +0,0 @@
/*********************************************************************/
/* pC++/Sage++ Copyright (C) 1993 */
/* Indiana University University of Oregon University of Rennes */
/*********************************************************************/
extern PTR_BFND Make_For_Loop ();
extern PTR_LLND Loop_Set_Borne_Inf ();
extern PTR_LLND Loop_Set_Borne_Sup ();
extern PTR_LLND Loop_Set_Step ();
extern PTR_SYMB Loop_Set_Index ();
extern PTR_LLND Loop_Get_Borne_Inf ();
extern PTR_LLND Loop_Get_Borne_Sup ();
extern PTR_LLND Loop_Get_Step ();
extern PTR_SYMB Loop_Get_Index ();
extern PTR_BFND Get_Scope_For_Declare ();
extern PTR_BFND Get_Scope_For_Label ();
extern PTR_LLND Make_Array_Ref ();
extern PTR_LLND Make_Array_Ref_With_Tab ();
extern PTR_BFND Declare_Array ();
extern PTR_BFND Make_Procedure ();
extern PTR_LLND Make_Function_Call ();
extern PTR_LLND Make_Function_Call_bis ();
extern PTR_BFND Make_Procedure_Call ();
extern PTR_LLND Make_Linear_Expression ();
extern PTR_LLND Make_Linear_Expression_From_Int ();
extern PTR_LLND Make_Linear_Expression_From_Int_List ();
extern PTR_BFND Make_Assign ();
extern PTR_BFND Make_If_Then_Else ();
extern int Declare_Scalar ();
extern int Perfectly_Nested ();
extern int Is_Good_Loop ();
extern PTR_BFND Extract_Loop_Body ();
extern PTR_BFND Get_Next_Nested_Loop ();
extern PTR_BFND Get_Internal_Loop ();
extern PTR_BFND Get_Previous_Nested_Loop ();
extern PTR_BLOB Get_Label_UD_chain ();
extern int Convert_Loop ();
extern int Loop_Conversion ();
extern PTR_SYMB Generate_Variable_Name ();
extern PTR_SYMB Install_Variable ();
extern int Verif_No_Func ();
extern int Verif_Assign ();
extern int Verif_Assign_If ();
extern int Generate_Alternative_Code ();
extern void Localize_Array_Section ();
extern int Check_Index ();
extern int Check_Right_Assign ();
extern int Check_Left_Assign ();
extern int No_Dependent_Index ();
extern int No_Basic_Induction ();
extern int No_Def_Of_Induction ();

View File

@@ -1,271 +0,0 @@
/*********************************************************************/
/* pC++/Sage++ Copyright (C) 1993 */
/* Indiana University University of Oregon University of Rennes */
/*********************************************************************/
/* DO NOT EDIT THIS FILE! */
/* This file was automatically created by /u/sage/bin/mkC++extern */
/* Source file: /u/sage/project/sage/lib/newsrc/low_level.c */
/* Created on Tue Jul 12 12:46:22 EST 1994 (phb) */
extern "C" {
POINTER newNode(...);
PTR_BFND FindNearBifNode(...);
PTR_BFND Get_Last_Node_Of_Project(...);
PTR_BFND Get_bif_with_id(...);
PTR_BFND GetcountInStmtNode1(...);
PTR_BFND LibGetScopeForDeclare(...);
PTR_BFND LibWhereIsSymbDeclare(...);
PTR_BFND LibcreateCollectionWithType(...);
PTR_BFND LibdeleteStmt(...);
PTR_BFND LibextractStmt(...);
PTR_BFND LibextractStmtBody(...);
PTR_BFND LibfirstElementMethod(...);
PTR_BFND LibgetInnermostLoop(...);
PTR_BFND LibgetNextNestedLoop(...);
PTR_BFND LibgetPreviousNestedLoop(...);
PTR_BFND LiblastDeclaration(...);
PTR_BFND LocalRedoBifNextChain(...);
PTR_BFND Redo_Bif_Next_Chain_Internal(...);
PTR_BFND childfInBlobList(...);
PTR_BFND computeControlParent(...);
PTR_BFND deleteBfnd(...);
PTR_BFND deleteBfndFromBlobAndLabel(...);
PTR_BFND duplicateOneStmt(...);
PTR_BFND duplicateStmts(...);
PTR_BFND duplicateStmtsBlock(...);
PTR_BFND duplicateStmtsNoExtract(...);
PTR_BFND extractBifSectionBetween(...);
PTR_BFND getBodyOfSymb(...);
PTR_BFND getFirstStmt(...);
PTR_BFND getFuncScope(...);
PTR_BFND getFunctionHeader(...);
PTR_BFND getFunctionHeaderAllFile(...);
PTR_BFND getFunctionNumHeader(...);
PTR_BFND getGlobalFunctionHeader(...);
PTR_BFND getLastNodeList(...);
PTR_BFND getLastNodeOfStmt(...);
PTR_BFND getLastNodeOfStmtNoControlEnd(...);
PTR_BFND getMainProgram(...);
PTR_BFND getNodeBefore(...);
PTR_BFND getObjectStmt(...);
PTR_BFND getScopeForLabel(...);
PTR_BFND getStatementNumber(...);
PTR_BFND getStructNumHeader(...);
PTR_BFND getWhereToInsertInBfnd(...);
PTR_BFND lastBifInBlobList(...);
PTR_BFND lastBifInBlobList1(...);
PTR_BFND lastBifInBlobList2(...);
PTR_BFND makeDeclStmt(...);
PTR_BFND makeDeclStmtWPar(...);
PTR_BFND rec_num_near_search(...);
PTR_BLOB appendBlob(...);
PTR_BLOB deleteBfndFrom(...);
PTR_BLOB getLabelUDChain(...);
PTR_BLOB lastBlobInBlobList(...);
PTR_BLOB lastBlobInBlobList1(...);
PTR_BLOB lastBlobInBlobList2(...);
PTR_BLOB lookForBifInBlobList(...);
PTR_CMNT Get_cmnt_with_id(...);
PTR_FILE GetFileWithNum(...);
PTR_FILE GetPointerOnFile(...);
PTR_LABEL Get_label_with_id(...);
PTR_LABEL getLastLabel(...);
PTR_LLND Follow_Llnd(...);
PTR_LLND Follow_Llnd0(...);
PTR_LLND Get_First_Parameter_For_Call(...);
PTR_LLND Get_Second_Parameter_For_Call(...);
PTR_LLND Get_Th_Parameter_For_Call(...);
PTR_LLND Get_ll_with_id(...);
PTR_LLND LibIsSymbolInExpression(...);
PTR_LLND LibarrayRefs(...);
PTR_LLND LibsymbRefs(...);
PTR_LLND Make_Function_Call(...);
PTR_LLND addLabelRefToExprList(...);
PTR_LLND addSymbRefToExprList(...);
PTR_LLND addToExprList(...);
PTR_LLND addToList(...);
PTR_LLND copyLlNode(...);
PTR_LLND deleteNodeInExprList(...);
PTR_LLND deleteNodeWithItemInExprList(...);
PTR_LLND findPtrRefExp(...);
PTR_LLND getPositionInExprList(...);
PTR_LLND getPositionInList(...);
PTR_LLND giveLlSymbInDeclList(...);
PTR_LLND makeDeclExp(...);
PTR_LLND makeDeclExpWPar(...);
PTR_LLND makeInt(...);
PTR_LLND newExpr(...);
PTR_SYMB GetThOfFieldList(...);
PTR_SYMB GetThOfFieldListForType(...);
PTR_SYMB GetThParam(...);
PTR_SYMB Get_Symb_with_id(...);
PTR_SYMB doesClassInherit(...);
PTR_SYMB duplicateParamList(...);
PTR_SYMB duplicateSymbol(...);
PTR_SYMB duplicateSymbolAcrossFiles(...);
PTR_SYMB duplicateSymbolLevel1(...);
PTR_SYMB duplicateSymbolLevel2(...);
PTR_SYMB getClassNextFieldOrMember(...);
PTR_SYMB getFieldOfStructWithName(...);
PTR_SYMB getFirstFieldOfStruct(...);
PTR_SYMB getSymbolWithName(...);
PTR_SYMB getSymbolWithNameInScope(...);
PTR_SYMB lookForNameInParamList(...);
PTR_SYMB newSymbol(...);
PTR_SYMB duplicateSymbolOfRoutine(...);
PTR_TYPE FollowTypeBaseAndDerived(...);
PTR_TYPE GetAtomicType(...);
PTR_TYPE Get_type_with_id(...);
PTR_TYPE addToBaseTypeList(...);
PTR_TYPE createDerivedCollectionType(...);
PTR_TYPE duplicateType(...);
PTR_TYPE duplicateTypeAcrossFiles(...);
PTR_TYPE getDerivedTypeWithName(...);
PTR_TYPE lookForInternalBasetype(...);
PTR_TYPE lookForTypeDescript(...);
char *allocateFreeListNodeExpression(...);
char* Get_Function_Name_For_Call(...);
char* Remove_Carriage_Return(...);
char* UnparseTypeBuffer(...);
char* filter(...);
char* mymalloc(...);
char* xmalloc(...);
int Apply_To_Bif(...);
int Check_Lang_C(...);
int Check_Lang_Fortran(...);
int GetFileNum(...);
int GetFileNumWithPt(...);
int Init_Tool_Box(...);
int IsRefToSymb(...);
int Is_String_Val_With_Val(...);
int LibClanguage(...);
int LibFortranlanguage(...);
int LibIsSymbolInScope(...);
int LibIsSymbolReferenced(...);
int LibisEnddoLoop(...);
int LibisMethodOfElement(...);
int LibnumberOfFiles(...);
int LibperfectlyNested(...);
int Message(...);
int Replace_String_In_Expression(...);
int appendBfndListToList1(...);
int appendBfndListToList2(...);
int appendBfndToList(...);
int appendBfndToList1(...);
int appendBfndToList2(...);
int arraySymbol(...);
int blobListLength(...);
int buildLinearRep(...);
int buildLinearRepSign(...);
int convertToEnddoLoop(...);
int countInStmtNode1(...);
int countInStmtNode2(...);
int exprListLength(...);
int findBif(...);
int findBifInList1(...);
int findBifInList2(...);
int firstBfndInList1(...);
int firstBfndInList2(...);
int firstInBfndList2(...);
int getElementEvaluate(...);
int getLastLabelId(...);
int getNumberOfFunction(...);
int getNumberOfStruct(...);
int getTypeNumDimension(...);
int hasNodeASymb(...);
int hasTypeBaseType(...);
int hasTypeSymbol(...);
int inScope(...);
int insertBfndInList1(...);
int insertBfndInList2(...);
int insertBfndListIn(...);
int insertBfndListInList1(...);
int isABifNode(...);
int isAControlEnd(...);
int isADeclBif(...);
int isAEnumDeclBif(...);
int isALoNode(...);
int isAStructDeclBif(...);
int isASymbNode(...);
int isATypeNode(...);
int isAUnionDeclBif(...);
int isAtomicType(...);
int isElementType(...);
int isEnumType(...);
int isInStmt(...);
int isIntegerType(...);
int isItInSection(...);
int isNodeAConst(...);
int isPointerType(...);
int isStructType(...);
int isTypeEquivalent(...);
int isUnionType(...);
int lenghtOfFieldList(...);
int lenghtOfFieldListForType(...);
int lenghtOfParamList(...);
int localToFunction(...);
int lookForTypeInType(...);
int makeLinearExpr(...);
int makeLinearExpr_Sign(...);
int numberOfBifsInBlobList(...);
int open_proj_toolbox(...);
int open_proj_files_toolbox(...);
int patternMatchExpression(...);
int pointerType(...);
int replaceTypeInType(...);
int sameName(...);
int* evaluateExpression(...);
void Count_Bif_Next_Chain(...);
void LibAddComment(...);
void LibSetAllComments(...);
//Kolganov 15.11.2017
void LibDelAllComments(...);
void LibconvertLogicIf(...);
void LibreplaceSymbByExp(...);
void LibreplaceSymbByExpInStmts(...);
void LibreplaceWithStmt(...);
void LibsaveDepFile(...);
void Redo_Bif_Next_Chain(...);
void Reset_Bif_Next(...);
void Reset_Bif_Next_Chain(...);
void Reset_Tool_Box(...);
void SetCurrentFileTo(...);
void UnparseBif(...);
void UnparseLLND(...);
void UnparseProgram(...);
void addControlEndToList2(...);
void addControlEndToStmt(...);
void addElementEvaluate(...);
void addSymbToFieldList(...);
void allocateValueEvaluate(...);
void appendSymbToArgList(...);
void declareAVar(...);
void declareAVarWPar(...);
void duplicateAllSymbolDeclaredInStmt(...);
void insertBfndBeforeIn(...);
void insertSymbInArgList(...);
void libFreeExpression(...);
void make_a_malloc_stack(...);
void myfree(...);
void replaceSymbInExpression(...);
void replaceSymbInExpressionSameName(...);
void replaceSymbInStmts(...);
void replaceSymbInStmtsSameName(...);
void replaceTypeForSymb(...);
void replaceTypeInExpression(...);
void replaceTypeInStmts(...);
void replaceTypeUsedInStmt(...);
void resetDoVarForSymb(...);
void resetFreeListForExpressionNode(...);
void resetPresetEvaluate(...);
void setFreeListForExpressionNode(...);
void updateControlParent(...);
void updateTypesAndSymbolsInBody(...);
void writeDepFileInDebugdep(...);
void updateTypeAndSymbolInStmts(...);
void updateTypesAndSymbolsInBodyOfRoutine(...);
char* UnparseBif_Char(...);
char *UnparseLLND_Char(...);
void UnparseProgram_ThroughAllocBuffer(...);
}

File diff suppressed because it is too large Load Diff

View File

@@ -1,434 +0,0 @@
/*********************************************************************/
/* pC++/Sage++ Copyright (C) 1993 */
/* Indiana University University of Oregon University of Rennes */
/*********************************************************************/
/* declaration pour la toolbox 19/12/91 */
/* The following include files are sigma include files */
#include "defs.h"
#include "bif.h"
#include "ll.h"
#include "symb.h"
#include "sets.h"
#include "db.h"
#include "vparse.h"
#ifdef CPLUS_
extern "C" PTR_FILE pointer_on_file_proj;
#else
extern PTR_FILE pointer_on_file_proj;
#endif
/* the following are names of constants used by the C parser to */
/* add attributed to symbol table entries. */
/* For symbptr->attr access with SYMB_ATTR(..) */
/* note these are ALSO IN FILE vpc.h and we should find a single spot for them!! */
#define ATT_CLUSTER 0
#define ATT_GLOBAL 1
#define PURE 8
#define PRIVATE_FIELD 16
#define PROTECTED_FIELD 32
#define PUBLIC_FIELD 64
#define ELEMENT_FIELD 128
#define COLLECTION_FIELD 256
#define CONSTRUCTOR 512
#define DESTRUCTOR 1024
#define PCPLUSPLUS_DOSUBSET 2048
#define INVALID 4096
#define SUBCOLLECTION 4096*2
#define OVOPERATOR 4096*4
/*
* There are 3 types of macros:
* the first type deals with bif nodes and are named BIF_XXX
* the second type deals with symbol nodes and are named SYMB_XXX
* the last type deasl with low level nodes and are named NODE_XXX
*/
/* Macros for BIF NODE */
#define DECL_SOURCE_LINE(FUNC) ((FUNC)->g_line)
#define DECL_SOURCE_FILE(FUNC) (default_filename)
/* give the code of a node */
#define BIF_CODE(NODE) ((NODE)->variant)
#define BIF_LINE(NODE) ((NODE)->g_line)
#define BIF_LOCAL_LINE(NODE) ((NODE)->l_line)
#define BIF_DECL_SPECS(NODE) ((NODE)->decl_specs)
#define BIF_INDEX(NODE) ((NODE)->index)
/* give the identifier */
#define BIF_ID(NODE) ((NODE)->id)
#define BIF_NEXT(NODE) ((NODE)->thread)
#define BIF_CP(NODE) ((NODE)->control_parent)
#define BIF_LABEL(NODE) ((NODE)->label)
#define BIF_LL1(NODE) ((NODE)->entry.Template.ll_ptr1)
#define BIF_LL2(NODE) ((NODE)->entry.Template.ll_ptr2)
#define BIF_LL3(NODE) ((NODE)->entry.Template.ll_ptr3)
#define BIF_SYMB(NODE) ((NODE)->entry.Template.symbol)
#define BIF_BLOB1(NODE) ((NODE)->entry.Template.bl_ptr1)
#define BIF_BLOB2(NODE) ((NODE)->entry.Template.bl_ptr2)
#define BIF_FLOW(NODE) ((NODE)->entry.Template.bl_ptr1->ref)
#define BIF_FLOW_TRUE(NODE) ((NODE)->entry.Template.bl_ptr1->ref)
#define BIF_FLOW_FALSE_EXIST(NODE) ((NODE)->entry.Template.bl_ptr2)
#define BIF_FLOW_FALSE(NODE) ((NODE)->entry.Template.bl_ptr2->ref)
#define BIF_FILE_NAME(NODE) ((NODE)->filename)
#define BIF_CMNT(NODE) ((NODE)->entry.Template.cmnt_ptr)
#define BIF_LABEL_USE(NODE) ((NODE)->entry.Template.lbl_ptr)
#define BIF_SETS(NODE) ((NODE)->entry.Template.sets)
#define BIF_PROPLIST(NODE) ((NODE)->prop_list)
/* seems to be useless not used that way???????*/
#define BIF_PROPLIST_NAME(NODE) ((NODE)->prop_list.prop_name)
#define BIF_PROPLIST_VAL(NODE) ((NODE)->prop_list.prop_val)
#define BIF_PROPLIST_NEXT(NODE) ((NODE)->prop_list.next)
/* Macros for LOW LEVEL NODE*/
/* Give the code of the node */
#define NODE_CODE(NODE) ((NODE)->variant)
/* give the identifier */
#define NODE_ID(NODE) ((NODE)->id)
#define NODE_NEXT(NODE) ((NODE)->thread)
#define NODE_CHAIN(NODE) ((NODE)->thread)
#define NODE_TYPE(NODE) ((NODE)->type)
#define NODE_STR(NODE) ((NODE)->entry.string_val)
#define NODE_STRING_POINTER(NODE) ((NODE)->entry.string_val)
#define NODE_IV(NODE) ((NODE)->entry.ival)
/* use for integer constant
the boolean value is use if the constante is big
(two integers) */
#define NODE_INT_CST_LOW(NODE) ((NODE)->entry.ival)
#define NODE_DOUBLE_CST(NODE) ((NODE)->entry.string_val)
#define NODE_FLOAT_CST(NODE) ((NODE)->entry.string_val)
#define NODE_CHAR_CST(NODE) ((NODE)->entry.cval)
#define NODE_BOOL_CST(NODE) ((NODE)->entry.bval)
/* la partie haute est dans les noeuds info
A modifier par la suite */
#define NODE_CV(NODE) ((NODE)->entry.cval)
#define NODE_DV(NODE) ((NODE)->entry.dval)
#define NODE_REAL_CST(NODE) ((NODE)->entry.dval)
#define NODE_BV(NODE) ((NODE)->entry.bval)
#define NODE_ARRAY_OP(NODE) ((NODE)->entry.array_op)
#define NODE_TEMPLATE(NODE) ((NODE)->entry.Template)
#define NODE_SYMB(NODE) ((NODE)->entry.Template.symbol)
#define NODE_TEMPLATE_LL1(NODE) ((NODE)->entry.Template.ll_ptr1)
#define NODE_TEMPLATE_LL2(NODE) ((NODE)->entry.Template.ll_ptr2)
#define NODE_OPERAND0(NODE) ((NODE)->entry.Template.ll_ptr1)
#define NODE_PURPOSE(NODE) ((NODE)->entry.Template.ll_ptr1)
#define NODE_OPERAND1(NODE) ((NODE)->entry.Template.ll_ptr2)
#define NODE_OPERAND2(NODE) bif_sorry("OPERAND2")
#define NODE_VALUE(NODE) ((NODE)->entry.Template.ll_ptr2)
#define NODE_STRING_LENGTH(NODE) (strlen((NODE)->entry.string_val))
#define NODE_LABEL(NODE) ((NODE)->entry.label_list.lab_ptr)
#define NODE_LIST_ITEM(NODE) ((NODE)->entry.list.item)
#define NODE_LIST_NEXT(NODE) ((NODE)->entry.list.next)
/* For symbole NODE */
#define SYMB_VAL(NODE) ((NODE)->entry.const_value)
#define SYMB_DECLARED_NAME(NODE) ((NODE)->entry.member_func.declared_name)
#define SYMB_CODE(NODE) ((NODE)->variant)
#define SYMB_ID(NODE) ((NODE)->id)
#define SYMB_IDENT(NODE) ((NODE)->ident)
#define SYMB_PARENT(NODE) ((NODE)->parent)
#define SYMB_DECL(NODE) ((NODE)->decl)
#define SYMB_ATTR(NODE) ((NODE)->attr)
#define SYMB_DOVAR(NODE) ((NODE)->dovar)
#define SYMB_BLOC_NEXT(NODE) ((NODE)->next_symb)
#define SYMB_NEXT(NODE) ((NODE)->thread)
#define SYMB_LIST(NODE) ((NODE)->id_list)
#define SYMB_TYPE(NODE) ((NODE)->type)
#define SYMB_SCOPE(NODE) ((NODE)->scope)
#define SYMB_UD_CHAIN(NODE) ((NODE)->ud_chain)
#define SYMB_ENTRY(NODE) ((NODE)->entry)
#define SYMB_NEXT_DECL(NODE) ((NODE)->entry.var_decl.next_in)
#define SYMB_NEXT_FIELD(NODE) ((NODE)->entry.field.next)
#define SYMB_RESTRICTED_BIT(NODE) ((NODE)->entry.field.restricted_bit)
#define SYMB_BASE_NAME(NODE) ((NODE)->entry.Template.base_name)
#define SYMB_FUNC_HEDR(NODE) ((NODE)->entry.func_decl.func_hedr)
#define SYMB_FUNC_PARAM(NODE) ((NODE)->entry.proc_decl.in_list)
#define SYMB_FUNC_NB_PARAM(NODE) ((NODE)->entry.proc_decl.num_input)
#define SYMB_FUNC_OUTPUT(NODE) ((NODE)->entry.proc_decl.num_output)
#define SYMB_FIELD_BASENAME(NODE) ((NODE)->entry.field.base_name)
#define SYMB_FIELD_TAG(NODE) ((NODE)->entry.field.tag)
#define SYMB_FIELD_DECLARED_NAME(NODE) ((NODE)->entry.field.declared_name)
#define SYMB_FIELD_OFFSET(NODE) ((NODE)->entry.field.offset)
#define SYMB_MEMBER_BASENAME(NODE) ((NODE)->entry.member_func.base_name)
#define SYMB_MEMBER_NEXT(NODE) ((NODE)->entry.member_func.next)
#define SYMB_MEMBER_HEADER(NODE) ((NODE)->entry.member_func.func_hedr)
#define SYMB_MEMBER_LIST(NODE) ((NODE)->entry.member_func.symb_list)
#define SYMB_MEMBER_PARAM(NODE) ((NODE)->entry.member_func.in_list)
#define SYMB_MEMBER_TAG(NODE) ((NODE)->entry.member_func.tag)
#define SYMB_MEMBER_OFFSET(NODE) ((NODE)->entry.member_func.offset)
#define SYMB_MEMBER_DECLARED_NAME(NODE) ((NODE)->entry.member_func.declared_name)
#define SYMB_MEMBER_OUTLIST(NODE) ((NODE)->entry.member_func.out_list)
#define SYMB_MEMBER_NB_OUTPUT(NODE) ((NODE)->entry.member_func.num_output)
#define SYMB_MEMBER_NB_IO(NODE) ((NODE)->entry.member_func.num_io)
/* for Template */
#define SYMB_TEMPLATE_DUMMY1(NODE) ((NODE)->entry.Template.seen)
#define SYMB_TEMPLATE_DUMMY2(NODE) ((NODE)->entry.Template.num_input)
#define SYMB_TEMPLATE_DUMMY3(NODE) ((NODE)->entry.Template.num_output)
#define SYMB_TEMPLATE_DUMMY4(NODE) ((NODE)->entry.Template.num_io)
#define SYMB_TEMPLATE_DUMMY5(NODE) ((NODE)->entry.Template.in_list)
#define SYMB_TEMPLATE_DUMMY6(NODE) ((NODE)->entry.Template.out_list)
#define SYMB_TEMPLATE_DUMMY7(NODE) ((NODE)->entry.Template.symb_list)
#define SYMB_TEMPLATE_DUMMY8(NODE) ((NODE)->entry.Template.local_size)
#define SYMB_TEMPLATE_DUMMY9(NODE) ((NODE)->entry.Template.label_list)
#define SYMB_TEMPLATE_DUMMY10(NODE) ((NODE)->entry.Template.func_hedr)
#define SYMB_TEMPLATE_DUMMY11(NODE) ((NODE)->entry.Template.call_list)
#define SYMB_TEMPLATE_DUMMY12(NODE) ((NODE)->entry.Template.tag)
#define SYMB_TEMPLATE_DUMMY13(NODE) ((NODE)->entry.Template.offset)
#define SYMB_TEMPLATE_DUMMY14(NODE) ((NODE)->entry.Template.declared_name)
#define SYMB_TEMPLATE_DUMMY15(NODE) ((NODE)->entry.Template.next)
#define SYMB_TEMPLATE_DUMMY16(NODE) ((NODE)->entry.Template.base_name)
/* for BLOB NODE */
#define BLOB_NEXT(NODE) ((NODE)->next)
#define BLOB_VALUE(NODE) ((NODE)->ref)
#define HEAD_BLOB(NODE) ((NODE)->head_blob)
/* for type node */
#define TYPE_CODE(NODE) ((NODE)->variant)
#define TYPE_ID(NODE) ((NODE)->id)
#define TYPE_SYMB(NODE) ((NODE)->name)
#define TYPE_UD_CHAIN(NODE) ((NODE)->ud_chain)
#define TYPE_LENGTH(NODE) ((NODE)->length)
#define TYPE_BASE(NODE) ((NODE)->entry.Template.base_type)
#define TYPE_RANGES(NODE) ((NODE)->entry.Template.ranges)
#define TYPE_KIND_LEN(NODE) ((NODE)->entry.Template.kind_len)
#define TYPE_QUOTE(NODE) ((NODE)->entry.Template.dummy1)
#define TYPE_DIM(NODE) ((NODE)->entry.ar_decl.num_dimensions)
#define TYPE_DECL_BASE(NODE) ((NODE)->entry.ar_decl.base_type)
#define TYPE_DECL_RANGES(NODE) ((NODE)->entry.ar_decl.ranges)
#define TYPE_NEXT(NODE) ((NODE)->thread)
#define TYPE_DESCRIP(NODE) ((NODE)->entry.descriptive)
#define TYPE_DESCRIP_BASE_TYPE(NODE) ((NODE)->entry.descriptive.base_type)
#define TYPE_FIRST_FIELD(NODE) ((NODE)->entry.re_decl.first)
#define TYPE_UNSIGNED(NODE) ((NODE)->entry.descriptive.signed_flag)
#define TYPE_LONG_SHORT(NODE) ((NODE)->entry.descriptive.long_short_flag)
#define TYPE_MODE_FLAG(NODE) ((NODE)->entry.descriptive.mod_flag)
#define TYPE_STORAGE_FLAG(NODE) ((NODE)->entry.descriptive.storage_flag)
#define TYPE_ACCESS_FLAG(NODE) ((NODE)->entry.descriptive.access_flag)
#define TYPE_SYMB_DERIVE(NODE) ((NODE)->entry.derived_type.symbol)
#define TYPE_SCOPE_SYMB_DERIVE(NODE) ((NODE)->entry.derived_type.scope_symbol)
#define TYPE_COLL_BASE(NODE) ((NODE)->entry.col_decl.base_type)
#define TYPE_COLL_ORI_CLASS(NODE) ((NODE)->entry.derived_class.original_class)
#define TYPE_COLL_NUM_FIELDS(NODE) ((NODE)->entry.derived_class.num_fields)
#define TYPE_COLL_RECORD_SIZE(NODE) ((NODE)->entry.derived_class.record_size)
#define TYPE_COLL_FIRST_FIELD(NODE) ((NODE)->entry.derived_class.first)
#define TYPE_COLL_NAME(NODE) ((NODE)->entry.col_decl.collection_name)
#define TYPE_TEMPL_NAME(NODE) ((NODE)->entry.templ_decl.templ_name)
#define TYPE_TEMPL_ARGS(NODE) ((NODE)->entry.templ_decl.args)
/* sepcial case for enumeral type */
#define TYPE_VALUES(NODE) ((NODE)->entry.Template.ranges) /* wrong, to verify */
/* To allow copies of type */
#define TYPE_TEMPLATE_BASE(NODE) ((NODE)->entry.Template.base_type)
#define TYPE_TEMPLATE_DUMMY1(NODE) ((NODE)->entry.Template.dummy1)
#define TYPE_TEMPLATE_RANGES(NODE) ((NODE)->entry.Template.ranges)
#define TYPE_TEMPLATE_DUMMY2(NODE) ((NODE)->entry.Template.dummy2)
#define TYPE_TEMPLATE_DUMMY3(NODE) ((NODE)->entry.Template.dummy3)
#define TYPE_TEMPLATE_DUMMY4(NODE) ((NODE)->entry.Template.dummy4)
#define TYPE_TEMPLATE_DUMMY5(NODE) ((NODE)->entry.Template.dummy5)
/* Other */
#define FILE_OF_CURRENT_PROJ(PROJ) ((PROJ)->proj_name)
#define FUNCT_NAME(FUNC) ((FUNC)->entry.Template.symbol->ident)
#define FUNCT_SYMB(FUNC) ((FUNC)->entry.Template.symbol)
#define FUNCT_FIRST_PAR(FUNC) ((FUNC)->entry.Template.symbol->entry.func_decl.in_list)
#define MIN(X,Y) ((X) < (Y) ? (X) : (Y))
#define MAX(X,Y) ((X) > (Y) ? (X) : (Y))
#define CEIL(x,y) (((x) + (y) - 1) / (y))
/* extern pour Bif */
/* other type of low level node and decl */
#define CEIL_DIV_EXPR 1000
#define MAX_OP 1001
#define BIF_PARM_DECL 1002
#define BIF_SAVE_EXPR 1003
#define MIN_OP 1004
#define BIF_ADDR_EXPR 1005
#define BIF_NOP_EXPR 1006
#define BIF_RTL_EXPR 1007
/* #define TRUNC_MOD_EXPR 1008 killed by dbg because in rid enum*/
/* #define TRUNC_DIV_EXPR 1009 killed by dbg because in rid enum*/
#define FLOOR_DIV_EXPR 1010
#define FLOOR_MOD_EXPR 1011
#define CEIL_MOD_EXPR 1012
#define ROUND_DIV_EXPR 1013
#define ROUND_MOD_EXPR 1014
#define RDIV_EXPR 1015
#define EXACT_DIV_EXPR 1016
#define COND_EXPR EXPR_IF
#define CONVERT_EXPR 1017
/*#define MINUS_EXPR SUBT_OP removed by Beckman*/
#define CONST_DECL 1018 /* to be modify */
#define ABS_EXPR 1019
#define BIT_NOT_EXPR BIT_COMPLEMENT_OP
#define NEGATE_EXPR MINUS_OP
#define TRUTH_ANDIF_EXPR 1020
#define TRUTH_AND_EXPR 1021
#define TRUTH_NOT_EXPR 1022
#define TRUTH_ORIF_EXPR 1023
#define POSTINCREMENT_EXPR PLUSPLUS_OP
#define PREINCREMENT_EXPR 1024
#define PREDECREMENT_EXPR 1025
#define COMPOUND_EXPR 1026
#define ENUMERAL_TYPE T_ENUM
#define FLOAT_EXPR 1027
/*#define RSHIFT_EXPR RSHIFT_OP
#define LSHIFT_EXPR LSHIFT_OP removed by Pete Beckman*/
/* #define BIT_IOR_EXPR 1028 killed by dbg because in rid enum*/
/* #define BIT_XOR_EXPR 1029 killed by dbg because in rid enum*/
#define BIT_ANDTC_EXPR 1030
#define ERROR_MARK NULL
#define TRUTH_OR_EXPR 1031
#define FIX_TRUNC_EXPR 1032
#define RROTATE_EXPR 1033
#define LROTATE_EXPR 1034
#define RANGE_EXPR 1035
#define POSTDECREMENT_EXPR 1036
#define COMPONENT_REF RECORD_REF /* NODE SYMB define for this node */
#define INDIRECT_REF DEREF_OP
#define REFERENCE_TYPE 1037
/* #define CONSTRUCTOR 1038*/
#define FIX_FLOOR_EXPR 1039
#define FIX_ROUND_EXPR 1040
#define FIX_CEIL_EXPR 1041
#define FUNCTION_DECL 1042
#define MODIFY_EXPR 1043
#define REFERENCE_EXPR 1044
#define RESULT_DECL 1045
#define PARM_DECL 1046 /* not used */
#define CALL_EXPR 1047
#define INIT_EXPR 1048
/* other type for type node */
#define T_LITERAL 1100 /* not use */
#define T_SIZE 1101
#define LAST_CODE T_SIZE
/* end other type of node */
/* definition for project */
#define PROJ_FIRST_SYMB() (pointer_on_file_proj->head_symb)
#define PROJ_FIRST_TYPE() (pointer_on_file_proj->head_type)
#define PROJ_FIRST_LLND() (pointer_on_file_proj->head_llnd)
#define PROJ_FIRST_BIF() (pointer_on_file_proj->head_bfnd)
#define PROJ_FIRST_CMNT() (pointer_on_file_proj->head_cmnt)
#define PROJ_FIRST_LABEL() (pointer_on_file_proj->head_lab)
#define CUR_FILE_NUM_BIFS() (pointer_on_file_proj->num_bfnds)
#define CUR_FILE_NUM_LLNDS() (pointer_on_file_proj->num_llnds)
#define CUR_FILE_NUM_SYMBS() (pointer_on_file_proj->num_symbs)
#define CUR_FILE_NUM_TYPES() (pointer_on_file_proj->num_types)
#define CUR_FILE_NUM_LABEL() (pointer_on_file_proj->num_label)
#define CUR_FILE_NUM_BLOBS() (pointer_on_file_proj->num_blobs)
#define CUR_FILE_NUM_CMNT() (pointer_on_file_proj->num_cmnt)
#define CUR_FILE_CUR_BFND() (pointer_on_file_proj->cur_bfnd)
#define CUR_FILE_CUR_LLND() (pointer_on_file_proj->cur_llnd)
#define CUR_FILE_CUR_SYMB() (pointer_on_file_proj->cur_symb)
#define CUR_FILE_CUR_TYPE() (pointer_on_file_proj->cur_type)
#define CUR_FILE_GLOBAL_BFND() (pointer_on_file_proj->global_bfnd)
#define CUR_FILE_NAME() (pointer_on_file_proj->filename)
#define CUR_FILE_HEAD_FILE() (pointer_on_file_proj->head_file)
#define FILE_GLOBAL_BFND(FIL) ((FIL)->global_bfnd)
#define FILE_FILENAME(FIL) ((FIL)->filename)
#define FILE_LANGUAGE(FIL) ((FIL)->lang)
#define CUR_PROJ_FILE_CHAIN() (cur_proj->file_chain) /* modified by Pete */
#define CUR_PROJ_NAME() (cur_proj->proj_name) /* modified by Pete */
#define PROJ_FILE_CHAIN(PROJ) ((PROJ)->file_chain)
/* use as a general pointer */
typedef char *POINTER;
enum typenode { BIFNODE, LLNODE, SYMBNODE, TYPENODE, BLOBNODE,
BLOB1NODE, LABEL, FILENODE}; //add LABEL (Kataev 21.03.2013), FILE (Kataev 15.07.2013
#define MAXTILE 10 /* nombre maximum de boucle que l'on peut tiler */
#define MAX_STMT 100 /* nombre d'instruction d'une boucle */
/**************** For Comment Nodes *****************************/
#define CMNT_ID(NODE) ((NODE)->id)
#define CMNT_TYPE(NODE) ((NODE)->type)
#define CMNT_STRING(NODE) ((NODE)->string)
#define CMNT_NEXT(NODE) ((NODE)->thread)
#define CMNT_NEXT_ATTACH(NODE) ((NODE)->next)
/**************** For LABEL NODES *****************************/
#define LABEL_ID(NODE) ((NODE)->id)
#define LABEL_NEXT(NODE) ((NODE)->next)
#define LABEL_UD_CHAIN(NODE) ((NODE)->ud_chain)
#define LABEL_USED(NODE) ((NODE)->labused)
#define LABEL_ILLEGAL(NODE) ((NODE)->labinacc)
#define LABEL_DEFINED(NODE) ((NODE)->labdefined)
#define LABEL_SCOPE(NODE) ((NODE)->scope)
#define LABEL_BODY(NODE) ((NODE)->statbody)
#define LABEL_SYMB(NODE) ((NODE)->label_name)
#define LABEL_TYPE(NODE) ((NODE)->labtype)
#define LABEL_STMTNO(NODE) ((NODE)->stateno)
/**************** Misceallous ***********************************/
#define LABEL_KIND 100000 /* bigger than the variant of all kind of node*/
#define BLOB_KIND 100001
#define CMNT_KIND 100002
/************** For Sets Node ********************************/
#define SETS_GEN(NODE) ((NODE)->gen)
#define SETS_INDEF(NODE) ((NODE)->in_def)
#define SETS_USE(NODE) ((NODE)->use)
#define SETS_INUSE(NODE) ((NODE)->in_use)
#define SETS_OUTDEF(NODE) ((NODE)->out_def)
#define SETS_OUTUSE(NODE) ((NODE)->out_use)
#define SETS_ARRAYEF(NODE) ((NODE)->arefl)
#define SETS_REFL_SYMB(NODE) ((NODE)->id)
#define SETS_REFL_NEXT(NODE) ((NODE)->next)
#define SETS_REFL_NODE(NODE) ((NODE)->node)
#define SETS_REFL_REF(NODE) ((NODE)->node->refer)
#define SETS_REFL_STMT(NODE) ((NODE)->node->stmt)
/************** For HASH NODE ********************************/
#define HASH_IDENT(NODE) ((NODE)->ident)
/************** For Special malloc ********************************/
/* pour la gestion memoire */
struct chaining
{
char *zone;
struct chaining *list;
};
typedef struct chaining *ptchaining;
struct stack_chaining
{
ptchaining first;
ptchaining last;
struct stack_chaining *prev;
struct stack_chaining *next;
int level;
};
typedef struct stack_chaining *ptstack_chaining;

View File

@@ -1,123 +0,0 @@
/*********************************************************************/
/* pC++/Sage++ Copyright (C) 1993 */
/* Indiana University University of Oregon University of Rennes */
/*********************************************************************/
/*******************************************************************/
/* A class for creating a static call tree for C++ and pC++ */
/* functions. usage: */
/* include "sage++user.h" */
/* include "sage++callgraph.h" */
/* main(){ */
/* SgProject project("myfile") */
/* SgCallGraph CG; */
/* Cg.GenCallTree(&(project->file(0))); */
/* CG.computeClosures(); */
/* the object then contains call info for that file. */
/* see the public functions for data that can be extracted */
/*******************************************************************/
#define SGMOE_FUN 1
#define SGNORMAL_FUN 0
#define SGMOC_FUN 2
#define SGMAX_HASH 541
class SgCallGraphFunRec;
typedef struct _SgCallSiteList{
SgStatement *stmt;
SgExpression *expr;
struct _SgCallSiteList *next;
}SgCallSiteList;
typedef struct _SgCallGraphFunRecList{
SgStatement *stmt;
SgExpression *expr;
SgCallGraphFunRec *fr;
struct _SgCallGraphFunRecList *next;
}SgCallGraphFunRecList;
class SgCallGraphFunRec{
public:
int type; // either moe, normal or moc.
SgStatement *body;
SgCallSiteList *callSites; // pointer to tail of circular linked list
SgSymbol *s;
int Num_Call_Sites;
SgCallGraphFunRecList *callList; // pointer to tail of circular linked list
int Num_Call_List;
int isCollection; // = 1 if this is a method of a collection
int calledInPar; // = 1 if called in a parallel section
int calledInSeq; // = 1 if called in sequentail main thread
SgSymbol *className; // for member functions.
int flag; // used for traversals.
int id; // serial number
SgCallGraphFunRec *next; // used for linked list
SgCallGraphFunRec *next_hash; // used for hash table collisions
// used for next* functions
SgCallSiteList *currentCallSite;
SgCallSiteList *currentCallExpr;
SgCallGraphFunRecList *currentFunCall;
};
class SgCallGraph{
public:
SgCallGraph(void) {}; // constructor
void GenCallTree(SgFile *); // initialize and build the call tree
void printFunctionEntry(SgSymbol *fname); // print info about fname
int numberOfFunctionsInGraph(); // number of functions in the table.
int numberOfCallSites(SgSymbol *fname); // number of call sites for funame
int numberOfFunsCalledFrom(SgSymbol *fname); // how many call sites in fname
int isAMethodOfElement(SgSymbol* fname); // 1 if fname is a method of an element of a coll.
int isACollectionFunc(SgSymbol* fname); // 1 if fname is a method of a collection (not MOE)
int isCalledInSeq(SgSymbol* fname); // 1 if fname is called in a sequential sect.
int isCalledInPar(SgSymbol* fname); // 1 if fname is called in parallel code
void computeClosures();
SgSymbol *firstFunction(); // first function in callgraph
SgSymbol *nextFunction(); // next function in callgraph
int functionId(SgSymbol *fname); // id of fname
SgStatement *functionBody(SgSymbol *fname); // body of fname
SgStatement *firstCallSiteStmt(SgSymbol *fname); // stmt of first call of fname
SgStatement *nextCallSiteStmt(SgSymbol *fname); // stmt of next call of fname
SgExpression *firstCallSiteExpr(SgSymbol *fname); // expression of first call
SgExpression *nextCallSiteExpr(SgSymbol *fname); // expression of next call
SgSymbol *firstCalledFunction(SgSymbol *fname); // first function called in fname
SgSymbol *nextCalledFunction(SgSymbol *fname); // next function called in fname
SgStatement *SgCalledFunctionStmt(SgSymbol *fname); // get statement of current called function
SgExpression *SgCalledFunctionExpr(SgSymbol *fname); // get expression of current called function
// obsolete functions:
SgSymbol *function(int i); // i-th function in table (0 = first)
SgStatement *functionBody(int i); // i-th function in table (0 = first)
void printTableEntry(int); // print the i-th table entry.
SgStatement *callSiteStmt(SgSymbol *fname, int i); // stmt of i-th call of fname
SgExpression *callSiteExpr(SgSymbol *fname, int i); // expression of i-th call
SgSymbol *calledFunction(SgSymbol *fname, int i); // i-th function called in fname
// end obsolete
protected:
SgCallGraphFunRec *FunListHead;
int num_funs_in_table;
SgCallGraphFunRec *hash_table[SGMAX_HASH];
SgCallGraphFunRec *locateFunctionInTable(SgSymbol *);
SgCallGraphFunRec *lookForFunctionOpForClass(SgSymbol *);
void updateFunctionTableConnections(SgCallGraphFunRec *, SgStatement *, SgExpression *);
void findFunctionCalls(SgStatement *, SgExpression *);
void init();
void insertInHashTable(SgSymbol *, SgCallGraphFunRec *);
unsigned long int hashSymbol(SgSymbol *);
SgCallGraphFunRec *currentFun;
};
SgType *findTrueType(SgExpression *);
SgType *makeReducedType(SgType *);
SgSymbol *firstFunction();
SgSymbol *nextFunction();

View File

@@ -1,216 +0,0 @@
/*********************************************************************/
/* pC++/Sage++ Copyright (C) 1993 */
/* Indiana University University of Oregon University of Rennes */
/*********************************************************************/
// ----------------------------------
// Darryl Brown
// University of Oregon pC++/Sage++
//
// sage++classhierarchy.h - the header file for the class classHierarchy.
//
// a class(es) for inspecting the class hierarchy
// of a sage++ project.
//
// ----------------------------------
// ----------------------------------
// To traverse the hierarcy of classes, the most obvious approach is
// in the following example. This example searches the tree for a given
// class name and a hierarchy to search. Note that this searches the whole
// tree, not just the immediate children.
//
// classHierarchy *findHierarchy(char *name, classHierarchy *h) {
// classHierarchy *tmp, *depth;
//
// // initialize searchlist of hierarchy immediate children...;
// // this returns the first hierarchy in the child list...;
// tmp = (classHierarchy *) h->children->searchList();
//
// while (tmp) {
//
// // if they are the same, return the current hierarchy...;
// if (strcmp(name, tmp->className) == 0) {
// return tmp;
// } else {
// // search tmps children recursively, if not NULL, return that value...;
// if (depth = findHierarchy(name, tmp)) {
// return depth;
// }
// }
// // get next item in list;
// tmp = (classHierarchy *) h->children->nextItem();
// }
// // if weve made it to here, it is not anywhere in the hierarchy,
// // so return NULL;
// return NULL;
// }
//
// -------------------------------------------------------
// There is also a list of the classMembers for each class. To traverse
// that list, it is very similar, but more simple than the above example.
// Here is an example of printing out each class member of a specific
// member type (e.g. public function).
//
// virtual void printMemberType(memberType mt, classHierarchy *h) {
// classMember *tmp;
//
// tmp = (classMember *) h->classMembers->searchList();
//
// while (tmp) {
// if (tmp->typeVariant == mt) {
// tmp->print();
// }
// tmp = (classMember *) h->classMembers->nextItem();
// }
// }
//
// -------------------------------------------------------------
// Forward declarations;
//
class relationList;
// -------------------------------------------------------------
// Extern declarations
//
//
extern int strToType(char *s);
extern char *typeToStr(int ty);
// --------------------
// type of class members...;
typedef enum {
UNKNOWN_FUNC,
PRIVATE_FUNC,
PUBLIC_FUNC,
PROTECTED_FUNC,
ELEMENT_FUNC,
UNKNOWN_VAR,
PRIVATE_VAR,
PUBLIC_VAR,
PROTECTED_VAR,
ELEMENT_VAR
} memberType;
// -------------------------------------------------------------
// the main class for accessing the class hierarchy within a sage++
// file.
class classHierarchy : public brk_basePtr {
private:
// private functions
virtual classHierarchy *findClassHierarchy(char *cl);
//returns the hierarchy of the class with className cl;
classHierarchy *pushOnTop(SgClassStmt *clSt);
// creates a new hierarchy for clSt (a class declarative statement);
// and puts it at the highest level of the hierarchy (exclusively ;
// for classes with no superclasses) ;
virtual classHierarchy * storeInClassHierarchy (SgClassStmt *clSt);
// creates a new hierarchy for the class declarative statement clSt;
// and stores it where it fits in the hierarchy of classes. It makes
// use of the above two functions pushOnTop and findHierarchy.;
void determineMembers(SgFile *aFile);
// finds all members in a class, initializing publicVars, protectedVars,
// privateVars, publicFuncs, protectedFuncs, and privateFuncs;
void allocateLists();
// allocates new relationList instances for member fields.;
public:
// members;
relationList *parents; // linked list of parents ;
relationList *children; // linked list of children ;
relationList *classMembers; // linked list of class vars and funcs ;
char *className; // contains the class name ;
SgSymbol *classSymbol; // contains the Sage symbol for the name;
SgClassStmt *declaration; // contains the Sage declaration of the class;
// constructors;
classHierarchy(void);
classHierarchy(char * cn);
classHierarchy(SgSymbol * cs);
classHierarchy(SgClassStmt * clSt);
// access functions;
virtual void print(int tabs); // prints out this class after <tabs> tabs.;
virtual void print(); // prints out this class after 0 tabs.;
virtual void printAll(int tabs);
// prints out this class after <tabs> tabs, as well as all descendants;
virtual void printAllCollections(int tabs);
// prints out this class if it is a collection ;
// after <tabs> tabs, as well as all descendants;
virtual void printAll();
// prints out this class after 0 tabs, as well as all descendants;
virtual void printMemberType(memberType mt);
// prints out all member field/functions of type mt;
classHierarchy *findMember (brk_basePtr *); // look for this element and
// return the ptrNode that points to it;
int numParents(); // returns the number of parents;
int numChildren(); // returns the number of children ;
void determineClassHierarchy(SgFile *aFile);
// finds all classes in a file and stores them in a hierarchy. It makes
// use of private functions. Typically, this is the only necessary
// function to call when trying to find out a class hierarchy for a file.
int numberOfDescendants (void);
// returns the total number of all descendants;
int numberOfParents (void);
// returns the number of parents of this class;
int numberOfChildren (void);
// returns the number of direct children of this class;
int isCollection();
// returns true if it is a collection, false if not a collection,
// or if it is not known.;
char *fileName(); // returns file name where this class is defined if known,
// NULL if not known.;
int lineNumber(); // returns line number where this class is defined if known,
// -1 if not known.;
virtual int compare(brk_basePtr *);
// compares this heirarchy with another alphabetically using className;
void sort (); // sorts the list, elements must have compare function.,;
void sort(int (* compareFunc) (brk_basePtr *, brk_basePtr *));
};
// -------------------------------------------------------------
// the class implementing the linked list for
class relationList : public brk_linkedList {
public:
// constructor;
relationList();
// access functions;
virtual void printAll(int tNum); // print all elements in list preceded by
// tNum tabs AND print all descendants, incrementing tNum with each
// generation;
virtual void printAll(); // as above, with tNum = 0;
};
// -------------------------------------------------------------;
// For class variables & functions..;
class classMember : public brk_basePtr {
public:
// class vars
memberType typeVariant;
SgStatement * declaration;
SgSymbol * symbol;
char * name;
char * typeOf;
SgType *memType;
// access functions
classMember(SgSymbol *sym, memberType tv);
classMember(SgStatement *decl, memberType tv);
virtual void print();
virtual void print(int);
};

View File

@@ -1,34 +0,0 @@
/*********************************************************************/
/* pC++/Sage++ Copyright (C) 1993 */
/* Indiana University University of Oregon University of Rennes */
/*********************************************************************/
extern void **tablebfnd[];
extern void **tablellnd[];
extern void **tabletype[];
extern void **tablesymbol[];
extern void **tablelabel[];
extern int numtablebfnd[];
extern int numtablellnd[];
extern int numtabletype[];
extern int numtablesymbol[];
extern int numtablelabel[];
extern void **fileTableClass;
extern int allocatedForfileTableClass;
extern void **bfndTableClass;
extern int allocatedForbfndTableClass;
extern void **llndTableClass;
extern int allocatedForllndTableClass;
extern void **typeTableClass;
extern int allocatedFortypeTableClass;
extern void **symbolTableClass;
extern int allocatedForsymbolTableClass;
extern void **labelTableClass;
extern int allocatedForlabelTableClass;
extern SgProject *CurrentProject;

View File

@@ -1,40 +0,0 @@
/*********************************************************************/
/* pC++/Sage++ Copyright (C) 1993 */
/* Indiana University University of Oregon University of Rennes */
/*********************************************************************/
void SwitchToFile(int i);
void ReallocatefileTableClass();
void ReallocatebfndTableClass();
void ResetbfndTableClass();
void ReallocatellndTableClass();
void ReallocatesymbolTableClass();
void ReallocatelabelTableClass();
void ReallocatetypeTableClass();
void RemoveFromTableType(void * pt);
void RemoveFromTableSymb(void * pt);
void RemoveFromTableBfnd(void * pt);
void RemoveFromTableFile(void * pt);
void RemoveFromTableLlnd(void * pt);
void RemoveFromTableLabel(void * pt);
void SetMappingInTableForBfnd(PTR_BFND bif, void *pt);
void SetMappingInTableForType(PTR_TYPE type, void *pt);
void SetMappingInTableForSymb(PTR_SYMB symb, void *pt);
void SetMappingInTableForLabel(PTR_LABEL lab, void *pt);
void SetMappingInTableForLlnd(PTR_LLND ll, void *pt);
void SetMappingInTableForFile(PTR_FILE file, void *pt);
SgSymbol *GetMappingInTableForSymbol(PTR_SYMB symb);
SgLabel *GetMappingInTableForLabel(PTR_LABEL lab);
SgStatement *GetMappingInTableForBfnd(PTR_BFND bf);
SgStatement *GetMappingInTableForBfnd(PTR_BFND bf);
SgType *GetMappingInTableForType(PTR_TYPE t);
SgExpression *GetMappingInTableForLlnd(PTR_LLND ll);
SgFile *GetMappingInTableForFile(PTR_FILE file);
SgStatement * BfndMapping(PTR_BFND bif);
SgExpression * LlndMapping(PTR_LLND llin);
SgSymbol * SymbMapping(PTR_SYMB symb);
SgType * TypeMapping(PTR_TYPE ty);
SgLabel * LabelMapping(PTR_LABEL label);

View File

@@ -1,45 +0,0 @@
/*********************************************************************/
/* pC++/Sage++ Copyright (C) 1993 */
/* Indiana University University of Oregon University of Rennes */
/*********************************************************************/
#ifndef SAGEXXUSER_H
#define SAGEXXUSER_H 1
#include "macro.h"
// For C/C++ parser internals
#include "vpc.h"
// For the fortran parser internals
#include "f90.h"
// All the "C" functions from the Rennes toolbox
#include "extcxx_low.h"
class SgProject;
class SgFile;
class SgStatement;
class SgExpression;
class SgLabel;
class SgSymbol;
class SgType;
class SgUnaryExp;
class SgClassSymb;
class SgVarDeclStmt;
class SgVarRefExp; /* ajm: I think they should all be here! @$!@ */
// All the externs (from libSage++.C) used in libSage++.h
#include "sage++extern.h"
#define SORRY Message("Sorry, not implemented yet",0)
// Prototype definitions for all the functions in libSage++.C
#include "sage++proto.h"
// dont delete needed in libSage++.h
#define USER
#include "libSage++.h"
#endif /* ndef SAGEXXUSER_H */

View File

@@ -1,30 +0,0 @@
/*********************************************************************/
/* pC++/Sage++ Copyright (C) 1993 */
/* Indiana University University of Oregon University of Rennes */
/*********************************************************************/
DEFNODECODE(BIF_PARM_DECL,'_','_','_','_','_')
DEFNODECODE(CONST_NAME,'_','_','_','_','_')
DEFNODECODE(ENUM_NAME,'_','_','_','_','_')
DEFNODECODE(FIELD_NAME,'_','_','_','_','_')
DEFNODECODE(VARIABLE_NAME,'_','_','_','_','_')
DEFNODECODE(TYPE_NAME,'_','_','_','_','_')
DEFNODECODE(PROGRAM_NAME,'_','_','_','_','_')
DEFNODECODE(PROCEDURE_NAME,'_','_','_','_','_')
DEFNODECODE(PROCESS_NAME,'_','_','_','_','_')
DEFNODECODE(VAR_FIELD,'_','_','_','_','_')
DEFNODECODE(LABEL_VAR,'_','_','_','_','_')
DEFNODECODE(FUNCTION_NAME,'_','_','_','_','_')
DEFNODECODE(MEMBER_FUNC,'_','_','_','_','_')
DEFNODECODE(CLASS_NAME,'_','_','_','_','_')
DEFNODECODE(TECLASS_NAME,'_','_','_','_','_')
DEFNODECODE(UNION_NAME,'_','_','_','_','_')
DEFNODECODE(STRUCT_NAME,'_','_','_','_','_')
DEFNODECODE(LABEL_NAME,'_','_','_','_','_')
DEFNODECODE(COLLECTION_NAME,'_','_','_','_','_')
DEFNODECODE(ROUTINE_NAME,'_','_','_','_','_')
DEFNODECODE(CONSTRUCT_NAME,'_','_','_','_','_')
DEFNODECODE(INTERFACE_NAME,'_','_','_','_','_')
DEFNODECODE(MODULE_NAME,'_','_','_','_','_')
DEFNODECODE(COMMON_NAME,'_','_','_','_','_')

View File

@@ -1,69 +0,0 @@
/*********************************************************************/
/* pC++/Sage++ Copyright (C) 1993 */
/* Indiana University University of Oregon University of Rennes */
/*********************************************************************/
/* format is the following variant 'a'|'s'|'u'|'t'|'e'|'p'|'d'|'D'|'_',
's'|'_', 'b'|'_','c'|'C'|'_', 'f'|'_'
_ stands for no
-----------------------
a stands for atomic type (T_INT and so on)
u stands for union
t stands for array
s stands for structure (first field structure)
e stands for enumeration
p stands for pointer or reference
d stands for derived
D stands for descript type
------------------
s stands for symbol
------------------
b stands for bastype
------------------
c stands for class type
C stand for collection type
------------------
f stands have a list of fields (should go to symbol also)
*/
DEFNODECODE(DEFAULT, 'a','_','_','_','_')
DEFNODECODE(T_INT, 'a','_','_','_','_')
DEFNODECODE(T_FLOAT, 'a','_','_','_','_')
DEFNODECODE(T_DOUBLE, 'a','_','_','_','_')
DEFNODECODE(T_CHAR, 'a','_','_','_','_')
DEFNODECODE(T_BOOL, 'a','_','_','_','_')
DEFNODECODE(T_STRING, 'a','_','_','_','_')
DEFNODECODE(T_COMPLEX, 'a','_','_','_','_')
DEFNODECODE(T_DCOMPLEX, 'a','_','_','_','_')
DEFNODECODE(T_GATE, 'a','_','_','_','_')
DEFNODECODE(T_EVENT, 'a','_','_','_','_')
DEFNODECODE(T_SEQUENCE, 'a','_','_','_','_')
DEFNODECODE(T_ENUM, 'e','_','_','_','f')
DEFNODECODE(T_SUBRANGE, '_','_','_','_','_')
DEFNODECODE(T_LIST, '_','_','_','_','_')
DEFNODECODE(T_ARRAY, 't','_','b','_','_')
DEFNODECODE(T_RECORD, 's','_','_','_','f')
DEFNODECODE(T_ENUM_FIELD, '_','_','_','_','_')
DEFNODECODE(T_UNKNOWN, 'a','_','_','_','_')
DEFNODECODE(T_VOID, 'a','_','_','_','_')
DEFNODECODE(T_DESCRIPT, 'D','_','b','_','_')
DEFNODECODE(T_FUNCTION, '_','_','b','_','_')
DEFNODECODE(T_POINTER, 'p','_','b','_','_')
DEFNODECODE(T_UNION, 'u','_','_','_','f')
DEFNODECODE(T_STRUCT, 's','_','_','_','f')
DEFNODECODE(T_CLASS, 's','_','_','_','f')
DEFNODECODE(T_TECLASS, 's','_','_','_','f')
DEFNODECODE(T_DERIVED_CLASS, 'd','s','_','_','_')
DEFNODECODE(T_DERIVED_TYPE, 'd','s','_','_','_')
DEFNODECODE(T_COLLECTION, 's','_','_','_','f')
DEFNODECODE(T_DERIVED_COLLECTION, 'd','s','_','_','_')
DEFNODECODE(T_DERIVED_TEMPLATE, 'd','s','_','_','_')
DEFNODECODE(T_REFERENCE, 'p','_','b','_','_')
DEFNODECODE(LOCAL, '_','_','_','_','_')
DEFNODECODE(INPUT, '_','_','_','_','_')
DEFNODECODE(OUTPUT, '_','_','_','_','_')
DEFNODECODE(IO, '_','_','_','_','_')

File diff suppressed because it is too large Load Diff

View File

@@ -1,831 +0,0 @@
/*********************************************************************/
/* pC++/Sage++ Copyright (C) 1993 */
/* Indiana University University of Oregon University of Rennes */
/*********************************************************************/
/*****************************************************************************/
/*****************************************************************************/
/***** *****/
/***** UNPARSE.DEF: Bodin Francois Sepetmber 1992 *****/
/***** with major changes by d. gannon summer 1993 *****/
/***** Version C++ *****/
/***** *****/
/*****************************************************************************/
/*****************************************************************************/
DEFNODECODE(GLOBAL, "%SETFLAG(ARRAYREF)%UNSETFLAG(ARRAYREF)%SETFLAG(CLASSDECL)%UNSETFLAG(CLASSDECL)%SETFLAG(PAREN)%UNSETFLAG(PAREN)%SETFLAG(ELIST)%UNSETFLAG(ELIST)%SETFLAG(QUOTE)%BLOB1%UNSETFLAG(QUOTE)",
's',0,BIFNODE)
DEFNODECODE(PROG_HEDR, "%ERROR",
's',0,BIFNODE)
DEFNODECODE(PROC_HEDR, "%ERROR",
's',0,BIFNODE)
DEFNODECODE(BASIC_BLOCK, "%CMNT%PUTTAB{%NL%INCTAB%BLOB1%DECTAB%PUTTAB}%NL",
's',0,BIFNODE)
DEFNODECODE(MODULE_STMT, "%CMNT%PUTTAB%NL%INCTAB%BLOB1%DECTAB%PUTTAB%NL",
's',0,BIFNODE)
/* 107 is value for FOR_NODE */
DEFNODECODE(CONTROL_END, "",
's',0,BIFNODE)
DEFNODECODE(IF_NODE, "%CMNT%PUTTABif (%LL1) %NL%PUTTAB{%INCTAB%NL%BLOB1%DECTAB%PUTTAB}%NL%IF (%BLOB2 != %NULL)%PUTTABelse %NL%PUTTAB{%INCTAB%NL%BLOB2%DECTAB%PUTTAB}%NL%ENDIF",
's',0,BIFNODE)
DEFNODECODE(ARITHIF_NODE, "%ERROR",
's',0,BIFNODE)
DEFNODECODE(LOGIF_NODE, "%CMNT%PUTTABif (%LL1) %NL%PUTTAB%INCTAB%BLOB1%DECTAB%PUTTAB%NL",
's',0,BIFNODE)
DEFNODECODE(LOOP_NODE, "%ERROR",
's',0,BIFNODE)
DEFNODECODE(FOR_NODE, "%CMNT%PUTTABfor (%LL1 ; %LL2 ; %LL3)%NL%PUTTAB{%INCTAB%NL%BLOB1%DECTAB%PUTTAB}%NL",
's',0,BIFNODE)
DEFNODECODE(FORALL_NODE, "%ERROR",
's',0,BIFNODE)
DEFNODECODE(WHILE_NODE, "%CMNT%PUTTABwhile (%LL1)%NL%PUTTAB{%INCTAB%NL%BLOB1%DECTAB%PUTTAB}%NL",
's',0,BIFNODE)
DEFNODECODE(TRY_STAT, "%CMNT%PUTTABtry {%INCTAB%NL%BLOB1%DECTAB%PUTTAB}%NL",
's',0,BIFNODE)
DEFNODECODE(CATCH_STAT, "%CMNT%PUTTABcatch (%SETFLAG(VARDECL)%TMPLARGS%UNSETFLAG(VARDECL)){%INCTAB%NL%BLOB1%DECTAB%PUTTAB}%NL",
's',0,BIFNODE)
DEFNODECODE(SDOALL_NODE, "%ERROR",
's',0,BIFNODE)
DEFNODECODE(DOACROSS_NODE, "%ERROR",
's',0,BIFNODE)
DEFNODECODE(CDOACROSS_NODE, "%ERROR",
's',0,BIFNODE)
DEFNODECODE(EXIT_NODE, "%ERROR",
's',0,BIFNODE)
DEFNODECODE(GOTO_NODE, "%CMNT%PUTTABgoto %LL3;%NL",
's',0,BIFNODE)
DEFNODECODE(ASSGOTO_NODE, "%ERROR",
's',0,BIFNODE)
DEFNODECODE(COMGOTO_NODE, "%ERROR",
's',0,BIFNODE)
DEFNODECODE(PAUSE_NODE, "%ERROR",
's',0,BIFNODE)
DEFNODECODE(STOP_NODE, "%ERROR",
's',0,BIFNODE)
DEFNODECODE(ASSIGN_STAT, "%CMNT%IF(%LABEL != %NULL)%LABEL%ENDIF%PUTTAB%LL1 = %LL2;%NL",
's',0,BIFNODE)
/*
DEFNODECODE(ASSIGN_STAT, "%ERROR",
's',0,BIFNODE) */
DEFNODECODE(M_ASSIGN_STAT, "%ERROR",
's',0,BIFNODE)
DEFNODECODE(PROC_STAT, "%ERROR",
's',0,BIFNODE)
DEFNODECODE(ASSLAB_STAT, "%ERROR",
's',0,BIFNODE)
DEFNODECODE(SUM_ACC, "%ERROR",
's',0,BIFNODE)
DEFNODECODE(MULT_ACC, "%ERROR",
's',0,BIFNODE)
DEFNODECODE(MAX_ACC, "%ERROR",
's',0,BIFNODE)
DEFNODECODE(MIN_ACC, "%ERROR",
's',0,BIFNODE)
DEFNODECODE(CAT_ACC, "%ERROR",
's',0,BIFNODE)
DEFNODECODE(OR_ACC, "%ERROR",
's',0,BIFNODE)
DEFNODECODE(AND_ACC, "%ERROR",
's',0,BIFNODE)
DEFNODECODE(READ_STAT, "%ERROR",
's',0,BIFNODE)
DEFNODECODE(WRITE_STAT, "%ERROR",
's',0,BIFNODE)
DEFNODECODE(PRINT_STAT, "%ERROR",
's',0,BIFNODE)
DEFNODECODE(OTHERIO_STAT, "%ERROR",
's',0,BIFNODE)
DEFNODECODE(BLOB, "%ERROR",
's',0,BIFNODE)
DEFNODECODE(SIZES, "%ERROR",
's',0,BIFNODE)
/* podd 12.01.12 %CONSTRU deleted
DEFNODECODE(FUNC_HEDR, "%CMNT%IF (%CHECKFLAG(CLASSDECL) != %NULL)%PROTECTION%ENDIF%PUTTAB%DECLSPEC%SYMBTYPE %IF (%CHECKFLAG(CLASSDECL) == %NULL)%SYMBSCOPE%IF(%LL3 != %NULL)<%TMPLARGS >%ENDIF%SYMBDC%ENDIF %SETFLAG(VARDECL)%FUNHD%UNSETFLAG(VARDECL)%CONSTRU%ENDIF%CNSTF{%INCTAB%NL%PUSHFLAG(CLASSDECL)%BLOB1%POPFLAG(CLASSDECL)%DECTAB%PUTTAB}%NL",
's',0,BIFNODE)
*/
DEFNODECODE(FUNC_HEDR, "%CMNT%IF (%CHECKFLAG(CLASSDECL) != %NULL)%PROTECTION%ENDIF%PUTTAB%DECLSPEC%SYMBTYPE %IF (%CHECKFLAG(CLASSDECL) == %NULL)%SYMBSCOPE%IF(%LL3 != %NULL)<%TMPLARGS >%ENDIF%SYMBDC%ENDIF %SETFLAG(VARDECL)%FUNHD%UNSETFLAG(VARDECL)%ENDIF%CNSTF%NL%PUTTAB{%INCTAB%NL%PUSHFLAG(CLASSDECL)%BLOB1%POPFLAG(CLASSDECL)%DECTAB%PUTTAB}%NL%NL",
's',0,BIFNODE)
DEFNODECODE(TEMPLATE_FUNDECL, "%CMNT%PUTTABtemplate <%SETFLAG(VARDECL)%TMPLARGS%UNSETFLAG(VARDECL) > %BLOB1",
's',0,BIFNODE)
DEFNODECODE(WHERE_NODE, "%ERROR",
's',0,BIFNODE)
DEFNODECODE(ALLDO_NODE, "%ERROR",
's',0,BIFNODE)
DEFNODECODE(IDENTIFY, "%ERROR",
's',0,BIFNODE)
DEFNODECODE(FORMAT_STAT, "%ERROR",
's',0,BIFNODE)
DEFNODECODE(STOP_STAT, "%ERROR",
's',0,BIFNODE)
DEFNODECODE(RETURN_STAT, "%CMNT%PUTTABreturn%IF (%LL1 != %NULL) %LL1%ENDIF;%NL",
's',0,BIFNODE)
DEFNODECODE(ELSEIF_NODE, "%CMNT%DECTAB%PUTTAB}%NL%PUTTABelse if (%LL1) %NL%PUTTAB{%INCTAB%NL",
's',0,BIFNODE)
/*NO_OPnodes*/
DEFNODECODE(COMMENT_STAT, "%CMNT%NL",
's',0,BIFNODE)
DEFNODECODE(CONT_STAT, "%CMNT%PUTTABcontinue;%NL",
's',0,BIFNODE)
DEFNODECODE(VAR_DECL, "%CMNT%SETFLAG(VARDECL)%IF (%CHECKFLAG(ENUM) == %NULL)%IF (%CHECKFLAG(CLASSDECL) != %NULL)%PROTECTION%ENDIF%PUTTAB%DECLSPEC%TYPE %ENDIF%LL1%IF (%CHECKFLAG(ENUM) == %NULL);%ENDIF%UNSETFLAG(VARDECL)%NL",
's',0,BIFNODE)
DEFNODECODE(PARAM_DECL, "%ERROR",
's',0,BIFNODE)
DEFNODECODE(COMM_STAT, "%ERROR",
's',0,BIFNODE)
DEFNODECODE(EQUI_STAT, "%ERROR",
's',0,BIFNODE)
DEFNODECODE(IMPL_DECL, "%ERROR",
's',0,BIFNODE)
DEFNODECODE(DATA_DECL, "%ERROR",
's',0,BIFNODE)
DEFNODECODE(SAVE_DECL, "%ERROR",
's',0,BIFNODE)
DEFNODECODE(STMTFN_STAT, "%ERROR",
's',0,BIFNODE)
DEFNODECODE(DIM_STAT, "%ERROR",
's',0,BIFNODE)
DEFNODECODE(EXTERN_STAT, "%ERROR",
's',0,BIFNODE)
DEFNODECODE(INTRIN_STAT, "%ERROR",
's',0,BIFNODE)
DEFNODECODE(ENUM_DECL, "%CMNT%PUTTAB%DECLSPEC%SETFLAG(ENUM)enum %SYMBID %IF (%BLOB1 != %NULL){%INCTAB%NL %BLOB1%DECTAB%PUTTAB}%LL1;%NL%ELSE%LL1;%NL%ENDIF%UNSETFLAG(ENUM)",
'd',0,BIFNODE)
/* the public: in the line below is to mask a dep2C++ bug */
DEFNODECODE(CLASS_DECL, "%CMNT%INCLASSON%IF (%CHECKFLAG(CLASSDECL) != %NULL)%PROTECTION%ENDIF%PUSHFLAG(CLASSDECL)%PUTTAB%DECLSPEC%RIDPT%SETFLAG(CLASSDECL)class %SYMBID%IF (%LL2 !=%NULL):%SETFLAG(SUBCLASS)%LL2%UNSETFLAG(SUBCLASS)%ENDIF %IF (%BLOB1 != %NULL){%INCTAB%NLpublic:%NL%BLOB1 %NL%DECTAB%PUTTAB}%SETFLAG(VARDECL)%LL1;%UNSETFLAG(VARDECL)%NL%ELSE%SETFLAG(VARDECL)%LL1;%UNSETFLAG(VARDECL)%NL%ENDIF%UNSETFLAG(CLASSDECL)%POPFLAG(CLASSDECL)%IF (%CHECKFLAG(CLASSDECL) == %NULL)%INCLASSOFF",
'd',0,BIFNODE)
DEFNODECODE(TECLASS_DECL, "%CMNT%INCLASSON%IF (%CHECKFLAG(CLASSDECL) != %NULL)%PROTECTION%ENDIF%PUSHFLAG(CLASSDECL)%PUTTAB%DECLSPEC%RIDPT%SETFLAG(CLASSDECL)TEClass %SYMBID%IF (%LL2 !=%NULL):%SETFLAG(SUBCLASS)%LL2%UNSETFLAG(SUBCLASS)%ENDIF %IF (%BLOB1 != %NULL){%INCTAB%NLpublic:%NL%BLOB1 %NL%DECTAB%PUTTAB}%SETFLAG(VARDECL)%LL1;%UNSETFLAG(VARDECL)%NL%ELSE%SETFLAG(VARDECL)%LL1;%UNSETFLAG(VARDECL)%NL%ENDIF%UNSETFLAG(CLASSDECL)%POPFLAG(CLASSDECL)%INCLASSOFF",
'd',0,BIFNODE)
DEFNODECODE(UNION_DECL, "%CMNT%PUTTAB%DECLSPEC%RIDPTunion %SYMBID %IF (%BLOB1 != %NULL){%INCTAB%NL%BLOB1%NL%DECTAB%PUTTAB} %LL1;%NL%ELSE%LL1;%NL%ENDIF",
'd',0,BIFNODE)
DEFNODECODE(STRUCT_DECL, "%CMNT%PUTTAB%DECLSPEC%RIDPTstruct %SYMBID %IF (%LL2 !=%NULL):%SETFLAG(SUBCLASS)%LL2%UNSETFLAG(SUBCLASS)%ENDIF %IF (%BLOB1!=%NULL){%INCTAB%NL%BLOB1%DECTAB%PUTTAB} %SETFLAG(VARDECL)%LL1;%UNSETFLAG(VARDECL)%NL%ELSE%SETFLAG(VARDECL)%LL1;%UNSETFLAG(VARDECL)%NL%ENDIF",
'd',0,BIFNODE)
DEFNODECODE(EXTERN_C_STAT, "%CMNT%PUTTABextern \"C\" %IF (%BLOB1!=%NULL){%INCTAB%NL%BLOB1%DECTAB%PUTTAB}%NL%ENDIF",
'd',0,BIFNODE)
DEFNODECODE(DERIVED_CLASS_DECL, "%ERROR",
'd',0,BIFNODE)
DEFNODECODE(EXPR_STMT_NODE, "%CMNT%PUTTAB%LL1;%NL",
's',0,BIFNODE)
DEFNODECODE(DO_WHILE_NODE, "%CMNT%PUTTABdo {%NL%INCTAB%NL%BLOB1%DECTAB%PUTTAB} while (%LL1);%NL",
's',0,BIFNODE)
DEFNODECODE(SWITCH_NODE, "%CMNT%PUTTABswitch (%LL1)%NL%PUTTAB{%NL%INCTAB%BLOB1%DECTAB%PUTTAB}%NL",
's',0,BIFNODE)
DEFNODECODE(CASE_NODE, "%CMNT%PUTTABcase %LL1:%NL",
's',0,BIFNODE)
DEFNODECODE(DEFAULT_NODE, "%CMNT%PUTTABdefault:%NL",
's',0,BIFNODE)
DEFNODECODE(BREAK_NODE, "%CMNT%PUTTABbreak;%NL",
's',0,BIFNODE)
DEFNODECODE(CONTINUE_NODE, "%CMNT%PUTTABcontinue;%NL",
's',0,BIFNODE)
DEFNODECODE(RETURN_NODE, "%CMNT%PUTTABreturn%IF (%LL1 != %NULL) %LL1%ENDIF;%NL",
's',0,BIFNODE)
DEFNODECODE(ASM_NODE, "%ERROR",
's',0,BIFNODE)
DEFNODECODE(SPAWN_NODE, "%CMNT%PUTTABspawn %LL1;%NL",
's',0,BIFNODE)
DEFNODECODE(PARFOR_NODE, "%CMNT%PUTTABparfor (%LL1 ; %LL2 ; %LL3)%NL%PUTTAB{%INCTAB%NL%BLOB1%DECTAB%PUTTAB}%NL",
's',0,BIFNODE)
DEFNODECODE(PAR_NODE, "%CMNT%PUTTABpar%NL%PUTTAB{%INCTAB%NL%BLOB1%DECTAB%PUTTAB}%NL",
's',0,BIFNODE)
DEFNODECODE(LABEL_STAT, "%CMNT%LABNAME:%NL",
's',0,BIFNODE)
DEFNODECODE(PROS_COMM, "%ERROR",
's',0,BIFNODE)
DEFNODECODE(ATTR_DECL, "%ERROR",
's',0,BIFNODE)
DEFNODECODE(NAMELIST_STAT, "%ERROR",
's',0,BIFNODE)
DEFNODECODE(OPEN_STAT, "%ERROR",
's',0,BIFNODE)
DEFNODECODE(CLOSE_STAT, "%ERROR",
's',0,BIFNODE)
DEFNODECODE(ENDFILE_STAT, "%ERROR",
's',0,BIFNODE)
DEFNODECODE(REWIND_STAT, "%ERROR",
's',0,BIFNODE)
/* DEFNODECODE(ENTRY_STAT, "%ERROR",
's',0,BIFNODE) */
DEFNODECODE(ENTRY_STAT, "%ERROR",
's',0,BIFNODE)
DEFNODECODE(BLOCK_DATA, "%ERROR",
's',0,BIFNODE)
DEFNODECODE(COLLECTION_DECL, "%INCLASSON%CMNT%IF (%CHECKFLAG(CLASSDECL) != %NULL)%PROTECTION%ENDIF%PUSHFLAG(CLASSDECL)%PUTTAB%RIDPT%SETFLAG(CLASSDECL)Collection %SYMBID%IF (%LL2 !=%NULL):public %LL2%ENDIF %IF (%BLOB1 != %NULL){%INCTAB%NL%BLOB1 %NL%DECTAB%PUTTAB}%SETFLAG(VARDECL)%LL1;%UNSETFLAG(VARDECL)%NL%ELSE%SETFLAG(VARDECL)%LL1;%UNSETFLAG(VARDECL)%NL%ENDIF%UNSETFLAG(CLASSDECL)%POPFLAG(CLASSDECL)%INCLASSOFF",
's',0,BIFNODE)
DEFNODECODE(INCLUDE_LINE, "%CMNT#include %LL1%NL",
's',0,BIFNODE)
DEFNODECODE(PREPROCESSOR_DIR, "%CMNT%LL1%NL",
's',0,BIFNODE)
/*****************variant tags for low level nodes********************/
/***** List of commands for LOW LEVEL NODES *****/
/* %ERROR : Error ; syntax : %ERROR'message' */
/* %NL : NewLine */
/* %% : '%' (Percent Sign) */
/* %TAB : Tab */
/* %IF : If ; syntax : %IF (condition) then_bloc [%ELSE else_bloc] %ENDIF */
/* %ELSE : Else */
/* %ENDIF : End of If */
/* %LL1 : Low Level Node 1 */
/* %LL2 : Low Level Node 2 */
/* %SYMBID : Symbol identifier */
/* %TYPE : Type */
/* %L1SYMBCST : Constant Value of Low Level Node Symbol */
/* %INTVAL : Integer Value */
/* %STATENO : Statement Number */
/* %STRVAL : String Value */
/* %BOOLVAL : Boolean Value */
/* %CHARVAL : Char Value */
/* %ORBPL1 : Openning Round Brackets on Precedence of Low Level Node 1 */
/* %CRBPL1 : Closing Round Brackets on Precedence of Low Level Node 1 */
/* %ORBPL2 : Openning Round Brackets on Precedence of Low Level Node 2 */
/* %CRBPL2 : Closing Round Brackets on Precedence of Low Level Node 2 */
/***********************************************/
/***** List of commands for evaluation in IF THEN ELSE ENDIF statements for LOW LEVEL NODE *****/
/* %STRCST : String Constant in '' */
/* %SYMBID : Symbol Identifier (string) */
/* %SYMBOL : Symbol node (integer) */
/* == : Equal (operation) */
/* != : Different (operation) */
/* %NULL : 0, Integer Constant (or false boolean) */
/* %LL1 : Low Level Node 1 (integer) */
/* %LL2 : Low Level Node 2 (integer) */
/* %LABUSE : Label ptr (do end) (integer) */
/* %L1CODE : Code (variant) of Low Level Node 1 (integer) */
/* %L2CODE : Code (variant) of Low Level Node 2 (integer) */
/* %INWRITE : In_Write_Statement (integer / boolean flag) */
/* %INPARAM : In_Param_Statement (integer / boolean flag) */
/* %INIMPLI : In_Impli_Statement (integer / boolean flag) */
/************************************************************************************************/
/* CODES AYANT DISPARU :
RENAME_NODE, ONLY_NODE, DEFAULT, LEN_OP, TARGET_OP,
SAVE_OP, POINTER_OP, INTRINSIC_OP, INOUT_OP, OUT_OP,
IN_OP, OPTIONAL_OP, EXTERNAL_OP, DIMENSION_OP, ALLOCATABLE_OP,
PRIVATE_OP, PUBLIC_OP, PARAMETER_OP, MAXPARALLEL_OP, EXTEND_OP,
ORDERED_OP, PAREN_OP, OVERLOADED_CALL, STRUCTURE_CONSTRUCTOR, INTERFACE_REF,
TYPE_REF, KEYWORD_ARG,
*/
DEFNODECODE(LEN_OP, "%IF (%LL1 != %NULL)*(%LL1)%ENDIF",
'e',0,LLNODE)
DEFNODECODE(INT_VAL, "%INTKIND",
'c',0,LLNODE)
DEFNODECODE(FLOAT_VAL, "%STRVAL",
'c',0,LLNODE)
DEFNODECODE(DOUBLE_VAL, "%STRVAL",
'c',0,LLNODE)
DEFNODECODE(BOOL_VAL, "%BOOLVAL",
'c',0,LLNODE)
DEFNODECODE(CHAR_VAL, "%IF (%INIMPLI == %NULL)'%ENDIF%CHARVAL%IF (%INIMPLI == %NULL)'%ENDIF",
'c',0,LLNODE)
DEFNODECODE(STRING_VAL, "%IF (%CHECKFLAG(QUOTE) != %NULL)\"%STRVAL\"%ELSE\"%STRVAL\"%ENDIF",
'c',0,LLNODE)
DEFNODECODE(KEYWORD_VAL, "%STRVAL",
'c',0,LLNODE)
DEFNODECODE(COMPLEX_VAL, "(%LL1, %LL2)",
'c',0,LLNODE)
DEFNODECODE(CONST_REF, "%SYMBID",
'r',2,LLNODE)
DEFNODECODE(VAR_REF, "%IF(%CHECKFLAG(SUBCLASS) != %NULL)%DOPROC%ENDIF%SYMBID%IF(%LL2 != %NULL)%PUSHFLAG(PAREN)<%LL2 >%POPFLAG(PAREN)%ENDIF",
'r',0,LLNODE)
DEFNODECODE(ARRAY_REF, "%SYMBID%IF (%LL1 != %NULL)%PUSHFLAG(ARRAYREF)%SETFLAG(ARRAYREF)%PUSHFLAG(PAREN)%SETFLAG(PAREN)%LL1%UNSETFLAG(ARRAYREF)%UNSETFLAG(PAREN)%POPFLAG(PAREN)%POPFLAG(ARRAYREF)%ENDIF",
'r',1,LLNODE)
DEFNODECODE(RECORD_REF, "%PUSHFLAG(PAREN)%SETFLAG(PAREN)%LL1.%LL2%UNSETFLAG(PAREN)%POPFLAG(PAREN)",
'r',2,LLNODE)
DEFNODECODE(ENUM_REF, "%LL1",
'r',2,LLNODE)
DEFNODECODE(LABEL_REF, "%LABELNAME",
'r',0,LLNODE)
DEFNODECODE(TYPE_REF, "%TYPE",
'r',0,LLNODE)
DEFNODECODE(TYPE_OP, "%TYPE",
'e',1,LLNODE)
DEFNODECODE(THROW_OP, "throw %IF(%LL1 != %NULL)%LL1%ENDIF",
'r',2,LLNODE)
DEFNODECODE(VAR_LIST, "%LL1%IF (%LL2 != %NULL), %LL2%ENDIF",
'e',2,LLNODE)
DEFNODECODE(FORDECL_OP, "%VARLISTTY",
'e',2,LLNODE)
DEFNODECODE(EXPR_LIST,
"%IF(%CHECKFLAG(PAREN)!=%NULL)%IF(%CHECKFLAG(ARRAYREF)!=%NULL)[%ELSE%IF(%CHECKFLAG(ELIST)==%NULL)(%ELSE, %ENDIF%ENDIF%ELSE%IF(%CHECKFLAG(ELIST) != %NULL), %ENDIF%ENDIF%PUSHFLAG(ARRAYREF)%PUSHFLAG(PAREN)%SETFLAG(PAREN)%PUSHFLAG(ELIST)%LL1%POPFLAG(ELIST)%POPFLAG(ARRAYREF)%POPFLAG(PAREN)%IF(%CHECKFLAG(PARAM)!=%NULL) = %L1SYMBCST%ENDIF%IF(%CHECKFLAG(ARRAYREF)!=%NULL)]%ENDIF%IF(%LL2!=%NULL)%IF(%CHECKFLAG(ELIST)==%NULL)%SETFLAG(ELIST)%ENDIF%LL2%ENDIF%IF(%CHECKFLAG(PAREN) != %NULL)%IF(%LL2 == %NULL)%IF(%CHECKFLAG(ARRAYREF) == %NULL))%ENDIF%ENDIF%ENDIF%IF(%LL2 == %NULL)%IF(%CHECKFLAG(ELIST) != %NULL)%UNSETFLAG(ELIST)%ENDIF",
'e',2,LLNODE)
/* second way (wrong)
DEFNODECODE(EXPR_LIST,
"%IF (%CHECKFLAG(PAREN) != %NULL)%IF (%CHECKFLAG(ARRAYREF) != %NULL)[%ELSE(%ENDIF%ENDIF%PUSHFLAG(ARRAYREF)%PUSHFLAG(PAREN)%SETFLAG(PAREN)%LL1%POPFLAG(ARRAYREF)%IF (%CHECKFLAG(PARAM) != %NULL) = %L1SYMBCST%ENDIF%IF (%LL2 != %NULL)%IF (%CHECKFLAG(ARRAYREF) != %NULL)][%ELSE,%ENDIF%LL2%ENDIF%POPFLAG(PAREN)%IF (%CHECKFLAG(PAREN) != %NULL)%IF (%CHECKFLAG(ARRAYREF) != %NULL)]%ELSE)%ENDIF%ENDIF",
'e',2,LLNODE)
*/
/*
DEFNODECODE(EXPR_LIST, "%PUSHFLAG(ARRAYREF)%LL1%POPFLAG(ARRAYREF)%IF (%CHECKFLAG(PARAM) != %NULL) = %L1SYMBCST%ENDIF%ENDIF%IF (%LL2 != %NULL)%IF (%CHECKFLAG(ARRAYREF) != %NULL)][%ELSE,%ENDIF%LL2%ENDIF",
'e',2,LLNODE)
*/
DEFNODECODE(RANGE_LIST, "%LL1%IF (%LL2 != %NULL), %LL2%ENDIF",
'e',2,LLNODE)
DEFNODECODE(CASE_CHOICE, "%ERROR",
'e',2,LLNODE)
DEFNODECODE(DEF_CHOICE, "%LL1%IF (%LL2 != %NULL):%LL2",
'e',2,LLNODE)
DEFNODECODE(VARIANT_CHOICE, "%ERROR",
'e',2,LLNODE)
DEFNODECODE(DDOT, "%LL1%IF (%INWRITE != %NULL),%ELSE%IF (%INIMPLI != %NULL)-%ELSE%IF (%CHECKFLAG(LOOP) != %NULL),%ELSE:%ENDIF%ENDIF%ENDIF%LL2",
'e',2,LLNODE)
DEFNODECODE(RANGE_OP, "%ERROR",
'e',2,LLNODE)
DEFNODECODE(UPPER_OP, "%ERROR",
'e',2,LLNODE)
DEFNODECODE(LOWER_OP, "%ERROR",
'e',2,LLNODE)
DEFNODECODE(EQ_OP, "%ORBCPL1%LL1%CRBCPL1 == %ORBCPL2%LL2%CRBCPL2",
'e',2,LLNODE)
DEFNODECODE(LT_OP, "%ORBCPL1%LL1%CRBCPL1 < %ORBCPL2%LL2%CRBCPL2",
'e',2,LLNODE)
DEFNODECODE(GT_OP, "%ORBCPL1%LL1%CRBCPL1 > %ORBCPL2%LL2%CRBCPL2",
'e',2,LLNODE)
DEFNODECODE(NOTEQL_OP, "%ORBCPL1%LL1%CRBCPL1 != %ORBCPL2%LL2%CRBCPL2",
'e',2,LLNODE)
DEFNODECODE(LTEQL_OP, "%ORBCPL1%LL1%CRBCPL1 <= %ORBCPL2%LL2%CRBCPL2",
'e',2,LLNODE)
DEFNODECODE(GTEQL_OP, "%ORBCPL1%LL1%CRBCPL1 >= %ORBCPL2%LL2%CRBCPL2",
'e',2,LLNODE)
DEFNODECODE(ADD_OP, "%ORBCPL1%LL1%CRBCPL1 + %ORBCPL2%LL2%CRBCPL2",
'e',2,LLNODE)
DEFNODECODE(SUBT_OP, "%ORBCPL1%LL1%CRBCPL1 - %ORBCPL2%LL2%CRBCPL2",
'e',2,LLNODE)
DEFNODECODE(OR_OP, "%ORBCPL1%LL1%CRBCPL1 || %ORBCPL2%LL2%CRBCPL2",
'e',2,LLNODE)
DEFNODECODE(MULT_OP, "%ORBCPL1%LL1%CRBCPL1 * %ORBCPL2%LL2%CRBCPL2",
'e',2,LLNODE)
DEFNODECODE(DIV_OP, "%ORBCPL1%LL1%CRBCPL1 / %ORBCPL2%LL2%CRBCPL2",
'e',2,LLNODE)
DEFNODECODE(MOD_OP, "%ORBCPL1%LL1%CRBCPL1 %% %ORBCPL2%LL2%CRBCPL2",
'e',2,LLNODE)
DEFNODECODE(AND_OP, "%ORBCPL1%LL1%CRBCPL1 && %ORBCPL2%LL2%CRBCPL2",
'e',2,LLNODE)
DEFNODECODE(EXP_OP, "%ERROR",
'e',2,LLNODE)
DEFNODECODE(ARRAY_MULT, "%ERROR",
'e',2,LLNODE)
/*DEFNODECODE(CONCAT_OP, "%PUSHFLAG(PAREN)%SETFLAG(PAREN)%LL1//%LL2%UNSETFLAG(PAREN)%POPFLAG(PAREN)",
'e',2,LLNODE)*/
DEFNODECODE(CONCAT_OP, "%ERROR",
'e',2,LLNODE)
DEFNODECODE(XOR_OP, "%ORBCPL1%LL1%CRBCPL1 ^ %ORBCPL2%LL2%CRBCPL2",
'e',2,LLNODE)
DEFNODECODE(EQV_OP, "%ERROR",
'e',2,LLNODE)
DEFNODECODE(NEQV_OP, "%ERROR",
'e',2,LLNODE)
DEFNODECODE(MINUS_OP, "(-%ORBCPL1%LL1%CRBCPL1)",
'e',1,LLNODE)
DEFNODECODE(NOT_OP, "!%ORBCPL1%LL1%CRBCPL1",
'e',2,LLNODE)
DEFNODECODE(ASSGN_OP, "%ORBCPL1%LL1%CRBCPL1 = %PUSHFLAG(VARDECL)%LL2%POPFLAG(VARDECL)",
'e',2,LLNODE)
/*
DEFNODECODE(DEREF_OP, "%IF (%CHECKFLAG(VARDECL) == %NULL)(*%LL1)%ELSE*%LL1%ENDIF",
'e',1,LLNODE)
*/
DEFNODECODE(DEREF_OP, "%IF (%CHECKFLAG(VARDECL) == %NULL)*%PUSHFLAG(PAREN)%SETFLAG(PAREN)%LL1%UNSETFLAG(PAREN)%POPFLAG(PAREN)%ELSE*%CNSTCHK%LL1%ENDIF",
'e',1,LLNODE)
DEFNODECODE(ARROWSTAR_OP, "%PUSHFLAG(PAREN)%SETFLAG(PAREN)%LL1%UNSETFLAG(PAREN)%POPFLAG(PAREN)->*%LL2",
'e',2,LLNODE)
DEFNODECODE(DOTSTAR_OP, "%PUSHFLAG(PAREN)%SETFLAG(PAREN)%LL1%UNSETFLAG(PAREN)%POPFLAG(PAREN).*%LL2",
'e',2,LLNODE)
DEFNODECODE(POINTST_OP, "%PUSHFLAG(PAREN)%SETFLAG(PAREN)%LL1%UNSETFLAG(PAREN)%POPFLAG(PAREN)->%LL2",
'e',2,LLNODE)
DEFNODECODE(SCOPE_OP, "%LL1::%LL2",
'e',2,LLNODE)
/* should be
DEFNODECODE(FUNCTION_OP, "%PUSHFLAG(PAREN)%SETFLAG(PAREN)%LL1%UNSETFLAG(PAREN)%IF (%CHECKFLAG(VARDECL) != %NULL)(%VARLISTTY)%ELSE%LL2%ENDIF%POPFLAG(PAREN)",
'e',2,LLNODE)
but the following works for now */
DEFNODECODE(FUNCTION_OP, "%PUSHFLAG(PAREN)(%LL1)%PUSHFLAG(FREF)%SETFLAG(FREF)%IF (%CHECKFLAG(VARDECL) != %NULL)(%VARLISTTY)%ELSE%IF(%LL2 != %NULL)%SETFLAG(PAREN)%LL2%UNSETFLAG(PAREN)%ELSE()%ENDIF%ENDIF%UNSETFLAG(FREF)%POPFLAG(FREF)%POPFLAG(PAREN)",
'e',2,LLNODE)
DEFNODECODE(MINUSMINUS_OP, "%IF (%LL2 != %NULL)%ORBCPL2%LL2%CRBCPL2%ENDIF--%IF (%LL1 != %NULL)%ORBCPL1%LL1%CRBCPL1%ENDIF",
'e',2,LLNODE)
DEFNODECODE(PLUSPLUS_OP, "%IF (%LL2 != %NULL)%ORBCPL2%LL2%CRBCPL2%ENDIF++%IF (%LL1 != %NULL)%ORBCPL1%LL1%CRBCPL1%ENDIF",
'e',2,LLNODE)
DEFNODECODE(BITAND_OP, "%ORBCPL1%LL1%CRBCPL1 & %ORBCPL2%LL2%CRBCPL2",
'e',2,LLNODE)
DEFNODECODE(BITOR_OP, "%ORBCPL1%LL1%CRBCPL1 | %ORBCPL2%LL2%CRBCPL2",
'e',2,LLNODE)
DEFNODECODE(PLUS_ASSGN_OP, "%ORBCPL1%LL1%CRBCPL1 += %LL2",
'e',2,LLNODE)
DEFNODECODE(MINUS_ASSGN_OP, "%ORBCPL1%LL1%CRBCPL1 -= %LL2",
'e',2,LLNODE)
DEFNODECODE(AND_ASSGN_OP, "%ORBCPL1%LL1%CRBCPL1 &= %LL2",
'e',2,LLNODE)
DEFNODECODE(IOR_ASSGN_OP, "%ORBCPL1%LL1%CRBCPL1 |= %LL2",
'e',2,LLNODE)
DEFNODECODE(MULT_ASSGN_OP, "%ORBCPL1%LL1%CRBCPL1 *= %LL2",
'e',2,LLNODE)
DEFNODECODE(DIV_ASSGN_OP, "%ORBCPL1%LL1%CRBCPL1 /= %LL2",
'e',2,LLNODE)
DEFNODECODE(MOD_ASSGN_OP, "%ORBCPL1%LL1%CRBCPL1 %= %LL2",
'e',2,LLNODE)
DEFNODECODE(XOR_ASSGN_OP, "%ORBCPL1%LL1%CRBCPL1 ^= %LL2",
'e',2,LLNODE)
DEFNODECODE(LSHIFT_ASSGN_OP, "%ORBCPL1%LL1%CRBCPL1 <<= %LL2",
'e',2,LLNODE)
DEFNODECODE(RSHIFT_ASSGN_OP, "%ORBCPL1%LL1%CRBCPL1 >>= %LL2",
'e',2,LLNODE)
DEFNODECODE(STAR_RANGE, "*",
'e',2,LLNODE)
DEFNODECODE(PROC_CALL, "%SYMBID%IF(%LL1 != %NULL)%PUSHFLAG(PAREN)%SETFLAG(PAREN)%LL1%UNSETFLAG(PAREN)%POPFLAG(PAREN)%ELSE()%ENDIF",
'e',2,LLNODE)
DEFNODECODE(FUNC_CALL, "%SYMBID%IF(%LL2 != %NULL)%PUSHFLAG(PAREN)<%LL2 >%POPFLAG(PAREN)%ENDIF%IF(%LL1 != %NULL)%PUSHFLAG(PAREN)%SETFLAG(PAREN)%LL1%UNSETFLAG(PAREN)%POPFLAG(PAREN)%ELSE()%ENDIF",
'e',1,LLNODE)
DEFNODECODE(ACC_CALL_OP, "%SYMBID%IF(%LL2 != %NULL)%PUSHFLAG(PAREN)<<<%LL2>>>%POPFLAG(PAREN)%ENDIF%IF(%LL1 != %NULL)%PUSHFLAG(PAREN)%SETFLAG(PAREN)%LL1%UNSETFLAG(PAREN)%POPFLAG(PAREN)%ELSE()%ENDIF",
'e',1,LLNODE)
DEFNODECODE(CONSTRUCTOR_REF, "(/%LL1/)",
'e',2,LLNODE)
DEFNODECODE(ACCESS_REF, "%LL1%IF (%LL2 != %NULL) (%LL2)%ENDIF",
'e',2,LLNODE)
DEFNODECODE(CONS, "%LL1, %LL2",
'e',2,LLNODE)
DEFNODECODE(ACCESS, "%LL1, FORALL = (%SYMBID = %LL2)",
'e',2,LLNODE)
DEFNODECODE(IOACCESS, "%IF (%LL1 != %NULL)(%LL1, %ENDIF%SYMBID = %LL2%IF (%LL1 != %NULL))%ENDIF",
'e',2,LLNODE)
DEFNODECODE(CONTROL_LIST, "%LL1%IF (%LL2 != %NULL), %LL2%ENDIF",
'e',2,LLNODE)
DEFNODECODE(SEQ, "%LL1%IF (%LL2 != %NULL):%LL2",
'e',2,LLNODE)
DEFNODECODE(SPEC_PAIR, "%IF (%CHECKFLAG(PRINT) != %NULL)%LL2%ELSE%LL1 = %LL2%ENDIF",
'e',2,LLNODE)
DEFNODECODE(COMM_LIST, "%IF (%SYMBOL != %NULL)/%SYMBID/%ENDIF%LL1%IF (%LL2 != %NULL), %LL2%ENDIF",
'e',2,LLNODE)
DEFNODECODE(STMT_STR, "%STRVAL",
'e',2,LLNODE)
DEFNODECODE(EQUI_LIST, "(%LL1)%IF (%LL2 != %NULL), %LL2%ENDIF",
'e',2,LLNODE)
DEFNODECODE(IMPL_TYPE, "%TYPE %IF (%LL1 != %NULL)(%LL1)%ENDIF",
'e',2,LLNODE)
DEFNODECODE(STMTFN_DECL, "%SYMBID (%VARLIST) = %LL1",
'e',2,LLNODE)
DEFNODECODE(BIT_COMPLEMENT_OP, "~%ORBCPL1%LL1%CRBCPL1",
'e',2,LLNODE)
DEFNODECODE(EXPR_IF, "(%LL1)?%LL2",
'e',2,LLNODE)
DEFNODECODE(EXPR_IF_BODY, "%LL1:%LL2",
'e',2,LLNODE)
DEFNODECODE(FUNCTION_REF, "%SETFLAG(FREF)%SYMBID%IF (%CHECKFLAG(VARDECL) != %NULL)%IF(%CHECKFLAG(TMPLDEC) == %NULL)(%VARLISTTY)%CNSTF%PURE%ENDIF%ENDIF%UNSETFLAG(FREF)",
'e',2,LLNODE)
DEFNODECODE(LSHIFT_OP, "%ORBCPL1%LL1%CRBCPL1 << %ORBCPL2%LL2%CRBCPL2",
'e',2,LLNODE)
DEFNODECODE(RSHIFT_OP, "%ORBCPL1%LL1%CRBCPL1 >> %ORBCPL2%LL2%CRBCPL2",
'e',2,LLNODE)
DEFNODECODE(UNARY_ADD_OP, "(+(%LL1))",
'e',2,LLNODE)
/*
DEFNODECODE(SIZE_OP, "%IF(%CHECKFLAG(NEW) != %NULL)sizeof(%LL1)%ELSEsizeof %LL1",
'e',2,LLNODE)
*/
DEFNODECODE(SIZE_OP, "sizeof(%LL1)",
'e',2,LLNODE)
DEFNODECODE(INTEGER_DIV_OP, "%PUSHFLAG(PAREN)%SETFLAG(PAREN)%LL1/%LL2%UNSETFLAG(PAREN)%POPFLAG(PAREN)",
'e',2,LLNODE)
DEFNODECODE(SUB_OP, "%PUSHFLAG(PAREN)%SETFLAG(PAREN)%LL1-%LL2%UNSETFLAG(PAREN)%POPFLAG(PAREN)",
'e',2,LLNODE)
DEFNODECODE(LE_OP, "%PUSHFLAG(PAREN)%SETFLAG(PAREN)%LL1<=%LL2%UNSETFLAG(PAREN)%POPFLAG(PAREN)",
'e',2,LLNODE)
DEFNODECODE(GE_OP, "%PUSHFLAG(PAREN)%SETFLAG(PAREN)%LL1>=%LL2%UNSETFLAG(PAREN)%POPFLAG(PAREN)",
'e',2,LLNODE)
DEFNODECODE(NE_OP, "%PUSHFLAG(PAREN)%SETFLAG(PAREN)%LL1!=%LL2%UNSETFLAG(PAREN)%POPFLAG(PAREN)",
'e',2,LLNODE)
DEFNODECODE(CLASSINIT_OP, "%LL1%IF(%LL2 != %NULL)%PUSHFLAG(PAREN)%SETFLAG(PAREN)%LL2%UNSETFLAG(PAREN)%POPFLAG(PAREN)%ELSE()%ENDIF",
'e',2,LLNODE)
/*
DEFNODECODE(CAST_OP, "%IF(%CHECKFLAG(NEW) != %NULL)%IF (%LL2 != %NULL)%PUSHFLAG(VARDECL)%SETFLAG(VARDECL)(%VARLISTTY)%UNSETFLAG(VARDECL)%POPFLAG(VARDECL)%ELSE%SETFLAG(CASTOP)%TYPE%UNSETFLAG(CASTOP)%ENDIF%IF (%LL1 != %NULL)%PUSHFLAG(PAREN)%SETFLAG(PAREN)%LL1%UNSETFLAG(PAREN)%POPFLAG(PAREN)%ENDIF%ELSE%IF (%LL2 != %NULL)%TYPE%PUSHFLAG(PAREN)%SETFLAG(PAREN)%LL2%UNSETFLAG(PAREN)%POPFLAG(PAREN)%ELSE%SETFLAG(CASTOP)(%TYPE)%UNSETFLAG(CASTOP)%PUSHFLAG(PAREN)%SETFLAG(PAREN) %LL1%UNSETFLAG(PAREN)%POPFLAG(PAREN)%ENDIF%ENDIF",
'e',2,LLNODE)
*/
DEFNODECODE(CAST_OP, "%IF (%LL2 != %NULL)%PUSHFLAG(VARDECL)%SETFLAG(VARDECL)(%VARLISTTY)%UNSETFLAG(VARDECL)%POPFLAG(VARDECL)%ELSE%SETFLAG(CASTOP)%TYPE%UNSETFLAG(CASTOP)%ENDIF%IF (%LL1 != %NULL)%ORBCPL1%LL1%CRBCPL1%ENDIF",
'e',2,LLNODE)
DEFNODECODE(ADDRESS_OP, "%IF (%CHECKFLAG(VARDECL) == %NULL)&%ORBCPL1%LL1%CRBCPL1%ELSE&%CNSTCHK%LL1%ENDIF",
'e',1,LLNODE)
/*
DEFNODECODE(ADDRESS_OP, "&(%LL1)",
'e',2,LLNODE)
*/
DEFNODECODE(POINSTAT_OP, "%ERROR",
'e',2,LLNODE)
DEFNODECODE(COPY_NODE, "%ERROR",
'e',2,LLNODE)
DEFNODECODE(INIT_LIST, "%PUSHFLAG(PAREN){%LL1}%POPFLAG(PAREN)",
'e',2,LLNODE)
DEFNODECODE(VECTOR_CONST, "[%LL1]",
'e',2,LLNODE)
DEFNODECODE(BIT_NUMBER, "%LL1:%LL2",
'e',2,LLNODE)
DEFNODECODE(ARITH_ASSGN_OP, "%ERROR",
'e',2,LLNODE)
DEFNODECODE(ARRAY_OP, "%PUSHFLAG(PAREN)(%LL1)%POPFLAG(PAREN)%PUSHFLAG(ARRAYREF)%SETFLAG(ARRAYREF)%PUSHFLAG(PAREN)%SETFLAG(PAREN)%LL2%UNSETFLAG(ARRAYREF)%UNSETFLAG(PAREN)%POPFLAG(PAREN)%POPFLAG(ARRAYREF)",
'e',2,LLNODE)
/*
DEFNODECODE(NEW_OP, "%SETFLAG(NEW)new %LL1 %IF (%LL2 != %NULL)%PUSHFLAG(PAREN)%SETFLAG(PAREN)%LL2%UNSETFLAG(PAREN)%POPFLAG(PAREN)%ENDIF%UNSETFLAG(NEW)",
'e',2,LLNODE)
*/
DEFNODECODE(NEW_OP, "%SETFLAG(NEW)new %IF (%LL2 != %NULL)%PUSHFLAG(PAREN)%SETFLAG(PAREN)%LL2 %UNSETFLAG(PAREN)%POPFLAG(PAREN)%ENDIF%LL1%UNSETFLAG(NEW)",
'e',2,LLNODE)
DEFNODECODE(DELETE_OP, "%IF (%LL2 != %NULL)%SETFLAG(NEW)%ENDIFdelete %IF(%LL2 != %NULL) %LL2 %ENDIF %LL1%IF(%LL2 != %NULL) %UNSETFLAG(NEW)%ENDIF",
'e',2,LLNODE)
DEFNODECODE(NAMELIST_LIST, "%IF (%SYMBOL != %NULL)/%SYMBID/%ENDIF%LL1%IF (%LL2 != %NULL), %LL2%ENDIF",
'e',2,LLNODE)
DEFNODECODE(THIS_NODE, "this %LL1",
'e',2,LLNODE)
/* new tag for some expression
these are tokens not expressions.
I have killed them. dbg.
DEFNODECODE(CEIL_DIV_EXPR, "%ERROR",
'e',2,LLNODE)
DEFNODECODE(MAX_OP, "%ERROR",
'e',2,LLNODE)
DEFNODECODE(BIF_SAVE_EXPR, "%ERROR",
'e',2,LLNODE)
DEFNODECODE(MIN_OP, "%ERROR",
'e',2,LLNODE)
DEFNODECODE(BIF_ADDR_EXPR, "%ERROR",
'e',1,LLNODE)
DEFNODECODE(BIF_NOP_EXPR, "%ERROR",
'e',1,LLNODE)
DEFNODECODE(BIF_RTL_EXPR, "%ERROR",
'e',2,LLNODE)
DEFNODECODE(TRUNC_MOD_EXPR, "%ERROR",
'e',2,LLNODE)
DEFNODECODE(TRUNC_DIV_EXPR, "%ERROR",
'e',2,LLNODE)
DEFNODECODE(FLOOR_DIV_EXPR, "%ERROR",
'e',2,LLNODE)
DEFNODECODE(FLOOR_MOD_EXPR, "%ERROR",
'e',2,LLNODE)
DEFNODECODE(CEIL_MOD_EXPR, "%ERROR",
'e',2,LLNODE)
DEFNODECODE(ROUND_DIV_EXPR, "%ERROR",
'e',2,LLNODE)
DEFNODECODE(ROUND_MOD_EXPR, "%ERROR",
'e',2,LLNODE)
DEFNODECODE(RDIV_EXPR, "%ERROR",
'e',2,LLNODE)
DEFNODECODE(EXACT_DIV_EXPR, "%ERROR",
'e',2,LLNODE)
DEFNODECODE(CONVERT_EXPR, "%ERROR",
'e',1,LLNODE)
DEFNODECODE(CONST_DECL, "%ERROR",
'e',2,LLNODE)
DEFNODECODE(ABS_EXPR, "%ERROR",
'e',2,LLNODE)
DEFNODECODE(TRUTH_ANDIF_EXPR, "%ERROR",
'e',2,LLNODE)
DEFNODECODE(TRUTH_AND_EXPR, "%ERROR",
'e',2,LLNODE)
DEFNODECODE(TRUTH_NOT_EXPR, "%ERROR",
'e',2,LLNODE)
DEFNODECODE(TRUTH_ORIF_EXPR, "%ERROR",
'e',2,LLNODE)
DEFNODECODE(PREINCREMENT_EXPR, "%ERROR",
'e',2,LLNODE)
DEFNODECODE(PREDECREMENT_EXPR, "%ERROR",
'e',2,LLNODE)
DEFNODECODE(COMPOUND_EXPR, "%ERROR",
'e',2,LLNODE)
DEFNODECODE(FLOAT_EXPR, "%ERROR",
'e',1,LLNODE)
DEFNODECODE(BIT_IOR_EXPR, "%ERROR",
'e',2,LLNODE)
DEFNODECODE(BIT_XOR_EXPR, "%ERROR",
'e',2,LLNODE)
DEFNODECODE(BIT_ANDTC_EXPR, "%ERROR",
'e',2,LLNODE)
DEFNODECODE(TRUTH_OR_EXPR, "%ERROR",
'e',2,LLNODE)
DEFNODECODE(FIX_TRUNC_EXPR, "%ERROR",
'e',1,LLNODE)
DEFNODECODE(RROTATE_EXPR, "%ERROR",
'e',2,LLNODE)
DEFNODECODE(LROTATE_EXPR, "%ERROR",
'e',2,LLNODE)
DEFNODECODE(RANGE_EXPR, "%ERROR",
'e',2,LLNODE)
DEFNODECODE(POSTDECREMENT_EXPR, "%ERROR",
'e',2,LLNODE)
DEFNODECODE(REFERENCE_TYPE, "%ERROR",
'e',2,LLNODE)
DEFNODECODE(FIX_FLOOR_EXPR, "%ERROR",
'e',2,LLNODE)
DEFNODECODE(FIX_ROUND_EXPR, "%ERROR",
'e',2,LLNODE)
DEFNODECODE(FIX_CEIL_EXPR , "%ERROR",
'e',2,LLNODE)
DEFNODECODE(FUNCTION_DECL , "%ERROR",
'd',2,LLNODE)
DEFNODECODE(MODIFY_EXPR, "%ERROR",
'e',2,LLNODE)
DEFNODECODE(REFERENCE_EXPR, "%ERROR",
'e',2,LLNODE)
DEFNODECODE(RESULT_DECL, "%ERROR",
'd',2,LLNODE)
DEFNODECODE(PARM_DECL, "%ERROR",
'd',2,LLNODE)
*/
/*****************variant tags for symbol table entries********************/
DEFNODECODE(BIF_PARM_DECL, "%ERROR",
'r',0,SYMBNODE)
DEFNODECODE(CONST_NAME, "%ERROR",
'r',0,SYMBNODE)
DEFNODECODE(ENUM_NAME, "enum %SYMBID",
'r',0,SYMBNODE)
DEFNODECODE(FIELD_NAME, "%ERROR",
'r',0,SYMBNODE)
DEFNODECODE(VARIABLE_NAME, "%SYMBID",
'r',0,SYMBNODE)
DEFNODECODE(TYPE_NAME, "%SYMBID",
'r',0,SYMBNODE)
DEFNODECODE(PROGRAM_NAME, "%SYMBID",
'r',0,SYMBNODE)
DEFNODECODE(PROCEDURE_NAME, "%SYMBID",
'r',0,SYMBNODE)
DEFNODECODE(VAR_FIELD, "%ERROR",
'r',0,SYMBNODE)
DEFNODECODE(LABEL_VAR, "%ERROR",
'r',0,SYMBNODE)
DEFNODECODE(FUNCTION_NAME, "%ERROR",
'r',0,SYMBNODE)
DEFNODECODE(MEMBER_FUNC, "%ERROR",
'r',0,SYMBNODE)
DEFNODECODE(CLASS_NAME, "%SYMBID",
'r',0,SYMBNODE)
DEFNODECODE(TECLASS_NAME, "%SYMBID",
'r',0,SYMBNODE)
DEFNODECODE(UNION_NAME, "%SYMBID",
'r',0,SYMBNODE)
DEFNODECODE(STRUCT_NAME, "%SYMBID",
'r',0,SYMBNODE)
DEFNODECODE(LABEL_NAME, "%SYMBID",
'r',0,SYMBNODE)
DEFNODECODE(COLLECTION_NAME, "%SYMBID",
'r',0,SYMBNODE)
DEFNODECODE(ROUTINE_NAME, "%SYMBID",
'r',0,SYMBNODE)
DEFNODECODE(CONSTRUCT_NAME, "%SYMBID",
'r',0,SYMBNODE)
DEFNODECODE(INTERFACE_NAME, "%SYMBID",
'r',0,SYMBNODE)
DEFNODECODE(MODULE_NAME, "%SYMBID",
'r',0,SYMBNODE)
/*****************variant tags for type nodes********************/
/***** List of commands for TYPE NODES *****/
/* %ERROR : Error ; syntax : %ERROR'message' */
/* %NL : NewLine */
/* %% : '%' (Percent Sign) */
/* %TAB : Tab */
/* %IF : If ; syntax : %IF (condition) then_bloc [%ELSE else_bloc] %ENDIF */
/* %ELSE : Else */
/* %ENDIF : End of If */
/* %BASETYPE : Base Type Name Identifier */
/* %NAMEID : Name Identifier */
/* %TABNAME : Self Name from Table */
/* %RANGES : Ranges */
/* %RANGLL1 : Low Level Node 1 of Ranges */
/*******************************************/
/***** List of commands for evaluation in IF THEN ELSE ENDIF statements for TYPE NODE *****/
/* %STRCST : String Constant in '' */
/* == : Equal (operation) */
/* != : Different (operation) */
/* %NULL : 0, Integer Constant (or false boolean) */
/* %INIMPLI : In_Impli_Statement (integer / boolean flag) */
/******************************************************************************************/
/* CODES AYANT DISPARU :
T_SEQUENCE, T_EVENT, T_GATE,
*/
DEFNODECODE(DEFAULT, "",
't',0,TYPENODE)
DEFNODECODE(T_INT, "%TABNAME",
't',0,TYPENODE)
DEFNODECODE(T_FLOAT, "%TABNAME",
't',0,TYPENODE)
DEFNODECODE(T_DOUBLE, "%TABNAME",
't',0,TYPENODE)
DEFNODECODE(T_CHAR, "%TABNAME",
't',0,TYPENODE)
DEFNODECODE(T_BOOL, "%TABNAME",
't',0,TYPENODE)
DEFNODECODE(T_STRING, "%TABNAME",
't',0,TYPENODE)
DEFNODECODE(T_COMPLEX, "%TABNAME",
't',0,TYPENODE)
DEFNODECODE(T_LONG, "%TABNAME",
't',0,TYPENODE)
DEFNODECODE(T_ENUM, "%ERROR",
't',0,TYPENODE)
DEFNODECODE(T_SUBRANGE, "%ERROR",
't',0,TYPENODE)
DEFNODECODE(T_LIST, "%ERROR",
't',0,TYPENODE)
/*
DEFNODECODE(T_ARRAY, "%IF (%CHECKFLAG(CASTOP) == %NULL)%BASETYPE%ELSE%SUBTYPE [%RANGES]%ENDIF",
't',0,TYPENODE)
*/
DEFNODECODE(T_ARRAY, "%IF (%CHECKFLAG(CASTOP) == %NULL)%BASETYPE%ELSE%SUBTYPE %PUSHFLAG(ARRAYREF)%SETFLAG(ARRAYREF)%PUSHFLAG(PAREN)%SETFLAG(PAREN)%PUSHFLAG(CASTOP)%PUSHFLAG(NEW)%RANGES%POPFLAG(NEW)%POPFLAG(CASTOP)%UNSETFLAG(PAREN)%UNSETFLAG(ARRAYREF)%POPFLAG(PAREN)%POPFLAG(ARRAYREF)%ENDIF",
't',0,TYPENODE)
DEFNODECODE(T_RECORD, "%ERROR",
't',0,TYPENODE)
DEFNODECODE(T_ENUM_FIELD, "%ERROR",
't',0,TYPENODE)
DEFNODECODE(T_UNKNOWN, "unknown",
't',0,TYPENODE)
DEFNODECODE(T_VOID, "void ",
't',0,TYPENODE)
DEFNODECODE(T_DESCRIPT, "%RIDPT%BASETYPE",
't',0,TYPENODE)
DEFNODECODE(T_FUNCTION, "%ERROR",
't',0,TYPENODE)
DEFNODECODE(T_POINTER, "%FBASETYPE %IF (%CHECKFLAG(VARDECL) == %NULL)%STAR%ELSE%IF (%CHECKFLAG(CASTOP) != %NULL)%STAR%ELSE%IF (%CHECKFLAG(FREF) != %NULL)%STAR%ENDIF%ENDIF%ENDIF",
't',0,TYPENODE)
DEFNODECODE(T_UNION, "%ERROR",
't',0,TYPENODE)
DEFNODECODE(T_STRUCT, "%ERROR",
't',0,TYPENODE)
DEFNODECODE(T_CLASS, "--ERROR--CLASS NAME---",
't',0,TYPENODE)
DEFNODECODE(T_DERIVED_CLASS, "%SYMBID",
't',0,TYPENODE)
DEFNODECODE(T_DERIVED_TYPE, "%SYMBID",
't',0,TYPENODE)
DEFNODECODE(T_COLLECTION, "------ERROR-----T_COLLECTION",
't',0,TYPENODE)
DEFNODECODE(T_DERIVED_COLLECTION, "%SYMBID<%COLLBASE>",
't',0,TYPENODE)
/*
DEFNODECODE(T_MEMBER_POINTER, "%COLLBASE %IF (%CHECKFLAG(VARDECL) == %NULL)%SYMBID::*%ELSE%IF (%CHECKFLAG(CASTOP) != %NULL)%SYMBID::*%ELSE%IF (%CHECKFLAG(FREF) != %NULL)%SYMBID::*%ENDIF%ENDIF%ENDIF",
't',0,TYPENODE) i can't solve the problem with %SYMB. something
to do with %SYMBID getting a T_CLASS where it expects a symbol
*/
DEFNODECODE(T_MEMBER_POINTER, "%COLLBASE ", 't',0,TYPENODE)
DEFNODECODE(T_DERIVED_TEMPLATE, "%SYMBID%SETFLAG(TMPLDEC)%PUSHFLAG(PAREN)<%TMPLARGS >%POPFLAG(PAREN)%UNSETFLAG(TMPLDEC)",
't',0,TYPENODE)
/*
DEFNODECODE(T_REFERENCE, "%BASETYPE %IF (%CHECKFLAG(VARDECL) == %NULL)&%ELSE%IF (%CHECKFLAG(FREF) != %NULL)& %ENDIF%ENDIF",
't',0,TYPENODE)
*/
DEFNODECODE(T_REFERENCE, "%FBASETYPE %IF (%CHECKFLAG(VARDECL) == %NULL)%STAR%ELSE%IF (%CHECKFLAG(CASTOP) != %NULL)%STAR%ELSE%IF (%CHECKFLAG(FREF) != %NULL)%STAR%ENDIF%ENDIF%ENDIF",
't',0,TYPENODE)
DEFNODECODE(LOCAL, "%ERROR",
't',0,TYPENODE)
DEFNODECODE(INPUT, "%ERROR",
't',0,TYPENODE)
DEFNODECODE(OUTPUT, "%ERROR",
't',0,TYPENODE)
DEFNODECODE(IO, "%ERROR",
't',0,TYPENODE)

View File

@@ -1,436 +0,0 @@
/*****************variant tags for DVM nodes*****************************/
DEFNODECODE(BLOCK_OP, "%IF(%LL1!=%NULL)WGT_BLOCK(%SYMBID,%LL1)%ELSE%IF(%LL2!=%NULL)MULT_BLOCK(%LL2)%ELSE%IF(%SYMBOL!=%NULL)GEN_BLOCK(%SYMBID)%ELSEBLOCK%ENDIF%ENDIF%ENDIF",
'e',2,LLNODE)
DEFNODECODE(INDIRECT_OP, "%IF(%LL1!=%NULL)DERIVED(%LL1)%ELSEINDIRECT(%SYMBID)%ENDIF",
'e',1,LLNODE)
DEFNODECODE(DERIVED_OP, "(%LL1) WITH %LL2",
'e',2,LLNODE)
DEFNODECODE(DUMMY_REF, "@%SYMBID%IF(%LL1!=%NULL)+%LL1%ENDIF",
'e',2,LLNODE)
DEFNODECODE(NEW_VALUE_OP, "%IF(%LL1!=%NULL) NEW(%LL1)%ELSE NEW%ENDIF",
'e',1,LLNODE)
DEFNODECODE(NEW_SPEC_OP, "NEW(%LL1)",
'e',1,LLNODE)
DEFNODECODE(TEMPLATE_OP, "TEMPLATE",
'e',0,LLNODE)
DEFNODECODE(PROCESSORS_OP, "PROCESSORS",
'e',0,LLNODE)
DEFNODECODE(DYNAMIC_OP, "DYNAMIC",
'e',0,LLNODE)
DEFNODECODE(DIMENSION_OP, "%IF(%CHECKFLAG(DVM) != %NULL)DIMENSION%ELSEdimension%ENDIF(%LL1)",
'e',1,LLNODE)
DEFNODECODE(SHADOW_OP, "SHADOW (%LL1)",
'e',1,LLNODE)
DEFNODECODE(ALIGN_OP, "ALIGN %IF(%LL1!=%NULL) (%LL1)%ENDIF%IF(%LL2!=%NULL) WITH %LL2%ENDIF",
'e',2,LLNODE)
DEFNODECODE(DISTRIBUTE_OP, "DISTRIBUTE%IF(%LL1!=%NULL) (%LL1)%ENDIF%IF(%LL2!=%NULL) ONTO %LL2%ENDIF",
'e',2,LLNODE)
DEFNODECODE(REMOTE_ACCESS_OP, "REMOTE_ACCESS (%IF (%SYMBOL == %NULL)%LL1%ELSE%SYMBID : %LL1 %ENDIF)",
'e',1,LLNODE)
DEFNODECODE(INDIRECT_ACCESS_OP, "INDIRECT_ACCESS (%IF(%SYMBOL == %NULL)%LL1%ELSE%SYMBID : %LL1 %ENDIF)",
'e',1,LLNODE)
DEFNODECODE(ACROSS_OP, "ACROSS (%LL1)%IF(%LL2!=%NULL)(%LL2)%ENDIF",
'e',2,LLNODE)
DEFNODECODE(SHADOW_RENEW_OP, "SHADOW_RENEW (%LL1)",
'e',1,LLNODE)
DEFNODECODE(SHADOW_START_OP, "SHADOW_START %SYMBID",
'e',0,LLNODE)
DEFNODECODE(SHADOW_WAIT_OP, "SHADOW_WAIT %SYMBID",
'e',0,LLNODE)
DEFNODECODE(SHADOW_COMP_OP, "SHADOW_COMPUTE %IF(%LL1!=%NULL)(%LL1)%ENDIF",
'e',1,LLNODE)
DEFNODECODE(REDUCTION_OP, "REDUCTION (%IF(%SYMBOL == %NULL)%LL1%ELSE%SYMBID : %LL1 %ENDIF)",
'e',1,LLNODE)
DEFNODECODE(CONSISTENT_OP, "CONSISTENT (%IF(%SYMBOL == %NULL)%LL1%ELSE%SYMBID : %LL1 %ENDIF)",
'e',1,LLNODE)
DEFNODECODE(ACC_PRIVATE_OP, "PRIVATE (%LL1)",
'e',1,LLNODE)
DEFNODECODE(STAGE_OP, "STAGE (%LL1)",
'e',1,LLNODE)
DEFNODECODE(COMMON_OP, "COMMON",
'e',0,LLNODE)
DEFNODECODE(ACC_CUDA_BLOCK_OP, "CUDA_BLOCK (%LL1)",
'e',1,LLNODE)
DEFNODECODE(ACC_TIE_OP, "TIE (%LL1)",
'e',1,LLNODE)
DEFNODECODE(ACC_CUDA_OP, "CUDA",
'e',0,LLNODE)
DEFNODECODE(ACC_HOST_OP, "HOST",
'e',0,LLNODE)
DEFNODECODE(ACC_ASYNC_OP, "ASYNC",
'e',0,LLNODE)
DEFNODECODE(PARALLEL_OP, "PARALLEL",
'e',0,LLNODE)
DEFNODECODE(ACC_TARGETS_OP, "TARGETS (%LL1)",
'e',1,LLNODE)
DEFNODECODE(ACC_INLOCAL_OP, "INLOCAL (%LL1)",
'e',1,LLNODE)
DEFNODECODE(ACC_LOCAL_OP, "LOCAL%IF(%LL1!=%NULL) (%LL1)",
'e',1,LLNODE)
DEFNODECODE(ACC_OUT_OP, "OUT (%LL1)",
'e',1,LLNODE)
DEFNODECODE(ACC_INOUT_OP, "INOUT (%LL1)",
'e',1,LLNODE)
DEFNODECODE(ACC_IN_OP, "IN (%LL1)",
'e',1,LLNODE)
DEFNODECODE(DVM_NEW_VALUE_DIR, "%CMNT!DVM$%PUTTABCOMTNEW_VALUE%IF(%LL1!=%NULL) %LL1%ENDIF",
's',1,BIFNODE)
DEFNODECODE(HPF_TEMPLATE_STAT, "%CMNT!DVM$%PUTTABCOMTTEMPLATE%IF(%LL2!=%NULL), %LL2::%ENDIF %LL1%NL",
's',1,BIFNODE)
DEFNODECODE(DVM_DYNAMIC_DIR, "%CMNT!DVM$%PUTTABCOMTDYNAMIC %LL1%NL",
's',1,BIFNODE)
DEFNODECODE(DVM_INHERIT_DIR, "%CMNT!DVM$%PUTTABCOMTINHERIT %LL1%NL",
's',1,BIFNODE)
DEFNODECODE(HPF_PROCESSORS_STAT, "%CMNT!DVM$%PUTTABCOMTPROCESSORS %LL1%NL",
's',1,BIFNODE)
DEFNODECODE(DVM_SHADOW_DIR, "%CMNT!DVM$%PUTTABCOMTSHADOW %LL1( %LL2 )%NL",
's',2,BIFNODE)
DEFNODECODE(DVM_INDIRECT_GROUP_DIR, "%CMNT!DVM$%PUTTABCOMTINDIRECT_GROUP %LL1%NL",
's',1,BIFNODE)
DEFNODECODE(DVM_REMOTE_GROUP_DIR, "%CMNT!DVM$%PUTTABCOMTREMOTE_GROUP %LL1%NL",
's',1,BIFNODE)
DEFNODECODE(DVM_REDUCTION_GROUP_DIR, "%CMNT!DVM$%PUTTABCOMTREDUCTION_GROUP %LL1%NL",
's',1,BIFNODE)
DEFNODECODE(DVM_CONSISTENT_DIR, "%CMNT!DVM$%PUTTABCOMTCONSISTENT %LL1%NL",
's',1,BIFNODE)
DEFNODECODE(DVM_CONSISTENT_GROUP_DIR, "%CMNT!DVM$%PUTTABCOMTCONSISTENT_GROUP %LL1%NL",
's',1,BIFNODE)
DEFNODECODE(DVM_DISTRIBUTE_DIR, "%CMNT!DVM$%PUTTABCOMTDISTRIBUTE%IF(%LL2!=%NULL) (%LL2)%ENDIF%IF(%LL3!=%NULL) ONTO %LL3 %ENDIF :: %LL1%NL",
's',3,BIFNODE)
DEFNODECODE(DVM_REDISTRIBUTE_DIR, "%CMNT!DVM$%PUTTABCOMTREDISTRIBUTE (%LL2)%IF(%LL3!=%NULL) ONTO %LL3%ENDIF :: %LL1%NL",
's',3,BIFNODE)
DEFNODECODE(DVM_ALIGN_DIR, "%CMNT!DVM$%PUTTABCOMTALIGN (%LL2) WITH %LL3 :: %LL1%NL",
's',3,BIFNODE)
DEFNODECODE(DVM_REALIGN_DIR, "%CMNT!DVM$%PUTTABCOMTREALIGN (%LL2) WITH %LL3 :: %LL1%NL",
's',3,BIFNODE)
DEFNODECODE(DVM_PARALLEL_ON_DIR, "%CMNT!DVM$%PUTTABCOMTPARALLEL (%LL3)%IF(%LL1!=%NULL) ON %LL1%ENDIF%IF(%LL2!=%NULL), %LL2%ENDIF%NL",
's',3,BIFNODE)
DEFNODECODE(DVM_PARALLEL_TASK_DIR, "%CMNT!DVM$%PUTTABCOMTPARALLEL (%LL3)%IF(%LL1!=%NULL) ON %LL1%ENDIF%IF(%LL2!=%NULL), %LL2%ENDIF%NL",
's',3,BIFNODE)
DEFNODECODE(DVM_SHADOW_START_DIR, "%CMNT!DVM$%PUTTABCOMTSHADOW_START %SYMBID%NL",
's',0,BIFNODE)
DEFNODECODE(DVM_SHADOW_WAIT_DIR, "%CMNT!DVM$%PUTTABCOMTSHADOW_WAIT %SYMBID%NL",
's',0,BIFNODE)
DEFNODECODE(DVM_SHADOW_GROUP_DIR, "%CMNT!DVM$%PUTTABCOMTSHADOW_GROUP %SYMBID ( %LL1 )%NL",
's',1,BIFNODE)
DEFNODECODE(DVM_REDUCTION_START_DIR, "%CMNT!DVM$%PUTTABCOMTREDUCTION_START %SYMBID%NL",
's',0,BIFNODE)
DEFNODECODE(DVM_REDUCTION_WAIT_DIR, "%CMNT!DVM$%PUTTABCOMTREDUCTION_WAIT %SYMBID%NL",
's',0,BIFNODE)
DEFNODECODE(DVM_CONSISTENT_START_DIR, "%CMNT!DVM$%PUTTABCOMTCONSISTENT_START %SYMBID%NL",
's',0,BIFNODE)
DEFNODECODE(DVM_CONSISTENT_WAIT_DIR, "%CMNT!DVM$%PUTTABCOMTCONSISTENT_WAIT %SYMBID%NL",
's',0,BIFNODE)
DEFNODECODE(DVM_REMOTE_ACCESS_DIR, "%CMNT!DVM$%PUTTABCOMTREMOTE_ACCESS (%IF(%SYMBOL == %NULL)%LL1%ELSE%SYMBID : %LL1 %ENDIF)%NL",
's',1,BIFNODE)
DEFNODECODE(DVM_TASK_DIR, "%CMNT!DVM$%PUTTABCOMTTASK %LL1%NL",
's',1,BIFNODE)
DEFNODECODE(DVM_MAP_DIR, "%CMNT!DVM$%PUTTABCOMTMAP %LL1 %IF(%LL2 != %NULL)ONTO %LL2%ENDIF%IF(%LL3 != %NULL)BY %LL3%ENDIF%NL",
's',3,BIFNODE)
DEFNODECODE(DVM_PREFETCH_DIR, "%CMNT!DVM$%PUTTABCOMTPREFETCH %SYMBID%NL",
's',0,BIFNODE)
DEFNODECODE(DVM_RESET_DIR, "%CMNT!DVM$%PUTTABCOMTRESET %SYMBID%NL",
's',0,BIFNODE)
DEFNODECODE(DVM_DEBUG_DIR, "%CMNT!DVM$%PUTTABCOMTDEBUG %LL1 %IF(%LL2!=%NULL)(%LL2)%ENDIF%NL",
's',2,BIFNODE)
DEFNODECODE(DVM_ENDDEBUG_DIR, "%CMNT!DVM$%PUTTABCOMTEND DEBUG %LL1%NL",
's',0,BIFNODE)
DEFNODECODE(DVM_INTERVAL_DIR, "%CMNT!DVM$%PUTTABCOMTINTERVAL %LL1%NL",
's',1,BIFNODE)
DEFNODECODE(DVM_EXIT_INTERVAL_DIR, "%CMNT!DVM$%PUTTABCOMTEXIT INTERVAL %LL1%NL",
's',1,BIFNODE)
DEFNODECODE(DVM_ENDINTERVAL_DIR, "%CMNT!DVM$%PUTTABCOMTEND INTERVAL%NL",
's',0,BIFNODE)
DEFNODECODE(DVM_TRACEON_DIR, "%CMNT!DVM$%PUTTABCOMTTRACE ON%NL",
's',0,BIFNODE)
DEFNODECODE(DVM_TRACEOFF_DIR, "%CMNT!DVM$%PUTTABCOMTTRACE OFF%NL",
's',0,BIFNODE)
DEFNODECODE(DVM_BARRIER_DIR, "%CMNT!DVM$%PUTTABCOMTBARRIER%NL",
's',0,BIFNODE)
DEFNODECODE(DVM_CHECK_DIR, "%CMNT!DVM$%PUTTABCOMTCHECK (%LL2) :: %LL1%NL",
's',2,BIFNODE)
DEFNODECODE(DVM_OWN_DIR, "%CMNT!DVM$%PUTTABCOMTOWN%NL",
's',0,BIFNODE)
DEFNODECODE(DVM_ON_DIR, "%CMNT!DVM$%PUTTABCOMTON %LL1%IF(%LL2 != %NULL), %LL2%ENDIF%NL",
's',2,BIFNODE)
DEFNODECODE(DVM_END_ON_DIR, "%CMNT!DVM$%PUTTABCOMTEND ON%NL",
's',0,BIFNODE)
DEFNODECODE(DVM_TASK_REGION_DIR, "%CMNT!DVM$%PUTTABCOMTTASK_REGION %SYMBID%IF(%LL2 != %NULL), %LL2%ENDIF%NL",
's',2,BIFNODE)
DEFNODECODE(DVM_END_TASK_REGION_DIR, "%CMNT!DVM$%PUTTABCOMTEND TASK_REGION%NL",
's',0,BIFNODE)
DEFNODECODE(DVM_POINTER_DIR, "%CMNT!DVM$%PUTTABCOMT%LL3, POINTER(%LL2) :: %LL1%NL",
's',3,BIFNODE)
DEFNODECODE(DVM_F90_DIR, "%CMNT!DVM$%PUTTABCOMTF90 %LL1 = %LL2%NL",
's',2,BIFNODE)
DEFNODECODE(DVM_ASYNCHRONOUS_DIR, "%CMNT!DVM$%PUTTABCOMTASYNCHRONOUS %LL1%NL",
's',1,BIFNODE)
DEFNODECODE(DVM_ENDASYNCHRONOUS_DIR, "%CMNT!DVM$%PUTTABCOMTEND ASYNCHRONOUS%NL",
's',0,BIFNODE)
DEFNODECODE(DVM_ASYNCWAIT_DIR, "%CMNT!DVM$%PUTTABCOMTASYNCWAIT %LL1%NL",
's',0,BIFNODE)
DEFNODECODE(DVM_TEMPLATE_CREATE_DIR, "%CMNT!DVM$%PUTTABCOMTTEMPLATE_CREATE (%LL1)%NL",
's',1,BIFNODE)
DEFNODECODE(DVM_TEMPLATE_DELETE_DIR, "%CMNT!DVM$%PUTTABCOMTTEMPLATE_DELETE (%LL1)%NL",
's',1,BIFNODE)
DEFNODECODE(DVM_VAR_DECL, "%CMNT!DVM$%PUTTABCOMT%SETFLAG(VARLEN)%IF(%LL3 != %NULL)%SETFLAG(DVM)%LL3%UNSETFLAG(DVM):: %SETFLAG(PARAM)%LL1%UNSETFLAG(PARAM)%ELSE%SETFLAG(VARDECL) %LL1%UNSETFLAG(VARDECL)%ENDIF%IF (%CHECKFLAG(VARLEN) != %NULL)%UNSETFLAG(VARLEN)%ENDIF%NL",
's',3,BIFNODE)
DEFNODECODE(DVM_HEAP_DIR, "%CMNT!DVM$%PUTTABCOMTHEAP %LL1%NL",
's',1,BIFNODE)
DEFNODECODE(DVM_ASYNCID_DIR, "%CMNT!DVM$%PUTTABCOMTASYNCID%IF(%LL2 != %NULL), COMMON::%ENDIF %LL1%NL",
's',2,BIFNODE)
DEFNODECODE(DVM_NEW_VALUE_DIR, "%CMNT!DVM$%PUTTABCOMTNEW_VALUE%NL",
's',0,BIFNODE)
DEFNODECODE(DVM_IO_MODE_DIR, "%CMNT!DVM$%PUTTABCOMTIO_MODE (%LL1)%NL",
's',1,BIFNODE)
DEFNODECODE(DVM_SHADOW_ADD_DIR, "%CMNT!DVM$%PUTTABCOMTSHADOW_ADD (%LL1 = %LL2)%IF(%LL3!=%NULLL) INCLUDE_TO %LL3%ENDIF%NL",
's',3,BIFNODE)
DEFNODECODE(DVM_LOCALIZE_DIR, "%CMNT!DVM$%PUTTABCOMTLOCALIZE (%LL1 => %LL2)%NL",
's',2,BIFNODE)
DEFNODECODE(ACC_REGION_DIR, "%CMNT!DVM$%PUTTABCOMTREGION %LL1%NL",
's',1,BIFNODE)
DEFNODECODE(ACC_END_REGION_DIR, "%CMNT!DVM$%PUTTABCOMTEND REGION%NL",
's',0,BIFNODE)
DEFNODECODE(ACC_GET_ACTUAL_DIR, "%CMNT!DVM$%PUTTABCOMTGET_ACTUAL%IF(%LL1!=%NULL) (%LL1)%ENDIF%NL",
's',1,BIFNODE)
DEFNODECODE(ACC_ACTUAL_DIR, "%CMNT!DVM$%PUTTABCOMTACTUAL%IF(%LL1!=%NULL) (%LL1)%ENDIF%NL",
's',1,BIFNODE)
DEFNODECODE(ACC_CHECKSECTION_DIR, "%CMNT!DVM$%PUTTABCOMTHOSTSECTION%NL",
's',0,BIFNODE)
DEFNODECODE(ACC_END_CHECKSECTION_DIR,"%CMNT!DVM$%PUTTABCOMTEND HOSTSECTION%NL",
's',0,BIFNODE)
DEFNODECODE(ACC_ROUTINE_DIR, "%CMNT!DVM$%PUTTABCOMTROUTINE %LL1%NL",
's',1,BIFNODE)
DEFNODECODE(OMP_NOWAIT, "NOWAIT",
'e',0,LLNODE)
DEFNODECODE(OMP_PRIVATE, "PRIVATE (%LL1)",
'e',0,LLNODE)
DEFNODECODE(OMP_FIRSTPRIVATE, "FIRSTPRIVATE (%LL1)",
'e',0,LLNODE)
DEFNODECODE(OMP_LASTPRIVATE, "LASTPRIVATE (%LL1)",
'e',0,LLNODE)
DEFNODECODE(OMP_THREADPRIVATE, "/%LL1/",
'e',0,LLNODE)
DEFNODECODE(OMP_COPYIN, "COPYIN (%LL1)",
'e',0,LLNODE)
DEFNODECODE(OMP_SHARED, "SHARED (%LL1)",
'e',0,LLNODE)
DEFNODECODE(OMP_DEFAULT, "DEFAULT (%LL1)",
'e',0,LLNODE)
DEFNODECODE(OMP_ORDERED, "ORDERED",
'e',0,LLNODE)
DEFNODECODE(OMP_IF, "IF (%LL1)",
'e',0,LLNODE)
DEFNODECODE(OMP_NUM_THREADS, "NUM_THREADS (%LL1)",
'e',0,LLNODE)
DEFNODECODE(OMP_REDUCTION, "REDUCTION (%LL1)",
'e',0,LLNODE)
DEFNODECODE(OMP_COLLAPSE, "COLLAPSE (%LL1)",
'e',0,LLNODE)
DEFNODECODE(OMP_SCHEDULE, "SCHEDULE (%LL1%IF(%LL2!=%NULL),%LL2%ENDIF)",
'e',0,LLNODE)
DEFNODECODE(OMP_COPYPRIVATE, "COPYPRIVATE (%LL1)",
'e',0,LLNODE)
DEFNODECODE(OMP_PARALLEL_DIR, "!$OMP%PUTTABCOMTPARALLEL %IF(%LL1!=%NULL) %LL1%ENDIF%INCTAB%NL%BLOB1",
's',3,BIFNODE)
DEFNODECODE(OMP_END_PARALLEL_DIR, "!$OMP%DECTAB%PUTTABCOMTEND PARALLEL %IF(%LL1!=%NULL) %LL1%ENDIF%NL",
's',3,BIFNODE)
DEFNODECODE(OMP_SECTIONS_DIR, "!$OMP%PUTTABCOMTSECTIONS %IF(%LL1!=%NULL) %LL1%ENDIF%INCTAB%NL%BLOB1",
's',3,BIFNODE)
DEFNODECODE(OMP_SECTION_DIR, "!$OMP%PUTTABCOMTSECTION%INCTAB%NL%BLOB1%DECTAB",
's',3,BIFNODE)
DEFNODECODE(OMP_END_SECTIONS_DIR, "!$OMP%DECTAB%PUTTABCOMTEND SECTIONS %IF(%LL1!=%NULL) %LL1%ENDIF%NL",
's',3,BIFNODE)
DEFNODECODE(OMP_DO_DIR, "!$OMP%PUTTABCOMTDO %IF(%LL1!=%NULL) %LL1%ENDIF%NL",
's',3,BIFNODE)
DEFNODECODE(OMP_END_DO_DIR, "!$OMP%PUTTABCOMTEND DO %IF(%LL1!=%NULL) %LL1%ENDIF%NL",
's',3,BIFNODE)
DEFNODECODE(OMP_SINGLE_DIR, "!$OMP%PUTTABCOMTSINGLE %IF(%LL1!=%NULL) %LL1%ENDIF%INCTAB%NL%BLOB1",
's',3,BIFNODE)
DEFNODECODE(OMP_END_SINGLE_DIR, "!$OMP%DECTAB%PUTTABCOMTEND SINGLE %IF(%LL1!=%NULL) %LL1%ENDIF%NL",
's',3,BIFNODE)
DEFNODECODE(OMP_WORKSHARE_DIR, "!$OMP%PUTTABCOMTWORKSHARE %IF(%LL1!=%NULL) %LL1%ENDIF%INCTAB%NL%BLOB1",
's',3,BIFNODE)
DEFNODECODE(OMP_END_WORKSHARE_DIR, "!$OMP%DECTAB%PUTTABCOMTEND WORKSHARE %IF(%LL1!=%NULL) %LL1%ENDIF%NL",
's',3,BIFNODE)
DEFNODECODE(OMP_PARALLEL_DO_DIR, "!$OMP%PUTTABCOMTPARALLEL DO %IF(%LL1!=%NULL) %LL1%ENDIF%NL",
's',3,BIFNODE)
DEFNODECODE(OMP_END_PARALLEL_DO_DIR, "!$OMP%PUTTABCOMTEND PARALLEL DO %IF(%LL1!=%NULL) %LL1%ENDIF%NL",
's',3,BIFNODE)
DEFNODECODE(OMP_PARALLEL_SECTIONS_DIR, "!$OMP%PUTTABCOMTPARALLEL SECTIONS %IF(%LL1!=%NULL) %LL1%ENDIF%INCTAB%NL%BLOB1",
's',3,BIFNODE)
DEFNODECODE(OMP_END_PARALLEL_SECTIONS_DIR, "!$OMP%DECTAB%PUTTABCOMTEND PARALLEL SECTIONS %IF(%LL1!=%NULL) %LL1%ENDIF%NL",
's',3,BIFNODE)
DEFNODECODE(OMP_PARALLEL_WORKSHARE_DIR, "!$OMP%PUTTABCOMTPARALLEL WORKSHARE %IF(%LL1!=%NULL) %LL1%ENDIF%INCTAB%NL%BLOB1",
's',3,BIFNODE)
DEFNODECODE(OMP_END_PARALLEL_WORKSHARE_DIR, "!$OMP%DECTAB%PUTTABCOMTEND PARALLEL WORKSHARE %IF(%LL1!=%NULL) %LL1%ENDIF%NL",
's',3,BIFNODE)
DEFNODECODE(OMP_THREADPRIVATE_DIR, "!$OMP%PUTTABCOMTTHREADPRIVATE %IF(%LL1!=%NULL) ( %LL1 )%ENDIF%NL",
's',3,BIFNODE)
DEFNODECODE(OMP_MASTER_DIR, "!$OMP%PUTTABCOMTMASTER%INCTAB%NL%BLOB1",
's',3,BIFNODE)
DEFNODECODE(OMP_END_MASTER_DIR, "!$OMP%DECTAB%PUTTABCOMTEND MASTER%NL",
's',3,BIFNODE)
DEFNODECODE(OMP_ORDERED_DIR, "!$OMP%PUTTABCOMTORDERED%INCTAB%NL%BLOB1",
's',3,BIFNODE)
DEFNODECODE(OMP_END_ORDERED_DIR, "!$OMP%DECTAB%PUTTABCOMTEND ORDERED%NL",
's',3,BIFNODE)
DEFNODECODE(OMP_ATOMIC_DIR, "!$OMP%PUTTABCOMTATOMIC%NL",
's',3,BIFNODE)
DEFNODECODE(OMP_BARRIER_DIR, "!$OMP%PUTTABCOMTBARRIER%NL",
's',3,BIFNODE)
DEFNODECODE(OMP_CRITICAL_DIR, "!$OMP%PUTTABCOMTCRITICAL %IF(%LL1!=%NULL) ( %LL1 )%ENDIF%INCTAB%NL%BLOB1",
's',3,BIFNODE)
DEFNODECODE(OMP_END_CRITICAL_DIR, "!$OMP%DECTAB%PUTTABCOMTEND CRITICAL %IF(%LL1!=%NULL) ( %LL1 )%ENDIF%NL",
's',3,BIFNODE)
DEFNODECODE(OMP_FLUSH_DIR, "!$OMP%PUTTABCOMTFLUSH %IF(%LL1!=%NULL) ( %LL1 )%ENDIF%NL",
's',3,BIFNODE)
DEFNODECODE(RECORD_DECL, "%CMNT%PUTTABtype %IF (%LL1 != %NULL),%LL1::%ENDIF%SYMBID%INCTAB%NL%BLOB1%DECTAB",
'd',0,BIFNODE)
/*****************variant tags for SPF nodes*****************************/
DEFNODECODE(SPF_ANALYSIS_DIR, "%CMNT!$SPF%PUTTABCOMTANALYSIS (%LL1)%NL",
's',0,BIFNODE)
DEFNODECODE(SPF_PARALLEL_DIR, "%CMNT!$SPF%PUTTABCOMTPARALLEL (%LL1)%NL",
's',0,BIFNODE)
DEFNODECODE(SPF_TRANSFORM_DIR, "%CMNT!$SPF%PUTTABCOMTTRANSFORM (%LL1)%NL",
's',0,BIFNODE)
DEFNODECODE(SPF_PARALLEL_REG_DIR, "%CMNT!$SPF%PUTTABCOMTPARALLEL_REG %SYMBID %IF(%LL1 != %NULL), APPLY_REGION(%LL1)%ENDIF%IF(%LL2 != %NULL), APPLY_FRAGMENT(%LL2)%ENDIF%NL",
's',2,BIFNODE)
DEFNODECODE(SPF_END_PARALLEL_REG_DIR, "%CMNT!$SPF%PUTTABCOMTEND PARALLEL_REG%NL",
's',0,BIFNODE)
DEFNODECODE(SPF_CHECKPOINT_DIR, "%CMNT!$SPF%PUTTABCOMTCHECKPOINT (%LL1)%NL",
's',1,BIFNODE)
DEFNODECODE(SPF_NOINLINE_OP, "NOINLINE",
'e',0,LLNODE)
DEFNODECODE(SPF_FISSION_OP, "FISSION (%LL1)",
'e',1,LLNODE)
DEFNODECODE(SPF_EXPAND_OP, "EXPAND %IF(%LL1 != %NULL)(%LL1)%ENDIF",
'e',1,LLNODE)
DEFNODECODE(SPF_SHRINK_OP, "SHRINK (%LL1)",
'e',1,LLNODE)
DEFNODECODE(SPF_TYPE_OP, "TYPE (%LL1)",
'e',1,LLNODE)
DEFNODECODE(SPF_VARLIST_OP, "VARLIST (%LL1)",
'e',1,LLNODE)
DEFNODECODE(SPF_EXCEPT_OP, "EXCEPT (%LL1)",
'e',1,LLNODE)
DEFNODECODE(SPF_FILES_COUNT_OP, "FILES_COUNT (%LL1)",
'e',1,LLNODE)
DEFNODECODE(SPF_INTERVAL_OP, "INTERVAL (%LL1, %LL2)",
'e',2,LLNODE)
DEFNODECODE(SPF_TIME_OP, "TIME",
'e',0,LLNODE)
DEFNODECODE(SPF_ITER_OP, "ITER",
'e',0,LLNODE)
DEFNODECODE(SPF_FLEXIBLE_OP, "FLEXIBLE",
'e',0,LLNODE)
DEFNODECODE(SPF_PARAMETER_OP, "PARAMETER (%LL1)",
'e',1,LLNODE)
DEFNODECODE(SPF_UNROLL_OP, "UNROLL %IF(%LL1 != %NULL)(%LL1)%ENDIF",
'e',1,LLNODE)

View File

@@ -1,35 +0,0 @@
#######################################################################
## Copyright (C) 1999 ##
## Keldysh Institute of Appllied Mathematics ##
#######################################################################
# sage/lib/Makefile (phb)
#
# This makefile recursively calls MAKE in each subdirectory
#
# What to compile
SUBDIR=oldsrc newsrc
oldsrc:
cd oldsrc; $(MAKE) "MAKE=$(MAKE)" "CC=$(CC)" "CXX=$(CXX)" "LINKER=$(LINKER)" all
newsrc:
cd newsrc; $(MAKE) "MAKE=$(MAKE)" "CC=$(CC)" "CXX=$(CXX)" "LINKER=$(LINKER)" all
all: oldsrc newsrc
@echo "****** DONE MAKING SUBDIRECTORIES $(SUBDIR) ******"
clean:
@echo "****** RECURSIVELY CLEAN SUBDIRECTORIES $(SUBDIR) ******"
cd oldsrc; $(MAKE) "MAKE=$(MAKE)" "CC=$(CC)" "CXX=$(CXX)" "LINKER=$(LINKER)" clean
cd newsrc; $(MAKE) "MAKE=$(MAKE)" "CC=$(CC)" "CXX=$(CXX)" "LINKER=$(LINKER)" clean
@echo "****** DONE CLEAN SUBDIRECTORIES $(SUBDIR) ******"
cleanall:
@echo "****** RECURSIVELY CLEANALL SUBDIRECTORIES $(SUBDIR) ******"
cd oldsrc; $(MAKE) "MAKE=$(MAKE)" "CC=$(CC)" "CXX=$(CXX)" "LINKER=$(LINKER)" cleanall
cd newsrc; $(MAKE) "MAKE=$(MAKE)" "CC=$(CC)" "CXX=$(CXX)" "LINKER=$(LINKER)" cleanall
@echo "****** DONE CLEANALL SUBDIRECTORIES $(SUBDIR) ******"
.PHONY: all clean cleanall oldsrc newsrc

View File

@@ -1,48 +0,0 @@
#######################################################################
## Copyright (C) 1999 ##
## Keldysh Institute of Appllied Mathematics ##
#######################################################################
# sage/lib/Makefile (phb)
# Valentin Emelianov (4/01/99)
#
# This makefile recursively calls MAKE in each subdirectory
#
# What to compile
SUBDIR=oldsrc newsrc
all:
@echo "****** RECURSIVELY MAKING SUBDIRECTORIES $(SUBDIR) ******"
@cd oldsrc
@$(MAKE) /nologo -f makefile.win "MAKE=$(MAKE)" "CC=$(CC)" "CXX=$(CXX)" "LINKER=$(LINKER)" all
@cd ..
@cd newsrc
@$(MAKE) /nologo -f makefile.win "MAKE=$(MAKE)" "CC=$(CC)" "CXX=$(CXX)" "LINKER=$(LINKER)" all
@cd ..
@echo "****** DONE MAKING SUBDIRECTORIES $(SUBDIR) ******"
clean:
@echo "****** RECURSIVELY CLEAN SUBDIRECTORIES $(SUBDIR) ******"
@cd oldsrc
@$(MAKE) /nologo -f makefile.win "MAKE=$(MAKE)" "CC=$(CC)" "CXX=$(CXX)" "LINKER=$(LINKER)" clean
@cd ..
@cd newsrc
@$(MAKE) /nologo -f makefile.win "MAKE=$(MAKE)" "CC=$(CC)" "CXX=$(CXX)" "LINKER=$(LINKER)" clean
@cd ..
@echo "****** DONE CLEAN SUBDIRECTORIES $(SUBDIR) ******"
cleanall:
@echo "****** RECURSIVELY CLEANALL SUBDIRECTORIES $(SUBDIR) ******"
@cd oldsrc
@$(MAKE) /nologo -f makefile.win "MAKE=$(MAKE)" "CC=$(CC)" "CXX=$(CXX)" "LINKER=$(LINKER)" clean
@cd ..
@cd newsrc
@$(MAKE) /nologo -f makefile.win "MAKE=$(MAKE)" "CC=$(CC)" "CXX=$(CXX)" "LINKER=$(LINKER)" clean
@cd ..
@echo "****** DONE CLEANALL SUBDIRECTORIES $(SUBDIR) ******"

View File

@@ -1,16 +0,0 @@
set(SAGE_SOURCES low_level.c unparse.c)
if(MSVC_IDE)
foreach(DIR ${DVM_SAGE_INCLUDE_DIRS})
file(GLOB_RECURSE FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
"${DIR}/*.h" "${DIR}/*.def" "${DIR}/head" "${DIR}/tag")
set(SAGE_HEADERS ${SAGE_HEADERS} ${FILES})
endforeach()
source_group("Header Files" FILES ${SAGE_HEADERS})
endif()
add_library(sage ${SAGE_SOURCES} ${SAGE_HEADERS})
target_compile_definitions(sage PRIVATE SYS5)
target_include_directories(sage PUBLIC "${DVM_SAGE_INCLUDE_DIRS}")
set_target_properties(sage PROPERTIES FOLDER "${DVM_LIBRARY_FOLDER}")

View File

@@ -1,83 +0,0 @@
#######################################################################
## pC++/Sage++ Copyright (C) 1993 ##
## Indiana University University of Oregon University of Rennes ##
#######################################################################
# sage/lib/newsrc/Makefile (phb)
LSX = .a
#HP_CFLAGS#CEXTRA = -Aa +z#ENDIF#
#HP_CFLAGS#LSX = .sl#ENDIF#
SHELL = /bin/sh
CONFIG_ARCH=iris4d
# ALPHA Sage new lib.a modified by Pete Beckman (2/1/93)
RANLIB_TEST = [ -f /usr/bin/ranlib ] || [ -f /bin/ranlib ]
#NO_RANLIB#RANLIB_TEST = (exit 1)#ENDIF#
CC = gcc
#CC=cc#ENDIF##USE_CC#
CXX = g++
CXX = /usr/WorkShop/usr/bin/DCC
OLDHEADERS = ../../h
#INSTALLDEST = ../$(CONFIG_ARCH)
INSTALLDEST = ../../../libsage
INSTALL = /bin/cp
# Directory in which include file can be found
toolbox_include = ../include
INCLUDE = -I$(OLDHEADERS) -I../include
CFLAGS = $(INCLUDE) -g -Wall $(CEXTRA)
LDFLAGS =
BISON= /usr/freeware/bin/bison
BISON= bison
TOOLBOX_SRC = comments.c low_level.c unparse.c toolsann.c annotate.tab.c
TOOLBOX_HDR = $(toolbox_include)/macro.h $(toolbox_include)/bif_node.def $(toolbox_include)/type.def $(toolbox_include)/symb.def
TOOLBOX_OBJ = low_level.o unparse.o
TOOLBOX_OBJ_ANN = comments.o toolsann.o annotate.tab.o
all: libsage$(LSX)
clean:
/bin/rm -f *.o lib*$(LSX)
low_level.o: low_level.c $(TOOLBOX_HDR)
unparse.o: unparse.c $(TOOLBOX_HDR) $(toolbox_include)/unparse.def $(toolbox_include)/unparseC++.def
main.o : main.c
libsage : libsage$(LSX)
libsage.a: $(TOOLBOX_OBJ) $(TOOLBOX_HDR)
/bin/rm -f libsage.a
ar qc libsage.a $(TOOLBOX_OBJ)
@if $(RANLIB_TEST) ; then ranlib libsage.a ; \
else echo "\tNOTE: ranlib not required" ; fi
libsage.sl: $(TOOLBOX_OBJ) $(TOOLBOX_HDR)
/bin/rm -f libsage.sl
ld -b -s -o libsage.sl $(TOOLBOX_OBJ)
install: $(INSTALLDEST)/libsage$(LSX)
$(INSTALLDEST)/libsage$(LSX): libsage$(LSX)
if [ -d $(INSTALLDEST) ] ; then true; else mkdir $(INSTALLDEST) ;fi
$(INSTALL) libsage$(LSX) $(INSTALLDEST)/libsage$(LSX)
@if $(RANLIB_TEST) ; then ranlib $(INSTALLDEST)/libsage$(LSX) ; \
else echo "\tNOTE: ranlib not required" ; fi

File diff suppressed because it is too large Load Diff

View File

@@ -1,75 +0,0 @@
typedef union {
int token ;
char charv ;
char *charp;
PTR_BFND bfnode ;
PTR_LLND ll_node ;
PTR_SYMB symbol ;
PTR_TYPE data_type ;
PTR_HASH hash_entry ;
PTR_LABEL label ;
PTR_BLOB blob_ptr ;
} YYSTYPE;
#define IFDEFA 258
#define APPLYTO 259
#define ALABELT 260
#define SECTIONT 261
#define SPECIALAF 262
#define FROMT 263
#define TOT 264
#define TOTLABEL 265
#define TOFUNCTION 266
#define DefineANN 267
#define IDENTIFIER 268
#define TYPENAME 269
#define SCSPEC 270
#define TYPESPEC 271
#define TYPEMOD 272
#define CONSTANT 273
#define STRING 274
#define ELLIPSIS 275
#define SIZEOF 276
#define ENUM 277
#define STRUCT 278
#define UNION 279
#define IF 280
#define ELSE 281
#define WHILE 282
#define DO 283
#define FOR 284
#define SWITCH 285
#define CASE 286
#define DEFAULT_TOKEN 287
#define BREAK 288
#define CONTINUE 289
#define RETURN 290
#define GOTO 291
#define ASM 292
#define CLASS 293
#define PUBLIC 294
#define FRIEND 295
#define ACCESSWORD 296
#define OVERLOAD 297
#define OPERATOR 298
#define COBREAK 299
#define COLOOP 300
#define COEXEC 301
#define LOADEDOPR 302
#define MULTIPLEID 303
#define MULTIPLETYPENAME 304
#define ASSIGN 305
#define OROR 306
#define ANDAND 307
#define EQCOMPARE 308
#define ARITHCOMPARE 309
#define LSHIFT 310
#define RSHIFT 311
#define UNARY 312
#define PLUSPLUS 313
#define MINUSMINUS 314
#define HYPERUNARY 315
#define DOUBLEMARK 316
#define POINTSAT 317
extern YYSTYPE yylval;

File diff suppressed because it is too large Load Diff

View File

@@ -1,693 +0,0 @@
/*********************************************************************/
/* pC++/Sage++ Copyright (C) 1993,1995 */
/* Indiana University University of Oregon University of Rennes */
/*********************************************************************/
/* Created By Jenq-Kuen Lee April 14, 1988 */
/* A Sub-program to help yylex() catch all the comments */
/* A small finite automata used to identify the input token corresponding to */
/* Bif node position */
#include <stdio.h>
#include "vparse.h"
#include "vpc.h"
#include "db.h"
#include "vextern.h"
#include "annotate.tab.h"
void reset_semicoln_handler();
void reset();
int lastdecl_id; /* o if no main_type appeared */
int left_paren ;
static int cur_state ;
int cur_counter;
struct {
PTR_CMNT stack[MAX_NESTED_SIZE];
int counter[MAX_NESTED_SIZE];
int node_type[MAX_NESTED_SIZE];
int automata_state[MAX_NESTED_SIZE];
int top ;
} comment_stack ;
struct {
PTR_CMNT stack[MAX_NESTED_SIZE + 1 ];
int front ;
int rear ;
} comment_queue;
struct {
int line_stack[MAX_NESTED_SIZE + 1 ];
PTR_FNAME file_stack[MAX_NESTED_SIZE + 1 ];
int front ;
int rear ;
int BUGGY[100]; /* This is included because some versions of
gcc seemed to have bugs that overwrite
previous fields without. */
} line_queue;
PTR_FNAME find_file_entry()
{
/* dummy, should not be use after cleaning */
return NULL;
}
void put_line_queue(line_offset,name)
int line_offset ;
char *name;
{ PTR_FNAME find_file_entry();
if (line_queue.rear == MAX_NESTED_SIZE) line_queue.rear = 0;
else line_queue.rear++;
if (line_queue.rear == line_queue.front) Message("stack/queue overflow",0);
line_queue.line_stack[line_queue.rear] = line_offset ;
line_queue.file_stack[line_queue.rear] = find_file_entry(name);
}
PTR_FNAME
fetch_line_queue(line_ptr )
int *line_ptr;
{
if (line_queue.front == line_queue.rear)
{ *line_ptr = line_queue.line_stack[line_queue.front] ;
return(line_queue.file_stack[line_queue.front]);
}
if (line_queue.front == MAX_NESTED_SIZE) line_queue.front = 0;
else line_queue.front++;
*line_ptr = line_queue.line_stack[line_queue.front] ;
return(line_queue.file_stack[line_queue.front]);
}
void push_state()
{
comment_stack.top++;
comment_stack.stack[ comment_stack.top ] = cur_comment ;
comment_stack.counter[ comment_stack.top ] = cur_counter ;
comment_stack.automata_state[ comment_stack.top ] = cur_state ;
}
void pop_state()
{
cur_comment = comment_stack.stack[ comment_stack.top ] ;
cur_counter = comment_stack.counter[ comment_stack.top ] ;
cur_state = comment_stack.automata_state[ comment_stack.top ] ;
comment_stack.top--;
}
void init_stack()
{
comment_stack.top = 0 ;
comment_stack.automata_state[ comment_stack.top ] = ZERO;
}
void automata_driver(value)
int value ;
{
int shift_flag ;
int temp_state ;
for (shift_flag = ON ; shift_flag==ON ; )
{ shift_flag = OFF ;
switch(cur_state) {
case ZERO :
switch (value) {
case IF :
put_line_queue(line_pos_1,line_pos_fname);
cur_state = IF_STATE;
break ;
case ELSE :
put_line_queue(line_pos_1,line_pos_fname);
cur_state = ELSE_EXPECTED_STATE ;
break;
case DO :
put_line_queue(line_pos_1,line_pos_fname);
cur_state = DO_STATE ;
break;
case FOR :
put_line_queue(line_pos_1,line_pos_fname);
cur_state = FOR_STATE ;
break;
case CASE :
case DEFAULT_TOKEN:
put_line_queue(line_pos_1,line_pos_fname);
cur_state = CASE_STATE;
break;
case GOTO :
put_line_queue(line_pos_1,line_pos_fname);
cur_state = GOTO_STATE;
break;
case WHILE :
put_line_queue(line_pos_1,line_pos_fname);
cur_state = WHILE_STATE;
break;
case SWITCH:
put_line_queue(line_pos_1,line_pos_fname);
cur_state = SWITCH_STATE;
break;
case COEXEC :
cur_state = COEXEC_STATE ;
put_line_queue(line_pos_1,line_pos_fname);
break;
case COLOOP:
put_line_queue(line_pos_1,line_pos_fname);
cur_state = COLOOP_STATE ;
break;
case RETURN:
put_line_queue(line_pos_1,line_pos_fname);
cur_state = RETURN_STATE ;
break;
case '}':
pop_state();
switch (cur_state) {
case ELSE_EXPECTED_STATE:
put_line_queue(line_pos_1,line_pos_fname);
break;
case STATE_4:
case BLOCK_STATE:
put_line_queue(line_pos_1,line_pos_fname);
reset();
reset_semicoln_handler();
break;
case IF_STATE_4:
cur_state= ELSE_EXPECTED_STATE;
put_line_queue(line_pos_1,line_pos_fname);
break;
case DO_STATE_1:
cur_state= DO_STATE_2;
reset_semicoln_handler();
break;
case DO_STATE_2:
case STATE_2:
break;
default:
reset();
reset_semicoln_handler();
}
break ;
case '{':
temp_state=comment_stack.automata_state[comment_stack.top];
if (temp_state == STATE_ARG)
comment_stack.automata_state[comment_stack.top]= STATE_4;
else { cur_state = BLOCK_STATE ;
put_line_queue(line_pos_1,line_pos_fname);
push_state();
}
reset();
break ;
case '(':
put_line_queue(line_pos_1,line_pos_fname);
cur_state = STATE_15;
left_paren++;
break;
case IDENTIFIER:
put_line_queue(line_pos_1,line_pos_fname);
cur_state = STATE_6 ;
break;
case ';':
reset_semicoln_handler();
break;
default : /* other */
put_line_queue(line_pos_1,line_pos_fname);
if (class_struct(value)) cur_state = STATE_10 ;
else cur_state = STATE_1 ;
break;
}
break;
case STATE_1 :
if (value == '(') { cur_state =STATE_15 ;
left_paren++;
}
if (class_struct(value)) cur_state =STATE_10 ;
if (value == IDENTIFIER) cur_state =STATE_2 ;
if (value == OPERATOR) cur_state =STATE_4 ;
if (value ==';') reset_semicoln_handler();
break ;
case STATE_2 :
if (value == '(') { cur_state = STATE_15 ;
left_paren++;
}
if (value ==';') {
reset();
reset_semicoln_handler();
}
break;
case STATE_4:
switch (value) {
case '(':
cur_state = STATE_15 ;
left_paren++;
break;
case '{': /* cur_state = STATE_5; */
push_state();
reset();
break;
case '=':
case ',':
cur_state = STATE_12;
break;
case ';':
reset_semicoln_handler();
break;
default:
if (is_declare(value))
{ cur_state = STATE_ARG ;
push_state();
reset();
}
else cur_state = STATE_12;
}
break;
case STATE_6:
if (value == ':') cur_state = ZERO;
else {
if (value ==';') reset_semicoln_handler();
else { cur_state = STATE_2;
shift_flag = ON ;
}
}
break;
case STATE_10 :
if (value =='{')
{ cur_state = STATE_2 ;
push_state();
reset();
}
if ((value == '=' )||(value ==',')) cur_state = STATE_12;
if (value == '(' ) { cur_state = STATE_15;
left_paren++;
}
if (value ==';') reset_semicoln_handler();
break ;
case STATE_12:
if (value ==';') reset_semicoln_handler();
break ;
case STATE_15 :
if (value == '(') left_paren++ ;
if (value == ')') left_paren--;
if (left_paren == 0) cur_state = STATE_4 ;
break ;
case IF_STATE:
if (value == '(') { left_paren++;
cur_state = IF_STATE_2;
}
break;
case IF_STATE_2:
if (value == '(') left_paren++ ;
if (value == ')') left_paren--;
if (left_paren == 0) cur_state = IF_STATE_3 ;
break ;
case IF_STATE_3:
if (value == ';') {
put_line_queue(line_pos_1,line_pos_fname);
cur_state= ELSE_EXPECTED_STATE ;
}
if (value =='{') { cur_state= ELSE_EXPECTED_STATE ;
push_state();
cur_state = ZERO ; /* counter continuing */
}
if (cur_state == IF_STATE_3)
{ cur_state = IF_STATE_4 ;
push_state();
reset();
shift_flag = ON;
}
break;
case ELSE_EXPECTED_STATE:
if (value == ELSE) cur_state = BLOCK_STATE ;
else {
reset();
reset_semicoln_handler();
shift_flag = ON ;
}
break;
case BLOCK_STATE:
if (value ==';') {
cur_state = BLOCK_STATE_WAITSEMI;
push_state();
reset_semicoln_handler();
}
if (value == '{') { push_state();
reset();
}
if (cur_state == BLOCK_STATE)
{
cur_state = BLOCK_STATE_WAITSEMI;
push_state();
reset();
shift_flag = ON ;
}
break;
case WHILE_STATE:
if (value == '('){ left_paren++;
cur_state = WHILE_STATE_2;
}
break;
case WHILE_STATE_2:
if (value == '(') left_paren++ ;
if (value == ')') left_paren--;
if (left_paren == 0) cur_state = BLOCK_STATE ;
break ;
case FOR_STATE:
if (value == '(') { left_paren++;
cur_state = FOR_STATE_2;
}
break;
case FOR_STATE_2:
if (value == '(') left_paren++ ;
if (value == ')') left_paren--;
if (left_paren == 0) cur_state = BLOCK_STATE ;
break ;
case COLOOP_STATE:
if (value == '(') { left_paren++;
cur_state = COLOOP_STATE_2;
}
break;
case COLOOP_STATE_2:
if (value == '(') left_paren++ ;
if (value == ')') left_paren--;
if (left_paren == 0) cur_state = BLOCK_STATE ;
break ;
case COEXEC_STATE:
if (value == '(') { left_paren++;
cur_state = COEXEC_STATE_2;
}
break;
case COEXEC_STATE_2:
if (value == '(') left_paren++ ;
if (value == ')') left_paren--;
if (left_paren == 0) cur_state = BLOCK_STATE ;
break ;
case SWITCH_STATE:
if (value == '(') { left_paren++;
cur_state = SWITCH_STATE_2;
}
break;
case SWITCH_STATE_2:
if (value == '(') left_paren++ ;
if (value == ')') left_paren--;
if (left_paren == 0) cur_state = BLOCK_STATE ;
break ;
case CASE_STATE :
if (value == ':') reset();
break;
case DO_STATE : /* Need More, some problem exists */
if (value == ';') { cur_state = DO_STATE_2 ; }
if (value == '{') { cur_state = DO_STATE_2 ;
push_state();
reset();
}
if (cur_state == DO_STATE)
{ cur_state = DO_STATE_1 ;
push_state();
reset();
shift_flag = ON;
}
break;
case DO_STATE_2:
if (value == WHILE) cur_state= DO_STATE_3 ;
break ;
case DO_STATE_3:
if (value == '(') { cur_state = DO_STATE_4 ;
left_paren++;
}
break;
case DO_STATE_4:
if (value == '(') left_paren++ ;
if (value == ')') left_paren--;
if (left_paren == 0) cur_state = DO_STATE_5 ;
break ;
case DO_STATE_5:
if (value ==';')
{
put_line_queue(line_pos_1,line_pos_fname);
reset();
reset_semicoln_handler();
}
break;
case RETURN_STATE:
if (value ==';') reset_semicoln_handler();
if (value == '(') { left_paren++;
cur_state = RETURN_STATE_2 ;
}
break;
case RETURN_STATE_2:
if (value == '(') left_paren++ ;
if (value == ')') left_paren--;
if (left_paren == 0) cur_state = RETURN_STATE_3 ;
break ;
case RETURN_STATE_3:
if (value ==';') reset_semicoln_handler();
break;
case GOTO_STATE:
if (value == IDENTIFIER) cur_state = GOTO_STATE_2 ;
break;
case GOTO_STATE_2:
if (value ==';') reset_semicoln_handler();
break;
default:
Message(" comments state un_expected...",0);
break;
}
}
}
class_struct(value)
register int value ;
{
switch (value) {
case ENUM :
case CLASS:
case STRUCT :
case UNION: return(1);
default : return(0);
}
}
declare_symb(value)
register int value ;
{
switch (value) {
case TYPENAME :
case TYPESPEC:
case TYPEMOD:
case ACCESSWORD:
case SCSPEC:
case ENUM :
case CLASS:
case STRUCT :
case UNION: return(1);
default : return(0);
}
}
void reset()
{
cur_state = 0 ;
cur_counter = 0 ;
cur_comment = (PTR_CMNT) NULL ;
/* put_line_queue(line_pos_1,line_pos_fname); */
}
block_like(state)
int state ;
{
switch( state) {
case BLOCK_STATE:
case ZERO:
case SWITCH_STATE:
case FOR_STATE :
case WHILE_STATE :
case COEXEC_STATE :
case COLOOP_STATE:
case STATE_4: /* end of function_body */
return(1);
default: return(0);
}
}
int
is_declare(value)
int value ;
{
switch (value) {
case TYPENAME:
case TYPESPEC :
case ACCESSWORD:
case SCSPEC:
case TYPEMOD:
case ENUM:
case UNION:
case CLASS:
case STRUCT: return(1);
default : return(0);
}
}
/* pop state until reach a stable state BLOCK_STATE or ZERO */
void reset_semicoln_handler()
{
int sw,state;
for (sw=1; sw; )
{
if (keep_original(cur_state)) return;
state = comment_stack.automata_state[comment_stack.top];
switch (state) {
case IF_STATE_4:
pop_state();
cur_state = ELSE_EXPECTED_STATE ;
put_line_queue(line_pos_1,line_pos_fname);
break;
case DO_STATE_1:
pop_state();
cur_state = DO_STATE_2 ;
break;
case BLOCK_STATE_WAITSEMI:
put_line_queue(line_pos_1,line_pos_fname);
pop_state();
reset();
break;
default :
reset();
sw = 0 ;
}
}
}
keep_original(state)
int state;
{
switch (state) {
case ELSE_EXPECTED_STATE:
case DO_STATE_2:
case STATE_2:
return(1);
default:
return(0);
}
}
/*****************************************************************************/
/* is_at_decl_state() & is_look_ahead_of_identifier() */
/* These two routines are used in yylex to identify if a TYPENAME is just */
/* a IDENTIFIER */
/* */
/*****************************************************************************/
int
is_at_decl_state()
{
/* to see if it is inside (, ) */
switch(cur_state) {
case STATE_15:
case IF_STATE_2:
case WHILE_STATE_2:
case FOR_STATE_2:
case COLOOP_STATE_2:
case COEXEC_STATE_2:
case SWITCH_STATE_2:
case DO_STATE_4:
return(0);
default:
return(1);
}
}
int is_look_ahead_of_identifier(c)
char c;
{
switch (c) {
case ':' :
case '(':
case '[':
case ',':
case ';':
case '=':
return(1);
default:
return(0);
}
}
void set_up_momentum(value,token)
int value,token;
{
if (lastdecl_id == 0)
{
/* check if main_type appears */
switch (value) {
case TYPESPEC:
lastdecl_id = 1;
break;
case TYPEMOD:
if ((token == (int)RID_LONG)||(token == (int)RID_SHORT)||
(token==(int)RID_SIGNED)||(token==(int)RID_UNSIGNED))
lastdecl_id = 1;
break;
}
}
else
{
/* case for main_type already appear, then check if
1. this is still a decl.
2. reset it to wait for another decl stat. */
switch (value) {
case TYPESPEC:
case TYPEMOD:
case SCSPEC:
break;
default:
lastdecl_id = 0;
}
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -1,40 +0,0 @@
#######################################################################
## Copyright (C) 1999 ##
## Keldysh Institute of Appllied Mathematics ##
#######################################################################
# sage/lib/newsrc/makefile.sgi
LIBDIR = ../../../lib
OLDHEADERS = ../../h
# Directory in which include file can be found
TOOLBOX_INCLUDE = ../include
INCL = -I$(OLDHEADERS) -I../include
TOOLBOX_SRC = low_level.c unparse.c
TOOLBOX_HDR = $(TOOLBOX_INCLUDE)/macro.h $(TOOLBOX_INCLUDE)/bif_node.def \
$(TOOLBOX_INCLUDE)/type.def $(TOOLBOX_INCLUDE)/symb.def
CFLAGS = $(INCL) -c -DSYS5 -Wall
low_level.o: low_level.c $(TOOLBOX_HDR)
unparse.o: unparse.c $(TOOLBOX_HDR) $(TOOLBOX_INCLUDE)/unparse.def \
$(TOOLBOX_INCLUDE)/unparseC++.def
TOOLBOX_OBJ = low_level.o unparse.o
$(LIBDIR)/libsage.a: $(TOOLBOX_OBJ) $(TOOLBOX_HDR)
ar qc $(LIBDIR)/libsage.a $(TOOLBOX_OBJ)
all: $(LIBDIR)/libsage.a
@echo "*** COMPILING LIBRARY newsrc DONE"
clean:
rm -f $(TOOLBOX_OBJ)
cleanall:
rm -f $(TOOLBOX_OBJ)

View File

@@ -1,54 +0,0 @@
#######################################################################
## Copyright (C) 1999 ##
## Keldysh Institute of Appllied Mathematics ##
#######################################################################
# sage/lib/newsrc/makefile.win
OUTDIR = ../../../obj
LIBDIR = ../../../lib
OLDHEADERS = ../../h
# Directory in which include file can be found
TOOLBOX_INCLUDE = ../include
INCL = -I$(OLDHEADERS) -I../include
TOOLBOX_SRC = low_level.c unparse.c
TOOLBOX_HDR = $(TOOLBOX_INCLUDE)/macro.h $(TOOLBOX_INCLUDE)/bif_node.def \
$(TOOLBOX_INCLUDE)/type.def $(TOOLBOX_INCLUDE)/symb.def
# -w don't issue warning now.
#CFLAGS=/nologo /ML /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D SYS5 $(INCL) \
# /Fp"$(OUTDIR)/newsrc.pch" /YX /Fo"$(OUTDIR)/" /Fd"$(OUTDIR)/" /c
CFLAGS=/nologo /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D SYS5 $(INCL) \
/Fp"$(OUTDIR)/newsrc.pch" /Fo"$(OUTDIR)/" /Fd"$(OUTDIR)/" /c
.c{$(OUTDIR)/}.obj:
$(CC) $(CFLAGS) $<
LIB32=$(LINKER) -lib
LIB32_FLAGS=/nologo /out:"$(LIBDIR)/libsage.lib"
$(OUTDIR)/low_level.obj: low_level.c $(TOOLBOX_HDR)
$(OUTDIR)/unparse.obj: unparse.c $(TOOLBOX_HDR) $(TOOLBOX_INCLUDE)/unparse.def \
$(TOOLBOX_INCLUDE)/unparseC++.def
TOOLBOX_OBJ = $(OUTDIR)/low_level.obj $(OUTDIR)/unparse.obj
$(LIBDIR)/libsage.lib: $(TOOLBOX_OBJ) $(TOOLBOX_HDR)
$(LIB32) @<<
$(LIB32_FLAGS) $(TOOLBOX_OBJ)
<<
all: $(LIBDIR)/libsage.lib
@echo "*** COMPILING LIBRARY newsrc DONE"
clean:
cleanall:

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,18 +0,0 @@
set(DB_SOURCES anal_ind.c db.c db_unp.c db_unp_vpc.c dbutils.c
garb_coll.c glob_anal.c ker_fun.c list.c make_nodes.c mod_ref.c ndeps.c
readnodes.c sets.c setutils.c symb_alg.c writenodes.c)
if(MSVC_IDE)
foreach(DIR ${DVM_SAGE_INCLUDE_DIRS})
file(GLOB_RECURSE FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
"${DIR}/*.h" "${DIR}/*.def" "${DIR}/head" "${DIR}/tag")
set(DB_HEADERS ${DB_HEADERS} ${FILES})
endforeach()
source_group("Header Files" FILES ${DB_HEADERS})
endif()
add_library(db ${DB_SOURCES} ${DB_HEADERS})
target_compile_definitions(db PRIVATE SYS5)
target_include_directories(db PUBLIC "${DVM_SAGE_INCLUDE_DIRS}")
set_target_properties(db PROPERTIES FOLDER "${DVM_LIBRARY_FOLDER}")

View File

@@ -1,123 +0,0 @@
#######################################################################
## pC++/Sage++ Copyright (C) 1993 ##
## Indiana University University of Oregon University of Rennes ##
#######################################################################
# sage/lib/oldsrc/Makefile (phb)
LSX = .a
#HP_CFLAGS#CEXTRA = -Ae +z#ENDIF#
#HP_CFLAGS#LSX = .sl#ENDIF#
SHELL = /bin/sh
CONFIG_ARCH=iris4d
RANLIB_TEST = [ -f /usr/bin/ranlib ] || [ -f /bin/ranlib ]
#NO_RANLIB#RANLIB_TEST = (exit 1)#ENDIF#
# Directory with all the include headers
H = ../../h
#INSTALLDEST = ../$(CONFIG_ARCH)
INSTALLDEST = ../../../libsage
INSTALL = /bin/cp
CC = gcc
#CC=cc#ENDIF##USE_CC#
CXX = g++
CXX = /usr/WorkShop/usr/bin/DCC
LINKER = $(CC)
CFLAGS = -g -Wall -I$H $(CEXTRA)
DEST = ${HOME}/bin
EXTHDRS = $H/bif.h $H/db.h $H/db.h $H/defs.h $H/dep.h \
$H/dep_str.h $H/list.h $H/ll.h $H/sets.h $H/symb.h \
$H/tag $H/vparse.h
OBJS = anal_ind.o db.o db_unp.o db_unp_vpc.o dbutils.o \
garb_coll.o glob_anal.o ker_fun.o list.o \
make_nodes.o mod_ref.o ndeps.o readnodes.o sets.o setutils.o \
symb_alg.o writenodes.o
SRCS = anal_ind.c db.c db_unp.c db_unp_vpc.c dbutils.c \
garb_coll.c glob_anal.c ker_fun.c list.c \
make_nodes.c mod_ref.c ndeps.c readnodes.c sets.c setutils.c \
symb_alg.c writenodes.c
all: $(OBJS) libdb$(LSX)
libdb.a: $(OBJS)
/bin/rm -f libdb.a
ar qc libdb.a $(OBJS)
@if $(RANLIB_TEST) ; then ranlib libdb.a ; \
else echo "\tNOTE: ranlib not required" ; fi
libdb.sl: $(OBJS)
/bin/rm -f libdb.sl
ld -b -s -o libdb.sl $(OBJS)
clean:
@/bin/rm -f $(OBJS) $(PROGRAM) *.dep libdb$(LSX)
index:
ctags -wx $(HDRS) $(SRCS)
print:
$(PRINT) $(HDRS) $(SRCS)
program: $(PROGRAM)
tags: $(HDRS) $(SRCS); ctags $(HDRS) $(SRCS)
install: $(INSTALLDEST)/libdb$(LSX)
$(INSTALLDEST)/libdb$(LSX): libdb$(LSX)
if [ -d $(INSTALLDEST) ] ; then true; \
else mkdir $(INSTALLDEST) ;fi
$(INSTALL) libdb$(LSX) $(INSTALLDEST)
@if $(RANLIB_TEST) ; then ranlib $(INSTALLDEST)/libdb$(LSX) ; \
else echo "\tNOTE: ranlib not required" ; fi
###
anal_ind.o: $H/db.h $H/defs.h $H/tag $H/bif.h \
$H/ll.h $H/symb.h $H/sets.h
db.o: $H/db.h $H/defs.h \
$H/tag $H/bif.h $H/ll.h $H/symb.h $H/sets.h
db_unp.o: $H/db.h $H/defs.h $H/tag $H/bif.h \
$H/ll.h $H/symb.h $H/sets.h
db_unp_vpc.o: $H/defs.h $H/tag $H/bif.h \
$H/ll.h $H/symb.h $H/sets.h $H/db.h $H/vparse.h
dbutils.o: $H/db.h \
$H/defs.h $H/tag $H/bif.h $H/ll.h $H/symb.h $H/sets.h
garb-coll.o: $H/db.h $H/defs.h $H/tag $H/bif.h \
$H/ll.h $H/symb.h $H/sets.h
glob_anal.o: $H/db.h $H/defs.h $H/tag $H/bif.h \
$H/ll.h $H/symb.h $H/sets.h
ker_fun.o: $H/defs.h $H/tag $H/bif.h $H/ll.h \
$H/symb.h $H/sets.h
list.o: $H/db.h $H/defs.h $H/tag $H/bif.h \
$H/ll.h $H/symb.h $H/sets.h $H/list.h
make_nodes.o: $H/db.h $H/defs.h $H/tag \
$H/bif.h $H/ll.h $H/symb.h $H/sets.h
mod_ref.o: $H/defs.h $H/tag $H/bif.h $H/ll.h \
$H/symb.h $H/sets.h $H/vparse.h $H/db.h
ndeps.o: $H/db.h $H/defs.h $H/tag $H/bif.h \
$H/ll.h $H/symb.h $H/sets.h
readnodes.o: $H/db.h $H/defs.h $H/tag $H/bif.h \
$H/ll.h $H/symb.h $H/sets.h $H/dep_str.h \
$H/dep.h
sets.o: $H/db.h $H/defs.h $H/tag $H/bif.h \
$H/ll.h $H/symb.h $H/sets.h
setutils.o: $H/db.h $H/defs.h $H/tag $H/bif.h \
$H/ll.h $H/symb.h $H/sets.h
symb_alg.o: $H/db.h $H/defs.h $H/tag $H/bif.h \
$H/ll.h $H/symb.h $H/sets.h
writenodes.o: $H/db.h $H/defs.h $H/tag \
$H/bif.h $H/ll.h $H/symb.h $H/sets.h $H/dep_str.h \
$H/dep.h

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Some files were not shown because too many files have changed in this diff Show More