rustc_llvm: Add a -Z print-llvm-stats
option to expose LLVM statistics.
LLVM has a neat [statistics] feature that tracks how often optimizations kick in. It's very handy for optimization work. Since we expose the LLVM pass timings, I thought it made sense to expose the LLVM statistics too. [statistics]: https://llvm.org/docs/ProgrammersManual.html#the-statistic-class-stats-option
This commit is contained in:
parent
55be59d2ce
commit
2d47816cba
10 changed files with 35 additions and 0 deletions
|
@ -1945,6 +1945,10 @@ impl<B: ExtraBackendMethods> OngoingCodegen<B> {
|
|||
self.backend.print_pass_timings()
|
||||
}
|
||||
|
||||
if sess.print_llvm_stats() {
|
||||
self.backend.print_statistics()
|
||||
}
|
||||
|
||||
(
|
||||
CodegenResults {
|
||||
metadata: self.metadata,
|
||||
|
|
|
@ -35,6 +35,7 @@ pub trait WriteBackendMethods: 'static + Sized + Clone {
|
|||
cached_modules: Vec<(SerializedModule<Self::ModuleBuffer>, WorkProduct)>,
|
||||
) -> Result<(Vec<LtoModuleCodegen<Self>>, Vec<WorkProduct>), FatalError>;
|
||||
fn print_pass_timings(&self);
|
||||
fn print_statistics(&self);
|
||||
unsafe fn optimize(
|
||||
cgcx: &CodegenContext<Self>,
|
||||
diag_handler: &Handler,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue