[llvm] 2b201d8 - [Xtensa] Fix literal section emit for ConstantPool entries. (#200132)

via llvm-commits llvm-commits at lists.llvm.org
Wed Jun 10 01:52:24 PDT 2026


Author: Andrei Safronov
Date: 2026-06-10T11:52:18+03:00
New Revision: 2b201d89bab6d0f4f3c017ed3ab358500c1d8960

URL: https://github.com/llvm/llvm-project/commit/2b201d89bab6d0f4f3c017ed3ab358500c1d8960
DIFF: https://github.com/llvm/llvm-project/commit/2b201d89bab6d0f4f3c017ed3ab358500c1d8960.diff

LOG: [Xtensa] Fix literal section emit for ConstantPool entries. (#200132)

Fix literal section switching in XtensaTargetStreamer.
 https://github.com/llvm/llvm-project/issues/190204

Added: 
    llvm/test/CodeGen/Xtensa/literal.ll

Modified: 
    llvm/lib/Target/Xtensa/MCTargetDesc/XtensaTargetStreamer.cpp

Removed: 
    


################################################################################
diff  --git a/llvm/lib/Target/Xtensa/MCTargetDesc/XtensaTargetStreamer.cpp b/llvm/lib/Target/Xtensa/MCTargetDesc/XtensaTargetStreamer.cpp
index 0ea70cff4d404..98e1599eea7f0 100644
--- a/llvm/lib/Target/Xtensa/MCTargetDesc/XtensaTargetStreamer.cpp
+++ b/llvm/lib/Target/Xtensa/MCTargetDesc/XtensaTargetStreamer.cpp
@@ -112,6 +112,8 @@ void XtensaTargetELFStreamer::startLiteralSection(MCSection *BaseSection) {
       SectionName, ELF::SHT_PROGBITS, ELF::SHF_EXECINSTR | ELF::SHF_ALLOC);
 
   ConstSection->setAlignment(Align(4));
+  MCStreamer &OutStreamer = getStreamer();
+  OutStreamer.switchSection(ConstSection);
 }
 
 MCELFStreamer &XtensaTargetELFStreamer::getStreamer() {

diff  --git a/llvm/test/CodeGen/Xtensa/literal.ll b/llvm/test/CodeGen/Xtensa/literal.ll
new file mode 100755
index 0000000000000..d8d726031eaac
--- /dev/null
+++ b/llvm/test/CodeGen/Xtensa/literal.ll
@@ -0,0 +1,9 @@
+; RUN: llc -mtriple=xtensa -function-sections --mcpu=esp32 --filetype=obj < %s\
+; RUN: | llvm-objdump -r -s --triple=xtensa --mcpu=esp32 - | FileCheck %s
+
+; CHECK-LABEL: Contents of section .literal.func:
+; CHECK:       0000 88130000                             ....
+
+define i32 @func() {
+  ret i32 5000
+}


        


More information about the llvm-commits mailing list