Jonas Maebe
e865ab4c3a
llvmdbg: handle nil in more places
...
"void" is represented as "null" in LLVM debug information, which we represent
by nil
2022-05-21 22:32:35 +02:00
Jonas Maebe
a33e6230a0
llvm metadata: add DIGlobalVariableExpression enum
...
Only documented as of LLVM 9.0, but existed already in 7.0.
Also fixed DIGlobalVariable not being marked as unique
2022-05-21 22:32:35 +02:00
Jonas Maebe
f896766837
agllvm: fix writing metadata operands for variable declarations
2022-05-21 22:32:35 +02:00
florian
91481a5fae
* more robust code for constant propagation in for loops
2022-05-21 22:32:23 +02:00
Nikolay Nikolov
f1cb5d8f71
+ support intrinsic for the memory.atomic.notify WebAssembly instruction
2022-05-21 18:03:14 +03:00
Nikolay Nikolov
86643710c4
+ support intrinsics for the WebAssembly memory.atomic.wait32 and memory.atomic.wait64 instructions
2022-05-21 17:53:38 +03:00
Nikolay Nikolov
3cfdf000a2
+ support the new WebAssembly threads and atomics instructions in the internal assembler
2022-05-21 17:24:21 +03:00
Nikolay Nikolov
e376851fd8
* fixes to the WebAssembly atomic function intrinsics
2022-05-21 16:29:28 +03:00
mattias
08a9b16c82
fcl-json: fixed tests
2022-05-21 03:31:42 +02:00
mattias
5700cb56ac
fcl-json: fixed StringToJSONString
2022-05-21 03:27:27 +02:00
Nikolay Nikolov
e03b920520
+ added intrinsic support for the WebAssembly cmpxchg atomic operations as well
2022-05-21 02:52:31 +03:00
florian
a1ee4e04ed
* if a for loop does not change a variable, we can propate it if it is a constant, resolves #39726
2022-05-20 22:52:27 +02:00
Jonas Maebe
8817e896db
Add missing reference increases for ait_jvar labels
2022-05-20 21:18:44 +02:00
Nikolay Nikolov
d8f06aa4f1
+ added instrinsic support for the all the 2-parameter read-modify-write
...
WebAssembly atomic operations (add, sub, and, or, xor, xchg). Note that they
are not implemented in the internal assembler, yet.
2022-05-20 17:36:37 +03:00
Karoly Balogh
c5a443d0dd
amunits: correct the HookEntry wrapper functions to new compiler behavior. at some point during 3.3.1, the compiler started to omit stackframes when not needed, which broke the previous assumptions about stackframe handling
2022-05-20 01:55:52 +02:00
florian
c79df5f0fc
* better constant propation for inline nodes
2022-05-19 22:28:58 +02:00
mattias
621f3b8387
fcl-passrc: fixed compile pscanner with pas2js
2022-05-19 09:51:38 +02:00
mattias
f102e40b69
fcl-passrc: moved ReadNextPascalToken to fpscanner
2022-05-19 09:46:40 +02:00
mattias
dd6ccd0fb4
fcl-json: fixed compile with fpc 3.2.2
2022-05-19 09:46:15 +02:00
Michaël Van Canneyt
1b22a68fc6
* Export wasiAlloc and wasiFree
2022-05-18 14:48:11 +02:00
Michaël Van Canneyt
050153fb50
* Make sure webcompiler works again
2022-05-18 12:36:31 +02:00
Pierre Muller
5203c3e849
Add dumping of backtrace in case of unhandled exception inside TCustomInstaller.Run method
2022-05-17 23:28:47 +02:00
Pierre Muller
be969205ad
Do not alloc/dealloc NR_DEFAULTFLAGS for wasm32, as it is NR_NO
2022-05-17 22:47:13 +02:00
florian
9f47e21da3
* increase default dwarf version for linux targets where current distributions exist
2022-05-16 22:56:30 +02:00
Pierre Muller
7f886cc4b0
Call increfs manually to avoid removal of stabs debug related labels
2022-05-16 15:12:07 +00:00
florian
81fd3e2748
* more readable fix for the missing ait_instruction check
2022-05-15 19:32:27 +02:00
J. Gareth "Curious Kit" Moreton
27db63969a
* a64: Fix where hp1's was assumed to be an instruction and not actually checked
2022-05-15 16:47:55 +00:00
marcoonthegit
41704feab4
* fix ipv6_ constants in unxsockh. bug 29111 Apparently changed since 2005
2022-05-15 18:25:11 +02:00
Jonas Maebe
0d74752b1f
Fix %cpu type as spotted by Alexey Torgashin
2022-05-15 18:01:48 +02:00
Jonas Maebe
9b11509dd0
Text for merge request #226
2022-05-15 10:57:43 +02:00
Brendan Dougherty
1923c8a611
Only use Win64 vectorcall special case if calling convention is vectorcall.
2022-05-15 08:56:50 +00:00
Jonas Maebe
16cb409fbf
LLVM: separate as_clang_llvm_darwin
...
The Darwin local label prefix ('L') is different from that on most other
platforms ('.L). While LLVM generally handles that for us, for inline
assembly it's still FPC's job to adhere to the target conventions.
2022-05-14 22:38:49 +02:00
Jonas Maebe
481741c65b
llvmdbg: remove some commented dbgdwarf code
...
Also adjusted some hashtable sizes
2022-05-14 22:38:49 +02:00
florian
e8da1d081a
+ Aarch64: MovOp2AddUtxw optimization
2022-05-14 22:30:56 +02:00
Pierre Muller
9b87fb4a34
Use '.L' as labelprefix for LLVM compiler variant
2022-05-14 21:26:13 +02:00
Pierre Muller
a0d4cccd87
Fix syntax error for isLocal field for function/procedure type LLVM debug information
2022-05-14 21:05:54 +02:00
J. Gareth "Curious Kit" Moreton
f6c741ee73
* Corrected label reference counts caused by TAsmLabel.GetName incrementing refs
2022-05-14 18:57:05 +00:00
Jonas Maebe
cddffbed58
llvmdbg: disable open array data location
...
Since we don't generate full debug info for parameters yet, this internalerrors
2022-05-14 08:34:38 +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
816ab7ffcc
llvm metadata: counter per unit rather than globally
...
Results in less high numbers, and reproducible results when partially
rebuilding
2022-05-13 22:49:02 +02:00
Jonas Maebe
9b280db2b1
dbgllvm: add scopeLine attribute for function debug info
...
Ensures that breaking on the function correctly sets the breakpoint on the
first source line of the function (rather than potentially in the prologue
without line information)
2022-05-13 22:49:02 +02:00
Jonas Maebe
d1aaeff832
dbgllvm: fix crash for files without procedures/functions
2022-05-13 22:49:02 +02:00
Jonas Maebe
067d96242c
dbgllvm: fix crash when generating debug info for procdef of imported struct
2022-05-13 22:49:02 +02:00
Jonas Maebe
cf6a97c8ed
LLVM: fix fileinfo of temp allocations
2022-05-13 22:49:02 +02:00
Jonas Maebe
8d2d91d505
dbgllvm: fix infinite loop when writing multi-dimensional array info
2022-05-13 22:49:02 +02:00
Jonas Maebe
a7e19e9f06
llvm metadata: use cardinal instead of tsuperregister for unnamed metadata numbers
...
We're not putting these into registers, so no need to limit ourselves
2022-05-13 22:49:02 +02:00
Jonas Maebe
a75adf542d
dbgllvm: handle empty spFlags
2022-05-13 22:49:02 +02:00
Jonas Maebe
91563115c4
dbgllvm: handle array of const (stub)
2022-05-13 22:49:02 +02:00
Jonas Maebe
aec7aefdd5
dbgllvm: create dummy line info for instructions that shouldn't have any
...
Use line 0 for that, like clang does
2022-05-13 22:49:02 +02:00