[LLVMdev] Memory Subsystem Representation

David A. Greene dag at cray.com
Tue May 3 09:27:11 PDT 2011


Eli Friedman <eli.friedman at gmail.com> writes:

> On Tue, May 3, 2011 at 8:40 AM, David Greene <dag at cray.com> wrote:
> 1. What is the expected use?  Are we talking about loop optimizations here?

Initially, anything that is interested in cache configuration would find
this useful.  This might include:

- cache blocking
- prefetching
- reuse analysis

I think mostly it would be loop-level stuff (that's where the time is
spent, after all) but I also know of various papers that do IPO
cache-related analysis and transformation.

> 2. IR-level passes don't have access to a TargetMachine; is that okay?

I thought about that too.  I don't know any better place to put it
because this is very (sub)target-specific stuff.  I think in the future
we may want to consider a generic interface for IR-level passes to query
some target-specific parameters that are generally useful.  Cache
structure would be one.

Our (Cray) current uses are all in Machine-level passes but that's
because most of our analysis and transformation is done outside LLVM.

Mostly I'm concerned about getting the abstraction right.  Or at least
reasonable.  :)

                              -Dave



More information about the llvm-dev mailing list