On Fri, Sep 12, 2008 at 11:40 AM, Eli Friedman <eli.friedman at gmail.com> wrote:> AFAIK, 128-bit integers should work just fine on x86 with LLVM.Bad example then, I meant I am wondering about how I should have my language handle things that are platform specific, whether I should expose them and let the user make 'best judgment calls' which could break on the distributed system when there are multiple programmers, or if I should just keep it to a limited instruction set that works mostly everywhere. Thoughts? Does the x86 (32-bit) backend really support 128-bit integers, or does LLVM just play nice by splitting it up among registers or something, and if it does then what is the maximum 'reasonable' size for an x86 32-bit integer?
This language has functions that will have to be tail-called due to having the ability to 'pause' its callstack, but some functions will not and I was just planning to call them like normal functions. I am wondering, would it be 'faster' (at execution of the compiled code) to just put everything in the tail-call way, or is it still faster to call functions like normal when I can?
When tail call optimization is enabled functions with the calling convention fast (fastcc) follow a callee pops arguments convention. This means that every function call (to a fastcc function) will be followed by a sub [n callee pops slots] instruction. Also functions that are tail calling must ensure that they don't overwrite their arguments so there might be additional moves of arguments before a tail call. On Sun, Sep 14, 2008 at 5:51 AM, OvermindDL1 <overminddl1 at gmail.com> wrote:> This language has functions that will have to be tail-called due to > having the ability to 'pause' its callstack, but some functions will > not and I was just planning to call them like normal functions. I am > wondering, would it be 'faster' (at execution of the compiled code) to > just put everything in the tail-call way, or is it still faster to > call functions like normal when I can? > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev >