diff options
author | Bill Wendling <isanbard@gmail.com> | 2013-06-04 06:05:49 +0000 |
---|---|---|
committer | Bill Wendling <isanbard@gmail.com> | 2013-06-04 06:05:49 +0000 |
commit | 3cd04e0f22680f2cae0f54dd30350ef4ac5a464f (patch) | |
tree | 5c7c39311af3f5089a8e06721dc6b442cdf975e4 | |
parent | 156dd00656513fb832983f6b3a6e54f5c9b6f0f3 (diff) | |
download | llvm-3cd04e0f22680f2cae0f54dd30350ef4ac5a464f.zip llvm-3cd04e0f22680f2cae0f54dd30350ef4ac5a464f.tar.gz llvm-3cd04e0f22680f2cae0f54dd30350ef4ac5a464f.tar.bz2 |
Update the release notes for the 3.3 release.
llvm-svn: 183207
-rw-r--r-- | llvm/docs/CommandLine.rst | 2 | ||||
-rw-r--r-- | llvm/docs/LangRef.rst | 9 | ||||
-rw-r--r-- | llvm/docs/ReleaseNotes.rst | 154 |
3 files changed, 109 insertions, 56 deletions
diff --git a/llvm/docs/CommandLine.rst b/llvm/docs/CommandLine.rst index 263a025..9b77a98 100644 --- a/llvm/docs/CommandLine.rst +++ b/llvm/docs/CommandLine.rst @@ -618,6 +618,8 @@ would yield the help output: -help - display available options (-help-hidden for more) -o <filename> - Specify output filename +.. _grouping options into categories: + Grouping options into categories -------------------------------- diff --git a/llvm/docs/LangRef.rst b/llvm/docs/LangRef.rst index 410f640..7743ff0 100644 --- a/llvm/docs/LangRef.rst +++ b/llvm/docs/LangRef.rst @@ -2868,11 +2868,10 @@ All globals of this sort should have a section specified as The '``llvm.used``' Global Variable ----------------------------------- -The ``@llvm.used`` global is an array which has - :ref:`appending linkage <linkage_appending>`. This array contains a list of -pointers to global variables, functions and aliases which may optionally have a -pointer cast formed of bitcast or getelementptr. For example, a legal -use of it is: +The ``@llvm.used`` global is an array which has :ref:`appending linkage +<linkage_appending>`. This array contains a list of pointers to global +variables, functions and aliases which may optionally have a pointer cast formed +of bitcast or getelementptr. For example, a legal use of it is: .. code-block:: llvm diff --git a/llvm/docs/ReleaseNotes.rst b/llvm/docs/ReleaseNotes.rst index 7952cd5..9785b40 100644 --- a/llvm/docs/ReleaseNotes.rst +++ b/llvm/docs/ReleaseNotes.rst @@ -5,12 +5,6 @@ LLVM 3.3 Release Notes .. contents:: :local: -.. warning:: - These are in-progress notes for the upcoming LLVM 3.3 release. You may - prefer the `LLVM 3.2 Release Notes <http://llvm.org/releases/3.2/docs - /ReleaseNotes.html>`_. - - Introduction ============ @@ -34,13 +28,6 @@ page <http://llvm.org/releases/>`_. Non-comprehensive list of changes in this release ================================================= -.. NOTE - For small 1-3 sentence descriptions, just add an entry at the end of - this list. If your description won't fit comfortably in one bullet - point (e.g. maybe you would like to give an example of the - functionality, or simply have a lot to talk about), see the `NOTE` below - for adding a new subsection. - * The CellSPU port has been removed. It can still be found in older versions. * The IR-level extended linker APIs (for example, to link bitcode files out of @@ -70,17 +57,15 @@ Non-comprehensive list of changes in this release examples of the new syntax. The old syntax using register classes still works, but it will be removed in a future LLVM release. -* ... next change ... - -.. NOTE - If you would like to document a larger change, then you can add a - subsection about it right here. You can copy the following boilerplate - and un-indent it (the indentation causes it to be inside this comment). +* MCJIT now supports exception handling. Support for it in the old jit will be + removed in the 3.4 release. - Special New Feature - ------------------- +* Command line options can now be grouped into categories which are shown in + the output of ``-help``. See :ref:`grouping options into categories`. - Makes programs 10x faster by doing Special New Thing. +* The appearance of command line options in ``-help`` that are inherited by + linking with libraries that use the LLVM Command line support library can now + be modified at runtime. See :ref:`cl::getRegisteredOptions`. AArch64 target -------------- @@ -99,9 +84,9 @@ GNU-style thread local storage and inline assembly. Hexagon Target -------------- -- Removed support for legacy hexagonv2 and hexagonv3 processor - architectures which are no longer in use. Currently supported - architectures are hexagonv4 and hexagonv5. +Removed support for legacy hexagonv2 and hexagonv3 processor architectures which +are no longer in use. Currently supported architectures arehexagonv4 and +hexagonv5. Loop Vectorizer --------------- @@ -126,16 +111,16 @@ SLP Vectorizer -------------- LLVM now has a new SLP vectorizer. The new SLP vectorizer is not enabled by -default but can be enabled using the clang flag -fslp-vectorize. The BB-vectorizer -can also be enabled using the command line flag -fslp-vectorize-aggressive. +default but can be enabled using the clang flag ``-fslp-vectorize``. The +BB-vectorizer can also be enabled using the command line flag +``-fslp-vectorize-aggressive``. R600 Backend ------------ -The R600 backend was added in this release, it supports AMD GPUs -(HD2XXX - HD7XXX). This backend is used in AMD's Open Source -graphics / compute drivers which are developed as part of the `Mesa3D -<http://www.mesa3d.org>`_ project. +The R600 backend was added in this release, it supports AMD GPUs (HD2XXX - +HD7XXX). This backend is used in AMD's Open Source graphics / compute drivers +which are developed as part of the `Mesa3D <http://www.mesa3d.org>`_ project. SystemZ/s390x Backend --------------------- @@ -145,41 +130,108 @@ is restricted to GNU/Linux (GNU triplet s390x-linux-gnu) and requires z10 or greater. +Sub-project Status Update +========================= + +In addition to the core LLVM 3.3 distribution of production-quality compiler +infrastructure, the LLVM project includes sub-projects that use the LLVM core +and share the same distribution license. This section provides updates on these +sub-projects. + + +LLDB: Low Level Debugger +------------------------ + +`LLDB <http://lldb.llvm.org/>`_ is a ground-up implementation of a command-line +debugger, as well as a debugger API that can be used from scripts and other +applications. LLDB uses the following components of the LLVM core distribution +to support the latest language features and target support: + +- the Clang parser for high-quality parsing of C, C++ and Objective C +- the LLVM disassembler +- the LLVM JIT compiler (MCJIT) for expression evaluation + +The `3.3 release <http://llvm.org/apt/>`_ has the following notable changes. + +Linux Features: + +- Support for watchpoints +- vim integration for lldb commands and program status using a `vim plug-in + <http://llvm.org/svn/llvm-project/lldb/trunk/utils/vim-lldb/README>`_ +- Improved register support including vector registers +- Builds with cmake/ninja/auto-tools/clang 3.3/gcc 4.6 + +Linux Improvements: + +- Debugging multi-threaded programs +- Debugging i386 programs +- Process list, attach and fork +- Expression evaluation + + External Open Source Projects Using LLVM 3.3 ============================================ -An exciting aspect of LLVM is that it is used as an enabling technology for -a lot of other language and tools projects. This section lists some of the +An exciting aspect of LLVM is that it is used as an enabling technology for a +lot of other language and tools projects. This section lists some of the projects that have already been updated to work with LLVM 3.3. Portable Computing Language (pocl) ---------------------------------- -In addition to producing an easily portable open source OpenCL -implementation, another major goal of `pocl <http://pocl.sourceforge.net/>`_ -is improving performance portability of OpenCL programs with -compiler optimizations, reducing the need for target-dependent manual -optimizations. An important part of pocl is a set of LLVM passes used to -statically parallelize multiple work-items with the kernel compiler, even in -the presence of work-group barriers. This enables static parallelization of -the fine-grained static concurrency in the work groups in multiple ways. +In addition to producing an easily portable open source OpenCL implementation, +another major goal of `pocl <http://pocl.sourceforge.net/>`_ is improving +performance portability of OpenCL programs with compiler optimizations, reducing +the need for target-dependent manual optimizations. An important part of pocl is +a set of LLVM passes used to statically parallelize multiple work-items with the +kernel compiler, even in the presence of work-group barriers. This enables +static parallelization of the fine-grained static concurrency in the work groups +in multiple ways. TTA-based Co-design Environment (TCE) ------------------------------------- -`TCE <http://tce.cs.tut.fi/>`_ is a toolset for designing new -processors based on the Transport triggered architecture (TTA). -The toolset provides a complete co-design flow from C/C++ -programs down to synthesizable VHDL/Verilog and parallel program binaries. -Processor customization points include the register files, function units, -supported operations, and the interconnection network. +`TCE <http://tce.cs.tut.fi/>`_ is a toolset for designing new processors based +on the Transport triggered architecture (TTA). The toolset provides a complete +co-design flow from C/C++ programs down to synthesizable VHDL/Verilog and +parallel program binaries. Processor customization points include the register +files, function units, supported operations, and the interconnection network. TCE uses Clang and LLVM for C/C++/OpenCL C language support, target independent -optimizations and also for parts of code generation. It generates new -LLVM-based code generators "on the fly" for the designed TTA processors and -loads them in to the compiler backend as runtime libraries to avoid -per-target recompilation of larger parts of the compiler chain. +optimizations and also for parts of code generation. It generates new LLVM-based +code generators "on the fly" for the designed TTA processors and loads them in +to the compiler backend as runtime libraries to avoid per-target recompilation +of larger parts of the compiler chain. + +Just-in-time Adaptive Decoder Engine (Jade) +------------------------------------------- + +`Jade <https://github.com/orcc/jade>`_ (Just-in-time Adaptive Decoder Engine) is +a generic video decoder engine using LLVM for just-in-time compilation of video +decoder configurations. Those configurations are designed by MPEG Reconfigurable +Video Coding (RVC) committee. MPEG RVC standard is built on a stream-based +dataflow representation of decoders. It is composed of a standard library of +coding tools written in RVC-CAL language and a dataflow configuration --- block +diagram --- of a decoder. + +Jade project is hosted as part of the Open RVC-CAL Compiler (`Orcc +<http://orcc.sf.net>`_) and requires it to translate the RVC-CAL standard +library of video coding tools into an LLVM assembly code. + +LDC - the LLVM-based D compiler +------------------------------- + +`D <http://dlang.org>`_ is a language with C-like syntax and static typing. It +pragmatically combines efficiency, control, and modeling power, with safety and +programmer productivity. D supports powerful concepts like Compile-Time Function +Execution (CTFE) and Template Meta-Programming, provides an innovative approach +to concurrency and offers many classical paradigms. + +`LDC <http://wiki.dlang.org/LDC>`_ uses the frontend from the reference compiler +combined with LLVM as backend to produce efficient native code. LDC targets +x86/x86_64 systems like Linux, OS X and Windows and also Linux/PPC64. Ports to +other architectures like ARM are underway. Additional Information |