[PATCH] D33364: [mips] Support micromips attribute passed by front-end
Simon Atanasyan via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Mon May 22 05:47:53 PDT 2017
This revision was automatically updated to reflect the committed changes.
Closed by commit rL303545: [mips] Support micromips attribute passed by front-end (authored by atanasyan).
Changed prior to commit:
https://reviews.llvm.org/D33364?vs=99590&id=99747#toc
Repository:
rL LLVM
https://reviews.llvm.org/D33364
Files:
llvm/trunk/lib/Target/Mips/MipsTargetMachine.cpp
llvm/trunk/test/CodeGen/Mips/micromips-attr.ll
Index: llvm/trunk/test/CodeGen/Mips/micromips-attr.ll
===================================================================
--- llvm/trunk/test/CodeGen/Mips/micromips-attr.ll
+++ llvm/trunk/test/CodeGen/Mips/micromips-attr.ll
@@ -0,0 +1,39 @@
+; RUN: llc -march=mips -mcpu=mips32 --mattr=-micromips < %s | FileCheck %s
+
+define void @foo() #0 {
+entry:
+ ret void
+}
+; CHECK: .set micromips
+; CHECK-NEXT: .set nomips16
+; CHECK-NEXT: .ent foo
+; CHECK-NEXT: foo:
+
+define void @bar() #1 {
+entry:
+ ret void
+}
+; CHECK: .set nomicromips
+; CHECK-NEXT: .set nomips16
+; CHECK-NEXT: .ent bar
+; CHECK-NEXT: bar:
+
+attributes #0 = {
+ nounwind "micromips"
+ "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false"
+ "less-precise-fpmad"="false" "no-frame-pointer-elim"="false"
+ "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false"
+ "no-signed-zeros-fp-math"="false" "no-trapping-math"="false"
+ "stack-protector-buffer-size"="8" "unsafe-fp-math"="false"
+ "use-soft-float"="false"
+}
+
+attributes #1 = {
+ nounwind
+ "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false"
+ "less-precise-fpmad"="false" "no-frame-pointer-elim"="false"
+ "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false"
+ "no-signed-zeros-fp-math"="false" "no-trapping-math"="false"
+ "stack-protector-buffer-size"="8" "unsafe-fp-math"="false"
+ "use-soft-float"="false"
+}
Index: llvm/trunk/lib/Target/Mips/MipsTargetMachine.cpp
===================================================================
--- llvm/trunk/lib/Target/Mips/MipsTargetMachine.cpp
+++ llvm/trunk/lib/Target/Mips/MipsTargetMachine.cpp
@@ -154,6 +154,11 @@
bool hasNoMips16Attr =
!F.getFnAttribute("nomips16").hasAttribute(Attribute::None);
+ bool HasMicroMipsAttr =
+ !F.getFnAttribute("micromips").hasAttribute(Attribute::None);
+ bool HasNoMicroMipsAttr =
+ !F.getFnAttribute("nomicromips").hasAttribute(Attribute::None);
+
// FIXME: This is related to the code below to reset the target options,
// we need to know whether or not the soft float flag is set on the
// function, so we can enable it as a subtarget feature.
@@ -165,6 +170,10 @@
FS += FS.empty() ? "+mips16" : ",+mips16";
else if (hasNoMips16Attr)
FS += FS.empty() ? "-mips16" : ",-mips16";
+ if (HasMicroMipsAttr)
+ FS += FS.empty() ? "+micromips" : ",+micromips";
+ else if (HasNoMicroMipsAttr)
+ FS += FS.empty() ? "-micromips" : ",-micromips";
if (softFloat)
FS += FS.empty() ? "+soft-float" : ",+soft-float";
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D33364.99747.patch
Type: text/x-patch
Size: 2635 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20170522/3a4034cd/attachment-0001.bin>
More information about the cfe-commits
mailing list