Jonas Maebe
aa3f29eec8
LLVM: recognise Xcode-15 as LLVM codegen target
2023-12-04 22:52:39 +01:00
Jonas Maebe
1a410bae12
LLVM: LLVM 17.0 support
...
No changes in IR (that affect us) since LLVM 16.0
2023-08-01 22:19:55 +02:00
Jonas Maebe
b49d58a9fa
LLVM: Xcode 14.3 support
2023-07-30 22:22:28 +02:00
Jonas Maebe
0ea0b69a30
LLVM: cleaned up some comments
2023-03-18 23:14:25 +01:00
Jonas Maebe
e41bfa0495
LLVM: LLVM 16 support
...
No changes compared to LLVM 15 that affect us
2023-03-18 23:13:58 +01:00
Jonas Maebe
ab581c5c30
LLVM: override thlcgobj.g_undefined_ok
...
Uses the freeze instruction available in LLVM 10.0+. If we don't freeze undef/
poison values before using them in a calculation (even if that calculation is
something like "and 0", which masks the result completely), the result will
still be undef/poison and will keep propagating.
2023-01-20 21:07:18 +01:00
Jonas Maebe
bba1076e12
LLVM: add Xcode 14.0 support (-ClvXcode-14.0)
2022-12-04 21:51:55 +01:00
Jonas Maebe
3a07aadba2
llvm: llvm/clang 15.0 support
2022-07-28 22:59:13 +02:00
Jonas Maebe
403292a131
LLVM backend: address sanitizer support
...
Activate with -Clfsanitize=address. Only tested on Darwin/x86-64 for now.
2022-07-06 22:26:13 +02:00
Jonas Maebe
25999ad8ff
llvm: support for opaque pointers
...
Will be the default starting with LLVM 15, and required with LLVM 16.
Tested with LLVM 14 and '-mllvm -opaque-pointers'. See
https://releases.llvm.org/14.0.0/docs/OpaquePointers.html for more
information.
2022-06-12 11:45:31 +02:00
Jonas Maebe
60c95032fa
llvm: removed Xcode 10.0/10.1 as supported versions
...
These already did not work because they predate clang 7
2022-06-06 23:12:53 +02:00
Jonas Maebe
573b2554f4
llvminfo: fix copy/paste error in llvm 14 comment
...
Spotted by @Alexey-T1
2022-06-04 22:26:40 +02:00
Jonas Maebe
a45e5e7ab6
llvm: version 14.0 support
2022-06-04 13:34:09 +02:00
Jonas Maebe
591c1b0177
llvm: added support for newer Xcode toolchains
...
Based on https://en.wikipedia.org/wiki/Xcode#Xcode_11.x_-_13.x_(since_SwiftUI_framework)_2
2022-06-04 09:43:39 +02:00
Jonas Maebe
dcf6063dc3
llvm: version 13.0 support
2022-06-03 21:46:23 +02:00
Jonas Maebe
1b06599e82
llvm: version 12.0 support
2022-06-03 21:46:23 +02:00
Jonas Maebe
fd125b506e
LLVM debug info: LLVM 7.0 support
...
Also defined some llvm flags in a negative way so they can be removed from
later versions rather than added
2022-05-13 22:49:02 +02:00
Jonas Maebe
edbddec98a
llvmdbg: diflags/dispflags fixes
...
Fix MainSubprogram flag for older LLVM versions, as it was a plain flag rather
than a subprogram flag there.
Added visibility flags for procdefs (public/private/protected)
Write flags as enum rather than integer to avoid issues with changing values
across different LLVM versions
2022-05-13 22:49:02 +02:00
Jonas Maebe
d294731542
LLVM: enable DWARF debug info generation
2022-05-13 22:49:02 +02:00
Jonas Maebe
411fa298ae
LLVM: data location debug info support
...
This was added to LLVM for Fortran arrays, but can also be used for Pascal
dynamic arrays
2022-05-13 22:49:02 +02:00
Jonas Maebe
080d8c28f7
* LLVM 11.0 support
...
git-svn-id: trunk@47121 -
2020-10-17 14:59:04 +00:00
Jonas Maebe
3208929e17
* add Xcode-11.0 as LLVM target version versin
...
git-svn-id: trunk@46676 -
2020-08-23 21:11:13 +00:00
Jonas Maebe
31ef82b9c6
* constrained sitofp is not yet supported in LLVM for all targets
...
git-svn-id: trunk@43885 -
2020-01-07 20:22:17 +00:00
Jonas Maebe
1f5efe2a95
* support for constrained sitofp/uitofp with (the upcoming) LLVM 10.0
...
(fixes most of test/units/math/troundm, although there's still an LLVM
optimizer/code generation bug that breaks some qword -> double
conversions)
git-svn-id: trunk@43829 -
2019-12-31 18:05:54 +00:00
Jonas Maebe
a6a17efa42
* use LLVM constrained fpext/fptrunc intrinsics when fastmath is not enabled
...
for accurate exception behaviour
git-svn-id: trunk@43820 -
2019-12-30 15:05:13 +00:00
Jonas Maebe
0f57151d36
+ recognise LLVM 9.0 (no changes needed compared to LLVM 8.0)
...
git-svn-id: trunk@43686 -
2019-12-14 17:15:27 +00:00
Jonas Maebe
c477816100
- removed LLVM support for clang < 7.0 and Xcode < 10.0: those versions
...
contain various bugs and can't even complete "make all", so there is no
point in keeping them
o changed default LLVM target version to 7.0
git-svn-id: trunk@43682 -
2019-12-14 14:59:05 +00:00
Jonas Maebe
d74b0843df
* set null-pointer-is-valid attribute on functions, so that LLVM does not
...
optimise provable accesses to null as undefined behaviour (requires
LLVM/Clang 7.0 or later)
git-svn-id: branches/debug_eh@42055 -
2019-05-12 21:09:44 +00:00
Jonas Maebe
cd3e4d26d4
* recognise extra llvm/Xcode versions
...
git-svn-id: branches/debug_eh@41912 -
2019-04-20 18:56:19 +00:00
Jonas Maebe
3b254affb7
* support for the individual alignment flags for the memcpy intrinsic of
...
LLVM 7.0
git-svn-id: branches/debug_eh@41728 -
2019-03-17 15:28:23 +00:00
Jonas Maebe
cf65c55b72
* support specifying the target LLVM/Xcode version
...
git-svn-id: branches/debug_eh@41727 -
2019-03-17 15:28:20 +00:00
Jonas Maebe
332af0bc4e
* completed license header
...
git-svn-id: branches/debug_eh@41575 -
2019-03-03 17:14:53 +00:00
Jonas Maebe
752a28a41d
* enabled more optimization flags for llvm
...
git-svn-id: branches/debug_eh@40589 -
2018-12-18 21:13:52 +00:00
Jonas Maebe
4d951780d1
+ support for LLVM 3.8 and LLVM 3.9 IR to the llvm assembler writer
...
git-svn-id: trunk@35003 -
2016-11-27 21:44:29 +00:00
Jonas Maebe
999cb7de6d
+ LLVM 3.7 support in the LLVM IR writer
...
git-svn-id: trunk@34550 -
2016-09-20 21:44:06 +00:00
Jonas Maebe
3dbe97d9b6
+ added some extra llvm versions and flags describing their features
...
git-svn-id: trunk@32880 -
2016-01-07 22:05:49 +00:00
Jonas Maebe
44b1996158
+ base units for llvm:
...
o opcodes + string representation
o llvm string representations of targets supported by fpc
o supported fpc optimisations
o list of supported LLVM versions (currently only targeting 3.3)
git-svn-id: branches/hlcgllvm@26035 -
2013-11-11 11:15:09 +00:00