Michael Kruse via llvm-dev
2018-Nov-09 22:31 UTC
[llvm-dev] RFC: System (cache, etc.) model for LLVM
Am Do., 8. Nov. 2018 um 10:36 Uhr schrieb David Greene <dag at cray.com>:> What about load prefetching vs. non-temporal stores on X86? There's a > limited number of write-combining buffers but prefetches "just" use the > regular load paths. Yes, there's a limited number of load buffers but I > would expect the the number of independent prefetch streams one would > want could differ substantially from the number of independent > non-tempooral store streams one would want and you wouldn't want the > minimum to apply to the other. > > I like the idea of abstracting the hardware resource for the compiler's > needs, though I think we will in general want multiple such things. > Maybe one for load and one for store to start? For more harware-y > things like llvm-mca more detail may be desired.Your RFC already has getNumStoreBuffers, getNumLoadBuffers and getNumLoadStoreBuffers, no? As far I understand, write-combining only applies to getNumStoreBuffers(). Prefetch streams would limit getNumLoadBuffers. Michael
David Greene via llvm-dev
2018-Nov-13 16:03 UTC
[llvm-dev] RFC: System (cache, etc.) model for LLVM
Michael Kruse via llvm-dev <llvm-dev at lists.llvm.org> writes:>> I like the idea of abstracting the hardware resource for the compiler's >> needs, though I think we will in general want multiple such things. >> Maybe one for load and one for store to start? For more harware-y >> things like llvm-mca more detail may be desired. > > Your RFC already has getNumStoreBuffers, getNumLoadBuffers and > getNumLoadStoreBuffers, no? As far I understand, write-combining only > applies to getNumStoreBuffers(). Prefetch streams would limit > getNumLoadBuffers.Yeah, that could work. I added the load buffer stuff to future-proof things for architectures that might have actual separate buffers for NT loads but I'm not aware of any that do so I'm fine repurposing it for something else. -David
Michael Kruse via llvm-dev
2018-Nov-21 00:11 UTC
[llvm-dev] RFC: System (cache, etc.) model for LLVM
After the discussion, are you going to upload a patch review? Michael Am Di., 13. Nov. 2018 um 10:03 Uhr schrieb David Greene <dag at cray.com>:> > Michael Kruse via llvm-dev <llvm-dev at lists.llvm.org> writes: > > >> I like the idea of abstracting the hardware resource for the compiler's > >> needs, though I think we will in general want multiple such things. > >> Maybe one for load and one for store to start? For more harware-y > >> things like llvm-mca more detail may be desired. > > > > Your RFC already has getNumStoreBuffers, getNumLoadBuffers and > > getNumLoadStoreBuffers, no? As far I understand, write-combining only > > applies to getNumStoreBuffers(). Prefetch streams would limit > > getNumLoadBuffers. > > Yeah, that could work. I added the load buffer stuff to future-proof > things for architectures that might have actual separate buffers for NT > loads but I'm not aware of any that do so I'm fine repurposing it for > something else. > > -David