summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/Mips/MipsLegalizerInfo.cpp
diff options
context:
space:
mode:
authorSjoerd Meijer <sjoerd.meijer@arm.com>2019-06-05 13:12:01 +0000
committerSjoerd Meijer <sjoerd.meijer@arm.com>2019-06-05 13:12:01 +0000
commitf95e6c06534298a522088df30a6d9a4145834049 (patch)
tree6444133777682ef9ce96c5e15fb9b2f751420484 /llvm/lib/Target/Mips/MipsLegalizerInfo.cpp
parenta1bb4fb79d866326fae775a1423f5ae8baa36a17 (diff)
downloadbcm5719-llvm-f95e6c06534298a522088df30a6d9a4145834049.tar.gz
bcm5719-llvm-f95e6c06534298a522088df30a6d9a4145834049.zip
[ARM] Allow "-march=foo+fp" to vary with foo
Now, when clang processes an argument of the form "-march=foo+x+y+z", then instead of calling getArchExtFeature() for each of the extension names "x", "y", "z" and appending the returned string to its list of low-level subtarget features, it will call appendArchExtFeatures() which does the appending itself. The difference is that appendArchExtFeatures can add _more_ than one low-level feature name to the output feature list if it has to, and also, it gets told some information about what base architecture and CPU the extension is going to go with, which means that "+fp" can now mean something different for different CPUs. Namely, "+fp" now selects whatever the _default_ FPU is for the selected CPU and/or architecture, as defined in the ARM_ARCH or ARM_CPU_NAME macros in ARMTargetParser.def. On the clang side, I adjust DecodeARMFeatures to call the new appendArchExtFeatures function in place of getArchExtFeature. This means DecodeARMFeatures needs to be passed a CPU name and an ArchKind, which meant changing its call sites to make those available, and also sawing getLLVMArchSuffixForARM in half so that you can get an ArchKind enum value out of it instead of a string. Also, I add support here for the extension name "+fp.dp", which will automatically look through the FPU list for something that looks just like the default FPU except for also supporting double precision. Differential Revision: https://reviews.llvm.org/D60697 llvm-svn: 362601
Diffstat (limited to 'llvm/lib/Target/Mips/MipsLegalizerInfo.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud