[LLVMdev] Request for Help: Teach ARM target to auto-detect cpu / subtarget features

Chris Lattner clattner at apple.com
Fri May 11 09:25:58 PDT 2012


On May 11, 2012, at 12:25 AM, James Molloy wrote:

> On 11/05/12 04:56, 陳韋任 wrote:
>>> I've just filed PR12794: Add ARM cpu / subtarget features auto-detection. And I would very much appreciate the community's help to implement this.
>>> 
>>> What motivated this? Well this:
>>> http://www.phoronix.com/scan.php?page=news_item&px=MTA5OTM
>>> 
>>> I believe one of the reason the benchmark numbers are totally bogus is that the compilation are done on ARM hosts. Given the benchmarks are apparently compiled without -mcpu=cortex-a9, I suspect LLVM ended up generating code for "generic" ARMv4 cpu. This article makes me sick in my stomach.
>>   I skip through MCTargetDesc/ARMAsmBackend.cpp, it seems llvm::createARMAsmBackend
>> only pickup different ARM ISA for Darwin. As for Linux, I guess we need to tweak
>> ELFARMAsmBackend? Do we need to modify Clang as well?
>> 
>> Regards,
>> chenwj
>> 
> The backend sounds like the wrong place to implement this feature.
> 
> I'd have thought the Clang driver would be the ideal place?

The right place to implement this is in lib/Support/Host.cpp.  X86 has an implementation of sys::getHostCPUName(), but everything else just uses the:

std::string sys::getHostCPUName() {
  return "generic";
}

implementation.

-Chris



More information about the llvm-dev mailing list