[Support] computeHostNumPhysicalCores: use sched_getaffinity for all non-Android...
authorFangrui Song <i@maskray.me>
Sat, 13 Aug 2022 08:36:12 +0000 (01:36 -0700)
committerFangrui Song <i@maskray.me>
Sat, 13 Aug 2022 08:36:13 +0000 (01:36 -0700)
commite9b213131ae9c57f4f151d3206916676135b31b0
tree21bd3df59d81afc1e321c3c82acf967be9e99c49
parent57d0e9bf9659c36390b087e56bf1bc25ce61703d
[Support] computeHostNumPhysicalCores: use sched_getaffinity for all non-Android Linux with no custom implementation

Make the sched_getaffinity based implementation available to all architectures
(except s390x/x86 which have a custom implementation). The `CPU_ALLOC(2048)`
code supports all `CONFIG_NR_CPUS` values in Linux kernel `arch/*/configs/`.

The function is mainly used by in-process ThinLTO to decide the default number
of threads. Returning -1 will use just one thread.

Android is excluded because of the higher API level requirement:
`sched_getaffinity; # introduced-arm=12 introduced-arm64=21 introduced-x86=12 introduced-x86_64=21`
llvm/lib/Support/Host.cpp