@@ -378,25 +378,8 @@ faster:
- Exception handling is supported by default on Linux/x86-64.
- Position Independent Code (PIC) is now supported on Linux/x86-64.
-- ...
-
-
-
-
-
-
-
-
New target-specific features include:
-
-
-
-- MIPS floating point support?
-- PowerPC now supports trampolines.
-- ....
+- MIPS floating point support? [BRUNO]
+- The PowerPC backend now supports trampolines.
@@ -413,11 +396,17 @@ faster:
-
If you're already an LLVM user, this section lists some "gotchas" that you
-may run into upgrading from the previous release.
+
If you're already an LLVM user or developer with out-of-tree changes based
+on LLVM 2.3, this section lists some "gotchas" that you may run into upgrading
+from the previous release.
-
The LLVM IR generated by llvm-gcc no longer names all instructions.
- Use the instnamer pass if you want everything named.
+
-- The LoadVN and GCSE passes have been removed.
+- The LLVM IR generated by llvm-gcc no longer names all instructions. This
+ makes it run faster, but may be more confusing to some people. If you
+ prefer to have names, the 'opt -instnamer' pass will add names to
+ all instructions.
+- The LoadVN and GCSE passes have been removed from the tree. They are
+ obsolete and have been replaced with the GVN and MemoryDependence passes.
+
+
-
LLVM API Changes:
+
+
In addition, many APIs have changed in this release. Some of the major LLVM
+API changes are:
-- ... Attributes changes ...
+- Attributes changes [DEVANG]
- The DbgStopPointInst methods getDirectory and
getFileName now return Value* instead of strings. These can be
converted to strings using llvm::GetConstantStringInfo defined via
"llvm/Analysis/ValueTracking.h".
-- API change: BinaryOperator::create -> Create (CmpInst, CastInst too)
+- The APIs to create various instructions have changed from lower case
+ "create" methods to upper case "Create" methods (e.g.
+ BinaryOperator::create). LLVM 2.4 includes both cases, but the
+ lower case ones are removed in mainline, please migrate.
+
- Various header files like "llvm/ADT/iterator" were given a .h suffix.
Change your code to #include "llvm/ADT/iterator.h" instead.