[LLVMdev] Easy stack frames

David Given dg at cowlark.com
Fri Mar 28 03:53:42 PDT 2014


So my backend is proceeding nicely; I have most of the ALU instructions,
some memory operations, and it's even doing sign extension correctly
(which wasn't easy).

Next step is to make all the stack frame machinery work. Looking at the
other ports, there's quite a lot of this, and a lot of it is unobvious.

I'm aware that most of the existing first-class ports have to conform to
third-party ABIs when it comes to stack layout and calling convention,
which makes them more complicated than it could be. My archicture
doesn't have an ABI, so I get to pick whatever is easiest; and it's a
register-centric RISC architecture, so every stack spill/restore becomes
a memory op.

Given that I don't care what my stack layout is, is there any built-in
support in LLVM that will make my life easier? For example, can I get
LLVM to automatically expand stack spills/restores into load and store
instructions? Can I get LLVM to figure out the stack layout itself?

(Also, if any of this has been documented, a pointer would be really
handy...)

-- 
┌─── dg@cowlark.com ───── http://www.cowlark.com ─────
│
│ "You cannot truly appreciate _Atlas Shrugged_ until you have read it
│ in the original Klingon." --- Sea Wasp on r.a.sf.w

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 876 bytes
Desc: OpenPGP digital signature
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20140328/033da51c/attachment.sig>


More information about the llvm-dev mailing list