annotate gen/functions.h @ 920:545f54041d91

Implemented proper support for naked asm using llvm module level asm. Still not 100% complete, but already 1000 times better that what we had before. Don's BignumX86 implementation from Tango (when turned into a standalone unittest) seems to fully work with no changes, and great performance :) Fixed align N; in asm blocks. Fixed inreg parameter passing on x86 for ref/out params. Removed support for lazy initialization of function local static variables, I have no idea why I ever implemented this, it's not in the D spec, and DMD doesn't support it :P Some of the global variable related changes might cause minor regressions, but they should be easily fixable.
author Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
date Tue, 03 Feb 2009 08:54:57 +0100
parents eef8ac26c66c
children 03d7c4aac654
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
664
eef8ac26c66c Some missed LLVMDC -> LDC.
Christian Kamm <kamm incasoftware de>
parents: 486
diff changeset
1 #ifndef LDC_GEN_FUNCTIONS_H
eef8ac26c66c Some missed LLVMDC -> LDC.
Christian Kamm <kamm incasoftware de>
parents: 486
diff changeset
2 #define LDC_GEN_FUNCTIONS_H
100
5071469303d4 [svn r104] TONS OF FIXES.
lindquist
parents:
diff changeset
3
486
a34078905d01 Added pragma(llvmdc, "string") for misc per-module compiler configuration, currently "string" can only be "verbose" which forces -vv for module it appears in.
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents: 234
diff changeset
4 const llvm::FunctionType* DtoFunctionType(Type* t, const LLType* thistype, const LLType* nesttype, bool ismain = false);
100
5071469303d4 [svn r104] TONS OF FIXES.
lindquist
parents:
diff changeset
5 const llvm::FunctionType* DtoFunctionType(FuncDeclaration* fdecl);
5071469303d4 [svn r104] TONS OF FIXES.
lindquist
parents:
diff changeset
6
117
56a21f3e5d3e [svn r121] Finished ModuleInfo implementation.
lindquist
parents: 102
diff changeset
7 const llvm::FunctionType* DtoBaseFunctionType(FuncDeclaration* fdecl);
56a21f3e5d3e [svn r121] Finished ModuleInfo implementation.
lindquist
parents: 102
diff changeset
8
102
027b8d8b71ec [svn r106] Turns out the last commit wasn't enough, now the D->LLVM process is even more split up.
lindquist
parents: 100
diff changeset
9 void DtoResolveFunction(FuncDeclaration* fdecl);
100
5071469303d4 [svn r104] TONS OF FIXES.
lindquist
parents:
diff changeset
10 void DtoDeclareFunction(FuncDeclaration* fdecl);
920
545f54041d91 Implemented proper support for naked asm using llvm module level asm. Still not 100% complete, but already 1000 times better that what we had before. Don's BignumX86 implementation from Tango (when turned into a standalone unittest) seems to fully work with no changes, and great performance :)
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents: 664
diff changeset
11 void DtoDefineFunction(FuncDeclaration* fd);
545f54041d91 Implemented proper support for naked asm using llvm module level asm. Still not 100% complete, but already 1000 times better that what we had before. Don's BignumX86 implementation from Tango (when turned into a standalone unittest) seems to fully work with no changes, and great performance :)
Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
parents: 664
diff changeset
12 void DtoDefineNakedFunction(FuncDeclaration* fd);
100
5071469303d4 [svn r104] TONS OF FIXES.
lindquist
parents:
diff changeset
13
131
5825d48b27d1 [svn r135] * Merged DMD 1.025 *
lindquist
parents: 117
diff changeset
14 DValue* DtoArgument(Argument* fnarg, Expression* argexp);
213
7816aafeea3c [svn r229] Updated the object.d implementation to the latest Tango.
lindquist
parents: 131
diff changeset
15 void DtoVariadicArgument(Expression* argexp, LLValue* dst);
131
5825d48b27d1 [svn r135] * Merged DMD 1.025 *
lindquist
parents: 117
diff changeset
16
100
5071469303d4 [svn r104] TONS OF FIXES.
lindquist
parents:
diff changeset
17 #endif