Cleanup: 2 more clang warning fixes.
Merge pull request #254 from redstar/clang

Cleanup: 2 more clang warning fixes.
Add pragma to install function as global C runtime ctor or dtor.

DMD has the obscure functionality to install functions starting with
_STI_ as global ctors and funtions starting with _STD_ as global
dtors. IMHO a pragma is a better way to specify the behaviour.

This commit adds pragma(LDC_global_crt_ctor) and
pragma(LDC_global_crt_dtor). If the pragma is specified on a function
or static method then an entry is made in the corresponding list. E.g.
in monitor_.d:

    extern (C) {
        #pragma(LDC_global_crt_ctor)
        void _STI_monitor_staticctor()
        {
            // ...
        }
    }

This works on Linux without problems. On Windows with MS C Runtime
ctors work always but dtors are invoked only if linked against the
static C runtime. Dtors on Windows require at least LLVM 3.2.
Merge pull request #161 from redstar/ctordtor

Add pragma to install function as global ctor or dtor.
dgc2stack: Added size limit for stack promotion.
Use more portable integer log from LLVM.
Typo fix.

Turns out I still had USE_METADATA=OFF in the CMake cache when
testing the previous commit.
Fix llvm/IRBuilder.h include when using LLVM 3.2
Merge pull request #255 from foutrelis/master

Fix llvm/IRBuilder.h include when using LLVM 3.2
Add missing forward declaration
Add palignr and pshufb to x86_32
Don't create IrType twice for aggregate arrays with forward references.

GitHub: Fixes #257.
Merge test case update.
Started to add support for PPC64 in druntime
Factor out TOK to icmp predicate conversion into helper method.
Implement ordered delegate comparisons.

GitHub: Fixes #256.
Add some comments to ABI interface
Add core.stdc.stdarg support for PPC64
Cleanup: Added missing include, killed superfluous newline in debug log.
Emit template symbols into correct module during many-at-once compilation.

Previously, it could happen that regular symbols referenced
only as part of a template instance (e.g. a lambda passed as
an alias parameter) were not even emitted in the wrong module,
but not at all because mustDefineSymbol would return false to
them when being analyzed during codegen of the wrong module.

This issue might affect incremental compilation with DMD as
well, and the fix should be discussed with the upstream devs.

GitHub: Fixes #249.