On Thu, Jan 10, 2019 at 3:00 PM Carter Cheng <carterch...@gmail.com> wrote: > > Hello, > > I am trying to assess an idea and whether it is possible to implement a > certain idea as a gcc plugin. I look over some of the information on the > web and the gcc internals documentation but I cannot still figure out some > basic things concerning manipulating GIMPLE in a plugin. > > 1) How does one add and safely remove basic blocks in GIMPLE if one is > trying to transform a function? > > 2) How does one label a basic block with a new label (for conditional > branches)? > > 3) How does one do the same for functions (like in situations when one is > doing interprocedural analysis and function cloning)? > > I apologize if this is in a tutorial somewhere but I could not find it.
Your questions are a bit broad and thus hard to answer in a short e-mail. I suggest you look at tree-call-cdce.c which creates new control-flow on GIMPLE. For more specific questions please shortly elaborate on what you are intending to do IL-wise. Richard. > Regards, > > Carter.