Version 4.11, May 12, 2016

This version completes support for C++14.

In particular, the following C++14 features were added since the previous
release:

1) Generalized constexpr (N3652)
   In C++14 mode, constexpr functions can do most of things that normal
   functions can do (e.g., contain multiple statements, including loops).
   The implementation required the addition of an IL interpreter to the
   front end.  Because constexpr functions can contain loops, etc., it is
   now possible for long or unbounded loops to be created at compile-time.
   The front end has various options to control how much effort should be
   spent evaluating a given constant expression.

2) Variable templates (N3651)
   It is now possible to have variable templates.  The instantiation of
   a variable template produces a variable whose type and initial value
   can depend on template arguments.

Other significant changes include:

1) Prototype instantiations in the IL
   Certain changes required that prototype instantiations always be
   included in the IL.  This typically requires some minor changes to
   back ends to ignore these entries.  See the 1/3/16 Changes entry
   for details.

2) GNU compatibility improvements
   In addition to the usual compatibility and bug emulation changes, certain
   significant compatibility features have been added:
     - additional support for GNU vector operations (i.e., the ability to
       use the usual arithmetic and logical operators)
     - expanded abi_tag compatibility

3) Revised preliminary coroutine support (P0057R1)
   The front end has been revised to match the current specification from
   the standards committee.

4) Performance improvements
   A number of changes have been made to improve performance, particularly
   on code that makes extensive use of templates.  A 2-10% improvement is
   common for many large template cases, but improvements of up to 3x have
   been observed for extreme cases.

5) C++17 option
   A C++17 option has been added.  So far, only a few minor features are
   supported (UTF-8 character literals, attributes on namespaces and
   enumerators).

6) Other IL changes
   There are a number of other IL changes, such as the addition of
   a source position to expression nodes, putting local-scope lambdas in
   the same memory region as the enclosing function, and others.  Look
   for "IL CHANGE" in the Changes file.

As usual, we have fixed bugs, added many minor features, and continued to
improve our various compatibility modes.  See the Changes_4.11 file for
full details (about 6,000 lines).
