summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Support/Host.cpp
Commit message (Collapse)AuthorAgeFilesLines
* [SystemZ] Add z13 vector facility and MC supportUlrich Weigand2015-05-051-0/+24
| | | | | | | | | | | | | | | | | | | | | This patch adds support for the z13 processor type and its vector facility, and adds MC support for all new instructions provided by that facilily. Apart from defining the new instructions, the main changes are: - Adding VR128, VR64 and VR32 register classes. - Making FP64 a subclass of VR64 and FP32 a subclass of VR32. - Adding a D(V,B) addressing mode for scatter/gather operations - Adding 1-, 2-, and 3-bit immediate operands for some 4-bit fields. Until now all immediate operands have been the same width as the underlying field (hence the assert->return change in decode[SU]ImmOperand). In addition, sys::getHostCPUName is extended to detect running natively on a z13 machine. Based on a patch by Richard Sandiford. llvm-svn: 236520
* [X86] Stop changing result of getHostCPUName based on whether the processor ↵Craig Topper2015-03-311-14/+5
| | | | | | supports AVX. getHostCPUFeatures should be used instead to determine whether to support AVX. llvm-svn: 233674
* [X86] Be more robust against unknown Intel family 6 models. Use feature ↵Craig Topper2015-03-311-10/+43
| | | | | | flags to guess what it might be. llvm-svn: 233671
* [X86] In getHostCPUFeatures, disable xop, f16c, fma, and fma4 if OS does not ↵Craig Topper2015-03-301-4/+4
| | | | | | support saving ymm state. llvm-svn: 233518
* [X86] Use the more specific CPU names like 'nehalem', 'westmere', 'haswell', ↵Craig Topper2015-03-301-12/+9
| | | | | | etc. Split Nehalem and Westmere CPUs. llvm-svn: 233516
* [X86] Move family 6 model 21 to 'pentium-m'. Near as I can tell this is a ↵Craig Topper2015-03-301-0/+2
| | | | | | Dothan based SOC. llvm-svn: 233515
* [X86] Family 6 model 29 is a Penryn based processor not a Nehalem based ↵Craig Topper2015-03-301-2/+2
| | | | | | processor. llvm-svn: 233514
* Fix a variable name in MSVC specific part of rr233487.Craig Topper2015-03-291-2/+2
| | | | llvm-svn: 233488
* [X86] Implement getHostCPUFeatures for X86.Craig Topper2015-03-291-8/+93
| | | | | | Plan to use this as part of CPU 'native' support so we can stop picking a different CPU name if CPU doesn't support AVX or AVX2. llvm-svn: 233487
* Fix typo 'AVX too' instead of 'AVX2'Craig Topper2015-03-231-2/+2
| | | | llvm-svn: 232929
* [X86] Add one stepping of Broadwell to the CPU name autodetection for ↵Craig Topper2015-03-231-0/+6
| | | | | | march=native. llvm-svn: 232927
* We require MSVC 1800 as our minimum, so these checks can safely go away; NFC.Aaron Ballman2015-02-161-12/+7
| | | | llvm-svn: 229415
* Remove a debugging assert.Rafael Espindola2014-12-171-1/+0
| | | | | | Sorry for the noise, I have no idea how it survived to the final version. llvm-svn: 224414
* Fix the windows build.Rafael Espindola2014-12-171-0/+2
| | | | llvm-svn: 224412
* Refactor and simplify the code reading /proc/cpuinfo. NFC.Rafael Espindola2014-12-171-47/+32
| | | | llvm-svn: 224410
* Remove StringMap::GetOrCreateValue in favor of StringMap::insertDavid Blaikie2014-11-191-2/+2
| | | | | | | | | | | | | | Having two ways to do this doesn't seem terribly helpful and consistently using the insert version (which we already has) seems like it'll make the code easier to understand to anyone working with standard data structures. (I also updated many references to the Entry's key and value to use first() and second instead of getKey{Data,Length,} and get/setValue - for similar consistency) Also removes the GetOrCreateValue functions so there's less surface area to StringMap to fix/improve/change/accommodate move semantics, etc. llvm-svn: 222319
* Add support for ppc64/power8 as a hostWill Schmidt2014-06-261-0/+2
| | | | llvm-svn: 211781
* Fix .cpp files claiming to be header filesHans Wennborg2014-06-201-1/+1
| | | | llvm-svn: 211334
* Fix typosAlp Toker2014-05-311-1/+1
| | | | llvm-svn: 209982
* Fixup sys::getHostCPUFeatures crypto names so it doesn't clash with kernel ↵Bradley Smith2014-05-231-9/+9
| | | | | | headers llvm-svn: 209506
* Extend sys::getHostCPUFeatures to work on AArch64 platformsBradley Smith2014-05-221-1/+37
| | | | llvm-svn: 209420
* Select bdver2 instead of bdver1 if TBM support is present on models < 0x10.Kaelyn Takata2014-05-051-1/+2
| | | | | | | | | | Tested that the right -target-cpu is set in the clang -cc1 command line when running "clang -march=native -E -v - </dev/null" on both an FX-8150 and an FX-8350. Both are family 15h; the FX-8150 (Bulldozer processor) reports a model number of 1, and the FX-8350 (Piledriver processor) reports a model number of 2. llvm-svn: 207973
* Add a description for AMD's bdver4 (aka Excavator).Benjamin Kramer2014-05-021-0/+2
| | | | | | This is just bdver3 + AVX2 + BMI2. llvm-svn: 207847
* [Modules] Followup to r206822 to add a DEBUG_TYPE which is used on ARMChandler Carruth2014-04-211-0/+2
| | | | | | and PPC, but not x86. llvm-svn: 206830
* Add support for krait cpu in llvm::sys::getHostCPUName()Kai Nacke2013-12-201-0/+11
| | | | | | | Recently, support for krait cpu was added. This commit extends getHostCPUName() to return krait as cpu for the APQ8064 (a Krait 300). llvm-svn: 197792
* Fix Typo.Rafael Espindola2013-12-121-1/+1
| | | | llvm-svn: 197168
* Convert the other getHostByName implementations to StringRef.Rafael Espindola2013-12-121-5/+5
| | | | llvm-svn: 197166
* Return a StringRef from getHostCPUName.Rafael Espindola2013-12-121-1/+1
| | | | llvm-svn: 197158
* Make helper function static.Benjamin Kramer2013-11-251-2/+3
| | | | llvm-svn: 195650
* X86: enable AVX2 under Haswell native compilationTim Northover2013-11-251-6/+90
| | | | | | Patch by Adam Strzelecki llvm-svn: 195632
* X86: Add a description for AMD bdver3 aka Steamroller.Benjamin Kramer2013-11-041-3/+5
| | | | | | This is just bdver2 + FSGSBase. llvm-svn: 193984
* [SystemZ] Automatically detect zEC12 and z196 hostsRichard Sandiford2013-10-311-0/+42
| | | | | | | | | | As on other hosts, the CPU identification instruction is priveleged, so we need to look through /proc/cpuinfo. I copied the PowerPC way of handling "generic". Several tests were implicitly assuming z10 and so failed on z196. llvm-svn: 193742
* Adds support for Atom Silvermont (SLM) - -march=slmPreston Gurd2013-09-131-1/+2
| | | | | | | | | | | Implements Instruction scheduler latencies for Silvermont, using latencies from the Intel Silvermont Optimization Guide. Auto detects SLM. Turns on post RA scheduler when generating code for SLM. llvm-svn: 190717
* X86: Add a description of the Intel Atom Silvermont CPU.Benjamin Kramer2013-08-301-0/+5
| | | | | | Currently this is just the atom model with SSE4.2 enabled. llvm-svn: 189669
* Actually, use GNU inline asm for cpuid with clangReid Kleckner2013-08-161-10/+10
| | | | | | | Clang doesn't support the MSVC __cpuid intrinsic yet, and fixing that is blocked on some fairly complicated issues. llvm-svn: 188584
* Use the MSVC __cpuid intrinsic instead of inline asmReid Kleckner2013-08-141-31/+14
| | | | | | This works around PR16830 in LLVM when self-hosting clang on Windows. llvm-svn: 188397
* Some Intel Penryn CPUs come with SSE4 disabled. Detect them as core 2.Benjamin Kramer2013-07-291-1/+3
| | | | | | PR16721. llvm-svn: 187350
* Ensure sys::getProcessTriple always uses a normalized triple. Patch byDuncan Sands2013-07-171-1/+1
| | | | | | Thomas B. Jablin, from PR16636. llvm-svn: 186501
* Make host ARM CPU feature detection independent of the vendorTobias Grosser2013-06-111-30/+20
| | | | | | | | | | | | For ARM on linux we use /proc/cpuinfo to detect the host CPU's features. Linux derives these values without ever looking at the vendor of the specific CPU implementation. Hence, it adds little value, if we parse the output of /proc/cpuinfo only for certain vendors. This patch enables us to derive the correct feature flags e.g. for Qualcomm CPUs. llvm-svn: 183790
* Allow host triple to be correctly overridden in CMake buildsTim Northover2013-05-041-1/+1
| | | | | | | | | | | The intended semantics mirror autoconf, where the user is able to specify a host triple, but if it's left to the build system then "config.guess" is invoked for the default. This also renames the LLVM_HOSTTRIPLE define to LLVM_HOST_TRIPLE to fit in with the style of the surrounding defines. llvm-svn: 181112
* X86: Add target description for btver2; make autodetection logic aware of AVX.Benjamin Kramer2013-05-031-3/+8
| | | | llvm-svn: 181005
* Testing for _XCR_XFEATURE_ENABLED_MASK instead of a specific MSVC version ↵Aaron Ballman2013-04-231-1/+1
| | | | | | because some MSVC 2010 SP1 installations do not have the _xgetbv intrinsic. Patch thanks to Serge Pavlov! llvm-svn: 180125
* Convert windows line endings to linux/unix line endings.Craig Topper2013-04-221-13/+13
| | | | llvm-svn: 179995
* Ensuring that both bits are set, and not just a combination of one or the other.Aaron Ballman2013-04-031-1/+2
| | | | llvm-svn: 178674
* Testing for Visual Studio 2010 SP1 or greater before calling the _xgetbv ↵Aaron Ballman2013-04-031-2/+2
| | | | | | intrinsic. This also fixes a minor code formatting issue. llvm-svn: 178666
* Second pass at addressing PR15351 by explicitly checking for AVX supportAaron Ballman2013-04-031-2/+25
| | | | | | when getting the host processor information. It emits a .byte sequence on GNUC compilers to work around lack of xgetbv support with older assemblers, and resolves a comment typo found in the previous patch. llvm-svn: 178636
* Rolling back the AVX support patch due to breaking a gcc 4.6 build bot that ↵Aaron Ballman2013-04-031-23/+2
| | | | | | doesn't understand the xgetbv instruction for some reason. Will revisit when time permits. llvm-svn: 178614
* Attempting to fix the build on older GCC versions.Aaron Ballman2013-04-031-1/+2
| | | | llvm-svn: 178604
* This patch addresses PR15351 by explicitly checking for AVX supportAaron Ballman2013-04-031-2/+22
| | | | | | when getting the host processor information. llvm-svn: 178598
* Add support for autodetection of ADM bdver2.Roman Divacky2013-02-261-1/+4
| | | | llvm-svn: 176130
OpenPOWER on IntegriCloud