Path to this page:
Subject: CVS commit: pkgsrc/lang/clang
From: Adam Ciarcinski
Date: 2012-05-23 13:02:41
Message id: 20120523110242.0EC77175DD@cvs.netbsd.org
Log Message:
Changes 3.1:
* Major New Features
- AddressSanitizer, a fast memory error detector.
- MachineInstr Bundles, Support to model instruction bundling / packing.
- ARM Integrated Assembler, A full featured assembler and direct-to-object
support for ARM.
- Basic Block Placement Probability driven basic block placement.
* LLVM IR and Core Improvements
- A new type representing 16 bit half floating point values has been added.
- IR now supports vectors of pointers, including vector GEPs.
- Module flags have been introduced. They convey information about the module
as a whole to LLVM subsystems. This is currently used to encode Objective C
ABI information.
- Loads can now have range metadata attached to them to describe the possible
values being loaded.
- The llvm.ctlz and llvm.cttz intrinsics now have an additional argument which
indicates whether the behavior of the intrinsic is undefined on a zero
input. This can be used to generate more efficient code on platforms that
only have instructions which don't return the type size when counting bits
in 0.
* Optimizer Improvements
- The loop unroll pass now is able to unroll loops with run-time trip counts.
This feature is turned off by default, and is enabled with the
-unroll-runtime flag.
- A new basic-block autovectorization pass is available. Pass -vectorize to
run this pass along with some associated post-vectorization cleanup passes.
For more information, see the EuroLLVM 2012 slides: Autovectorization with
LLVM.
- Inline cost heuristics have been completely overhauled and now closely model
constant propagation through call sites, disregard trivially dead code
costs, and can model C++ STL iterator patterns.
Files: