Hello to all. I would like to express two personal wishes for 2.0, motivated by 
my personal experience with CIL and the recent support to plugins. I think that 
plugins should lead to a situation where:

1- complex CIL transformation passes are "unentangled" as compositions of basic 
("primitive") ones;
2- that compositions of primitive transformations are expressed as plugin 
dependences, i.e., declaratively, leaving the task of "orchestrating" the 
composition to CIL, possibly in a dynamic fashion.

My wish comes out of a practical need. In my project I must eliminate just one 
of the many code transformations done by the simplify pass. Since you cannot 
separate (not even identify) the unwanted transformation inside simplify, you 
need to write a new pass. But this is not enough, because we want to replace 
simplify with ourOwnSimplify everywhere, but the passes that depend on 
simplify.ml invoke it directly simplify.ml. So there are only two alternatives: 
modify all the passes depending on simplify and patch their dependence (very 
ugly), or patch simplify.ml (still ugly but less). In both cases you need to 
rebuild CIL, which goes against the very idea of plugins, where you should just 
compile your extension and plug it in the architecture as dynamically as 
possible.

How far is CIL from this ideal? Would be happy to hear that we are already 
there.

Best,
Pietro
------------------------------------------------------------------------------
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register >
http://pubads.g.doubleclick.net/gampad/clk?id=60135031&iu=/4140/ostg.clktrk
_______________________________________________
CIL-users mailing list
CIL-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/cil-users

Reply via email to