Robin Voetter
1018cdc0a8
Merge pull request #21030 from Snektron/nv-gpu-builtins
...
nvptx: add implementations for GPU builtins
2024-08-14 04:14:34 +02:00
Andrew Kelley
022bca9b06
std.debug.Dwarf: better source location information
...
Two fixes here:
Sort by addresses after generating the line table. Debug information in
the wild is not sorted and the rest of the implementation requires this
data to be sorted.
Handle DW.LNE.end_sequence correctly. When I originally wrote this code,
I misunderstood what this opcode was supposed to do. Now I understand
that it marks the *end* of an address range, meaning the current address
does *not* map to the current line information.
This fixes source location information for a big chunk of ReleaseSafe
code.
2024-08-13 18:04:23 -07:00
Andrew Kelley
a9e7fb0e01
avoid a branch in resolveAddressesDwarf
2024-08-13 15:02:53 -07:00
Andrew Kelley
e8e49efe21
ZigLLVMTargetMachineEmitToFile: put sanitizers in registerOptimizerLastEPCallback
...
matching the default of clang's behavior. I originally put them in
registerOptimizerEarlyEPCallback because I thought clang was doing that,
but I see now it is behind the flag `--sanitizer-early-opt-ep` which is
disabled by default.
2024-08-13 15:02:53 -07:00
Andrew Kelley
b5398180d6
std.debug.Coverage.resolveAddressesDwarf: fix broken logic
...
The implementation assumed that compilation units did not overlap, which
is not the case. The new implementation uses .debug_ranges to iterate
over the requested PCs.
This partially resolves #20990 . The dump-cov tool is fixed but the same
fix needs to be applied to `std.Build.Fuzz.WebServer` (sorting the PC
list before passing it to be resolved by debug info).
I am observing LLVM emit multiple 8-bit counters for the same PC
addresses when enabling `-fsanitize-coverage=inline-8bit-counters`. This
seems like a bug in LLVM. I can't fathom why that would be desireable.
2024-08-13 15:02:53 -07:00
Alex Rønne Petersen
819fe51a7e
llvm: Disable f128 on powerpc*-aix.
...
https://github.com/llvm/llvm-project/issues/101545
2024-08-13 23:30:43 +02:00
Alex Rønne Petersen
2f101e2b6e
llvm: Disable f128 on mips64(el).
...
https://github.com/llvm/llvm-project/issues/96432
2024-08-13 23:30:43 +02:00
Alex Rønne Petersen
18e94c355e
llvm: Also disable f16/f128 on aarch64_be with soft float.
2024-08-13 23:30:43 +02:00
Alex Rønne Petersen
f1af9eb836
std.zig.system: Support qemu-xtensa in getExternalExecutor().
2024-08-13 23:30:43 +02:00
Alex Rønne Petersen
8e75ade253
std.zig.system: Support qemu-mipsn32(el) for mips with n32 ABI in getExternalExecutor().
2024-08-13 23:30:43 +02:00
Alex Rønne Petersen
0e4263893c
std.zig.system: Support qemu-sparc32plus for sparc32 with v9 in getExternalExecutor().
2024-08-13 23:30:43 +02:00
Jakub Konka
1bd54a55fa
fix compile errors in other codegen backends
2024-08-13 21:52:40 +02:00
Andrew Kelley
0b5ea2b902
Merge pull request #21053 from alexrp/mips-tests
...
`test`: Re-enable `mips(el)-linux(-musl)` tests.
2024-08-13 11:48:33 -07:00
Robin Voetter
bcfc7cf13c
nvptx: add implementations for GPU builtins
2024-08-13 20:07:23 +02:00
YANG Xudong
76f062690c
add getcontext
2024-08-13 10:11:17 -07:00
Jakub Konka
97ab420dcf
elf: do not emit zig jump table in relocatables
2024-08-13 13:30:24 +02:00
Jakub Konka
49d78cc793
elf: only apply zig jump table indirection to function calls (PLT32)
2024-08-13 13:30:24 +02:00
Jakub Konka
9daf5e81c4
elf: commit non-indirected symbol address to symtab
2024-08-13 13:30:24 +02:00
Jakub Konka
df80ccf760
elf: pretty print alingment when pretty printing atoms
2024-08-13 13:30:24 +02:00
Jakub Konka
39ee346681
elf: make .text.zig bigger now that jump table is part of it
2024-08-13 13:30:24 +02:00
Jakub Konka
afaec5c3e4
x86_64: fix generating lazy symbol refs
2024-08-13 13:30:24 +02:00
Jakub Konka
edd72c75eb
elf: fix circular dep loop in zig jump table
2024-08-13 13:30:24 +02:00
Jakub Konka
57f7209508
elf: replace use of linker_extern_fn with more generic Immediate.reloc
2024-08-13 13:30:24 +02:00
Jakub Konka
ce8886d57d
elf: make zig jump table indirection implicit via Symbol.address
2024-08-13 13:30:24 +02:00
Jakub Konka
d25c93a868
x86_64: emit call rel32 for near calls with linker reloc
2024-08-13 13:30:24 +02:00
Jakub Konka
ffcf0478fe
x86_64: remove handling of .call since it's unused for now
2024-08-13 13:30:24 +02:00
Jakub Konka
78b1c73602
elf: rename OffsetTable to JumpTable
2024-08-13 13:30:24 +02:00
Jakub Konka
e1ce9a7065
elf: add poorman's reporting tool for unallocated NAVs/UAVs
2024-08-13 13:30:24 +02:00
Jakub Konka
e3f6ebaea9
x86_64+elf: fix jump table indirection for functions
2024-08-13 13:30:24 +02:00
Jakub Konka
16abf51cee
x86_64: handle lea_symbol returned by genNavRef
2024-08-13 13:30:24 +02:00
Jakub Konka
f968dd0cb1
comp: actually report codegen errors
2024-08-13 13:30:24 +02:00
Jakub Konka
5fd53dc36f
x86_64: start converting away from .got.zig knowledge
2024-08-13 13:30:24 +02:00
Jakub Konka
d7c5fbce92
elf: emit a jump table in place of offset table for functions
2024-08-13 13:30:24 +02:00
Jakub Konka
d328140858
elf: nuke ZigGotSection from existence
2024-08-13 13:30:24 +02:00
Jakub Konka
4c2b34e8ab
elf: relax R_X86_64_32 into jump table indirection if zig_offset_table set
2024-08-13 13:30:24 +02:00
Jakub Konka
7556b32840
elf: indirect via offset table in the linker away from backend
2024-08-13 13:30:24 +02:00
Jakub Konka
97a65ea0d5
elf: dirty offset table entry on moving Atom in off/addr space
2024-08-13 13:30:24 +02:00
Jakub Konka
24b915c9f2
elf: write offset table entry if dirty
2024-08-13 13:30:24 +02:00
Jakub Konka
67e703dc71
elf: allocate new offset table via Atom.allocate mechanism
2024-08-13 13:30:23 +02:00
Jakub Konka
27e1e63671
elf: introduce OffsetTable in ZigObject for funcs only
2024-08-13 13:30:23 +02:00
Alex Rønne Petersen
eadc0c01cc
test: Re-enable armv8-linux-gnueabihf tests.
...
Closes #3287 .
2024-08-13 00:57:49 -07:00
Alex Rønne Petersen
e725d1e226
std.Thread: Fix freeAndExit() syscall numbers for mips64.
...
These just seem to have been copy/pasted from mips32.
2024-08-13 00:56:35 -07:00
Alex Rønne Petersen
d0ae803a77
std.Thread: Fix freeAndExit() assembly for powerpc.
...
Wrong source/destination register order.
2024-08-13 00:56:14 -07:00
Alex Rønne Petersen
b00f586c3d
std.os.linux
: Add clone() implementation for mips64. (#21038 )
...
Only for n64; no handling for n32 yet.
Also remove pointless comment about o32 in mips64 code.
2024-08-12 16:09:52 -07:00
Alex Rønne Petersen
d6f9972594
all: Handle spirv in addition to spirv(32,64) where applicable.
...
Some of this is arbitrary since spirv (as opposed to spirv32/spirv64) refers to
the version with logical memory layout, i.e. no 'real' pointers. This change at
least matches what clang does.
2024-08-12 16:08:28 -07:00
Alex Rønne Petersen
6d23850108
std.Thread: Explain apparently pointless mips instruction in freeAndExit().
...
https://git.musl-libc.org/cgit/musl/commit/?id=ce3688eca920aa77549323f84e21f33522397115
2024-08-12 16:07:46 -07:00
Andrew Kelley
f988cea825
Merge pull request #21019 from alexrp/target-os-cleanup
...
`std.Target`: Remove `minix` and `liteos`, rename `glsl450` to `opengl`, and some minor housekeeping
2024-08-12 16:06:57 -07:00
Alex Rønne Petersen
82b0f44721
llvm: Disable lowering to f16 on s390x.
...
https://github.com/llvm/llvm-project/issues/50374
2024-08-12 16:01:59 -07:00
Alex Rønne Petersen
a1a823f69c
llvm: Disable lowering to f128 on sparc32.
...
efc6b50d2d/llvm/lib/Target/Sparc/SparcISelLowering.cpp (L561-L562)
2024-08-12 16:01:34 -07:00
Alex Rønne Petersen
87ec4e11c9
compiler-rt: Fix the leoncasa CPU feature check for sparc32.
2024-08-12 14:36:21 -07:00