David Rubin
3e73f37d0a
riscv: implement @fence
2024-07-14 23:02:33 -07:00
David Rubin
7a02878f4e
riscv: truncate airStructFieldVal result
2024-07-14 23:02:33 -07:00
David Rubin
27ceb4ae37
riscv implement @sqrt for f32/f64
2024-07-14 23:02:32 -07:00
David Rubin
0460572899
riscv: @atomicRmw
...
Now we generate debug undefined constants when the user asks for them to dedup across the function decl. This takes 2 instructions instead of 7 in the RISC-V backend.
TODO, we need to dedupe across function decl boundaries.
2024-07-14 23:02:32 -07:00
David Rubin
ea084e9519
riscv: @atomicLoad and @atomicStore
2024-07-14 23:02:29 -07:00
Andrew Kelley
d404d8a363
Merge pull request #20593 from jacobly0/more-races
...
InternPool: fix more races
2024-07-14 17:32:51 -07:00
Andrew Kelley
bd7b2cc4b4
Merge pull request #20620 from kcbanner/fixup_msvc_bootstrap
...
Fixes for bootrapping with MSVC
2024-07-13 22:42:04 -07:00
Krzysztof Wolicki
fba618a6c9
Fix handling of --save-exact=name in fetch
2024-07-13 22:39:53 -07:00
kcbanner
373e53d7c5
Compile: Pass the default --zig-lib-dir along to child processes
...
main: print the self_exe_path when `findZigLibDirFromSelfExe` fails in all cases
2024-07-13 19:04:55 -04:00
kcbanner
11534aa34d
zcu: fixup incorrect pass-by-value of Zcu
2024-07-13 13:44:39 -07:00
Andrew Kelley
d8c1c9ea6e
frontend: report correct paths for C objects
...
oops, the src_path field of CObject is not relative to the module
owner's root directory.
2024-07-13 02:13:03 -07:00
Jacob Young
ad55fb7a20
Compilation: restore saveState
2024-07-13 04:47:38 -04:00
Jacob Young
2ff49751aa
Compilation: introduce work stages for better work distribution
2024-07-13 04:47:38 -04:00
Jacob Young
a1053e8e1d
InternPool: add and use a mutate mutex for each list
...
This allows the mutate mutex to only be locked during actual grows,
which are rare. For the lists that didn't previously have a mutex, this
change has little effect since grows are rare and there is zero
contention on a mutex that is only ever locked by one thread. This
change allows `extra` to be mutated without racing with a grow.
2024-07-13 04:47:38 -04:00
Jacob Young
9f8e4ddf25
Builder: fix llvm ir syntax
2024-07-13 04:04:14 -04:00
Krzysztof Wolicki
30ef0ed054
Args including and after -- get passed to build runner directly
2024-07-13 00:02:46 -07:00
Andrew Kelley
1d20ff11d7
Merge pull request #20580 from ziglang/watch
...
introduce file system watching features to the zig build system
2024-07-12 16:56:17 -07:00
Andrew Kelley
f77b43dad3
zig build: add a --debug-target CLI flag
...
it's not advertised in the usage and only available in debug builds of
the compiler. Makes it easier to test changes to the build runner that
might affect targets differently.
2024-07-12 14:19:17 -07:00
Jacob Young
3ad81c40c0
Zcu: allow atomic operations on packed structs
...
Same validation rules as the backing integer would have.
2024-07-12 00:43:38 -07:00
Andrew Kelley
67e3e4989d
Compilation: fix rebase conflict
2024-07-12 00:18:29 -07:00
Andrew Kelley
5a34e6c3e6
frontend: add file system inputs for incremental cache mode
...
These are also used for whole cache mode in the case that any compile
errors are emitted.
2024-07-12 00:15:11 -07:00
Andrew Kelley
a3c20dffae
integrate Compile steps with file watching
...
Updates the build runner to unconditionally require a zig lib directory
parameter. This parameter is needed in order to correctly understand
file system inputs from zig compiler subprocesses, since they will refer
to "the zig lib directory", and the build runner needs to place file
system watches on directories in there.
The build runner's fanotify file watching implementation now accounts
for when two or more Cache.Path instances compare unequal but ultimately
refer to the same directory in the file system.
Breaking change: std.Build no longer has a zig_lib_dir field. Instead,
there is the Graph zig_lib_directory field, and individual Compile steps
can still have their zig lib directories overridden. I think this is
unlikely to break anyone's build in practice.
The compiler now sends a "file_system_inputs" message to the build
runner which shares the full set of files that were added to the cache
system with the build system, so that the build runner can watch
properly and redo the Compile step. This is implemented for whole cache
mode but not yet for incremental cache mode.
2024-07-12 00:14:08 -07:00
Andrew Kelley
d2bec8f92f
delete dead CLI usage code from main.zig
2024-07-12 00:14:07 -07:00
Jacob Young
77810f2882
InternPool: fix optimization assertion failure
2024-07-10 22:56:12 -04:00
Jacob Young
c79d3e4aab
Compilation: fix leak
2024-07-10 22:05:52 -04:00
Jacob Young
c2316c5228
InternPool: make global_error_set thread-safe
2024-07-10 21:39:55 -04:00
Jacob Young
98f3a262a7
InternPool: fix extra mutation races
2024-07-10 19:03:07 -04:00
Jacob Young
2c89f3b654
InternPool: make maps thread-safe
2024-07-10 19:02:55 -04:00
Jacob Young
afa66fa392
InternPool: make tracked_insts thread-safe
2024-07-10 14:42:50 -04:00
Jacob Young
f290b54f89
InternPool: make files more thread-safe
2024-07-10 11:20:08 -04:00
Jacob Young
8f292431b0
InternPool: fix undefined decl fully qualified name
...
This is now possible after moving `File.Index` to `*File` mapping into
intern pool.
2024-07-10 11:20:08 -04:00
Jacob Young
3d2dfbe828
InternPool: add FileIndex to *File mapping
2024-07-10 11:20:08 -04:00
mlugg
f93a10f664
Air: store param names directly instead of referencing Zir
2024-07-10 11:20:08 -04:00
Jacob Young
3aa48bf859
InternPool: fix race on struct flags
2024-07-10 11:10:49 -04:00
Jacob Young
9cf42b1036
InternPool: fix race on FuncInstance.branch_quota
2024-07-10 11:10:49 -04:00
Jacob Young
667b4f9054
Zcu: cache fully qualified name on Decl
...
This avoids needing to mutate the intern pool from backends.
2024-07-10 11:10:49 -04:00
Andrew Kelley
b3b923e51f
Merge pull request #20561 from jacobly0/debug-segfaults
...
debug: prevent segfaults on linux
2024-07-09 21:03:36 -04:00
Jacob Young
c5283eb49b
InternPool: implement thread-safe allocated lists
2024-07-09 17:29:01 -04:00
mlugg
47846bc17c
Zcu: fix passing exported decls with compile errors to the backend
2024-07-09 12:53:19 -04:00
Jacob Young
65ced4a334
Compilation: put supported codegen backends on a separate thread
...
(There are no supported backends.)
2024-07-08 11:00:38 -04:00
Jacob Young
c36e2bb980
InternPool: fix multi-thread build
2024-07-08 07:02:53 -04:00
Jacob Young
14192019ff
InternPool: fix dumping of simple types
2024-07-07 23:45:33 -04:00
Jacob Young
1abc904075
InternPool: start documenting new thread-safe fields
2024-07-07 23:23:30 -04:00
Jacob Young
166402c16b
bootstrap: fix build
2024-07-07 22:59:52 -04:00
Jacob Young
bdae01ab04
InternPool: implement and use thread-safe list for extra and limbs
2024-07-07 22:59:52 -04:00
Jacob Young
49b25475ad
InternPool: remove usage of data with simple indices
...
This allows them to be atomically replaced.
2024-07-07 22:59:52 -04:00
Jacob Young
383cffbfae
InternPool: temporarily disable multi-threaded behavior
...
This reduces the cost of the new data structure until the multi-threaded
behavior is actually used.
2024-07-07 22:59:52 -04:00
Jacob Young
92ddb959a7
InternPool: implement and use thread-safe list for items
2024-07-07 22:59:52 -04:00
Jacob Young
8293ff94cf
InternPool: implement and use thread-safe list for strings
2024-07-07 22:59:52 -04:00
Jacob Young
3e1b190fe6
InternPool: replace garbage with an arena
...
This was just a badly implemented arena anyway.
2024-07-07 22:59:52 -04:00