From dc8446330f54aefff0f35784cd3346ec78d7d335 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Fri, 9 Apr 2010 18:27:03 +0000 Subject: [PATCH] "On SPU, variables in the .bss section that are allocated with the .lcomm directive are not aligned on 16 byte boundaries. This causes misaligned loads, as the generated assembly assumes this "default" alignment. this patch disables .lcomm in favour of '.local .comm' Patch by Kalle Raisklia! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100875 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/CellSPU/SPUMCAsmInfo.cpp | 1 - test/CodeGen/CellSPU/bss.ll | 2 ++ 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/Target/CellSPU/SPUMCAsmInfo.cpp b/lib/Target/CellSPU/SPUMCAsmInfo.cpp index 3e17a51b505..68445cf6bf9 100644 --- a/lib/Target/CellSPU/SPUMCAsmInfo.cpp +++ b/lib/Target/CellSPU/SPUMCAsmInfo.cpp @@ -18,7 +18,6 @@ SPULinuxMCAsmInfo::SPULinuxMCAsmInfo(const Target &T, const StringRef &TT) { ZeroDirective = "\t.space\t"; Data64bitsDirective = "\t.quad\t"; AlignmentIsInBytes = false; - HasLCOMMDirective = true; PCSymbol = "."; CommentString = "#"; diff --git a/test/CodeGen/CellSPU/bss.ll b/test/CodeGen/CellSPU/bss.ll index 05a0f500393..2a5f786baea 100644 --- a/test/CodeGen/CellSPU/bss.ll +++ b/test/CodeGen/CellSPU/bss.ll @@ -1,5 +1,7 @@ ; RUN: llc < %s -march=cellspu > %t1.s ; RUN: grep "\.section" %t1.s | grep "\.bss" | count 1 +; CHECK-NOT: .lcomm @bssVar = global i32 zeroinitializer +@localVar= internal global i32 zeroinitializer -- 2.34.1