[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