Commit graph

24 commits

Author SHA1 Message Date
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