]> git.proxmox.com Git - rustc.git/blob - src/doc/rustc-guide/src/ice-breaker/llvm.md
New upstream version 1.42.0+dfsg1
[rustc.git] / src / doc / rustc-guide / src / ice-breaker / llvm.md
1 # LLVM ICE-breakers
2
3 **Github Label:** [ICEBreaker-LLVM]
4
5 [ICEBreaker-LLVM]: https://github.com/rust-lang/rust/labels/ICEBreaker-LLVM
6
7 The "LLVM ICE-breakers" are focused on bugs that center around LLVM.
8 These bugs often arise because of LLVM optimizations gone awry, or as
9 the result of an LLVM upgrade. The goal here is:
10
11 - to determine whether the bug is a result of us generating invalid LLVM IR,
12 or LLVM misoptimizing;
13 - if the former, to fix our IR;
14 - if the latter, to try and file a bug on LLVM (or identify an existing bug).
15
16 ## Helpful tips and options
17
18 The ["Debugging LLVM"][d] section of the
19 rustc-guide gives a step-by-step process for how to help debug bugs
20 caused by LLVM. In particular, it discusses how to emit LLVM IR, run
21 the LLVM IR optimization pipeliness, and so forth. You may also find
22 it useful to look at the various codegen options listed under `-Chelp`
23 and the internal options under `-Zhelp` -- there are a number that
24 pertain to LLVM (just search for LLVM).
25
26 [d]: ../codegen/debugging.md
27
28 ## If you do narrow to an LLVM bug
29
30 The ["Debugging LLVM"][d] section also describes what to do once
31 you've identified the bug.