TiarkRompf / virtualization-lms-core

A Framework for Runtime Code Generation and Compiled DSLs
http://scala-lms.github.com
BSD 3-Clause "New" or "Revised" License
324 stars 91 forks source link

Code Fusion for Collections #53

Closed mdashti closed 11 years ago

mdashti commented 11 years ago

As you know, a common optimization for operations on collections (specially Maps and Lists) is map-fold fusion (http://en.wikipedia.org/wiki/Map_%28higher-order_function%29#Optimizations) (and several other similar optimizations). Currently, LMS has implemented Loop fusion, but it should be implemented for Collections as well. Using Loop fusion as a building block for creating Collection fusion is also a good idea.

mdashti commented 11 years ago

Generators solve this issue. For more information, have a look at 217f233ae6e221f13155aa5cb15ebe79d9bf0dd7.