mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-11-02 07:17:36 +00:00
PTX: Fix some lingering issues with stack allocation
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140535 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -297,7 +297,9 @@ void PTXAsmPrinter::EmitFunctionBodyStart() {
|
|||||||
for (unsigned i = 0, e = FrameInfo->getNumObjects(); i != e; ++i) {
|
for (unsigned i = 0, e = FrameInfo->getNumObjects(); i != e; ++i) {
|
||||||
DEBUG(dbgs() << "Size of object: " << FrameInfo->getObjectSize(i) << "\n");
|
DEBUG(dbgs() << "Size of object: " << FrameInfo->getObjectSize(i) << "\n");
|
||||||
if (FrameInfo->getObjectSize(i) > 0) {
|
if (FrameInfo->getObjectSize(i) > 0) {
|
||||||
std::string def = "\t.local .b";
|
std::string def = "\t.local .align ";
|
||||||
|
def += utostr(FrameInfo->getObjectAlignment(i));
|
||||||
|
def += " .b";
|
||||||
def += utostr(FrameInfo->getObjectSize(i)*8); // Convert to bits
|
def += utostr(FrameInfo->getObjectSize(i)*8); // Convert to bits
|
||||||
def += " __local";
|
def += " __local";
|
||||||
def += utostr(i);
|
def += utostr(i);
|
||||||
|
|||||||
10
test/CodeGen/PTX/stack-object.ll
Normal file
10
test/CodeGen/PTX/stack-object.ll
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
; RUN: llc < %s -march=ptx32 -mattr=sm20 | FileCheck %s
|
||||||
|
|
||||||
|
define ptx_device float @stack1(float %a) {
|
||||||
|
; CHECK: .local .b32 __local0;
|
||||||
|
%a.2 = alloca float
|
||||||
|
; CHECK: st.local.f32 [__local0], %f0
|
||||||
|
store float %a, float* %a.2
|
||||||
|
%a.3 = load float* %a.2
|
||||||
|
ret float %a.3
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user