Commit graph

32 commits

Author SHA1 Message Date
jperkin
cbc9b0207d llvm: Change how sys/regset.h workaround is implemented.
Previously a special override header was used via an additional include path,
but this extra include path was not exported to llvm-config so while llvm was
ok, dependencies wouldn't find the header and fail.

Instead just pull the changes directly inline into DataTypes.h so that they
are available everywhere.  Fixes the clang build on SunOS.  Bump PKGREVISION.
2018-01-08 10:48:34 +00:00
rillig
17e39f419d Fix indentation in buildlink3.mk files.
The actual fix as been done by "pkglint -F */*/buildlink3.mk", and was
reviewed manually.

There are some .include lines that still are indented with zero spaces
although the surrounding .if is indented. This is existing practice.
2018-01-07 13:03:53 +00:00
adam
79d51c6dab llvm: updated to 5.0.1
LLVM 5.0.1:
This release contains bug-fixes for the LLVM 5.0.0 release. This
release is API and ABI compatible with 5.0.0.
2017-12-30 10:39:24 +00:00
adam
57ac13a628 llvm: updated to 5.0.0
5.0.0:
Non-comprehensive list of changes in this release
* LLVM’s WeakVH has been renamed to WeakTrackingVH and a new WeakVH has been introduced. The new WeakVH nulls itself out on deletion, but does not track values across RAUW.
* A new library named BinaryFormat has been created which holds a collection of code which previously lived in Support. This includes the file_magic structure and identify_magic functions, as well as all the structure and type definitions for DWARF, ELF, COFF, WASM, and MachO file formats.
* The tool llvm-pdbdump has been renamed llvm-pdbutil to better reflect its nature as a general purpose PDB manipulation / diagnostics tool that does more than just dumping contents.
* The BBVectorize pass has been removed. It was fully replaced and no longer used back in 2014 but we didn’t get around to removing it. Now it is gone. The SLP vectorizer is the suggested non-loop vectorization pass.
* A new tool opt-viewer.py has been added to visualize optimization remarks in HTML. The tool processes the YAML files produced by clang with the -fsave-optimization-record option.
* A new CMake macro LLVM_REVERSE_ITERATION has been added. If enabled, all supported unordered LLVM containers would be iterated in reverse order. This is useful for uncovering non-determinism caused by iteration of unordered containers. Currently, it supports reverse iteration of SmallPtrSet and DenseMap.
* A new tool llvm-dlltool has been added to create short import libraries from GNU style definition files. The tool utilizes the PE COFF SPEC Import Library Format and PE COFF Auxiliary Weak Externals Format to achieve compatibility with LLD and MSVC LINK.
2017-12-01 19:22:12 +00:00
ryoon
39a0252463 Do not return -ltinfo from llvm-config --system-libs --link-static
under NetBSD. Bump PKGREVISION

Rust language 1.20.0 uses these options and Rust build system uses it
as '-l tinfo' and our wrapper does not handle this.
2017-09-30 04:38:09 +00:00
adam
0e12e44da9 Changes 4.0.1:
This is a bug-fix release.
2017-07-11 19:47:37 +00:00
jlam
000f312c98 Use public SHLIB_TYPE instead of private _OPSYS_SHLIB_TYPE. 2017-06-01 13:30:24 +00:00
joerg
77a4c631f9 Expand terminfo handling to depending packages. Fixes lang/clang. 2017-05-19 14:59:23 +00:00
jperkin
8398d8e6de Add a terminfo option and enable by default (and correctly pull terminfo in)
if terminfo is builtin, otherwise leave it as a user option to avoid possible
dependency issues.
2017-05-09 12:23:42 +00:00
kamil
53397f9859 Update buildlink3.mk with reality in LLVM projects 2017-05-05 23:13:05 +00:00
kamil
7922a470a7 Synchronize llvm/Makefile with pkgsrc-wip/llvm-git/Makefile
There shouldn't be functional change in produced binary package.
2017-05-05 21:46:50 +00:00
joerg
7d8d4501c4 Don't explicit disable tests. Merge two upstream patches for fixing
build and runtime errors in the test suite on NetBSD.
2017-05-05 18:12:24 +00:00
jperkin
6b547497bb Convert CXXFLAGS setting C++ standard to USE_LANGUAGES. 2017-05-03 08:38:38 +00:00
maya
3067a511ad llvm: respect LDFLAGS
from Dr. Thomas Orgis via tech-pkg
2017-05-01 00:41:29 +00:00
jperkin
548c98f4a2 Exclude some bogus symbols from the mapfile on SunOS. It may be that
this is appropriate for all platforms, in which case it can be changed
to be a patch instead.
2017-04-20 12:56:47 +00:00
adam
b53c36bfae Create and use shared library libLLVM; fix install_name for shared object on Darwin. 2017-03-19 19:01:48 +00:00
adam
60b9132584 LLVM 4.0.0:
The minimum compiler version required for building LLVM has been raised to 4.8 for GCC and 2015 for Visual Studio.
The C API functions LLVMAddFunctionAttr, LLVMGetFunctionAttr, LLVMRemoveFunctionAttr, LLVMAddAttribute, LLVMRemoveAttribute, LLVMGetAttribute, LLVMAddInstrAttribute and LLVMRemoveInstrAttribute have been removed.
The C API enum LLVMAttribute has been deleted.
The definition and uses of LLVM_ATRIBUTE_UNUSED_RESULT in the LLVM source were replaced with LLVM_NODISCARD, which matches the C++17 [[nodiscard]] semantics rather than gcc’s __attribute__((warn_unused_result)).
The Timer related APIs now expect a Name and Description. When upgrading code the previously used names should become descriptions and a short name in the style of a programming language identifier should be added.
LLVM now handles invariant.group across different basic blocks, which makes it possible to devirtualize virtual calls inside loops.
The aggressive dead code elimination phase (“adce”) now removes branches which do not effect program behavior. Loops are retained by default since they may be infinite but these can also be removed with LLVM option -adce-remove-loops when the loop body otherwise has no live operations.
The llvm-cov tool can now export coverage data as json. Its html output mode has also improved.
2017-03-17 22:38:17 +00:00
brook
862279df75 Clean up definition of libtool on Darwin.
The previous commit ended up with two different specifications for libtool
on Darwin.  One was the OS-specific version of CMAKE_ARGS introduced in the
previous commit; the other was inside a conditional to detect Darwin introduced in the commit prior.  The former seems cleaner so it has been left.
2017-01-16 21:56:35 +00:00
brook
8f064fc680 Use the system-specific libtool on Darwin.
This fixes bugs relating to unrecognized libtool options on Darwin.
2017-01-16 17:26:47 +00:00
adam
a3ebdf18b6 Changes 3.9.1:
The LLVMContext gains a new runtime check (see LLVMContext::discardValueNames()) that can be set to discard Value names (other than GlobalValue). This is intended to be used in release builds by clients that are interested in saving CPU/memory as much as possible.
There is no longer a “global context” available in LLVM, except for the C API.
The autoconf build system has been removed in favor of CMake. LLVM 3.9 requires CMake 3.4.3 or later to build. For information about using CMake please see the documentation on Building LLVM with CMake. For information about the CMake language there is also a CMake Primer document available.
C API functions LLVMParseBitcode, LLVMParseBitcodeInContext, LLVMGetBitcodeModuleInContext and LLVMGetBitcodeModule having been removed. LLVMGetTargetMachineData has been removed (use LLVMGetDataLayout instead).
The C API function LLVMLinkModules has been removed.
The C API function LLVMAddTargetData has been removed.
The C API function LLVMGetDataLayout is deprecated in favor of LLVMGetDataLayoutStr.
The C API enum LLVMAttribute and associated API is deprecated in favor of the new LLVMAttributeRef API. The deprecated functions are LLVMAddFunctionAttr, LLVMAddTargetDependentFunctionAttr, LLVMRemoveFunctionAttr, LLVMGetFunctionAttr, LLVMAddAttribute, LLVMRemoveAttribute, LLVMGetAttribute, LLVMAddInstrAttribute, LLVMRemoveInstrAttribute and LLVMSetInstrParamAlignment.
TargetFrameLowering::eliminateCallFramePseudoInstr now returns an iterator to the next instruction instead of void. Targets that previously did MBB.erase(I); return; now probably want return MBB.erase(I);.
SelectionDAGISel::Select now returns void. Out-of-tree targets will need to be updated to replace the argument node and remove any dead nodes in cases where they currently return an SDNode * from this interface.
Added the MemorySSA analysis, which hopes to replace MemoryDependenceAnalysis. It should provide higher-quality results than MemDep, and be algorithmically faster than MemDep. Currently, GVNHoist (which is off by default) makes use of MemorySSA.
The minimum density for lowering switches with jump tables has been reduced from 40% to 10% for functions which are not marked optsize (that is, compiled with -Os).
2017-01-05 11:54:32 +00:00
gdt
deafd5e70d On i386, use -march=i586 for 64-bit CAS
This matches tnn's change to lang/libLLVM.  No PKGREVISION; no change
on !i386 and on i386 this did not build before.
2017-01-02 00:03:42 +00:00
joerg
0de27f6641 Explicitly build LLVM projects with -std=c++11, it doesn't get detected
automatically in all cases.
2016-12-17 23:28:34 +00:00
wiz
c83dc2cf5b Add devel/include-what-you-use to comment and sort. 2016-11-15 16:41:36 +00:00
ryoon
3f6fecb38f Add lang/clang-static-analyzer and devel/polly 2016-11-14 20:31:28 +00:00
ryoon
861be02d4d Update llvm packages to 3.9.0
* Drop CppBackend. It is removed.

Changelog:
* GCC ABI Tag
* LLVM IR: new intrinsics etc.
* Change LLVM IPO model
* Support ThinLTO
* Improve the ARM targets, ARMv8.2-A support etc.
* Improve the MIPS targets
* Improve the PowerPC target, default optim O3 to O2
* Improve the X86 target, SKylake AVX-512 etc.
* Improve the AMDGPU, better support for Mesa 12
2016-11-14 20:15:32 +00:00
ryoon
557cf6493b libunwind is in lang category. Update comment 2016-11-14 19:56:46 +00:00
wiz
98d9ccf2ef Mention other llvm packages in pkgsrc to update. 2016-08-03 09:07:39 +00:00
wiz
1ea1c32028 Update llvm and clang* to 3.8.1.
This release contains bug-fixes for the LLVM 3.8.0 release. This
release is API and ABI compatible with 3.8.0.
2016-07-26 12:43:51 +00:00
jperkin
cbaf13644f Install the LLVM utils. Bump PKGREVISION. 2016-07-12 11:06:48 +00:00
wiz
2b0a009d0e Bump PKGREVISION for perl-5.24.0 for everything mentioning perl. 2016-07-09 06:37:46 +00:00
tnn
7f28883c87 resurrect and copy the previous clang patch-ac to here
jperkin Mon Mar  7 16:27:47 UTC 2016
Do not use "-z discard-unused" linker flags on SunOS, it is only supported
by the very latest Oracle Solaris release.
2016-03-11 06:50:42 +00:00
tnn
b861e8f85b Update to clang-3.8.0. Split out llvm tools to lang/llvm.
Packaged in pkgsrc-wip by myself and Kamil.
Remove stale pkgsrc/SunOS bread crumbs that were difficult to merge
following the build framework switch. Needs to be redone. (Sorry!)

Summary of significant changes in LLVM:
- switch build framework from autoconf to CMake
- llvm-ar now supports thin archives.
- llvm doesn t produce .data.rel.ro.local or .data.rel sections anymore.
- opional support for linking clang and the LLVM tools with a single
  libLLVM shared library

  pkgsrc note: we have this library in lang/libLLVM, but we don't currently
  use it. We may do so in the future if/when the API matures.

- The optimization to move the prologue and epilogue of functions in colder
  code path (shrink-wrapping) is now enabled by default
- new target-independent gcc-compatible emulated Thread Local Storage mode
- various target specific optimizations

Summary of significant changes in Clang:

- new compiler flags for tuning what DWARF information is included
- better strict alignment handling
- better support for __builtin_object_size
2016-03-10 15:01:52 +00:00