Changes between Version 37 and Version 38 of NewPlugins
- Timestamp:
- 01/24/11 13:50:24 (2 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
NewPlugins
v37 v38 119 119 TODO: fixme 120 120 121 ==== The Hoopl story - analysis and transformation composition====121 ==== Composing a hoopl analysis ==== 122 122 123 123 [http://hackage.haskell.org/package/hoopl Hoopl] is the main workhorse behind the new GHC code generator - it is a sophisticated, higher order and highly polymorphic library for writing optimization and dataflow passes over imperative code graphs. It is based on the work of Lerner, Grove and Chambers [3], and one of the nice properties of the design is that it makes it easy to compose independent dataflow analysis to create a super-analysis that is more powerful than either analysis on its own, without the tedium of having to manually write such a super-analysis. 124 124 125 The question here is: how can users specify in what ways their plugin pass composes with other passes? This is one of the very tantalizing things about hoopl: independent writers of optimization passes can piggyback off each other and combine separate passes to create a much more powerful optimization pass. Part of the question for the API is - how should/could plugin writers compose their own transformation with the transformations offered by another plugin, or by GHC itself?125 API question here: how should we compose analysis that plugins provide with ones that GHC provides? 126 126 127 127 TODO: fixme. check and explain current Hoopl combinators for deep/shallow passes (deepFwdRw and deepBwdRw,) as well as composing them (thenFwdRw and thenBwdRw) and how they should fit into this part of the API
