This is the mail archive of the mailing list for the GCC project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Updating the CFG after function modifcation

> I have an IPA pass (implemented as a plugin) which executes after all IPA
> passes.  My pass transforms functions by adding code and also modifying the
> function prototypes.  I have had this work on a per-function basis, via a
> GIMPLE_PASS, which calls update_ssa verify_ssa and cleanup_cfg after each
> function is processed.  However, I have recently moved my plugin to execute
> after all IPA passes, so I can iterate over the cfg of the program.

Callgraph, not CFG, of the program.

> The e->call_stmt that the null basic block references is from a statement I
> have removed via gsi_remove during my transformation pass.  I need to clean
> up the cfg somehow, after I remove the statement.  My gimple pass, with
> this same functionality worked fine.  Something tells me that my plugin
> should be in a different position.  I also tried calling cleanup_tree_cfg()
> after my transformation pass, still no luck

Try invoking rebuild_cgraph_edges.

Eric Botcazou

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]