From c5ac61d64ffe91dc0f17ba07f72e8036250176ba Mon Sep 17 00:00:00 2001
From: Chris Lattner
Date: Wed, 6 Apr 2011 05:50:04 +0000
Subject: [PATCH] continue writing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128990 91177308-0d34-0410-b5e6-96231b3b80d8
---
docs/ReleaseNotes.html | 185 +++++++++++++++++++++--------------------
1 file changed, 96 insertions(+), 89 deletions(-)
diff --git a/docs/ReleaseNotes.html b/docs/ReleaseNotes.html
index d17747ef806..5d140258173 100644
--- a/docs/ReleaseNotes.html
+++ b/docs/ReleaseNotes.html
@@ -399,25 +399,21 @@ in this section.
--
- TBAA: On by default in clang. Disable it with -fno-strict-aliasing.
- Could be more aggressive for structs.
+
- Type Based Alias Analysis (TBAA) is now implemented and turned on by default
+ in Clang. This allows substantially better load/store optimization in some
+ cases. TBAA can be disabled by passing -fno-strict-aliasing.
-- New Nvidia PTX backend, not generally useful in 2.9 though.
+- This release has seen a continued focus on quality of debug information.
+ LLVM now generates much higher fidelity debug information, particularly when
+ debugging optimized code.
+
+- Inline assembly now supports multiple alternative constraints.
+
+- A new backend for the NVIDIA PTX virtual ISA (used to target its GPUs) is
+ under rapid development. It is not generally useful in 2.9, but is making
+ rapid progress.
--
-Much better debug info generated, particularly in optimized code situations.
-
-
--
-inline asm multiple alternative constraint support.
-
-
--
- New naming rules in coding standards: CodingStandards.html#ll_naming
-
-
@@ -432,13 +428,19 @@ inline asm multiple alternative constraint support.
expose new optimization opportunities:
-- udiv, ashr, lshr, shl now have exact and nuw/nsw bits:
- PR8862 / LangRef.html
+- The udiv, ashr, lshr, and shl
+ instructions now have support exact and nuw/nsw bits to indicate that they
+ don't overflow or shift out bits. This is useful for optimization of pointer differences and other cases.
- unnamed_addr + PR8927
-
- new 'hotpatch' attribute: LangRef.html#fnattrs
-
+- LLVM IR now supports the unnamed_addr
+ attribute to indicate that constant global variables with identical
+ initializers can be merged. This fixed an
+ issue where LLVM would incorrectly merge two globals which were supposed
+ to have distinct addresses.
+
+- The new hotpatch attribute has been added
+ to allow runtime patching of functions.
@@ -454,53 +456,61 @@ expose new optimization opportunities:
release includes a few major enhancements and additions to the optimizers:
-
-
@@ -516,46 +526,37 @@ and a number of other related areas that CPU instruction-set level tools work
in.
- - MC is now used by default for ELF systems on x86 and
- x86-64.
- - MC supports and CodeGen uses the .loc directives for
- producing line number debug info. This produces more compact line
- tables.
- - MC supports the .cfi_* directives for producing DWARF
+
- ELF MC support has matured enough for the integrated assembler to be turned
+ on by default in Clang on X86-32 and X86-64 ELF systems.
+
+- MC supports and CodeGen uses the .file and .loc directives
+ for producing line number debug info. This produces more compact line
+ tables and easier to read .s files.
+
+- MC supports the .cfi_* directives for producing DWARF
frame information, but it is still not used by CodeGen by default.
- - COFF support?
+
-
- MC Assembler: X86 now generates much better diagnostics for common errors,
+- The MC assembler now generates much better diagnostics for common errors,
is much faster at matching instructions, is much more bug-compatible with
the GAS assembler, and is now generally useful for a broad range of X86
- assembly.
+ assembly.
+- We now have some basic internals
+ documentation for MC.
- ELF MC support: on by default in clang. There are still known missing features
- for human written assembly.
+- .td files can now specify assembler aliases directly with the MnemonicAlias and InstAlias
+ tblgen classes.
+- LLVM now has an experimental format-independent object file manipulation
+ library (lib/Object). It supports both PE/COFF and ELF. The llvm-nm tool has
+ been extended to work with native object files, and the new llvm-objdump tool
+ supports disassembly of object files (but no relocations are displayed yet).
+
- Some basic internals documentation for MC.
-
- MC Assembler support for .file and .loc.
-
- tblgen support for assembler aliases: MnemonicAlias and InstAlias
-
- Win32 PE-COFF support in the MC assembler has made a lot of progress in the 2.9
- timeframe, but is still not generally useful. Please see
- "http://llvm.org/bugs/showdependencytree.cgi?id=9100&hide_resolved=1" for open bugs?
-
-
- lib/Object and llvm-objdump
- Experimental format independent object file manipulation library.
- * Supports PE/COFF and ELF.
- * llvm-nm extended to work with object files. Exactly matches
- binutils-nm for the files I've tested.
- * llvm-objdump added with support for disassembly (no relocations displayed).
-
-
+- Win32 PE-COFF support in the MC assembler has made a lot of progress in the
+ 2.9 timeframe, but is still not generally useful.
@@ -707,6 +708,12 @@ from the previous release.
last release for llvm-gcc
+ -
+ New naming rules in coding standards: CodingStandards.html#ll_naming
+
+
+
+
- DIBuilder provides simpler interface for front ends like Clang to encode debug info in LLVM IR.
- This interface hides implementation details (e.g. DIDerivedType, existence of compile unit etc..) that any front end should not know about.
For example, DIFactory DebugFactory;