rust/compiler/rustc_codegen_llvm/src
bors 0d7b2fb797 Auto merge of #123441 - saethlin:fixed-len-file-names, r=oli-obk
Stabilize the size of incr comp object file names

The current implementation does not produce stable-length paths, and we create the paths in a way that makes our allocation behavior is nondeterministic. I think `@eddyb` fixed a number of other cases like this in the past, and this PR fixes another one. Whether that actually matters I have no idea, but we still have bimodal behavior in rustc-perf and the non-uniformity in `find` and `ls` was bothering me.

I've also removed the truncation of the mangled CGU names. Before this PR incr comp paths look like this:
```
target/debug/incremental/scratch-38izrrq90cex7/s-gux6gz0ow8-1ph76gg-ewe1xj434l26w9up5bedsojpd/261xgo1oqnd90ry5.o
```
And after, they look like this:
```
target/debug/incremental/scratch-035omutqbfkbw/s-gux6borni0-16r3v1j-6n64tmwqzchtgqzwwim5amuga/55v2re42sztc8je9bva6g8ft3.o
```

On the one hand, I'm sure this will break some people's builds because they're on Windows and only a few bytes from the path length limit. But if we're that seriously worried about the length of our file names, I have some other ideas on how to make them smaller. And last time I deleted some hash truncations from the compiler, there was a huge drop in the number if incremental compilation ICEs that were reported: https://github.com/rust-lang/rust/pull/110367https://github.com/rust-lang/rust/pull/110367

---

Upon further reading, this PR actually fixes a bug. This comment says the CGU names are supposed to be a fixed-length hash, and before this PR they aren't: ca7d34efa9/compiler/rustc_monomorphize/src/partitioning.rs (L445-L448)
2024-05-03 17:41:48 +00:00
..
back Add support for Arm64EC to the Standard Library 2024-04-15 16:05:16 -07:00
coverageinfo mcdc-coverage: Get decision_depth from THIR lowering 2024-04-29 09:13:40 +00:00
debuginfo Remove extern crate rustc_macros from numerous crates. 2024-04-29 10:21:54 +10:00
llvm Auto merge of #121298 - nikic:writable, r=cuviper 2024-04-25 04:31:56 +00:00
abi.rs Auto merge of #121298 - nikic:writable, r=cuviper 2024-04-25 04:31:56 +00:00
allocator.rs Add -Zuse-sync-unwind 2023-12-31 15:27:43 +08:00
asm.rs Add support for Arm64EC inline assembly 2024-04-10 10:06:44 -07:00
attributes.rs Use the Align type when parsing alignment attributes 2024-04-01 03:05:55 +01:00
base.rs compiler: replace cstr macro with c str literals in compiler and few other c str replacements 2023-12-03 14:54:09 +03:00
builder.rs Auto merge of #124255 - RenjiSann:renji/mcdc-nested-expressions, r=Zalathar 2024-04-29 11:54:49 +00:00
callee.rs Fix clippy::needless_borrow in the compiler 2023-11-21 20:13:40 +01:00
common.rs Codegen ZSTs without an allocation 2024-04-16 21:13:21 -04:00
consts.rs Rollup merge of #124178 - GuillaumeGomez:llvm-backend, r=oli-obk 2024-04-22 20:25:58 +02:00
context.rs Stabilize the size of incr comp object file names 2024-04-22 10:50:07 -04:00
declare.rs sanitizers: Create the rustc_sanitizers crate 2024-04-08 12:05:41 -07:00
errors.rs Rename IntoDiagnostic as Diagnostic. 2024-03-11 09:15:09 +11:00
intrinsic.rs Inline & delete Ty::new_unit, since it's just a field access 2024-05-02 17:49:23 +02:00
lib.rs Remove extern crate rustc_macros from numerous crates. 2024-04-29 10:21:54 +10:00
llvm_util.rs llvm: update riscv target feature to match LLVM 19 2024-04-17 16:15:24 -04:00
mono_item.rs Some comment nits 2024-03-12 08:51:20 +00:00
type_.rs Remove my scalar_copy_backend_type optimization attempt 2024-04-09 08:51:32 -07:00
type_of.rs Remove my scalar_copy_backend_type optimization attempt 2024-04-09 08:51:32 -07:00
va_arg.rs Add arm64ec-pc-windows-msvc target 2024-03-06 17:49:37 -08:00
value.rs mv compiler to compiler/ 2020-08-30 18:45:07 +03:00