-<li>All uses of <tt>hash_set</tt> and <tt>hash_map</tt> have been removed from
- the LLVM tree and the wrapper headers have been removed.</li>
-<li>The llvm/Streams.h and <tt>DOUT</tt> member of Debug.h have been removed. The
- <tt>llvm::Ostream</tt> class has been completely removed and replaced with
- uses of <tt>raw_ostream</tt>.</li>
-<li>LLVM's global uniquing tables for <tt>Type</tt>s and <tt>Constant</tt>s have
- been privatized into members of an <tt>LLVMContext</tt>. A number of APIs
- now take an <tt>LLVMContext</tt> as a parameter. To smooth the transition
- for clients that will only ever use a single context, the new
- <tt>getGlobalContext()</tt> API can be used to access a default global
- context which can be passed in any and all cases where a context is
- required.
-<li>The <tt>getABITypeSize</tt> methods are now called <tt>getAllocSize</tt>.</li>
-<li>The <tt>Add</tt>, <tt>Sub</tt> and <tt>Mul</tt> operators are no longer
- overloaded for floating-point types. Floating-point addition, subtraction
- and multiplication are now represented with new operators <tt>FAdd</tt>,
- <tt>FSub</tt> and <tt>FMul</tt>. In the <tt>IRBuilder</tt> API,
- <tt>CreateAdd</tt>, <tt>CreateSub</tt>, <tt>CreateMul</tt> and
- <tt>CreateNeg</tt> should only be used for integer arithmetic now;
- <tt>CreateFAdd</tt>, <tt>CreateFSub</tt>, <tt>CreateFMul</tt> and
- <tt>CreateFNeg</tt> should now be used for floating-point arithmetic.</li>
-<li>The <tt>DynamicLibrary</tt> class can no longer be constructed, its functionality has
- moved to static member functions.</li>
-<li><tt>raw_fd_ostream</tt>'s constructor for opening a given filename now
- takes an extra <tt>Force</tt> argument. If <tt>Force</tt> is set to
- <tt>false</tt>, an error will be reported if a file with the given name
- already exists. If <tt>Force</tt> is set to <tt>true</tt>, the file will
- be silently truncated (which is the behavior before this flag was
- added).</li>
-<li><tt>SCEVHandle</tt> no longer exists, because reference counting is no
- longer done for <tt>SCEV*</tt> objects, instead <tt>const SCEV*</tt>
- should be used.</li>
-
-<li>Many APIs, notably <tt>llvm::Value</tt>, now use the <tt>StringRef</tt>
-and <tt>Twine</tt> classes instead of passing <tt>const char*</tt>
-or <tt>std::string</tt>, as described in
-the <a href="ProgrammersManual.html#string_apis">Programmer's Manual</a>. Most
-clients should be unaffected by this transition, unless they are used to
-<tt>Value::getName()</tt> returning a string. Here are some tips on updating to
-2.6:
- <ul>
- <li><tt>getNameStr()</tt> is still available, and matches the old
- behavior. Replacing <tt>getName()</tt> calls with this is an safe option,
- although more efficient alternatives are now possible.</li>
-
- <li>If you were just relying on <tt>getName()</tt> being able to be sent to
- a <tt>std::ostream</tt>, consider migrating
- to <tt>llvm::raw_ostream</tt>.</li>
-
- <li>If you were using <tt>getName().c_str()</tt> to get a <tt>const
- char*</tt> pointer to the name, you can use <tt>getName().data()</tt>.
- Note that this string (as before), may not be the entire name if the
- name contains embedded null characters.</li>
-
- <li>If you were using <tt>operator +</tt> on the result of <tt>getName()</tt> and
- treating the result as an <tt>std::string</tt>, you can either
- use <tt>Twine::str</tt> to get the result as an <tt>std::string</tt>, or
- could move to a <tt>Twine</tt> based design.</li>
-
- <li><tt>isName()</tt> should be replaced with comparison
- against <tt>getName()</tt> (this is now efficient).
- </ul>
-</li>
-
-<li>The registration interfaces for backend Targets has changed (what was
-previously <tt>TargetMachineRegistry</tt>). For backend authors, see the <a
-href="WritingAnLLVMBackend.html#TargetRegistration">Writing An LLVM Backend</a>
-guide. For clients, the notable API changes are:
- <ul>
- <li><tt>TargetMachineRegistry</tt> has been renamed
- to <tt>TargetRegistry</tt>.</li>
-
- <li>Clients should move to using the <tt>TargetRegistry::lookupTarget()</tt>
- function to find targets.</li>
- </ul>
-</li>
+<li><tt>ModuleProvider</tt> has been <a
+href="http://llvm.org/viewvc/llvm-project?view=rev&revision=94686">removed</a>
+and its methods moved to <tt>Module</tt> and <tt>GlobalValue</tt>.
+Most clients can remove uses of <tt>ExistingModuleProvider</tt>,
+replace <tt>getBitcodeModuleProvider</tt> with
+<tt>getLazyBitcodeModule</tt>, and pass their <tt>Module</tt> to
+functions that used to accept <tt>ModuleProvider</tt>. Clients who
+wrote their own <tt>ModuleProvider</tt>s will need to derive from
+<tt>GVMaterializer</tt> instead and use
+<tt>Module::setMaterializer</tt> to attach it to a
+<tt>Module</tt>.</li>
+
+<li><tt>GhostLinkage</tt> has given up the ghost.
+<tt>GlobalValue</tt>s that have not yet been read from their backing
+storage have the same linkage they will have after being read in.
+Clients must replace calls to
+<tt>GlobalValue::hasNotBeenReadFromBitcode</tt> with
+<tt>GlobalValue::isMaterializable</tt>.</li>
+
+<li>FIXME: Debug info has been totally redone. Add pointers to new APIs. Substantial caveats about compatibility of .ll and .bc files.</li>
+
+<li>The <tt>llvm/Support/DataTypes.h</tt> header has moved
+to <tt>llvm/System/DataTypes.h</tt>.</li>
+
+<li>The <tt>isInteger</tt>, <tt>isIntOrIntVector</tt>, <tt>isFloatingPoint</tt>,
+<tt>isFPOrFPVector</tt> and <tt>isFPOrFPVector</tt> methods have been renamed
+<tt>isIntegerTy</tt>, <tt>isIntOrIntVectorTy</tt>, <tt>isFloatingPointTy</tt>,
+<tt>isFPOrFPVectorTy</tt> and <tt>isFPOrFPVectorTy</tt> respectively.</li>