Age | Commit message (Collapse) | Author | Files | Lines |
|
...so that we don't insist on -mno-pltseq on older NetBSD.
|
|
|
|
And reflect the rough release when GCC went past 7.
|
|
Fixes build on NetBSD/macppc 8.0, where we end up with pkgsrc gcc7.
NetBSD 9.0 has gcc 7.4 in-tree, so is also missing -mno-pltseq.
On non-NetBSD powerpc platforms, for now just insist on -mno-pltseq,
i.e. a gcc at least newer than 7 (untested).
|
|
* Enable the experimental targets for faster architectures only.
And bump PKGREVISION.
* Add some helper for PLIST generation.
|
|
|
|
GCC 7 is the lowest common denominator for the parts needed to get Firefox
build going again on NetBSD 8.
|
|
|
|
|
|
Updated in wip by @wiz and myself.
14.0.6
-This release is a bug-fix release and is API and ABI compatible with 14.0.0.
This release fixes a bug that was introduced in 14.0.5.
This will likely be the last 14.0.x release.
14.0.5
-This release is a bug-fix release and is API and ABI compatible with 14.0.0.
Note that we have adopted a new release schedule for the project, so there
will be a new bug-fix release (14.0.x) every 2 weeks.
14.0.5 is the last planned release, but we may do a 14.0.6 release if there
are critical issues found in 14.0.5.
14.0.4
-This release is a bug-fix release and is API and ABI compatible with 14.0.0.
14.0.0
Changes to the LLVM IR
Using the legacy pass manager for the optimization pipeline is deprecated
and will be removed after LLVM 14. In the meantime, only minimal effort will
be made to maintain the legacy pass manager for the optimization pipeline.
Max allowed integer type was reduced from 2^24-1 bits to 2^23 bits.
Max allowed alignment was increased from 2^29 to 2^32.
Changes to building LLVM
Building LLVM with Visual Studio now requires version 2019 or later.
Changes to the AArch64 Backend
Added support for the Armv9-A, Armv9.1-A and Armv9.2-A architectures.
The compiler now recognises the “tune-cpu” function attribute to support
the use of the -mtune frontend flag. This allows certain scheduling features
and optimisations to be enabled independently of the architecture.
If the “tune-cpu” attribute is absent it tunes according to the
“target-cpu”.
Fixed relocations against temporary symbols (e.g. in jump tables and
constant pools) in large COFF object files.
Auto-vectorization now targets SVE by default when available.
Changes to the ARM Backend
Added support for the Armv9-A, Armv9.1-A and Armv9.2-A architectures.
Added support for the Armv8.1-M PACBTI-M extension.
Changed the assembly comment string for MSVC targets to @ (consistent with
the MinGW and ELF targets), freeing up ; to be used as statement separator.
Changes to the PowerPC Target
Linux improvements:
Provided a number of builtins for compatibility with the XL compiler.
Allow MMA builtin types in pre-P10 compilation units.
Add support for Return Oriented Programming (ROP) protection for 32 bit.
Refactored code to use more inclusive language.
Switched to LLD as the default linker for pre-built Linux binaries.
Enabled IEEE quad long double on Linux via PPC_LINUX_DEFAULT_IEEELONGDOUBLE
in cmake config.
Added __ibm128 type to represent IBM double-double format, also
available as __attribute__((mode(IF))).
-mfloat128 can now be used in Linux subtargets with VSX enabled.
Added quadword atomic load/store support in codegen; not enabled by default.
Codegen improvements for splat load, byval parameter, stack lowering, etc.
Implemented P10 instruction scheduling model.
Implemented P10 instruction fusion pairs.
Improved handling of #pragma clang loop unroll_and_jam.
Various bug fixes.
AIX Support/improvements:
Variadic (ellipsis) functions with C complex types are now supported.
Added toc-data support for AIX 64-bit.
Added toc-data support for read-only globals.
Updated default target on AIX from pwr4 to pwr7.
AIX 64-bit code generation now uses fast-isel for O0.
Added DWARF support for 32-bit XCOFF.
Changes to the RISC-V Target
Codegen improvements for RV64 around the selection of addw/subw/mulw/slliw
instructions and removal of redundant sext.w instructions (using the new
RISCVSExtWRemoval pass).
The various RISC-V vector extensions were updated to version 1.0 and are no
longer experimental.
The Zba, Zbb, Zbc, and Zbs bit-manipulation extensions were updated to
version 1.0 and are no longer experimental.
Added MC layer support for the ratified scalar cryptography extensions.
The Zfh and Zfhmin extensions for half-precision floating point were updated
to version 1.0 and are no longer experimental.
Added support for the .insn directive.
Various improvements to immediate materialisation, including when
bit-manipulation extensions are enabled. Additionally, the constant pool is
now used for large integers.
Added support for constrained FP intrinsics for scalar types.
Added support for CSRs introduced in the Sscofpmf, Smstateen, and Sstc
extensions.
The experimental ‘Zbproposedc’ extension was removed, as was the ‘B’
extension (including all bit-manipulation sub-extensions). Individual ‘Zb*’
extensions should be used instead.
Changes to the X86 Target
Support for AVX512-FP16 instructions has been added.
Removed incomplete support for Intel MPX. (D111517)
Changes to the AMDGPU Target
Changes to the Windows Target
Changed how the .pdata sections refer to the code they’re describing, to
avoid conflicting unwind info if weak symbols are overridden.
Fixed code generation for calling support routines for converting 128 bit
integers from/to floats on x86_64.
The preferred path separator form (backslashes or forward slashes) can be
configured in Windows builds of LLVM now, with the
LLVM_WINDOWS_PREFER_FORWARD_SLASH CMake option. This defaults to true in
MinGW builds of LLVM.
Set proper COFF symbol types for function aliases (e.g. for Itanium C++
constructors), making sure that GNU ld exports all of them correctly as
functions, not data, when linking a DLL.
Handling of temporary files on more uncommon file systems (network mounts,
ramdisks) on Windows is fixed now (which previously either errored out or
left stray files behind).
Changes to the C API
LLVMSetInstDebugLocation has been deprecated in favor of the more general
LLVMAddMetadataToInst.
Fixed building LLVM-C.dll for i386 targets with MSVC, which had been broken
since the LLVM 8.0.0 release.
Changes to the LLVM tools
llvm-cov: -name-allowlist is now accepted in addition to -name-whitelist.
-name-whitelist is marked as deprecated and to be removed in future
releases.
llvm-ar now supports --thin for creating a thin archive. The modifier T has
a different meaning in some ar implementations. (D116979)
llvm-ar now supports reading big archives for XCOFF. (D111889)
llvm-nm now demangles Rust symbols. (D111937)
llvm-objcopy’s ELF port now avoids reordering section headers to preserve
st_shndx fields of dynamic symbols. (D107653)
llvm-objcopy now supports --update-section for ELF and Mach-O. (D112116)
(D117281)
llvm-objcopy now supports --subsystem for PE/COFF. (D116556)
llvm-objcopy now supports mips64le relocations for ELF. (D115635)
llvm-objcopy --rename-section now renames relocation sections together with
their targets. (D110352)
llvm-objdump --symbolize-operands now supports PowerPC. (D114492)
llvm-objdump -p now dumps PE header. (D113356)
llvm-objdump -R now supports ELF position-dependent executables. (D110595)
llvm-objdump -T now prints symbol versions. (D108097)
llvm-readobj: Improved printing of symbols in Windows unwind data.
llvm-readobj now supports --elf-output-style=JSON for JSON output and
--pretty-print for pretty printing of this output. (D114225)
llvm-readobj now supports several dump styles (--needed-libs, --relocs,
--syms) for XCOFF.
llvm-symbolizer now supports –debuginfod. (D113717)
llvm-cov now accepts “allowlist” spelling for -name-allowlist.
llvm-nm now supports XCOFF object files.
Added --needed-libs, aux header, and symbols support in llvm-readobj.
Added --symbolize-operands support in llvm-objdump.
Tools that read archive files now support reading AIX big format archive
files.
Added dump section support in obj2yaml.
Added yaml2obj support for 64-bit XCOFF.
Changes to LLDB
A change in Clang’s type printing has changed the way LLDB names array types
(from int [N] to int[N]) - LLDB pretty printer type name matching code may
need to be updated to handle this.
The following commands now ignore non-address bits (e.g. AArch64 pointer
signatures) in address arguments. In addition, non-address bits will not be
shown in the output of the commands.
memory find
memory read
memory region (see below)
memory tag read
memory tag write
The memory region command and GetMemoryRegionInfo API method now ignore
non-address bits in the address parameter. This also means that on systems
with non-address bits the last (usually unmapped) memory region will not
extend to 0xF…F. Instead it will end at the end of the mappable range that
the virtual address size allows.
The memory read command has a new option --show-tags. Use this option to
show memory tags beside the contents of tagged memory ranges.
Fixed continuing from breakpoints and singlestepping on Windows on ARM/ARM64.
LLDB has been included in Windows on ARM64 binary release with Python
support disabled.
Changes to BOLT
BOLT project is added to the LLVM monorepo. BOLT is a post-link optimizer
developed to speed up large applications. Build and usage instructions are
given in README.
Additional Information
A wide variety of additional information is available on the LLVM web page, in
particular in the documentation section. The web page also contains versions of
the API documentation which is up-to-date with the Git version of the source
code. You can access versions of these documents specific to this release by
going into the llvm/docs/ directory in the LLVM tree.
If you have any questions or comments about LLVM, please feel free to contact
us via the mailing lists.
|
|
|
|
|
|
|
|
When both lang/llvm and lang/clang are built with the z3 option enabled,
the Z3 constraint solver is activated for the Clang static analyzer.
This option is not enabled by default.
|
|
|
|
|
|
13.0.1:
Bug-fix release.
|
|
|
|
PKGSRC_LLVM_PTHREADLIB. LLVM insists on 64-bit atomics, and
on NetBSD/powerpc we don't have that natively, so have to rely
on -latomic from gcc. This library is linked with -lpthread, so
the cmake logic to detect whether -lpthread is included in the C
library says "yes", leading to later breakage when clang is being
built. On NetBSD, set PKGSRC_LLVM_PTHREADLIB to -lpthread.
OK'ed by wiz@,
bump PKGREVISION.
|
|
|
|
For PR pkg 56522 by John Klos.
|
|
Tested on NetBSD-current and 9.1/amd64.
Also update packages tightly coupled to llvm, if new versions are
available.
Mark creduce, include-what-you-use, and zig broken (waiting for a
new release).
Changes:
Non-comprehensive list of changes in this release
Windows Control-flow Enforcement Technology: the -ehcontguard
option now emits valid unwind entrypoints which are validated
when the context is being set during exception handling.
Flang is now included in the binary packages released by LLVM.
The debuginfo-test project has been renamed cross-project-tests
and is now intended for testing components from multiple
projects, not just debug information. The new “cross-project-tests”
name replaces “debuginfo-test” in LLVM_ENABLE_PROJECTS, and a
new check-cross-project-tests target has been added for running
all tests in the project. The pre-existing check-debuginfo-
test target remains for running just the debug information
tests. (D95339 and D96513)
Changes to the LLVM IR
The inalloca attribute now has a mandatory type field, similar
to byval and sret.
The opaque pointer type ptr has been introduced. It is still
in the process of being worked on and should not be used yet.
Using the legacy pass manager for the optimization pipeline is
deprecated and will be removed after LLVM 14. In the meantime,
only minimal effort will be made to maintain the legacy pass
manager for the optimization pipeline.
Changes to building LLVM
The build system now supports building multiple distributions,
so that you can e.g. have one distribution containing just
tools and another for libraries (to enable development). See
Multi-distribution configurations for details.
Changes to the AArch64 Backend
Introduced assembly support for Armv9-A’s Realm Management
Extension (RME) and Scalable Matrix Extension (SME).
Produce proper cross-section relative relocations on COFF
Fixed the calling convention on Windows for variadic functions
involving floats in the fixed arguments
Changes to the ARM Backend
Produce proper cross-section relative relocations on COFF
Changes to the Hexagon Target
The Hexagon target now supports V68/HVX ISA.
Changes to the C API
The C API functions LLVMGetAlignment and LLVMSetAlignment now
allow changing alignment on atomicrmw and cmpxchg instructions
A new entry LLVMDIArgListMetadataKind was added to the
LLVMMetadataKind enum, representing DIArgLists (D88175)
Type attributes have been added to LLVM-C, introducing
LLVMCreateTypeAttribute, LLVMGetTypeAttributeValue and
LLVMIsTypeAttribute. (D977763’)
The LTO_API_VERSION was bumped to 28, introducing a new function
lto_set_debug_options for parsing LTO debug options (D92611)
LLVMJITTargetSymbolFlags was renamed to LLVMJITSymbolTargetFlags
(rG8d718a0bff73af066675a6258c01307937c33cf9)
The C API received support for creating custom ORCv2
MaterializationUnits and APIs to retrieve an LLJIT instance’s
linking layers. An ABI breaking change for LLVMOrcAbsoluteSymbols
was introduced to make it consistent with
LLVMOrcCreateCustomMaterializationUnit.
(rGc8fc5e3ba942057d6c4cdcd1faeae69a28e7b671)
The C API received support for adding ORCv2 object buffers
directly to an object layer.
(rG7b73cd684a8d5fb44d34064200f10e2723085c33)
A breaking change to LLVMGetInlineAsm was introduced, adding
a ninth argument LLVMBool CanThrow (D95745)
The C API received support for calling into the new pass manager.
(D102136)
The C API function LLVMIntrinsicCopyOverloadedName has been
deprecated. Please migrate to LLVMIntrinsicCopyOverloadedName2
which takes an extra module argument and which also handles
unnamed types. (D99173)
The C API received support for dumping objects from ORCv2
(rGcec8e69f01c3374cb38c6683058381b96fab8f89)
A breaking change to LLVMOrcObjectTransformLayerTransformFunction
was introduced, changing the order of the function pointer’s
arguments. (rG8962c68ad007a525f9daa987c99eda57e0d0069a)
The C API received support for accessing utilities from the
LLJIT IRTransformLayer and ThreadSafeModule classes. (D103855)
The C API received support for creating lazy-export
MaterializationUnits (D104672)
The C API function LLVMPassBuilderOptionsSetCoroutines was
removed because couroutine passes have been enabled by default.
(D105877)
comdat noduplicates was renamed to comdat nodeduplicate and as
a result, LLVMNoDuplicatesComdatSelectionKind was renamed to
LLVMNoDeduplicateComdatSelectionKind. (D106319)
Changes to the FastISel infrastructure
FastISel no longer tracks killed registers, and instead leaves
this to the register allocator. This means that hasTrivialKill()
is removed, as well as the OpNIsKill parameters to the fastEmit_*()
family of functions.
Changes to the LLVM tools
The options --build-id-link-{dir,input,output} have been deleted.
(D96310)
Support for in-order processors has been added to llvm-mca.
(D94928)
llvm-objdump supports -M {att,intel} now. --x86-asm-syntax is
a deprecated internal option which will be removed in LLVM
14.0.0. (D101695)
The llvm-readobj short aliases -s (previously --sections) and
-t (previously --syms) have been changed to --syms and
--section-details respectively, to match llvm-readelf. (D105055)
The llvm-nm short aliases -M (--print-armap), -U (--defined-only),
and -W (--no-weak) are now deprecated. Use the long form versions
instead. The alias --just-symbol-name is now deprecated in
favor of --format=just-symbols and -j. (D105330)
In lli the default JIT engine switched from MCJIT (-jit-kind=mcjit)
to ORC (-jit-kind=orc). (D98931)
llvm-rc got support for invoking Clang to preprocess its input.
(D100755)
llvm-rc got a GNU windres compatible frontend, llvm-windres.
(D100756)
llvm-ml has improved compatibility with MS ml.exe, managing to
assemble more asm files.
Changes to LLDB
LLDB executable is now included in pre-built LLVM binaries.
LLDB now includes full featured support for AArch64 SVE register
access.
LLDB now supports AArch64 Pointer Authentication, allowing
stack unwind with signed return address.
LLDB now supports debugging programs on AArch64 Linux that use
memory tagging (MTE).
Added memory tag read and memory tag write commands.
The memory region command will note when a region has memory
tagging enabled.
Synchronous and asynchronous tag faults are recognised.
Synchronous tag faults have memory tag annotations in addition
to the usual fault address.
|
|
All checksums have been double-checked against existing RMD160 and
SHA512 hashes
The following distfiles could not be fetched (possibly fetched
conditionally?):
./lang/rust-bin/distinfo rust-bin-1.54.0/rust-1.54.0-aarch64-unknown-linux-gnu.tar.gz
./lang/rust-bin/distinfo rust-bin-1.54.0/rust-1.54.0-aarch64-unknown-linux-musl.tar.gz
./lang/rust-bin/distinfo rust-bin-1.54.0/rust-1.54.0-aarch64-unknown-netbsd.tar.gz
./lang/rust-bin/distinfo rust-bin-1.54.0/rust-1.54.0-armv7-unknown-netbsd-eabihf.tar.gz
./lang/rust-bin/distinfo rust-bin-1.54.0/rust-1.54.0-i686-unknown-linux-gnu.tar.gz
./lang/rust-bin/distinfo rust-bin-1.54.0/rust-1.54.0-powerpc-unknown-netbsd90.tar.gz
./lang/rust-bin/distinfo rust-bin-1.54.0/rust-1.54.0-sparc64-unknown-netbsd.tar.gz
./lang/rust-bin/distinfo rust-bin-1.54.0/rust-1.54.0-x86_64-apple-darwin.tar.gz
./lang/rust-bin/distinfo rust-bin-1.54.0/rust-1.54.0-x86_64-unknown-freebsd.tar.gz
./lang/rust-bin/distinfo rust-bin-1.54.0/rust-1.54.0-x86_64-unknown-linux-gnu.tar.gz
./lang/rust-bin/distinfo rust-bin-1.54.0/rust-1.54.0-x86_64-unknown-linux-musl.tar.gz
./lang/smlnj/distinfo smlnj-110.73/boot.ppc-unix.tgz
./lang/smlnj/distinfo smlnj-110.73/boot.sparc-unix.tgz
./lang/oracle-jre8/distinfo jce_policy-8.zip
./lang/oracle-jre8/distinfo jre-8u202-linux-i586.tar.gz
./lang/oracle-jre8/distinfo jre-8u202-linux-x64.tar.gz
./lang/oracle-jre8/distinfo jre-8u202-macosx-x64.tar.gz
./lang/oracle-jre8/distinfo jre-8u202-solaris-x64.tar.gz
./lang/oracle-jdk8/distinfo jdk-8u202-linux-i586.tar.gz
./lang/oracle-jdk8/distinfo jdk-8u202-linux-x64.tar.gz
./lang/oracle-jdk8/distinfo jdk-8u202-solaris-x64.tar.gz
./lang/ghc80/distinfo ghc-7.10.3-boot-x86_64-unknown-solaris2.tar.xz
./lang/ghc80/distinfo ghc-8.0.2-boot-i386-unknown-freebsd.tar.xz
./lang/ghc80/distinfo ghc-8.0.2-boot-x86_64-unknown-freebsd.tar.xz
./lang/gcc5-aux/distinfo ada-bootstrap.i386.freebsd.100B.tar.bz2
./lang/gcc5-aux/distinfo ada-bootstrap.i386.freebsd.84.tar.bz2
./lang/gcc5-aux/distinfo ada-bootstrap.x86_64.dragonfly.41.tar.bz2
./lang/gcc5-aux/distinfo ada-bootstrap.x86_64.freebsd.100B.tar.bz2
./lang/gcc5-aux/distinfo ada-bootstrap.x86_64.freebsd.84.tar.bz2
./lang/gcc5-aux/distinfo ada-bootstrap.x86_64.solaris.511.tar.bz2
./lang/rust/distinfo rust-1.53.0-aarch64-apple-darwin.tar.gz
./lang/rust/distinfo rust-1.53.0-aarch64-unknown-linux-gnu.tar.gz
./lang/rust/distinfo rust-1.53.0-aarch64-unknown-netbsd.tar.gz
./lang/rust/distinfo rust-1.53.0-aarch64_be-unknown-netbsd.tar.gz
./lang/rust/distinfo rust-1.53.0-arm-unknown-linux-gnueabihf.tar.gz
./lang/rust/distinfo rust-1.53.0-armv7-unknown-linux-gnueabihf.tar.gz
./lang/rust/distinfo rust-1.53.0-i686-unknown-linux-gnu.tar.gz
./lang/rust/distinfo rust-1.53.0-powerpc-unknown-netbsd.tar.gz
./lang/rust/distinfo rust-1.53.0-powerpc-unknown-netbsd90.tar.gz
./lang/rust/distinfo rust-1.53.0-sparc64-unknown-netbsd.tar.gz
./lang/rust/distinfo rust-1.53.0-x86_64-apple-darwin.tar.gz
./lang/rust/distinfo rust-1.53.0-x86_64-unknown-freebsd.tar.gz
./lang/rust/distinfo rust-1.53.0-x86_64-unknown-illumos.tar.gz
./lang/rust/distinfo rust-1.53.0-x86_64-unknown-linux-gnu.tar.gz
./lang/rust/distinfo rust-std-1.53.0-aarch64-apple-darwin.tar.gz
./lang/rust/distinfo rust-std-1.53.0-aarch64-unknown-linux-gnu.tar.gz
./lang/rust/distinfo rust-std-1.53.0-aarch64-unknown-netbsd.tar.gz
./lang/rust/distinfo rust-std-1.53.0-aarch64_be-unknown-netbsd.tar.gz
./lang/rust/distinfo rust-std-1.53.0-arm-unknown-linux-gnueabihf.tar.gz
./lang/rust/distinfo rust-std-1.53.0-armv7-unknown-linux-gnueabihf.tar.gz
./lang/rust/distinfo rust-std-1.53.0-i686-unknown-linux-gnu.tar.gz
./lang/rust/distinfo rust-std-1.53.0-powerpc-unknown-netbsd.tar.gz
./lang/rust/distinfo rust-std-1.53.0-powerpc-unknown-netbsd90.tar.gz
./lang/rust/distinfo rust-std-1.53.0-sparc64-unknown-netbsd.tar.gz
./lang/rust/distinfo rust-std-1.53.0-x86_64-apple-darwin.tar.gz
./lang/rust/distinfo rust-std-1.53.0-x86_64-unknown-freebsd.tar.gz
./lang/rust/distinfo rust-std-1.53.0-x86_64-unknown-linux-gnu.tar.gz
./lang/smlnj11072/distinfo smlnj-110.72/boot.ppc-unix.tgz
./lang/smlnj11072/distinfo smlnj-110.72/boot.sparc-unix.tgz
./lang/ghc84/distinfo ghc-8.0.2-boot-x86_64-unknown-solaris2.tar.xz
./lang/ghc84/distinfo ghc-8.4.4-boot-i386-unknown-freebsd.tar.xz
./lang/ghc84/distinfo ghc-8.4.4-boot-x86_64-apple-darwin.tar.xz
./lang/ghc84/distinfo ghc-8.4.4-boot-x86_64-unknown-freebsd.tar.xz
./lang/ghc7/distinfo ghc-7.10.3-boot-i386-unknown-freebsd.tar.xz
./lang/ghc7/distinfo ghc-7.6.3-boot-i386-unknown-solaris2.tar.xz
./lang/ghc7/distinfo ghc-7.6.3-boot-powerpc-apple-darwin.tar.xz
./lang/ghc7/distinfo ghc-7.6.3-boot-x86_64-unknown-solaris2.tar.xz
./lang/ghc90/distinfo ghc-8.10.4-boot-x86_64-unknown-solaris2.tar.xz
./lang/ghc90/distinfo ghc-9.0.1-boot-aarch64-unknown-netbsd.tar.xz
./lang/ghc90/distinfo ghc-9.0.1-boot-i386-unknown-freebsd.tar.xz
./lang/ghc90/distinfo ghc-9.0.1-boot-x86_64-apple-darwin.tar.xz
./lang/ghc90/distinfo ghc-9.0.1-boot-x86_64-unknown-freebsd.tar.xz
./lang/openjdk8/distinfo openjdk7/bootstrap-jdk-1.7.76-freebsd-10-amd64-20150301.tar.xz
./lang/openjdk8/distinfo openjdk7/bootstrap-jdk-1.7.76-netbsd-7-sparc64-20150301.tar.xz
./lang/openjdk8/distinfo openjdk7/bootstrap-jdk-1.8.181-netbsd-8-aarch64-20180917.tar.xz
./lang/openjdk8/distinfo openjdk7/bootstrap-jdk7u60-bin-dragonfly-3.6-amd64-20140719.tar.bz2
./lang/openjdk8/distinfo openjdk7/bootstrap-jdk7u60-bin-dragonfly-3.8-amd64-20140719.tar.bz2
./lang/go-bin/distinfo go1.14.2.darwin-amd64.tar.gz
./lang/go-bin/distinfo go1.14.2.linux-386.tar.gz
./lang/go-bin/distinfo go1.14.2.linux-amd64.tar.gz
./lang/go-bin/distinfo go1.14.2.linux-arm64.tar.gz
./lang/go-bin/distinfo go1.14.2.linux-armv6l.tar.gz
./lang/go-bin/distinfo go1.14.2.netbsd-arm64.tar.gz
./lang/go-bin/distinfo go1.16beta1.darwin-arm64.tar.gz
./lang/gcc6-aux/distinfo ada-bootstrap.i386.freebsd.100B.tar.bz2
./lang/gcc6-aux/distinfo ada-bootstrap.x86_64.dragonfly.41.tar.bz2
./lang/gcc6-aux/distinfo ada-bootstrap.x86_64.freebsd.100B.tar.bz2
./lang/gcc6-aux/distinfo ada-bootstrap.x86_64.freebsd.84.tar.bz2
./lang/gcc6-aux/distinfo ada-bootstrap.x86_64.solaris.511.tar.bz2
./lang/ghc810/distinfo ghc-8.8.4-boot-x86_64-unknown-solaris2.tar.xz
./lang/sun-jre7/distinfo UnlimitedJCEPolicyJDK7.zip
./lang/sun-jre7/distinfo jre-7u80-linux-x64.tar.gz
./lang/sun-jre7/distinfo jre-7u80-solaris-i586.tar.gz
./lang/sun-jre7/distinfo jre-7u80-solaris-x64.tar.gz
./lang/ghc88/distinfo ghc-8.4.4-boot-i386-unknown-freebsd.tar.xz
./lang/ghc88/distinfo ghc-8.4.4-boot-x86_64-apple-darwin.tar.xz
./lang/ghc88/distinfo ghc-8.4.4-boot-x86_64-unknown-freebsd.tar.xz
./lang/ghc88/distinfo ghc-8.4.4-boot-x86_64-unknown-solaris2.tar.xz
./lang/gcc-aux/distinfo ada-bootstrap.i386.dragonfly.36A.tar.bz2
./lang/gcc-aux/distinfo ada-bootstrap.i386.freebsd.100B.tar.bz2
./lang/gcc-aux/distinfo ada-bootstrap.i386.freebsd.84.tar.bz2
./lang/gcc-aux/distinfo ada-bootstrap.x86_64.dragonfly.36A.tar.bz2
./lang/gcc-aux/distinfo ada-bootstrap.x86_64.freebsd.100B.tar.bz2
./lang/gcc-aux/distinfo ada-bootstrap.x86_64.freebsd.84.tar.bz2
./lang/gcc-aux/distinfo ada-bootstrap.x86_64.solaris.511.tar.bz2
./lang/gcc6/distinfo ecj-4.5.jar
./lang/openjdk11/distinfo bootstrap-jdk-1.11.0.7.10-netbsd-9-aarch64-20200509.tar.xz
./lang/sun-jdk7/distinfo jdk-7u80-linux-x64.tar.gz
./lang/sun-jdk7/distinfo jdk-7u80-solaris-i586.tar.gz
./lang/sun-jdk7/distinfo jdk-7u80-solaris-x64.tar.gz
|
|
|
|
|
|
Compiler options/fixes pertaining to the host compiler should not depend on
the target selection.
|
|
|
|
12.0.1:
Non-comprehensive list of changes in this release
The ConstantPropagation pass was removed. Users should use the InstSimplify pass instead.
Changes to the LLVM IR
Added the byref attribute to better represent argument passing for the amdgpu_kernel calling convention.
Added type parameter to the sret attribute to continue work on removing pointer element types.
The llvm.experimental.vector.reduce family of intrinsics have been renamed to drop the “experimental” from the name, reflecting their now fully supported status in the IR.
Changes to building LLVM
The internal llvm-build Python script and the associated LLVMBuild.txt files used to describe the LLVM component structure have been removed and replaced by a pure CMake approach, where each component stores extra properties in the created targets. These properties are processed once all components are defined to resolve library dependencies and produce the header expected by llvm-config.
Changes to TableGen
The new “TableGen Programmer’s Reference” replaces the “TableGen Language Introduction” and “TableGen Language Reference” documents.
The syntax for specifying an integer range in a range list has changed. The old syntax used a hyphen in the range (e.g., {0-9}). The new syntax uses the “…” range punctuation (e.g., {0...9}). The hyphen syntax is deprecated.
Changes to the AArch64 Backend
Lots of improvements to generation of Windows unwind data; the unwind data is optimized and written in packed form where possible, reducing the size of unwind data (pdata and xdata sections) by around 60% compared with LLVM 11. The generation of prologs/epilogs is tweaked when targeting Windows, to increase the chances of being able to use the packed unwind info format.
Support for creating Windows unwind data using .seh_* assembler directives.
Produce proper assembly output for the Windows target, including :lo12: relocation specifiers, to allow the assembly output to actually be assembled.
Changed the assembly comment string for MSVC targets to // (consistent with the MinGW and ELF targets), freeing up ; to be used as statement separator.
Changes to the ARM Backend
Changes to the MIPS Target
Changes to the PowerPC Target
Optimization:
Made improvements to loop unroll-and-jam including fix to respect user provided #pragma unroll-and-jam for loops on targets other than ARM.
Improved PartialInliner allowing it to handle code regions in a switch statements.
Improved PGO support on AIX by building and linking with compiler-rt profile library.
Add support for Epilogue Vectorization and enabled it by default.
CodeGen:
POWER10 support * Implementation of PC Relative addressing in LLD including the associated
linker optimizations.
Add support for the new matrix multiplication (MMA) instructions to Clang and LLVM.
Implementation of Power10 builtins.
Scheduling enhancements * Add a new algorithm to cluster more loads/stores if the DAG is not too
complicated.
Enable the PowerPC scheduling heuristic for Power10.
Target dependent passes tuning * Enhance LoopStrengthReduce/PPCLoopInstrFormPrep pass for PowerPC,
especially for P10 intrinsics.
Enhance machine combiner pass to reduce register pressure for PowerPC.
Improve MachineSink to do more sinking based on register pressure and alias analysis.
General improvements * Complete the constrained floating point operations support. * Improve the llvm-exegesis support. * Improve the stack clash protection to probe the gap between stackptr and
realigned stackptr.
Improve the IEEE long double support for Power8.
Enable MemorySSA for LoopSink.
Enhance LLVM debugging functionality via options such as -print-changed and -print-before-changed.
Add builtins for Power9 (i.e. darn, xvtdiv, xvtsqrt etc).
Add options to disable all or part of LoopIdiomRecognizePass.
Add support for printing the DDG in DOT form allowing for visual inspection of the Data Dependence Graph.
Remove the QPX support.
Significant number of bug fixes including all the fixes necessary to achieve a clean test run for Julia.
AIX Support:
Compiler-rt support * Add support for building compiler-rt for AIX and 32-bit Power targets. * Made compiler-rt the default rtlib for AIX.
General Improvements * Enable the AIX extended AltiVec ABI under option -mabi=vec-extabi. * Add partial C99 complex type support. * Implemente traceback table for functions (encodes vector information, emits exception handling).
Implemente code generation for C++ dynamic initialization and finalization. of non-local variables for use with the -bcdtors option of the AIX linker.
Add new option -mignore-xcoff-visibility.
Enable explicit sections on AIX.
Enable -f[no-]data-sections on AIX and set -fdata-sections to be the default on AIX.
Enable -f[no-]function-sections.
Add support for relocation generation using the large code model.
Add pragma align natural and sorted out pragma pack stack effect.
Changes to the X86 Target
The ‘mpx’ feature was removed from the backend. It had been removed from clang frontend in 10.0. Mention of the ‘mpx’ feature in an IR file will print a message to stderr, but IR should still compile.
Support for -march=alderlake, -march=sapphirerapids, -march=znver3 and -march=x86-64-v[234] has been added.
The assembler now has support for {disp32} and {disp8} pseudo prefixes for controlling displacement size for memory operands and jump displacements. The assembler also supports the .d32 and .d8 mnemonic suffixes to do the same.
A new function attribute “tune-cpu” has been added to support -mtune like gcc. This allows microarchitectural optimizations to be applied independent from the “target-cpu” attribute or TargetMachine CPU which will be used to select Instruction Set. If the attribute is not present, the tune CPU will follow the target CPU.
Support for HRESET instructions has been added.
Support for UINTR instructions has been added.
Support for AVXVNNI instructions has been added.
Changes to the AMDGPU Target
The new byref attribute is now the preferred method for representing aggregate kernel arguments.
|
|
|
|
This is needed for the cmake files.
Fixes build of at least include-what-you-use.
|
|
|
|
|
|
|
|
https://github.com/llvm/llvm-project/commit/a5d161c119d5a03c1ce834c6f4ce2576d6a064e4
so we avoid emitting a 64-bit-only instruction in 32-bit powerpc code.
Bump PKGREVISION.
|
|
|
|
Mixing llvm versions is probably inadvisable.
|
|
required to gain access to 8-byte atomics. Add a hacks.mk file
to pull in devel/libatomic on powerpc ports. The reason is that
even though llvm itself doesn't need or use 8-byte atomics, other
programs refer to this installed CheckAtomic cmake file and may
indeed both need and use 8-byte atomics.
Verified that llvm still builds on NetBSD/macppc 9.0.
Bump PKGREVISION to 1.
|
|
|
|
"relocation truncated to fit: R_PPC_REL24" error.
|
|
clang-tools-extra); remove clang-static-analyzer
|
|
|
|
opt-remarks has probably been replaced by remarks-shlib, which has
already been added to the list.
|
|
|
|
|
|
Non-comprehensive list of changes in this release
The ISD::FP_ROUND_INREG opcode and related code was removed from SelectionDAG.
Enabled MemorySSA as a loop dependency. Since r370957 (D58311 [MemorySSA & LoopPassManager] Enable MemorySSA as loop dependency. Update tests.), the MemorySSA analysis is being preserved and used by a series of loop passes. The most significant use is in LICM, where the instruction hoisting and sinking relies on aliasing information provided by MemorySSA vs previously creating an AliasSetTracker. The LICM step of promoting variables to scalars still relies on the creation of an AliasSetTracker, but its use is reduced to only be enabled for loops with a small number of overall memory instructions. This choice was motivated by experimental results showing compile and run time benefits or replacing the AliasSetTracker usage with MemorySSA without any performance penalties. The fact that MemorySSA is now preserved by and available in a series of loop passes, also opens up opportunities for its use in those respective passes.
The BasicBlockPass, BBPassManager and all their uses were deleted in this revision.
The LLVM_BUILD_LLVM_DYLIB and LLVM_LINK_LLVM_DYLIB CMake options are no longer available on Windows.
As per LLVM Language Reference Manual, getelementptr inbounds can not change the null status of a pointer, meaning it can not produce non-null pointer given null base pointer, and likewise given non-null base pointer it can not produce null pointer; if it does, the result is a poison value. Since r369789 (D66608 [InstCombine] icmp eq/ne (gep inbounds P, Idx..), null -> icmp eq/ne P, null) LLVM uses that for transformations. If the original source violates these requirements this may result in code being miscompiled. If you are using Clang front-end, Undefined Behaviour Sanitizer -fsanitize=pointer-overflow check will now catch such cases.
Windows Control Flow Guard: the -cfguard option now emits CFG checks on indirect function calls. The previous behavior is still available with the -cfguard-nochecks option. Note that this feature should always be used with optimizations enabled.
Callbacks have been added to CommandLine Options. These can be used to validate or selectively enable other options.
The function attributes no-frame-pointer-elim and no-frame-pointer-elim-non-leaf have been replaced by frame-pointer, which has 3 values: none, non-leaf, and all. The values mean what functions should retain frame pointers.
The inter-procedural analysis and optimization capabilities in the Attributor framework and pass have been substantially advanced (initial commit D59918, LLVM-Dev talk). In this release, 19 different attributes are inferred, including 12 LLVM IR attributes and 7 “abstract” attributes, such as liveness. The Attributor is still under heavy development and disabled by default; to enable an early run pass -mllvm -attributor-disable=false to an invocation of clang.
New matrix math intrinsics have been added to LLVM (see LLVM Language Reference Manual), together with the LowerMatrixIntrinsics pass. The pass lowers matrix intrinsics to a set of efficient vector instructions. The lowering pass is off by default and can be enabled by passing -mllvm -enable-matrix to an invocation of clang.
|
|
|
|
pkglint -r --network --only "migrate"
As a side-effect of migrating the homepages, pkglint also fixed a few
indentations in unrelated lines. These and the new homepages have been
checked manually.
|
|
9.0.1 is a bug-fix release.
|
|
Bump PKGREVISION
|
|
|