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. Regards, Carter.