(original) (raw)

Having your function prologue call malloc() and epilogue call free() (or similar functions) instead of bumping a stack pointer is not a problem. That stuff is generated explicitly by ISA-specific code anyway.

On Fri, Dec 14, 2018 at 9:05 AM JD Jones <jjones@prc-hsv.com> wrote:

Thanks for your response. Please see below.

From: Bruce Hoult \[mailto:brucehoult@sifive.com\]
Sent: Thursday, December 13, 2018 5:58 PM
To: jjones@prc-hsv.com
Cc: LLVM Developers Mailing List <llvm-dev@lists.llvm.org>
Subject: Re: \[llvm-dev\] LLVM Backend for a platform with no (normal) stack

Do you have a register that you can store a memory address

>> yes

in and an addressing mode that allows you to add (or subtract) a constant to that register

>> Sometimes

and use the address calculated to load//store from memory? Do you have enough registers that you can keep one of them permanently pointed to a particular memory region?

>> No

The platform intentionally does not allow use of some large chunk of memory for shared use by function calls. I can allocate memory (so long as I know the necessary size before-hand). I can work around this issue, but if someone has already addressed it, I’d like to learn from their experiences before rolling my own.

If yes, then you have a stack to exactly the same extent as RISC-V or MIPS do.

On Thu, Dec 13, 2018 at 12:53 PM JD Jones via llvm-dev <llvm-dev@lists.llvm.org> wrote:

Dear Sir or Ma’am;

I have found a wealth of help and information on writing an LLVM backend. And, my platform has no stack.

Can you point me to any information that would specifically address creating a backend for this kind of platform?

In previous wanderings, I thought I ran across a phrase “platforms with no stack such as FPGAs”, but I can’t find that mention, now.

More thanks than I can type,

JD Jones

Software Engineer


This message is intended for the addressee only and may contain Paragon Research Corporation (PRC) confidential or privileged information. Use or distribution of such confidential information is strictly prohibited without the prior written permission of PRC. If you have received this message in error, please contact the sender immediately and delete the message and attachments from your computer.\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_
LLVM Developers mailing list
llvm-dev@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev


This message is intended for the addressee only and may contain Paragon Research Corporation (PRC) confidential or privileged information. Use or distribution of such confidential information is strictly prohibited without the prior written permission of PRC. If you have received this message in error, please contact the sender immediately and delete the message and attachments from your computer.