diff options
author | Fangrui Song <i@maskray.me> | 2024-06-27 19:44:37 -0700 |
---|---|---|
committer | Fangrui Song <i@maskray.me> | 2024-06-27 19:44:37 -0700 |
commit | e48c4011ca80385573f1b92793c75dc98abb228f (patch) | |
tree | 8849ffba1ef2a7082653c0552c0582eb619a7c84 /llvm/lib/MC/MCObjectStreamer.cpp | |
parent | 874b880fce8522b06c6cf73a76612a844e2eaf1b (diff) | |
download | llvm-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.cpp | 4 |
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); } |