+* With this release, the minimum Windows version required for running LLVM is
+ Windows 7. Earlier versions, including Windows Vista and XP are no longer
+ supported.
+
+* With this release, the autoconf build system is deprecated. It will be removed
+ in the 3.9 release. Please migrate to using CMake. For more information see:
+ `Building LLVM with CMake <CMake.html>`_
+
+* We have documented our C API stability guarantees for both development and
+ release branches, as well as documented how to extend the C API. Please see
+ the `developer documentation <DeveloperPolicy.html#c-api-changes>`_ for more
+ information.
+
+* The C API function ``LLVMLinkModules`` is deprecated. It will be removed in the
+ 3.9 release. Please migrate to ``LLVMLinkModules2``. Unlike the old function the
+ new one
+
+ * Doesn't take an unused parameter.
+ * Destroys the source instead of only damaging it.
+ * Does not record a message. Use the diagnostic handler instead.
+
+* The C API functions ``LLVMParseBitcode``, ``LLVMParseBitcodeInContext``,
+ ``LLVMGetBitcodeModuleInContext`` and ``LLVMGetBitcodeModule`` have been deprecated.
+ They will be removed in 3.9. Please migrate to the versions with a 2 suffix.
+ Unlike the old ones the new ones do not record a diagnostic message. Use
+ the diagnostic handler instead.
+
+* The deprecated C APIs ``LLVMGetBitcodeModuleProviderInContext`` and
+ ``LLVMGetBitcodeModuleProvider`` have been removed.
+
+* The deprecated C APIs ``LLVMCreateExecutionEngine``, ``LLVMCreateInterpreter``,
+ ``LLVMCreateJITCompiler``, ``LLVMAddModuleProvider`` and ``LLVMRemoveModuleProvider``
+ have been removed.
+
+* With this release, the C API headers have been reorganized to improve build
+ time. Type specific declarations have been moved to Type.h, and error
+ handling routines have been moved to ErrorHandling.h. Both are included in
+ Core.h so nothing should change for projects directly including the headers,
+ but transitive dependencies may be affected.
+
+* llvm-ar now supports thin archives.
+
+* llvm doesn't produce ``.data.rel.ro.local`` or ``.data.rel`` sections anymore.
+
+* Aliases to ``available_externally`` globals are now rejected by the verifier.
+
+* The IR Linker has been split into ``IRMover`` that moves bits from one module to
+ another and Linker proper that decides what to link.
+
+* Support for dematerializing has been dropped.
+
+* ``RegisterScheduler::setDefault`` was removed. Targets that used to call into the
+ command line parser to set the ``DAGScheduler``, and that don't have enough
+ control with ``setSchedulingPreference``, should look into overriding the
+ ``SubTargetHook`` "``getDAGScheduler()``".
+
+* ``ilist_iterator<T>`` no longer has implicit conversions to and from ``T*``,
+ since ``ilist_iterator<T>`` may be pointing at the sentinel (which is usually
+ not of type ``T`` at all). To convert from an iterator ``I`` to a pointer,
+ use ``&*I``; to convert from a pointer ``P`` to an iterator, use
+ ``P->getIterator()``. Alternatively, explicit conversions via
+ ``static_cast<T>(U)`` are still available.
+
+* ``ilist_node<T>::getNextNode()`` and ``ilist_node<T>::getPrevNode()`` now
+ fail at compile time when the node cannot access its parent list.
+ Previously, when the sentinel was was an ``ilist_half_node<T>``, this API
+ could return the sentinel instead of ``nullptr``. Frustrated callers should
+ be updated to use ``iplist<T>::getNextNode(T*)`` instead. Alternatively, if
+ the node ``N`` is guaranteed not to be the last in the list, it is safe to
+ call ``&*++N->getIterator()`` directly.
+
+* The `Kaleidoscope tutorials <tutorial/index.html>`_ have been updated to use
+ the ORC JIT APIs.
+
+* ORC now has a basic set of C bindings.
+
+* Optional support for linking clang and the LLVM tools with a single libLLVM
+ shared library. To enable this, pass ``-DLLVM_LINK_LLVM_DYLIB=ON`` to CMake.
+ See `Building LLVM with CMake`_ for more details.
+
+* The optimization to move the prologue and epilogue of functions in colder
+ code path (shrink-wrapping) is now enabled by default.
+
+* A new target-independent gcc-compatible emulated Thread Local Storage mode
+ is added. When ``-femultated-tls`` flag is used, all accesses to TLS
+ variables are converted to calls to ``__emutls_get_address`` in the runtime
+ library.
+
+* MSVC-compatible exception handling has been completely overhauled. New
+ instructions have been introduced to facilitate this:
+ `New exception handling instructions <ExceptionHandling.html#new-exception-handling-instructions>`_.
+ While we have done our best to test this feature thoroughly, it would
+ not be completely surprising if there were a few lingering issues that
+ early adopters might bump into.
+
+
+Changes to the ARM Backends
+---------------------------
+
+During this release the AArch64 target has:
+
+* Added support for more sanitizers (MSAN, TSAN) and made them compatible with
+ all VMA kernel configurations (currently tested on 39 and 42 bits).
+* Gained initial LLD support in the new ELF back-end
+* Extended the Load/Store optimiser and cleaned up some of the bad decisions
+ made earlier.
+* Expanded LLDB support, including watchpoints, native building, Renderscript,
+ LLDB-server, debugging 32-bit applications.
+* Added support for the ``Exynos M1`` chip.
+
+During this release the ARM target has:
+
+* Gained massive performance improvements on embedded benchmarks due to finally
+ running the stride vectorizer in full form, incrementing the performance gains
+ that we already had in the previous releases with limited stride vectorization.
+* Expanded LLDB support, including watchpoints, unwind tables
+* Extended the Load/Store optimiser and cleaned up some of the bad decisions
+ made earlier.
+* Simplified code generation for global variable addresses in ELF, resulting in
+ a significant (4% in Chromium) reduction in code size.
+* Gained some additional code size improvements, though there's still a long road
+ ahead, especially for older cores.
+* Added some EABI floating point comparison functions to Compiler-RT
+* Added support for Windows+GNU triple, ``+features`` in ``-mcpu``/``-march`` options.
+
+
+Changes to the MIPS Target
+--------------------------
+
+During this release the MIPS target has:
+
+* Significantly extended support for the Integrated Assembler. See below for
+ more information
+* Added support for the ``P5600`` processor.
+* Added support for the ``interrupt`` attribute for MIPS32R2 and later. This
+ attribute will generate a function which can be used as a interrupt handler
+ on bare metal MIPS targets using the static relocation model.
+* Added support for the ``ERETNC`` instruction found in MIPS32R5 and later.
+* Added support for OpenCL. See http://portablecl.org/.
+
+* Address spaces 1 to 255 are now reserved for software use and conversions
+ between them are no-op casts.