forked from OSchip/llvm-project
Remove some uneeded pseudos in the presence of the naked function attribute.
llvm-svn: 181072
This commit is contained in:
parent
5b637078e1
commit
0f2b10eb0d
|
@ -249,12 +249,18 @@ void MipsAsmPrinter::EmitFunctionEntryLabel() {
|
|||
void MipsAsmPrinter::EmitFunctionBodyStart() {
|
||||
MCInstLowering.Initialize(Mang, &MF->getContext());
|
||||
|
||||
emitFrameDirective();
|
||||
bool IsNakedFunction =
|
||||
MF->getFunction()->
|
||||
getAttributes().hasAttribute(AttributeSet::FunctionIndex,
|
||||
Attribute::Naked);
|
||||
if (!IsNakedFunction)
|
||||
emitFrameDirective();
|
||||
|
||||
if (OutStreamer.hasRawTextSupport()) {
|
||||
SmallString<128> Str;
|
||||
raw_svector_ostream OS(Str);
|
||||
printSavedRegsBitmask(OS);
|
||||
if (!IsNakedFunction)
|
||||
printSavedRegsBitmask(OS);
|
||||
OutStreamer.EmitRawText(OS.str());
|
||||
if (!Subtarget->inMips16Mode()) {
|
||||
OutStreamer.EmitRawText(StringRef("\t.set\tnoreorder"));
|
||||
|
|
|
@ -0,0 +1,29 @@
|
|||
; RUN: llc -march=mipsel < %s | FileCheck %s
|
||||
|
||||
|
||||
define void @tnaked() #0 {
|
||||
entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; CHECK: .ent tnaked
|
||||
; CHECK: tnaked:
|
||||
; CHECK-NOT: .frame {{.*}}
|
||||
; CHECK-NOT: .mask {{.*}}
|
||||
; CHECK-NOT: .fmask {{.*}}
|
||||
; CHECK-NOT: addiu $sp, $sp, -8
|
||||
|
||||
define void @tnonaked() #1 {
|
||||
entry:
|
||||
ret void
|
||||
}
|
||||
|
||||
; CHECK: .ent tnonaked
|
||||
; CHECK: tnonaked:
|
||||
; CHECK: .frame $fp,8,$ra
|
||||
; CHECK: .mask 0x40000000,-4
|
||||
; CHECK: .fmask 0x00000000,0
|
||||
; CHECK: addiu $sp, $sp, -8
|
||||
|
||||
attributes #0 = { naked noinline nounwind "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf"="true" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "unsafe-fp-math"="false" "use-soft-float"="false" }
|
||||
attributes #1 = { nounwind "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf"="true" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "unsafe-fp-math"="false" "use-soft-float"="false" }
|
Loading…
Reference in New Issue