<div dir="rtl"><div dir="ltr">Thanks! I was just looking into this.</div><div dir="ltr"><br></div><div dir="ltr">ArchExt.startswith("no") is nicer, if you like.<br></div><div dir="ltr"><br></div></div><div class="gmail_extra"><br><div class="gmail_quote"><div dir="ltr">2015-11-19 17:03 GMT+02:00 NAKAMURA Takumi via llvm-commits <span dir="ltr"><<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>></span>:</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: chapuni<br>
Date: Thu Nov 19 09:03:11 2015<br>
New Revision: 253566<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=253566&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project?rev=253566&view=rev</a><br>
Log:<br>
llvm/lib/Support/TargetParser.cpp: Rework llvm::ARM::getArchExtFeature() to avoid abuse of Twine in r253470.<br>
<br>
Modified:<br>
llvm/trunk/lib/Support/TargetParser.cpp<br>
<br>
Modified: llvm/trunk/lib/Support/TargetParser.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/TargetParser.cpp?rev=253566&r1=253565&r2=253566&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/TargetParser.cpp?rev=253566&r1=253565&r2=253566&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/Support/TargetParser.cpp (original)<br>
+++ llvm/trunk/lib/Support/TargetParser.cpp Thu Nov 19 09:03:11 2015<br>
@@ -87,7 +87,6 @@ static const struct {<br>
const char *NegFeature;<br>
<br>
StringRef getName() const { return StringRef(NameCStr, NameLength); }<br>
- StringRef getNegName() const { return (Twine("no") + getName()).str(); }<br>
} ARCHExtNames[] = {<br>
#define ARM_ARCH_EXT_NAME(NAME, ID, FEATURE, NEGFEATURE) \<br>
{ NAME, sizeof(NAME) - 1, ID, FEATURE, NEGFEATURE },<br>
@@ -332,11 +331,16 @@ StringRef llvm::ARM::getArchExtName(unsi<br>
}<br>
<br>
const char *llvm::ARM::getArchExtFeature(StringRef ArchExt) {<br>
+ if (ArchExt.substr(0, 2) == "no") {<br>
+ StringRef ArchExtBase(ArchExt.substr(2));<br>
+ for (const auto AE : ARCHExtNames) {<br>
+ if (AE.NegFeature && ArchExtBase == AE.getName())<br>
+ return AE.NegFeature;<br>
+ }<br>
+ }<br>
for (const auto AE : ARCHExtNames) {<br>
if (AE.Feature && ArchExt == AE.getName())<br>
return AE.Feature;<br>
- else if (AE.NegFeature && ArchExt == AE.getNegName())<br>
- return AE.NegFeature;<br>
}<br>
<br>
return nullptr;<br>
<br>
<br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br>
</blockquote></div><br></div>