problem inserting new function to cgraph

Chassin chassin@ceis.cujae.edu.cu
Wed Jan 30 17:07:00 GMT 2013


Hi Martin

/> It seems to me however that PLUGIN_ALL_IPA_PASSES_END runs prior to
> trnsformation phase of IPA passes (the name is rather unclear in this
> regard)...//
/
If i am not wrong the PLUGIN_ALL_IPA_PASSES_START ( execution ) is hooked in the begging of
all_smole_ipa_passes , before ALL_SIMPLE_IPA_PASSES and the PLUGIN_ALL_IPA_PASSES_END is
just after ALL_LTO_SMOLLE_PASSES  , at this stage the process of gimplification is done  ( in all_lowering_passes ) and the last
is executed before all_smole_ipa_passes  ( do am i right ? ) ,
in the gcc internals documentation they saied
"The inter-procedural optimization is organized as a sequence of individual passes, which
operate on the callgraph and the varpool"
i managed  to output the gimple representation in ( PLUGIN_ALL_IPA_PASSES_END ) and the call graph representation too

f_3 ()
{
    # BLOCK 2
    # PRED: ENTRY (fallthru)
    gimple_call <__builtin_puts, NULL, &"Printing from F_3"[0]>
    gimple_return <NULL>
    # SUCC: EXIT

}

f_3/3(3) @0x7fc84e173000 (asm: f_3) availability:available analyzed 14 time, 12 benefit 6 size, 4 benefit needed reachable body externally_visible finalized
    called by:
    calls: __builtin_puts/4 (1.00 per call)
    References:
    Refering this function:

i am confused now !!! i did't think before about what you pointed ( i guess my understanding of the GCC pipe line is wrong )  but its really logic what you pointed
sense the cgraph creation is done in the call cgraph_finalize_function .

> On a related note, I see there are no
> PLUGIN_ALL_LATE_IPA_PASSES_{START,END} events, even though they might
> be quite useful.

the available events in plugin.def  are the remarkable ones but you can hook to any stage in the compilation process by linking the plugin
to  PLUGIN_PASS_MANAGER_SETUP ,GCC plugin capability provide a flexible mechanism to set any additional pass in any location
i encourage you to take a look at the plugin section in the gcc internal .

i will try to use cgraph_function_versioning for now , thanks for your feed back
   

-- 
Chaddy Huussin Vazquez , Chassin@ceis.cujae.edu.cu

Superior Polytechnic Institute 'Jose Antonio Echeverr?a'
Informatics Engineering Faculty






48 Aniversario del Instituto Superior Politecnico Jose Antonio Echeverria, Cujae
Una obra de la Revolucion Cubana | 2 de diciembre de 1964 | http://cujae.edu.cu



Consulte la enciclopedia colaborativa cubana. http://www.ecured.cu



More information about the Gcc mailing list