[clang] [RISCV][FMV] Support target_clones (PR #85786)
Craig Topper via cfe-commits
cfe-commits at lists.llvm.org
Wed Sep 11 12:01:20 PDT 2024
================
@@ -63,9 +63,53 @@ class RISCVABIInfo : public DefaultABIInfo {
CharUnits Field2Off) const;
ABIArgInfo coerceVLSVector(QualType Ty) const;
+
+ using ABIInfo::appendAttributeMangling;
+ void appendAttributeMangling(TargetClonesAttr *Attr, unsigned Index,
+ raw_ostream &Out) const override;
+ void appendAttributeMangling(StringRef AttrStr,
+ raw_ostream &Out) const override;
};
} // end anonymous namespace
+void RISCVABIInfo::appendAttributeMangling(TargetClonesAttr *Attr,
+ unsigned Index,
+ raw_ostream &Out) const {
+ appendAttributeMangling(Attr->getFeatureStr(Index), Out);
+}
+
+void RISCVABIInfo::appendAttributeMangling(StringRef AttrStr,
+ raw_ostream &Out) const {
+ if (AttrStr == "default") {
+ Out << ".default";
+ return;
+ }
+
+ Out << '.';
+
+ SmallVector<StringRef, 8> Attrs;
+ AttrStr.split(Attrs, ";");
+
+ // Only consider the arch string.
+ StringRef ArchStr;
+ for (auto &Attr : Attrs) {
+ if (Attr.starts_with("arch="))
+ ArchStr = Attr;
+ }
+
+ // Extract features string.
+ SmallVector<StringRef, 8> Features;
+ ArchStr.consume_front("arch=");
+ ArchStr.split(Features, ",");
----------------
topperc wrote:
`","` -> `','`
https://github.com/llvm/llvm-project/pull/85786
More information about the cfe-commits
mailing list