florian
c13517634f
* patch by Rika: Replace some instances of manual work with endianness with cryptic oneliners, resolves #39719
2022-06-08 22:59:39 +02:00
Pierre Muller
da58651398
Avoid Invalid typecast error when using -CR option by using tabstractrecordsymtable type for record or object symtable
2022-06-08 10:29:58 +00:00
Pierre Muller
a730bf2b00
Fix oversized type size constant
2022-06-08 00:07:05 +02:00
Pierre Muller
9e8d779f31
Fix compilation of arm compiler with LLVM=1
2022-06-08 00:00:20 +02:00
Pierre Muller
2307dc8f26
Try to fix real constant problems for llvm compiler
2022-06-07 23:51:27 +02:00
Jonas Maebe
f382f2d6ed
dbgllvm: support for tobjectdef debug information
...
Classes, objects, interfaces, Objective-C classes, ...
2022-06-07 21:42:41 +02:00
Jonas Maebe
61f01ded61
dbgllvm: struct_metadef fixes
...
It will be used to hold a reference to the underlying structure of a class,
whose type is represented as a pointer to a DW_TAG_class_type for compatibility
with the debug information generated by the FPC backend (otherwise we could
instead just add a deref expression to all variables of such a type)
2022-06-07 21:42:41 +02:00
Jonas Maebe
addd0e7dcf
dbgllvm: skip static fields when writing struct fields
...
These are not part of the struct instances
2022-06-07 21:42:41 +02:00
Jonas Maebe
f9b216f99a
dbgllvm: remove tmembercallbackinfo
...
Leftover from dbgdwarf, not used here
2022-06-07 21:42:49 +02:00
Jonas Maebe
4c8249de34
dbgllvm: added appenddef_struct_named
...
Factored out of appenddef_record_named for reuse by objectdefs.
Also moved responsibility of adding the struct dinode to the asmlist
to the caller, as the name of this method does not imply it will do
that.
2022-06-07 21:42:41 +02:00
Jonas Maebe
706443c354
dbgllvm: support for record field debug information
2022-06-06 23:12:53 +02:00
Jonas Maebe
b456833b03
aasmllvmmetadata: remove leftover unused type
2022-06-06 23:12:53 +02:00
Jonas Maebe
5d02c65425
objcdef: remove duplicate variant start check
2022-06-06 23:12:53 +02:00
Jonas Maebe
76e3cfc38f
parentfpstruct: don't add vo_is_firstfield to first field of record
...
That flag is only for the first field of variant parts of records
2022-06-06 23:12:53 +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
florian
927e3fd455
* patch by Rika: improve EncodeUleb128/EncodeSleb128, second part of #39750 , resolves #39750
2022-06-06 22:14:46 +02:00
florian
51ab0d759f
* patch by Rika: improve EncodeUleb128/EncodeSleb128, part of #39750
2022-06-05 20:52:19 +02:00
Jonas Maebe
25e832940c
llvmdbg: support for generating debug information for local/para varsyms
...
Note that not all symbols are covered yet, because absolutevarsyms are not
yet supported and those are e.g. used for function result aliases.
Additionally, not all types are fully supported yet.
2022-06-04 22:26:40 +02:00
Jonas Maebe
e7ec91eca8
dbgllvm: rename hastable for staticvarsym declarations
2022-06-04 22:26:40 +02:00
Jonas Maebe
a76038e1d1
hlcgobj: new getlocal and recordnewsymloc methods
...
Call hlcg.getlocal instead of tg.getlocal when used for actual parameters/local
variables. Has an extra tsym parameter, which will enable the LLVM backend to
insert debug information.
Call hlcg.recordnewsymloc when the location of a (local/para) symbol changes,
so debug info tracking can be updated (only done for LLVM currently)
2022-06-04 22:26:40 +02:00
Jonas Maebe
a76085e463
tllvmcallpara: record whether it's passed to metadata
...
Sometimes we need the def to store a the original def of the passed parameter,
e.g. for the first argument to llvm.dbg.addr
2022-06-04 22:26:40 +02:00
Jonas Maebe
41a6c5e967
agllvm: support specialised metadata with field names
...
Necessary for DIExpression
2022-06-04 22:26:40 +02:00
Jonas Maebe
c92a035614
agllvm: support nested constants in parameters
...
Needed for metadata support
2022-06-04 22:26:40 +02:00
Jonas Maebe
abfd975571
TCGParaLocation: remove alignment gap
2022-06-04 22:26:40 +02:00
Jonas Maebe
dc1e0a6bb3
tllvmcallpara: turned into object and added convenience methods
2022-06-04 22:26:40 +02:00
Jonas Maebe
fe0048bcec
llvm: changed llvm_metadatatype from untyped pointer to undefineddef
...
That matches its meaning better, as it should not result in type conversions.
E.g. some kinds of metadata parameters expect a "type register" parameter such
as "metadata i32* %reg.3"
2022-06-04 22:26:40 +02:00
Jonas Maebe
aa43441ac9
llvm: replaced boolean fields in tllvmcallpara with a set
2022-06-04 22:26:40 +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
49ad3b0d2c
msg*.inc: regenerated
2022-06-04 10:23:28 +02:00
Jonas Maebe
3ef0db2404
LLVM: list supported LLVM/Xcode versions
...
Use the -i or -il command line parameter
2022-06-04 10:22:19 +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
florian
a05aa25aad
* Risc-V: allow also register aliases in register modification lists after asm blocks, last part to resolve #39738
2022-06-03 22:54:18 +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
Pierre Muller
762057f46d
Fix compilation of 32-bit powerpc compiler
2022-06-03 11:45:36 -07:00
Pierre Muller
dbbf7e7f3b
Add several increfs to avoid troubles on AIX target OS
2022-06-03 11:28:15 -07:00
florian
ea659cbc20
* "fast lane" code and comment fixed
2022-06-02 22:47:58 +02:00
florian
f1b166d6b8
* zero is a valid Risc-V register alias
2022-06-01 22:34:51 +02:00
florian
ec3a04da9b
+ forgotten pseudo-instructions added
2022-06-01 22:31:26 +02:00
Pierre Muller
430f1910ed
Fix compliation error with -Oodfa option as reported by Gareth
2022-06-01 00:35:55 +02:00
Pierre Muller
0e142c00cc
Disable finalisation code fro LLVM compiler to avoid interface finalisation troubles
2022-06-01 00:19:46 +02:00
Sven/Sarah Barth
a27bc236a0
* fix #39742 : when assigning a function to a function reference it's not the function itself that needs to be checked to be captureable, but instead what it captures (this applies for both the non-generic and the generic case)
...
+ added tests
2022-05-31 23:16:41 +02:00
Sven/Sarah Barth
2372a06926
* fix #39740 : consider a conversion of a procedure or procedure variable to a function reference as a bit more expensive than otherwise
...
+ added test
2022-05-31 22:50:14 +02:00
Sven/Sarah Barth
492754ecca
* the check for nested procvars is now done during the conversion in capturer_add_procvar_or_proc so loosen the check in proc_to_funcref_equal_internal
2022-05-31 22:50:14 +02:00
Sven/Sarah Barth
3b7842c30e
* ensure that a nested function variable can not be assigned to a function reference
2022-05-31 22:50:14 +02:00
Sven/Sarah Barth
2688834265
* regenerate msg{idx,txt}.inc
2022-05-31 22:50:14 +02:00
Sven/Sarah Barth
ea8e3cfc37
+ add an error message that a nested function variable can not be assigned to a function reference
2022-05-31 22:50:14 +02:00
Sven/Sarah Barth
4361e36ce0
* make proc_to_funcref_conv publicly available
2022-05-31 22:50:14 +02:00
florian
eaeb8b70ff
+ added Risc-V register information file generation to the compiler Makefile
...
* more stringent naming of register file information for Risc-V
2022-05-31 22:38:30 +02:00