1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
2 "http://www.w3.org/TR/html4/strict.dtd">
5 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
7 <link rel="stylesheet" href="llvm.css" type="text/css">
8 <title>LLVM 2.9 Release Notes</title>
12 <h1 class="doc_title">LLVM 2.9 Release Notes</h1>
14 <img align=right src="http://llvm.org/img/DragonSmall.png"
15 width="136" height="136" alt="LLVM Dragon Logo">
18 <li><a href="#intro">Introduction</a></li>
19 <li><a href="#subproj">Sub-project Status Update</a></li>
20 <li><a href="#externalproj">External Projects Using LLVM 2.9</a></li>
21 <li><a href="#whatsnew">What's New in LLVM 2.9?</a></li>
22 <li><a href="GettingStarted.html">Installation Instructions</a></li>
23 <li><a href="#knownproblems">Known Problems</a></li>
24 <li><a href="#additionalinfo">Additional Information</a></li>
27 <div class="doc_author">
28 <p>Written by the <a href="http://llvm.org">LLVM Team</a></p>
31 <h1 style="color:red">These are in-progress notes for the upcoming LLVM 2.9
34 <a href="http://llvm.org/releases/2.8/docs/ReleaseNotes.html">LLVM 2.8
35 Release Notes</a>.</h1>
37 <!-- *********************************************************************** -->
39 <a name="intro">Introduction</a>
41 <!-- *********************************************************************** -->
43 <div class="doc_text">
45 <p>This document contains the release notes for the LLVM Compiler
46 Infrastructure, release 2.9. Here we describe the status of LLVM, including
47 major improvements from the previous release and significant known problems.
48 All LLVM releases may be downloaded from the <a
49 href="http://llvm.org/releases/">LLVM releases web site</a>.</p>
51 <p>For more information about LLVM, including information about the latest
52 release, please check out the <a href="http://llvm.org/">main LLVM
53 web site</a>. If you have questions or comments, the <a
54 href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev">LLVM Developer's
55 Mailing List</a> is a good place to send them.</p>
57 <p>Note that if you are reading this file from a Subversion checkout or the
58 main LLVM web page, this document applies to the <i>next</i> release, not the
59 current one. To see the release notes for a specific release, please see the
60 <a href="http://llvm.org/releases/">releases page</a>.</p>
64 <!-- Features that need text if they're finished for 3.1:
68 loop dependence analysis
69 CorrelatedValuePropagation
70 lib/Transforms/IPO/MergeFunctions.cpp => consider for 3.1.
73 <!-- *********************************************************************** -->
75 <a name="subproj">Sub-project Status Update</a>
77 <!-- *********************************************************************** -->
79 <div class="doc_text">
81 The LLVM 2.9 distribution currently consists of code from the core LLVM
82 repository (which roughly includes the LLVM optimizers, code generators
83 and supporting tools), the Clang repository and the llvm-gcc repository. In
84 addition to this code, the LLVM Project includes other sub-projects that are in
85 development. Here we include updates on these subprojects.
91 <!--=========================================================================-->
93 <a name="clang">Clang: C/C++/Objective-C Frontend Toolkit</a>
96 <div class="doc_text">
98 <p><a href="http://clang.llvm.org/">Clang</a> is an LLVM front end for the C,
99 C++, and Objective-C languages. Clang aims to provide a better user experience
100 through expressive diagnostics, a high level of conformance to language
101 standards, fast compilation, and low memory use. Like LLVM, Clang provides a
102 modular, library-based architecture that makes it suitable for creating or
103 integrating with other development tools. Clang is considered a
104 production-quality compiler for C, Objective-C, C++ and Objective-C++ on x86
105 (32- and 64-bit), and for darwin/arm targets.</p>
107 <p>In the LLVM 2.9 time-frame, the Clang team has made many improvements in C,
108 C++ and Objective-C support. C++ support is now generally rock solid, has
109 been exercised on a broad variety of code, and has several new <a
110 href="http://clang.llvm.org/cxx_status.html#cxx0x">C++'0x features</a>
111 implemented (such as rvalue references and variadic templates). LLVM 2.9 has
112 also brought in a large range of bug fixes and minor features (e.g. __label__
113 support), and is much more compatible with the Linux Kernel.</p>
115 <p>If Clang rejects your code that is built with another compiler, please take a
116 look at the <a href="http://clang.llvm.org/compatibility.html">language
117 compatibility</a> guide to make sure the issue isn't intentional or a known
125 <!--=========================================================================-->
127 <a name="dragonegg">DragonEgg: GCC front-ends, LLVM back-end</a>
130 <div class="doc_text">
132 <a href="http://dragonegg.llvm.org/">DragonEgg</a> is a
133 <a href="http://gcc.gnu.org/wiki/plugins">gcc plugin</a> that replaces GCC's
134 optimizers and code generators with LLVM's.
135 Currently it requires a patched version of gcc-4.5.
136 The plugin can target the x86-32 and x86-64 processor families and has been
137 used successfully on the Darwin, FreeBSD and Linux platforms.
138 The Ada, C, C++ and Fortran languages work well.
139 The plugin is capable of compiling plenty of Obj-C, Obj-C++ and Java but it is
140 not known whether the compiled code actually works or not!
144 The 2.9 release has the following notable changes:
146 <li>The plugin is much more stable when compiling Fortran.</li>
147 <li>Inline assembly where an asm output is tied to an input of a different size
148 is now supported in many more cases.</li>
149 <li>Basic support for the __float128 type was added. It is now possible to
150 generate LLVM IR from programs using __float128 but code generation does not
152 <li>Compiling Java programs no longer systematically crashes the plugin.</li>
157 <!--=========================================================================-->
159 <a name="compiler-rt">compiler-rt: Compiler Runtime Library</a>
162 <div class="doc_text">
164 The new LLVM <a href="http://compiler-rt.llvm.org/">compiler-rt project</a>
165 is a simple library that provides an implementation of the low-level
166 target-specific hooks required by code generation and other runtime components.
167 For example, when compiling for a 32-bit target, converting a double to a 64-bit
168 unsigned integer is compiled into a runtime call to the "__fixunsdfdi"
169 function. The compiler-rt library provides highly optimized implementations of
170 this and other low-level routines (some are 3x faster than the equivalent
171 libgcc routines).</p>
173 <p>In the LLVM 2.9 timeframe, compiler_rt has had several minor changes for
174 better ARM support, and a fairly major license change. All of the code in the
175 compiler-rt project is now <a href="DeveloperPolicy.html#license">dual
176 licensed</a> under MIT and UIUC license, which allows you to use compiler-rt
177 in applications without the binary copyright reproduction clause. If you
178 prefer the LLVM/UIUC license, you are free to continue using it under that
183 <!--=========================================================================-->
185 <a name="lldb">LLDB: Low Level Debugger</a>
188 <div class="doc_text">
190 <a href="http://lldb.llvm.org/">LLDB</a> is a brand new member of the LLVM
191 umbrella of projects. LLDB is a next generation, high-performance debugger. It
192 is built as a set of reusable components which highly leverage existing
193 libraries in the larger LLVM Project, such as the Clang expression parser, the
194 LLVM disassembler and the LLVM JIT.</p>
197 LLDB is has advanced by leaps and bounds in the 2.9 timeframe. It is
198 dramatically more stable and useful, and includes both a new <a
199 href="http://lldb.llvm.org/tutorial.html">tutorial</a> and a <a
200 href="http://lldb.llvm.org/lldb-gdb.html">side-by-side comparison with
205 <!--=========================================================================-->
207 <a name="libc++">libc++: C++ Standard Library</a>
210 <div class="doc_text">
212 <a href="http://libcxx.llvm.org/">libc++</a> is another new member of the LLVM
213 family. It is an implementation of the C++ standard library, written from the
214 ground up to specifically target the forthcoming C++'0X standard and focus on
215 delivering great performance.</p>
218 As of the LLVM 2.9 release, UPDATE!
220 libc++ is now dual licensed under MIT and UIUC license
222 <!--libc++ is virtually feature complete, but would
223 benefit from more testing and better integration with Clang++. It is also
224 looking forward to the C++ committee finalizing the C++'0x standard.-->
231 <!--=========================================================================-->
234 <a name="klee">KLEE: A Symbolic Execution Virtual Machine</a>
237 <div class="doc_text">
239 <a href="http://klee.llvm.org/">KLEE</a> is a symbolic execution framework for
240 programs in LLVM bitcode form. KLEE tries to symbolically evaluate "all" paths
241 through the application and records state transitions that lead to fault
242 states. This allows it to construct testcases that lead to faults and can even
243 be used to verify some algorithms.
250 <!-- *********************************************************************** -->
252 <a name="externalproj">External Open Source Projects Using LLVM 2.9</a>
254 <!-- *********************************************************************** -->
256 <div class="doc_text">
258 <p>An exciting aspect of LLVM is that it is used as an enabling technology for
259 a lot of other language and tools projects. This section lists some of the
260 projects that have already been updated to work with LLVM 2.9.</p>
266 <!-- *********************************************************************** -->
268 <a name="whatsnew">What's New in LLVM 2.9?</a>
270 <!-- *********************************************************************** -->
272 <div class="doc_text">
274 <p>This release includes a huge number of bug fixes, performance tweaks and
275 minor improvements. Some of the major improvements and new features are listed
281 <!--=========================================================================-->
283 <a name="majorfeatures">Major New Features</a>
286 <div class="doc_text">
288 <p>LLVM 2.9 includes several major new capabilities:</p>
293 TBAA: On by default in clang. Disable it with -fno-strict-aliasing.
294 Could be more aggressive for structs.
297 <li>New Nvidia PTX backend, not generally useful in 2.9 though.</li>
300 Much better debug info generated, particularly in optimized code situations.
304 inline asm multiple alternative constraint support.
308 New naming rules in coding standards: CodingStandards.html#ll_naming
315 <!--=========================================================================-->
317 <a name="coreimprovements">LLVM IR and Core Improvements</a>
320 <div class="doc_text">
321 <p>LLVM IR has several new features for better support of new targets and that
322 expose new optimization opportunities:</p>
325 <li>udiv, ashr, lshr, shl now have exact and nuw/nsw bits:
326 PR8862 / LangRef.html</li>
328 unnamed_addr + PR8927
330 new 'hotpatch' attribute: LangRef.html#fnattrs
336 <!--=========================================================================-->
338 <a name="optimizer">Optimizer Improvements</a>
341 <div class="doc_text">
343 <p>In addition to a large array of minor performance tweaks and bug fixes, this
344 release includes a few major enhancements and additions to the optimizers:</p>
347 <li>LTO has been improved to use MC for parsing inline asm and now
348 can build large programs like Firefox 4 on both OS X and Linux.</li>
351 LoopIdiom: memset/memcpy formation and memset_pattern on darwin. Build with
352 -ffreestanding or -fno-builtin if your memcpy is being compiled into infinite
358 LoopInstSimplify pass.
360 New <a href="WritingAnLLVMPass.html#RegionPass">RegionPass</a> infrastructure
361 for region-based optimizations.
363 Can optimize printf to iprintf when no floating point is used, for embedded
364 targets with smaller iprintf implementation.
366 Speedups to various mid-level passes:
367 GVN is much faster on functions with deep dominator trees / lots of BBs.
368 DomTree and DominatorFrontier are much faster to compute, and preserved by
369 more passes (so they are computed less often)
370 SRoA is also much faster and doesn't use DominanceFrontier.
372 DSE is more aggressive with stores of different types: e.g. a large store
373 following a small one to the same address.
376 We now optimize various idioms for overflow detection into check of the flag
377 register on various CPUs, e.g.:
378 unsigned long t = a+b;
388 <p>In addition to these features that are done in 2.8, there is preliminary
389 support in the release for Type Based Alias Analysis
390 Preliminary work on TBAA but not usable in 2.8.
391 New CorrelatedValuePropagation pass, not on by default in 2.8 yet.
396 <!--=========================================================================-->
398 <a name="mc">MC Level Improvements</a>
401 <div class="doc_text">
403 The LLVM Machine Code (aka MC) subsystem was created to solve a number
404 of problems in the realm of assembly, disassembly, object file format handling,
405 and a number of other related areas that CPU instruction-set level tools work
409 <li>MC is now used by default for ELF systems on x86 and
411 <li>MC supports and CodeGen uses the <tt>.loc</tt> directives for
412 producing line number debug info. This produces more compact line
414 <li>MC supports the <tt>.cfi_*</tt> directives for producing DWARF
415 frame information, but it is still not used by CodeGen by default.</li>
416 <li>COFF support?</li>
419 MC Assembler: X86 now generates much better diagnostics for common errors,
420 is much faster at matching instructions, is much more bug-compatible with
421 the GAS assembler, and is now generally useful for a broad range of X86
425 ELF MC support: on by default in clang. There are still known missing features
426 for human written assembly.
429 Some basic <a href="CodeGenerator.html#mc">internals documentation</a> for MC.
431 MC Assembler support for .file and .loc.
433 tblgen support for assembler aliases: <a
434 href="CodeGenerator.html#na_instparsing">MnemonicAlias and InstAlias</a>
436 Win32 PE-COFF support in the MC assembler has made a lot of progress in the 2.9
437 timeframe, but is still not generally useful. Please see
438 "http://llvm.org/bugs/showdependencytree.cgi?id=9100&hide_resolved=1" for open bugs?
441 lib/Object and llvm-objdump
442 Experimental format independent object file manipulation library.
443 * Supports PE/COFF and ELF.
444 * llvm-nm extended to work with object files. Exactly matches
445 binutils-nm for the files I've tested.
446 * llvm-objdump added with support for disassembly (no relocations displayed).
452 <p>For more information, please see the <a
453 href="http://blog.llvm.org/2010/04/intro-to-llvm-mc-project.html">Intro to the
454 LLVM MC Project Blog Post</a>.
459 <!--=========================================================================-->
461 <a name="codegen">Target Independent Code Generator Improvements</a>
464 <div class="doc_text">
466 <p>We have put a significant amount of work into the code generator
467 infrastructure, which allows us to implement more aggressive algorithms and make
473 <li>The pre-register-allocation (preRA) instruction scheduler models register
474 pressure much more accurately in some cases. This allows the adoption of more
475 aggressive scheduling heuristics.
478 LiveDebugVariables is a new pass that keeps track of debugging information for
479 user variables that are kept in registers in optimized builds.
482 Scheduler now models operand latency and pipeline forwarding.
484 Major regalloc rewrite, not on by default for 2.9 and not advised to use it.
485 * New basic register allocator that can be used as a safe fallback when
486 debugging. Enable with -regalloc=basic.
487 * New infrastructure for live range splitting. SplitKit can break a live
488 interval into smaller pieces while preserving SSA form, and SpillPlacement
489 can help find the best split points. This is a work in progress so the API
491 * The inline spiller has learned to clean up after live range splitting. It
492 can hoist spills out of loops, and it can eliminate redundant spills.
493 Rematerialization works with live range splitting.
494 * New greedy register allocator using live range splitting. This will be the
495 default register allocator in the next LLVM release, but it is not turned on
503 <!--=========================================================================-->
505 <a name="x86">X86-32 and X86-64 Target Improvements</a>
508 <div class="doc_text">
509 <p>New features and major changes in the X86 target include:
514 X86: Reimplemented all of MMX to introduce a new LLVM IR x86_mmx type. Now
515 random types like <2 x i32> are not iseld to mmx without emms. The
516 -disable-mmx flag is gone now.
520 X86 support for FS/GS relative loads and stores using address space 256/257 are
525 X86: Much better codegen for several cases using adc/sbb instead of cmovs for
526 conditional increment and other idioms.
530 The X86 backend has adopted a new preRA scheduling
531 mode, "list-ilp", to shorten the height of instruction schedules
532 without inducing register spills.
535 MC assembler support for 3dNow! and 3DNowA instructions.
537 <li>Several bugs have been fixed for Windows x64 code generator.</li>
542 <!--=========================================================================-->
544 <a name="ARM">ARM Target Improvements</a>
547 <div class="doc_text">
548 <p>New features of the ARM target include:
552 <li>ARM Fast ISel</li>
553 <li>ARM: New code placement pass.</li>
554 <li>ARM: Improved code generation for Cortex-A8 and Cortex-A9 CPUs.</li>
555 <li>ARM: __builtin_prefetch turns into prefetch instructions.</li>
556 <li>Countless ARM microoptimizations.</li>
558 <li> The ARM backend preRA scheduler now models machine resources at cycle
559 granularity. This allows the scheduler to both accurately model
560 instruction latency and avoid overcommitting functional units.</li>
566 <!--=========================================================================-->
568 <a name="OtherTS">Other Target Specific Improvements</a>
571 <div class="doc_text">
573 PPC: Switched to MCInstPrinter, and MCCodeEmitter. Ready to implement support
574 for directly writing out mach-o object files, but noone seems interested.
576 MicroBlaze: major updates for aggressive delay slot filler, MC-based assembly
577 printing, assembly instruction parsing, ELF .o file emission, and MC
578 instruction disassembler.
580 SPARC: Many improvements, including using the Y registers for multiplications
581 and addition of a simple delay slot filler.
586 <!--=========================================================================-->
588 <a name="changes">Major Changes and Removed Features</a>
591 <div class="doc_text">
593 <p>If you're already an LLVM user or developer with out-of-tree changes based
594 on LLVM 2.8, this section lists some "gotchas" that you may run into upgrading
595 from the previous release.</p>
598 last release for llvm-gcc
600 - DIBuilder provides simpler interface for front ends like Clang to encode debug info in LLVM IR.
601 - This interface hides implementation details (e.g. DIDerivedType, existence of compile unit etc..) that any front end should not know about.
602 For example, DIFactory DebugFactory;
603 Ty = DebugFactory.CreateDerivedType(DW_TAG_volatile_type,
604 findRegion(TYPE_CONTEXT(type)),
606 getOrCreateFile(main_input_filename),
608 NodeSizeInBits(type),
609 NodeAlignInBits(type),
614 DbgTy = DBuilder.createQualifiedType(DW_TAG_volatile_type, MainTy);
615 DIFactory is gone now.
622 LoopIndexSplit pass was removed, unmaintained.
623 LiveValues, SimplifyHalfPowrLibCalls, and GEPSplitter were removed.
624 Removed the PartialSpecialization pass, it was unmaintained and buggy.
626 DIFactory removed, use DIBuilder instead.
628 Triple::normalize is new, llvm triples are always stored in normalized form internally.
630 Triple x86_64--mingw64 is obsoleted. Use x86_64--mingw32 instead.
632 PointerTracking has been removed from mainline, moved to ClamAV.
638 <!--=========================================================================-->
640 <a name="api_changes">Internal API Changes</a>
643 <div class="doc_text">
645 <p>In addition, many APIs have changed in this release. Some of the major
646 LLVM API changes are:</p>
650 include/llvm/System merged into include/llvm/Support.
653 APInt API changes, see PR5207.
655 MVT::Flag renamed to MVT::Glue
658 error_code + libsystem + PathV2 changes
659 The system_error header from C++0x was added.
660 * Use if (error_code ec = function()) to check for error conditions
661 from functions which return it.
662 * error_code::message returns a human readable description of the error.
664 PathV1 has been deprecated in favor of PathV2 (sorry I didn't finish
665 this before the release).
666 * No Path class, use a r-value convertible to a twine instead.
667 * Assumes all paths are UTF-8.
673 <!-- *********************************************************************** -->
675 <a name="knownproblems">Known Problems</a>
677 <!-- *********************************************************************** -->
679 <div class="doc_text">
681 <p>This section contains significant known problems with the LLVM system,
682 listed by component. If you run into a problem, please check the <a
683 href="http://llvm.org/bugs/">LLVM bug database</a> and submit a bug if
684 there isn't already one.</p>
688 <!-- ======================================================================= -->
690 <a name="experimental">Experimental features included with this release</a>
693 <div class="doc_text">
695 <p>The following components of this LLVM release are either untested, known to
696 be broken or unreliable, or are in early development. These components should
697 not be relied on, and bugs should not be filed against them, but they may be
698 useful to some people. In particular, if you would like to work on one of these
699 components, please contact us on the <a
700 href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev">LLVMdev list</a>.</p>
703 <li>The Alpha, Blackfin, CellSPU, MicroBlaze, MSP430, MIPS, PTX, SystemZ
704 and XCore backends are experimental.</li>
705 <li><tt>llc</tt> "<tt>-filetype=obj</tt>" is experimental on all targets
706 other than darwin-i386 and darwin-x86_64. FIXME: Not true on ELF anymore?</li>
712 <!-- ======================================================================= -->
714 <a name="x86-be">Known problems with the X86 back-end</a>
717 <div class="doc_text">
720 <li>The X86 backend does not yet support
721 all <a href="http://llvm.org/PR879">inline assembly that uses the X86
722 floating point stack</a>. It supports the 'f' and 't' constraints, but not
724 <li>The X86-64 backend does not yet support the LLVM IR instruction
725 <tt>va_arg</tt>. Currently, front-ends support variadic
726 argument constructs on X86-64 by lowering them manually.</li>
727 <li>Windows x64 (aka Win64) code generator has a few issues.
729 <li>llvm-gcc cannot build the mingw-w64 runtime currently
730 due to lack of support for the 'u' inline assembly
731 constraint and for X87 floating point inline assembly.</li>
732 <li>On mingw-w64, you will see unresolved symbol <tt>__chkstk</tt>
733 due to <a href="http://llvm.org/bugs/show_bug.cgi?id=8919">Bug 8919</a>.
734 It is fixed in <a href="http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20110321/118499.html">r128206</a>.</li>
735 <li>Miss-aligned MOVDQA might crash your program. It is due to
736 <a href="http://llvm.org/bugs/show_bug.cgi?id=9483">Bug 9483</a>,
737 lack of handling aligned internal globals.</li>
745 <!-- ======================================================================= -->
747 <a name="ppc-be">Known problems with the PowerPC back-end</a>
750 <div class="doc_text">
753 <li>The Linux PPC32/ABI support needs testing for the interpreter and static
754 compilation, and lacks support for debug information.</li>
759 <!-- ======================================================================= -->
761 <a name="arm-be">Known problems with the ARM back-end</a>
764 <div class="doc_text">
767 <li>Thumb mode works only on ARMv6 or higher processors. On sub-ARMv6
768 processors, thumb programs can crash or produce wrong
769 results (<a href="http://llvm.org/PR1388">PR1388</a>).</li>
770 <li>Compilation for ARM Linux OABI (old ABI) is supported but not fully tested.
776 <!-- ======================================================================= -->
778 <a name="sparc-be">Known problems with the SPARC back-end</a>
781 <div class="doc_text">
784 <li>The SPARC backend only supports the 32-bit SPARC ABI (-m32); it does not
785 support the 64-bit SPARC ABI (-m64).</li>
790 <!-- ======================================================================= -->
792 <a name="mips-be">Known problems with the MIPS back-end</a>
795 <div class="doc_text">
798 <li>64-bit MIPS targets are not supported yet.</li>
803 <!-- ======================================================================= -->
805 <a name="alpha-be">Known problems with the Alpha back-end</a>
808 <div class="doc_text">
812 <li>On 21164s, some rare FP arithmetic sequences which may trap do not have the
813 appropriate nops inserted to ensure restartability.</li>
818 <!-- ======================================================================= -->
820 <a name="c-be">Known problems with the C back-end</a>
823 <div class="doc_text">
825 <p>The C backend has numerous problems and is not being actively maintained.
826 Depending on it for anything serious is not advised.</p>
829 <li><a href="http://llvm.org/PR802">The C backend has only basic support for
830 inline assembly code</a>.</li>
831 <li><a href="http://llvm.org/PR1658">The C backend violates the ABI of common
832 C++ programs</a>, preventing intermixing between C++ compiled by the CBE and
833 C++ code compiled with <tt>llc</tt> or native compilers.</li>
834 <li>The C backend does not support all exception handling constructs.</li>
835 <li>The C backend does not support arbitrary precision integers.</li>
841 <!-- ======================================================================= -->
843 <a name="llvm-gcc">Known problems with the llvm-gcc front-end</a>
846 <div class="doc_text">
848 <p>llvm-gcc is generally very stable for the C family of languages. The only
849 major language feature of GCC not supported by llvm-gcc is the
850 <tt>__builtin_apply</tt> family of builtins. However, some extensions
851 are only supported on some targets. For example, trampolines are only
852 supported on some targets (these are used when you take the address of a
853 nested function).</p>
855 <p>Fortran support generally works, but there are still several unresolved bugs
856 in <a href="http://llvm.org/bugs/">Bugzilla</a>. Please see the
857 tools/gfortran component for details. Note that llvm-gcc is missing major
858 Fortran performance work in the frontend and library that went into GCC after
859 4.2. If you are interested in Fortran, we recommend that you consider using
860 <a href="#dragonegg">dragonegg</a> instead.</p>
862 <p>The llvm-gcc 4.2 Ada compiler has basic functionality, but is no longer being
863 actively maintained. If you are interested in Ada, we recommend that you
864 consider using <a href="#dragonegg">dragonegg</a> instead.</p>
867 <!-- *********************************************************************** -->
869 <a name="additionalinfo">Additional Information</a>
871 <!-- *********************************************************************** -->
873 <div class="doc_text">
875 <p>A wide variety of additional information is available on the <a
876 href="http://llvm.org">LLVM web page</a>, in particular in the <a
877 href="http://llvm.org/docs/">documentation</a> section. The web page also
878 contains versions of the API documentation which is up-to-date with the
879 Subversion version of the source code.
880 You can access versions of these documents specific to this release by going
881 into the "<tt>llvm/doc/</tt>" directory in the LLVM tree.</p>
883 <p>If you have any questions or comments about LLVM, please feel free to contact
884 us via the <a href="http://llvm.org/docs/#maillist"> mailing
889 <!-- *********************************************************************** -->
893 <a href="http://jigsaw.w3.org/css-validator/check/referer"><img
894 src="http://jigsaw.w3.org/css-validator/images/vcss-blue" alt="Valid CSS"></a>
895 <a href="http://validator.w3.org/check/referer"><img
896 src="http://www.w3.org/Icons/valid-html401-blue" alt="Valid HTML 4.01"></a>
898 <a href="http://llvm.org/">LLVM Compiler Infrastructure</a><br>
899 Last modified: $Date$