Commit Graph

37 Commits

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