Commit Graph

2174 Commits (main)

Author SHA1 Message Date
Siu Kwan Lam 42b9834a9f
Merge pull request #1035 from yashssh/llvm14to15
Support building against llvm15
2024-03-30 04:49:50 -05:00
Yashwant Singh 2d5d8eef0b Use legacysimpleloopunswitch with old PM; more consistency with version checking condtions 2024-03-15 11:40:15 +05:30
Graham Markall cdd4c5f336
Run CI with LLVM 15 on Windows
This includes changes:

- Adding the Windows LLVM 15 config to the Azure setup.
- Converting the commands in the Azure pipeline file to a call to the
  setup_conda_environment.cmd script (it's easier to edit a script
  rather than individual lines in the Azure file).
- Installation of LLVM 15 from conda-forge.
- A workaround / supporting change for the conda-forge solution to
2024-03-14 13:43:56 +00:00
Graham Markall a5859851fd
Windows build: work around llvm/llvm-project#83802 2024-03-14 13:42:46 +00:00
Graham Markall bec8eec576
Run CI with LLVM 15 on Linux and macOS 2024-03-14 09:54:59 +00:00
Yashwant Singh 64bb499fe3 run clang format 2024-03-14 10:42:47 +05:30
Yashwant Singh 247fa1667e fix python formatting 2024-03-14 10:31:56 +05:30
Graham Markall 6206a41e0e
Update assembly.cpp 2024-03-13 21:10:01 +00:00
Graham Markall 34406e8ae0
Update llvmlite/tests/ 2024-03-13 21:09:01 +00:00
Graham Markall 36ae6cd881
Update ffi/Makefile.linux 2024-03-13 21:04:23 +00:00
Yashwant Singh d6957e1eff [llvm15] Support llvmlite to building against llvm15
1) Drop 2 passes no longer supported by old PM
2) Update domTree passes to their wrapper passes
3) Update getAddress() api
4) Disable opaque pointer mode
5) Give warning when build with llvm15

All the changes are put inside llvm version check guard
so that it builds with both llvm14 and llvm15
2024-03-12 16:45:49 +05:30
Yashwant Singh 2a0f69b76b get rid of -flto 2024-03-12 16:41:36 +05:30
Siu Kwan Lam a6159f901d
Merge pull request #1032 from sklam/misc/postrelase
v0.42 Post release
2024-02-07 14:27:42 -06:00
Siu Kwan Lam 632c5a924e Merge pull request #1029 from stuartarchibald/wip/change_log_0_42_0_final
Update CHANGE_LOG for 0.42.0 final.
2024-02-06 12:07:58 -06:00
Siu Kwan Lam f22420ad76
Merge pull request #1021 from gmarkall/release-notes-042
Add release notes for 0.42.0rc1
2023-12-13 09:41:40 -06:00
Graham Markall 83a88294db
Co-authored-by: stuartarchibald <>
2023-12-13 12:39:35 +00:00
Graham Markall ab073f5d83
Add release notes for 0.42.0rc1
Generated with:

python ../numba/maint/ --token="<omitted>" --beginning="v0.41.0" --repo=numba/llvmlite --digits=4


python ../numba/maint/ --token="<omitted>" --beginning="v0.41.0" --repo=numba/llvmlite --digits=3

run in the root of the llvmlite repo, checked out next to the Numba
repo, and then merging the results, and eliminating duplicate entries
that already appeared in the notes for 0.41.0 and 0.41.1
2023-12-13 11:05:43 +00:00
Siu Kwan Lam 4292eeaf60
Merge pull request #978 from tbennun/type-query-4
Bindings: Query type kinds, derived types, and elements
2023-12-08 08:38:34 -06:00
Siu Kwan Lam 80bb55bba4 Add test for is_function_vararg on non-function type 2023-12-07 14:10:10 -06:00
Siu Kwan Lam fe53febbff Merge remote-tracking branch 'origin/main' into pr/978 2023-12-07 12:56:30 -06:00
Siu Kwan Lam e70590fd79
Merge pull request #1019 from diptorupd/add_convergent_attribute
Add convergent as a supported FunctionAttribute and CallInstrAttribute.
2023-12-07 11:20:10 -06:00
Siu Kwan Lam 53488e9015
Merge pull request #1009 from gmarkall/aarch64memorymanager
Fix relocation overflows by implementing preallocation in the memory manager
2023-12-07 11:20:02 -06:00
Graham Markall 4ac8e2216a Explicitly force default visibility for llvm::ErrorInfoBase 2023-12-07 15:01:24 +00:00
Graham Markall b673be6c4b
Add LLVM license 2023-12-06 16:51:48 +00:00
Graham Markall 5e92f877bb Conditionally enable the llvmlite memory manager
The default is to enable it on 64-bit ARM systems, since it solves the
problem they encounter, and disable it elsewhere, to minimise the risk
of an unintended side effect on platforms that don't need it.

This can be overridden by manually specifying the value of `use_lmm`
when creating the MCJIT compiler.
2023-12-06 12:24:41 +00:00
Diptorup Deb fa1fd3398f Add unit tests for the new convergent attribute. 2023-12-05 13:55:52 -06:00
Siu Kwan Lam 927e4301ff
Merge pull request #1018 from kc611/bump_39
Bump minimum supported Python version to 3.9
2023-12-05 10:18:48 -06:00
Siu Kwan Lam 857cb785b9
Merge pull request #1017 from esc/azure_312
add 3.12 to azure
2023-12-05 10:18:32 -06:00
Kaustubh c5520f2939 Added 3.11 and 3.12 to manylinux documentation 2023-12-05 18:37:03 +05:30
esc 5ac3eb8feb
Fixup typos in specification.
As discovered during review.

Co-authored-by: Kaustubh <>
2023-12-04 13:37:59 +01:00
Kaustubh 530bed8f4b Bump minimum supported Python version to 3.9 2023-12-04 16:45:58 +05:30
esc 62226cb685 add 3.12 to azure
As title
2023-12-01 16:56:36 +01:00
Diptorup Deb acffa53378 Add convergent as a supported FunctionAttribute and CallInstrAttribute. 2023-11-28 23:25:53 -06:00
esc da22592b94
Merge pull request #1005 from gmarkall/remove-unused-comment
Remove suggestion that add_global_mapping() is unused
2023-11-22 20:27:37 +01:00
Graham Markall 75b103cd44 Memory manager: align changes with upstream
The implementation of `reserveAllocationSpace()` now more closely
follows that in,
following some changes made there.

The changes here include:

- Improved readability of debugging output
- Using a default alignment of 8 in `allocateSection()` to match the
  default alignment provided by the stub alignment during preallocation.
- Replacing the "bespoke" `requiredPageSize()` function with
  computations using the LLVM `alignTo()` function.
- Returning early from preallocation when no space is requested.
- Reusing existing preallocations if there is enough space left over
  from the previous preallocation for all the required segments - this
  can happen quite frequently because allocations for each segment get
  rounded up to page sizes, which are usually either 4K or 16K, and many
  Numba-jitted functions require a lot less than this.
- Removal of setting the near hints for memory blocks - this doesn't
  really have any use when all memory is preallocated, and forced to be
  "near" to other memory.
- Addition of extra asserts to validate alignment of allocated sections.
2023-11-22 13:06:37 +00:00
Graham Markall 6aa56ebc52 Implement preallocation strategy in memory manager
Based on changes submitted / discussed in:

- ac8561b6b6/be/src/codegen/
2023-11-22 10:31:28 +00:00
esc 0bec67f6cf
Merge pull request #1010 from esc/py312
Python 3.12
2023-11-20 16:57:16 +01:00
esc f28ebe769c update REAME to be more specific
As title
2023-11-20 15:46:11 +01:00
esc deb7117b2f Explicitly add setuptools to the conda recipe and allow Windows to use it
This is needed for building via ``. The assumption is that this
was always needed but `setuptools` had been installed by default so
llvmlite just built "by accident". With 3.12 we discovered that this
assumption no longer holds and so we must add `setuptools` to the build
requirements explicitly. In addition the conda-recipe was using `python
-s` to run the `` script which implies that packages from
`site-packages` will not be loaded. This must therefore also be removed
such that Windows can even find the installed `setuptools`.
2023-11-16 14:01:39 +01:00
esc 8100fbd51e [py312] add Trove Classifier for 3.12
As title
2023-11-16 14:01:39 +01:00
esc c0ea95460a
Merge pull request #1014 from esc/fix_main_conda-recipe
Fix conda-recipe syntax errors from #1012
2023-11-16 14:01:18 +01:00
esc 8fc81bd901 Fix conda-recipe syntax errors from #1012
As title
2023-11-16 11:58:43 +01:00
esc 74d8240406
Merge pull request #1012 from esc/cleanup_conda-recipe
conda-recipe cleanups
2023-11-16 10:48:01 +01:00
esc 58ff46923a conda-recipe cleanups
Don't duplicate testing. Remove old architectures and fix one regex typo
in a test.
2023-11-16 10:09:56 +01:00
Graham Markall 88046679bc
Rename the memory manager and use it in llvmlite
Notes on the changes:

- The memory manager is added to the build system.
- The `LlvmliteMemoryManager` class is exported as a public interface.
- When creating an execution engine, we set it to use our memory
2023-11-15 14:10:11 +00:00
Graham Markall 441320ff78
Run clang-format-14 over memory manager files
This makes them compliant with our C++ style check.
2023-11-15 13:50:56 +00:00
Graham Markall 4ff1646108
Copy SectionMemoryManager from LLVM 14.0.6
Copied verbatim from llvm/llvm-project@f28c006a58, files:

2023-11-15 13:47:22 +00:00
esc e71b2ce9c7
Merge pull request #1007 from esc/update_release_checklist_post_0.41.1
update release checklists post 0.41.1
2023-11-07 16:11:47 +01:00
esc 028acad33a
Merge pull request #1006 from esc/release_notes_0.41.1_for_main
Release Notes 0.41.1 for main
2023-11-07 16:11:37 +01:00
esc 21d88fbcad update release checklists post 0.41.1
As title
2023-11-06 12:10:44 +01:00