Я работаю над проектом по созданию плагина проверки границ для GCC. Так как это похоже на то, что делает mudflap , это было бы хорошей отправной точкой. Поэтому я начал с того, что попытался получить общее представление о том, почему mudflap выполняет инструментарий GIMPLE в два прохода и почему проходы размещаются в местах, где они находятся. Я понимаю, что pass1 должен быть выполнен с высоким GIMPLE и, следовательно, должен быть раньше, чем проход с опущением gimple. Тем не менее, я пока не понимаю обоснования размещения второго прохода.
Буду признателен, если кто-нибудь сможет пролить свет на этот. Я разместил тот же вопрос на форуме gcc-help (здесь: http://gcc.gnu.org/ml/gcc-help/2012-02/msg00206.html),, но ответа пока нет. Я надеюсь, что кто-то здесь сможет помочь.
Спасибо!