GCC Wikia
Advertisement

このページを編集する際は,編集に関する方針に従ってください.[]

概要[]


  • コメント

ミドルからバックエンドのソース(.c)をのぞくと

この構造体が、ソースファイルの後方に宣言されている。(2つあるのもある)

dumpfileを生成する実装をもっていると、たとえば-djなどのオプションがある場合はletterに"j"が書かれている。

実装[]

 89 /* Describe one pass.  */
 90 struct tree_opt_pass
 91 {
 92   /* Terse name of the pass used as a fragment of the dump file name.  */
 93   const char *name;
 94 
 95   /* If non-null, this pass and all sub-passes are executed only if
 96      the function returns true.  */
 97   bool (*gate) (void);
 98 
 99   /* This is the code to run.  If null, then there should be sub-passes
100      otherwise this pass does nothing.  */
101   void (*execute) (void);
102 
103   /* A list of sub-passes to run, dependent on gate predicate.  */
104   struct tree_opt_pass *sub;
105 
106   /* Next in the list of passes to run, independent of gate predicate.  */
107   struct tree_opt_pass *next;
108 
109   /* Static pass number, used as a fragment of the dump file name.  */
110   int static_pass_number;
111 
112   /* The timevar id associated with this pass.  */
113   /* ??? Ideally would be dynamically assigned.  */
114   unsigned int tv_id;
115 
116   /* Sets of properties input and output from this pass.  */
117   unsigned int properties_required;
118   unsigned int properties_provided;
119   unsigned int properties_destroyed;
120 
121   /* Flags indicating common sets things to do before and after.  */
122   unsigned int todo_flags_start;
123   unsigned int todo_flags_finish;
124 
125   /* Letter for RTL dumps.  */
126   char letter;
127 };



リンク元

Advertisement