http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50994

             Bug #: 50994
           Summary: wanted: interface for querying cache size
    Classification: Unclassified
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: enhancement
          Priority: P3
         Component: c
        AssignedTo: unassig...@gcc.gnu.org
        ReportedBy: b...@gcc.gnu.org


GCC is missing a way to query cache line size. This could be provided as a
compile-time constant, in the form of predefined macros in a form similar to
the existing sizeof macros via something like __SIZEOF_L1_CACHE_LINE__. Or, it
could be via a __builtin, like __builtin_l1_cache_line_size(). 

Results would be consistent with existing --param flags, such that

--param l1-cache-line-size=64

meant that

__builtin_l1_cache_line_size() == 64.

I notice that intel provides the following interface, via:
http://software.intel.com/sites/products/documentation/studio/composer/en-us/2011Update/compiler_c/index.htm


unsigned int __cacheSize(unsigned int cacheLevel)

"__cacheSize(n) returns the size in kilobytes of the cache at level n. 1
represents the first-level cache. 0 is returned for a non-existent cache level.
For example, an application may query the cache size and use it to select block
sizes in algorithms that operate on matrices."

ding ding ding!!

Reply via email to