1 /*
2  * Copyright (c) 2000-2019, NVIDIA CORPORATION.  All rights reserved.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *     http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  *
16  */
17 
18 #ifndef MWD_H_
19 #define MWD_H_
20 
21 /** \file
22  * \brief Header for mw's dump routines
23  */
24 
25 #include "gbldefs.h"
26 #include <stdio.h>
27 #include "symtab.h"
28 
29 #if DEBUG
30 
31 /**
32    \brief ...
33  */
34 char *getprintnme(int n);
35 
36 /**
37    \brief ...
38  */
39 char *printname(int sptr);
40 
41 /**
42    \brief ...
43  */
44 int putdty(TY_KIND dty);
45 
46 /**
47    \brief ...
48  */
49 void checkfgraph(const char *s);
50 
51 /**
52    \brief ...
53  */
54 void checktags(const char *phase);
55 
56 /**
57    \brief ...
58  */
59 void dbihonly(void);
60 
61 /**
62    \brief ...
63  */
64 void dbih(void);
65 
66 /**
67    \brief ...
68  */
69 void db(int block);
70 
71 /**
72    \brief ...
73  */
74 void ddtype(DTYPE dtype);
75 
76 /**
77    \brief ...
78  */
79 void ddtypes(void);
80 
81 /**
82    \brief ...
83  */
84 void dfih(int f);
85 
86 /**
87    \brief ...
88  */
89 void dflg(void);
90 
91 /**
92    \brief ...
93  */
94 void dgbl(void);
95 
96 /**
97    \brief ...
98  */
99 void dili(int ilix);
100 
101 /**
102    \brief ...
103  */
104 void dilitre(int ilix);
105 
106 /**
107    \brief ...
108  */
109 void dilt(int ilt);
110 
111 /**
112    \brief ...
113  */
114 void dsa(void);
115 
116 /**
117    \brief ...
118  */
119 void ds(int sptr);
120 
121 /**
122    \brief ...
123  */
124 void dss(int l, int u);
125 
126 /**
127    \brief ...
128  */
129 void dsym(int sptr);
130 
131 /**
132    \brief ...
133  */
134 void dsyms(int l, int u);
135 
136 /**
137    \brief ...
138  */
139 void dumpabnd(int abx);
140 
141 /**
142    \brief ...
143  */
144 void dumpabnds(void);
145 
146 /**
147    \brief ...
148  */
149 void dumpacacheinfo(int cx);
150 
151 /**
152    \brief ...
153  */
154 void dumpacexprs(void);
155 
156 /**
157    \brief ...
158  */
159 void dumpacivs(void);
160 
161 /**
162    \brief ...
163  */
164 void dumpacsymt(int first, int last);
165 
166 /**
167    \brief ...
168  */
169 void dumpadef(int def);
170 
171 /**
172    \brief ...
173  */
174 void _dumpadef(int def, int dumpuses);
175 
176 /**
177    \brief ...
178  */
179 void dumpallloops(void);
180 
181 /**
182    \brief ...
183  */
184 void dumpallploops(void);
185 
186 /**
187    \brief ...
188  */
189 void _dumpaloop(int lpx, bool dumpprivate);
190 
191 /**
192    \brief ...
193  */
194 void dumpalooponly(int lpx);
195 
196 /**
197    \brief ...
198  */
199 void dumpanmelist(int nmelist);
200 
201 /**
202    \brief ...
203  */
204 void dumpanmetree(int nmex);
205 
206 /**
207    \brief ...
208  */
209 void dumparef(int arefx);
210 
211 /**
212    \brief ...
213  */
214 void dumparefs(void);
215 
216 /**
217    \brief ...
218  */
219 void dumparefxlist(int arefxlist);
220 
221 /**
222    \brief ...
223  */
224 void dumpause(int use);
225 
226 /**
227    \brief ...
228  */
229 void _dumpause(int use, int dumpdefs);
230 
231 /**
232    \brief ...
233  */
234 void dumpauselist(int use);
235 
236 /**
237    \brief ...
238  */
239 void dumpauses(void);
240 
241 /**
242    \brief ...
243  */
244 void dumpblock(int block);
245 
246 /**
247    \brief ...
248  */
249 void dumpblocks(const char *title);
250 
251 /**
252    \brief ...
253  */
254 void dumpblocksonly(void);
255 
256 /**
257    \brief ...
258  */
259 void _dumpchildaloopsclist(int lpx);
260 
261 /**
262    \brief ...
263  */
264 void _dumpchildaloops(int lpx);
265 
266 /**
267    \brief ...
268  */
269 void dumpddiff(int v);
270 
271 /**
272    \brief ...
273  */
274 void dumpdef(int def);
275 
276 /**
277    \brief ...
278  */
279 void _dumpdef(int def, int dumpuses);
280 
281 /**
282    \brief ...
283  */
284 void dumpdeflist(int deflist);
285 
286 /**
287    \brief ...
288  */
289 void dumpdefnmes(void);
290 
291 /**
292    \brief ...
293  */
294 void dumpdefs(void);
295 
296 /**
297    \brief ...
298  */
299 void dumpdfs(void);
300 
301 /**
302    \brief ...
303  */
304 void dumpdiff(void);
305 
306 /**
307    \brief ...
308  */
309 void dumpdtype(DTYPE dtype);
310 
311 /**
312    \brief ...
313  */
314 void dumpdtypes(void);
315 
316 /**
317    \brief ...
318  */
319 void dumpdvl(int d);
320 
321 /**
322    \brief ...
323  */
324 void dumpdvls(void);
325 
326 /**
327    \brief ...
328  */
329 void dumpfgraph(void);
330 
331 /**
332    \brief ...
333  */
334 void dumpfgraph2file(void);
335 
336 /**
337    \brief ...
338  */
339 void dumpfg(void);
340 
341 /**
342    \brief ...
343  */
344 void dumpfile(int f);
345 
346 /**
347    \brief ...
348  */
349 void dumpfiles(void);
350 
351 /**
352    \brief ...
353  */
354 void dumpfnodehead(int v);
355 
356 /**
357    \brief ...
358  */
359 void dumpfnode(int v);
360 
361 /**
362    \brief ...
363  */
364 void dumpiltdeflist(int iltx);
365 
366 /**
367    \brief ...
368  */
369 void dumpilt(int ilt);
370 
371 /**
372    \brief ...
373  */
374 void dumpiltmrlist(int iltx);
375 
376 /**
377    \brief ...
378  */
379 void dumpilts(void);
380 
381 /**
382    \brief ...
383  */
384 void dumpiltuselist(int iltx);
385 
386 /**
387    \brief ...
388  */
389 void dumpind(int i);
390 
391 /**
392    \brief ...
393  */
394 void dumpinds(void);
395 
396 /**
397    \brief ...
398  */
399 void dumpiv(int ivx);
400 
401 /**
402    \brief ...
403  */
404 void dumpivlist(void);
405 
406 /**
407    \brief ...
408  */
409 void dumpliveinuses(void);
410 
411 /**
412    \brief ...
413  */
414 void dumpliveoutdefs(void);
415 
416 /**
417    \brief ...
418  */
419 void dumplong(void);
420 
421 /**
422    \brief ...
423  */
424 void dumploop(int l);
425 
426 /**
427    \brief ...
428  */
429 void _dumploop(int l, bool dumpldst, bool dumpbits, int nest);
430 
431 /**
432    \brief ...
433  */
434 void dumploopsbv(int bvlen);
435 
436 /**
437    \brief ...
438  */
439 void dumploops(void);
440 
441 /**
442    \brief ...
443  */
444 void _dumplooptree(int l, int nest);
445 
446 /**
447    \brief ...
448  */
449 void dumplooptree(void);
450 
451 /**
452    \brief ...
453  */
454 void dumpmemref(int m);
455 
456 /**
457    \brief ...
458  */
459 void dumpmemrefs(void);
460 
461 /**
462    \brief ...
463  */
464 void _dumpmode2(int mode2);
465 
466 /**
467    \brief ...
468  */
469 void _dumpmode3(int mode3);
470 
471 /**
472    \brief ...
473  */
474 void _dumpmode(int mode);
475 
476 /**
477    \brief ...
478  */
479 void dumpmr(int m);
480 
481 /**
482    \brief ...
483  */
484 void dumpnatural(void);
485 
486 /**
487    \brief ...
488  */
489 void dumpnewdtypes(int olddtavail);
490 
491 /**
492    \brief ...
493  */
494 void dumpnme(int n);
495 
496 /**
497    \brief ...
498  */
499 void _dumpnme(int n, bool dumpdefsuses);
500 
501 /**
502    \brief ...
503  */
504 void dumpnmes(void);
505 
506 /**
507    \brief ...
508  */
509 void dumpnmetree(int n);
510 
511 /**
512    \brief ...
513  */
514 void dumpnnme(int n);
515 
516 /**
517    \brief ...
518  */
519 void dumpnst2(int n);
520 
521 /**
522    \brief ...
523  */
524 void dumpnst(int n);
525 
526 /**
527    \brief ...
528  */
529 void _dumpparentaloopsclist(int lpx);
530 
531 /**
532    \brief ...
533  */
534 void _dumpparentaloops(int lpx);
535 
536 /**
537    \brief ...
538  */
539 void dumpploop(int plpx);
540 
541 /**
542    \brief ...
543  */
544 void _dumpplooptree(int plpx);
545 
546 /**
547    \brief ...
548  */
549 void dumpprivatelist(void);
550 
551 /**
552    \brief ...
553  */
554 void dumpreddeflist(int deflist);
555 
556 /**
557    \brief ...
558  */
559 void dumpred(int r);
560 
561 /**
562    \brief ...
563  */
564 void dumpredlist(int r);
565 
566 /**
567    \brief ...
568  */
569 void dumpreducdeflist(int defx);
570 
571 /**
572    \brief ...
573  */
574 void dumpreducdefs(void);
575 
576 /**
577    \brief ...
578  */
579 void dumpregion(int r);
580 
581 /**
582    \brief ...
583  */
584 void dumpregionnest(int r);
585 
586 /**
587    \brief ...
588  */
589 void dumpregions(void);
590 
591 /**
592    \brief ...
593  */
594 void dumprnest(void);
595 
596 /**
597    \brief ...
598  */
599 void dumpscalar(int s);
600 
601 /**
602    \brief ...
603  */
604 void dumpscalarlist(int ss);
605 
606 /**
607    \brief ...
608  */
609 void dumpscalars(void);
610 
611 /**
612    \brief ...
613  */
614 void dumpshort(void);
615 
616 /**
617    \brief ...
618  */
619 void dumpsizes(void);
620 
621 /**
622    \brief ...
623  */
624 void dumpstmt(int s);
625 
626 /**
627    \brief ...
628  */
629 void dumpstmts(void);
630 
631 /**
632    \brief ...
633  */
634 void dumpstore(int s);
635 
636 /**
637    \brief ...
638  */
639 void dumpstorelist(int s);
640 
641 /**
642    \brief ...
643  */
644 void dumpsub(int s);
645 
646 /**
647    \brief ...
648  */
649 void dumpsubs(void);
650 
651 /**
652    \brief ...
653  */
654 void dumptblock(const char *title, int block);
655 
656 /**
657    \brief ...
658  */
659 void dumpuseddefs(void);
660 
661 /**
662    \brief ...
663  */
664 void dumpuseduses(void);
665 
666 /**
667    \brief ...
668  */
669 void dumpuse(int use);
670 
671 /**
672    \brief ...
673  */
674 void _dumpuse(int use, int dumpdefs);
675 
676 /**
677    \brief ...
678  */
679 void dumpuses(void);
680 
681 /**
682    \brief ...
683  */
684 void dumpvdef(int def);
685 
686 /**
687    \brief ...
688  */
689 void _dumpvdef(int def, int dumpuses);
690 
691 /**
692    \brief ...
693  */
694 void dumpvilt(int iltx);
695 
696 /**
697    \brief ...
698  */
699 void dumpvind(int i);
700 
701 /**
702    \brief ...
703  */
704 void dumpvindl(int i1, int n);
705 
706 /**
707    \brief ...
708  */
709 void dumpvinds(void);
710 
711 /**
712    \brief ...
713  */
714 void dumpvloop(int l);
715 
716 /**
717    \brief ...
718  */
719 void dumpvlooplist(int list);
720 
721 /**
722    \brief ...
723  */
724 void dumpvloops(void);
725 
726 /**
727    \brief ...
728  */
729 void dumpvuse(int use);
730 
731 /**
732    \brief ...
733  */
734 void _dumpvuse(int use, int dumpdefs);
735 
736 /**
737    \brief ...
738  */
739 void pprintnme(int n);
740 
741 /**
742    \brief ...
743  */
744 void printblock(int block);
745 
746 /**
747    \brief ...
748  */
749 void printblockline(int block);
750 
751 /**
752    \brief ...
753  */
754 void printblocksline(void);
755 
756 /**
757    \brief ...
758  */
759 void printblocks(void);
760 
761 /**
762    \brief ...
763  */
764 void dumpdpshape(int shapeid);
765 
766 /**
767    \brief ...
768  */
769 void dumpdppolicy(int policyid);
770 
771 /**
772    \brief ...
773  */
774 void dumpdpshapes();
775 
776 /**
777    \brief ...
778  */
779 void dumpdppolicies();
780 
781 /**
782    \brief ...
783  */
784 void printblockt(int firstblock, int lastblock);
785 
786 /**
787    \brief ...
788  */
789 void printblocktt(int firstblock, int lastblock);
790 
791 /**
792    \brief ...
793  */
794 void printfgraph(void);
795 
796 /**
797    \brief ...
798  */
799 void printfnode(int v);
800 
801 /**
802    \brief ...
803  */
804 void printili(int i);
805 
806 /**
807    \brief ...
808  */
809 void printilt(int i);
810 
811 /**
812    \brief ...
813  */
814 void printloop(int lpx);
815 
816 /**
817    \brief ...
818  */
819 void printnme(int n);
820 
821 /**
822    \brief ...
823  */
824 void printregion(int r);
825 
826 /**
827    \brief ...
828  */
829 void printregionnest(const char *msg, int r);
830 
831 /**
832    \brief ...
833  */
834 void _printregionnest(int r);
835 
836 /**
837    \brief ...
838  */
839 void printregions(void);
840 
841 /**
842    \brief ...
843  */
844 void putarefherelists(int lpx);
845 
846 /**
847    \brief ...
848  */
849 void putareflists(int lpx);
850 
851 /**
852    \brief ...
853  */
854 void putasub(int asubx, int nest);
855 
856 /**
857    \brief ...
858  */
859 void putcoeff(int coefx, int nest);
860 
861 /**
862    \brief ...
863  */
864 void putdtype(DTYPE dtype);
865 
866 /**
867    \brief ...
868  */
869 void _putdtype(DTYPE dtype, int structdepth);
870 
871 /**
872    \brief ...
873  */
874 void putili(const char *name, int ilix);
875 
876 /**
877    \brief ...
878  */
879 void putint1(int d);
880 
881 /**
882    \brief ...
883  */
884 void putlpxareflist(int lpx, const char *listname, int list, int nest);
885 
886 /**
887    \brief ...
888  */
889 void putmode(int mode);
890 
891 /**
892    \brief ...
893  */
894 void putmwline(void);
895 
896 /**
897    \brief ...
898  */
899 void putnestarefherelists(int lpx);
900 
901 /**
902    \brief ...
903  */
904 void _putnestareflists(int lpx, int nest, int flags);
905 
906 /**
907    \brief ...
908  */
909 void putnme(const char *s, int nme);
910 
911 /**
912    \brief ...
913  */
914 void putnnaref(int arefx, int nest);
915 
916 /**
917    \brief ...
918  */
919 void putptelist(int pte);
920 
921 /**
922    \brief ...
923  */
924 void putredtype(int rt);
925 
926 /**
927    \brief ...
928  */
929 void putsclist(const char *name, int list);
930 
931 /**
932    \brief ...
933  */
934 void putsoc(int socptr);
935 
936 /**
937    \brief ...
938  */
939 void _putsubs(const char *name, int s1, int n1);
940 
941 /**
942    \brief ...
943  */
944 void putsubs(int s1, int n1);
945 
946 /**
947    \brief ...
948  */
949 void simpledumpregion(int r);
950 
951 /**
952    \brief ...
953  */
954 void simpledumpstmt(int s);
955 
956 /**
957    \brief ...
958  */
959 void simpleprintregion(int r);
960 
961 /**
962    \brief ...
963  */
964 void simpleprintregionnest(const char *msg, int r);
965 
966 /**
967    \brief ...
968  */
969 void _simpleprintregionnest(int r);
970 
971 /**
972    \brief ...
973  */
974 void stackcheck(void);
975 
976 /**
977    \brief ...
978  */
979 void stackvars(void);
980 
981 #endif // DEBUG == 1
982 #endif // MWD_H_
983