folly::CpuId::CpuId

Construct a CpuId, issuing the CPUID instruction and caching the results.

Synopsis

Declared in <folly/CpuId.h>

CpuId();

Description

Always inline in order for this to be usable from a ifunc. In shared library mode, a ifunc runs at relocation time, while the PLT hasn't been fully populated yet; thus, ifuncs cannot use symbols with potentially external linkage. (This issue is less likely in opt mode since inlining happens more likely, and it doesn't happen for statically linked binaries which don't depend on the PLT)