mudflap versus cgraph

Mark Mitchell mark@codesourcery.com
Tue Jun 22 05:05:00 GMT 2004


Zack Weinberg wrote:

>mudflap has a pass-ordering conflict which I cannot figure out how to
>resolve.  mudflap_finish() generates and emits a function (calling
>tree_rest_of_compilation directly) after cgraph_optimize() has been
>called, which is wrong.  But it has to do that, because the set of
>items to be registered with the mudflap runtime at static construction
>time is only determined at final assembly output time -- the callers of
>mudflap_enqueue_decl/mudflap_enqueue_constant are in varasm.c.
>  
>
I think that's the problem.  In the cgraph world, the arbiter of what 
things are needed is cgraph itself.  There should be a hook that cgraph 
calls to add additional functions -- after it has already decided on 
everything else.

>I have not been able to think of a resolution to this problem.  It
>might be acceptable to wind the enqueue/emit logic into cgraph itself,
>provided that we could figure out how to construct a function in a
>completely language-independent manner (which we need anyway).
>
I think you just need to call a target hook to do that, for now -- which 
is what mudflap seems to be doing anyhow.

Is this for your IMA fixes?  It might be that mudflap has to be broken 
for a while, while IMA gets fixed...

-- 
Mark Mitchell
CodeSourcery, LLC
(916) 791-8304
mark@codesourcery.com



More information about the Gcc mailing list