* Thread local variables may have a specified TLS model.
* LLVM now has a loop optimizer.
* SROA has been rewritten to be more powerful.
* A new optimization pass added to merge stack objects
which are used in disjoint areas of the code.
* LLVM now merge consecutive loads and stores.
* New TableGen infrastructure to support bundling for
Very Long Instruction Word (VLIW) architectures.
* Added a new target independent VLIW packetizer.
* A probability based block placement and code layout algorithm
was added to LLVM's code generator.
* The ARM target now includes a full featured macro assembler,
including direct-to-object module support for clang.
* A new IR-level pass, called "TargetTransformInfo" provides
a number of low-level interfaces.
- Drop following patches (fixed upstream)
* arm-suse-support.patch
* pr12463.patch
* pr13141.patch
* pr13303.patch
* rewrite-includes.patch
OBS-URL: https://build.opensuse.org/package/show/devel:tools:compiler/llvm?expand=0&rev=166
This adds few fixes, but mostly it updates the rewrite-includes patch. Sadly upstream has decided to rename the option name for whatever reason, so if unchanged 12.2 would be the only clang with the option named this way, causing further problems e.g. with icecream.
So it would be very nice to get this into 12.2. As it is an isolated feature, it should be low-risk.
OBS-URL: https://build.opensuse.org/request/show/127882
OBS-URL: https://build.opensuse.org/package/show/devel:tools:compiler/llvm?expand=0&rev=155
* 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
* IR support for half float
* IR support for vectors of pointers, including vector GEPs.
* Module flags have been introduced.
* Loads can now have range metadata attached to them to
describe the possible values being loaded.
* 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.
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.
X86-32 and X86-64 Target Improvements
* Bug fixes and improved support for AVX1
* Support for AVX2 (still incomplete at this point)
OBS-URL: https://build.opensuse.org/package/show/devel:tools:compiler/llvm?expand=0&rev=133
* First build from 3.0 branch
* -Wc++98-compat warnings for the lexer
* Add flags for the remaining shift related warnings
(-Wshift-count-negative, -Wshift-count-overflow).
* Only warn in -Wliteral-conversion if the conversion
loses information
* Added clang_getCompletionAnnotation and
clang_getCompletionNumAnnotations to retrieve annotations
from completion string.
* Add support for -std=gnu90 and -std=c++03, for compatibility
with modern gcc.
- Switch to tar.bz2 and remove xz dependency
OBS-URL: https://build.opensuse.org/package/show/devel:tools:compiler/llvm?expand=0&rev=70