aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/MC/MCObjectStreamer.cpp
diff options
context:
space:
mode:
authorFangrui Song <i@maskray.me>2024-06-27 19:44:37 -0700
committerFangrui Song <i@maskray.me>2024-06-27 19:44:37 -0700
commite48c4011ca80385573f1b92793c75dc98abb228f (patch)
tree8849ffba1ef2a7082653c0552c0582eb619a7c84 /llvm/lib/MC/MCObjectStreamer.cpp
parent874b880fce8522b06c6cf73a76612a844e2eaf1b (diff)
downloadllvm-e48c4011ca80385573f1b92793c75dc98abb228f.zip
llvm-e48c4011ca80385573f1b92793c75dc98abb228f.tar.gz
llvm-e48c4011ca80385573f1b92793c75dc98abb228f.tar.bz2
[MC] Cache current fragment in MCStreamer
This eliminates indirection through `getCurrentSectionOnly()->curFragList()->Tail`.
Diffstat (limited to 'llvm/lib/MC/MCObjectStreamer.cpp')
-rw-r--r--llvm/lib/MC/MCObjectStreamer.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/llvm/lib/MC/MCObjectStreamer.cpp b/llvm/lib/MC/MCObjectStreamer.cpp
index 2357203..99ac7f4 100644
--- a/llvm/lib/MC/MCObjectStreamer.cpp
+++ b/llvm/lib/MC/MCObjectStreamer.cpp
@@ -143,7 +143,8 @@ void MCObjectStreamer::emitFrames(MCAsmBackend *MAB) {
}
MCFragment *MCObjectStreamer::getCurrentFragment() const {
- return getCurrentSectionOnly()->curFragList()->Tail;
+ assert(CurFrag->getParent() == getCurrentSection().first);
+ return CurFrag;
}
static bool canReuseDataFragment(const MCDataFragment &F,
@@ -307,6 +308,7 @@ bool MCObjectStreamer::changeSectionImpl(MCSection *Section,
{Subsection, MCSection::FragList{F, F}});
}
Section->CurFragList = &Subsections[I].second;
+ CurFrag = Section->CurFragList->Tail;
return getAssembler().registerSection(*Section);
}