Add missing forward declations to gen/utils.h
Small cleanup of attribute mess.
Add llvm-config-3.5 to search list
Change location of assign to irFty.

If the comment about this function is still right (can be called recursively) then the assignment
to irFty should be done after all functions are called.
Takes advantage of move assignment, too.
Remove duplicate "sudo" from .travis.yml.
Fix a c++11 issue
Use caching in DtoVaFunctionType.

Remove now unused method IrFuncTy.reset().
Remove MSVC crap.

The code was a work around and did not solve the underlying problem.
With 2.064 even the work around stops working.
Remove DigitalMars garbage collector.

This code is not used and gone in later DMD versions.
Use __linux__ to identify Linux-based systems.

This is a backport from DMD 2.065. It is needed to compile LDC2 with -std=c++11.
Fix for 2nd part of issue #424.

This is a backport from DMD 2.065.
Add UDAs for LDC attributes.

Introduces an attribute @ldc.attribute which can be used to annotate functions.
Examples:
@ldc.attribute("alwaysinline") void foo() {}

Valid attribute names can be found in the LLVM manual at
http://www.llvm.org/docs/LangRef.html#function-attributes.

This fixes issue #561 and creates a base for issue #547.
Inlining of imported functions (experimental)
Never define naked functions or classes of imported modules.
Expand user attribute tuple before iterating over it.
Read ldc attributes in FuncDecl::semantic and

store them in FuncDecl::ldcAttributes. Check for presence of
alwaysinline and run extra semantic passes on any module that
contains alwaysinline functions.
When inlining is disabled, only define imported functions if they are alwaysinline.
Define alwaysinline functions at the end of

DtoDeclareFunction even if they are not externallyAvailable.
This way, those functions are inlined even if they are
defined in a module that we are not currently generating code
for, but was also given on the command line,
and the -singleobj flag was not used. Also made alwaysInline
functions have private linkage, so that they don't appear in
the object file. This avoids linker errors in the case
described above.
Made function literal names, anonymous class names

and critical section names independent of the order
in which modules are compiled and templates
are instantiated. Also removed isAutoGeneratedField
from Identifier and made availableExternally symbols
always have available_externally linkage.