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
[email protected]
https://lists.sourceforge.net/lists/listinfo/cil-users