Hello All (I've found this issue with the GCC MELT branch rev 169469, but I strongly believe it is not directly related to MELT and should happen with the trunk also. You could run the testsuite/melt/topengpu-1.c test, a comment in that file describes how to run the test)
First, a pass inserted by a plugin (or a MELT module) into the pass tree has to be of the same type. So a GIMPLE_PASS can only be inserted before or after another GIMPLE pass, a SIMPLE_IPA_PASS can only be be inserted near a SIMPLE_IPA_PASS, and an IPA_PASS can only be inserted near an IPA_PASS. In particular, I find a bit confusing that a SIMPLE_IPA_PASS provided by a plugin cannot be inserted after an IPA_PASS. When one try to insert a pass with a kind mismatch, the error message is very confusing. For instance, I'm getting cc1 : pass local-pure-const not found but is referenced by new pass meltopengpu_detect But the pass 'local-pure-const' does indeed exist. So at least, the error message should be improved (but I imagine that it is too late to even bother trying submit a patch to 4.6 trunk now, because we are probably in a stage [3, 4, don't understand the numbering] which disallows that). I believe that we should improve the error message. Maybe a message like "pass <XXX> found but of incompatible kind with new pass <YYY>" could be more understandable. I also find confusing that the pass 'local-pure-const' is a GIMPLE_PASS in file ipa-pure-const.c near line 1682 and the file is named ipa*.c (which suggest an IPA_PASS or SIMPLE_IPA_PASS) but that pass is just a GIMPLE_PASS. Regards. -- Basile STARYNKEVITCH http://starynkevitch.net/Basile/ email: basile<at>starynkevitch<dot>net mobile: +33 6 8501 2359 8, rue de la Faiencerie, 92340 Bourg La Reine, France *** opinions {are only mines, sont seulement les miennes} ***