LLVM backend

A lot has happened in the meantime. Some things I’ve been working on:

  • An llvm code generation backend
  • Optimizing broadcasting (Fortran’s SPREAD) through loop-invariant code motion where possible
  • Finding optimal tiling parameters
  • Optimal strength reduction for index calculation
  • Ways to further eliminate array temporaries
  • Explicit vectorization for the C backend, for SSE2 and AVX (xmmintrin.h and smmintrin.h)
  • A lazy numpy evaluation demo that uses the LLVM backend (https://github.com/markflorisson88/minivect/blob/master/demo/lazy_numpy.py#L141)
  • Some other stuff like unit tests using XPath, generating Graphviz files, etc
Advertisements

About markflorisson

Blog for the Cython gsoc 2011
This entry was posted in Uncategorized. Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s