File tree Expand file tree Collapse file tree 3 files changed +6
-0
lines changed Expand file tree Collapse file tree 3 files changed +6
-0
lines changed Original file line number Diff line number Diff line change @@ -568,6 +568,8 @@ pub(crate) unsafe fn codegen(
568568 let llcx = & * module. module_llvm . llcx ;
569569 let tm = & * module. module_llvm . tm ;
570570 let module_name = module. name . clone ( ) ;
571+ let count = unsafe { llvm:: LLVMRustModuleInstructionStats ( & llmod) } ;
572+ println ! ( "llvm-module: {module_name} = {count}" ) ;
571573 let module_name = Some ( & module_name[ ..] ) ;
572574 let handlers = DiagnosticHandlers :: new ( cgcx, diag_handler, llcx) ;
573575
Original file line number Diff line number Diff line change @@ -2410,6 +2410,7 @@ extern "C" {
24102410 pub fn LLVMRustModuleBufferLen ( p : & ModuleBuffer ) -> usize ;
24112411 pub fn LLVMRustModuleBufferFree ( p : & ' static mut ModuleBuffer ) ;
24122412 pub fn LLVMRustModuleCost ( M : & Module ) -> u64 ;
2413+ pub fn LLVMRustModuleInstructionStats ( M : & Module ) -> u64 ;
24132414
24142415 pub fn LLVMRustThinLTOBufferCreate ( M : & Module , is_thin : bool ) -> & ' static mut ThinLTOBuffer ;
24152416 pub fn LLVMRustThinLTOBufferFree ( M : & ' static mut ThinLTOBuffer ) ;
Original file line number Diff line number Diff line change @@ -1754,10 +1754,13 @@ LLVMRustModuleCost(LLVMModuleRef M) {
17541754extern " C" uint64_t
17551755LLVMRustModuleInstructionStats (LLVMModuleRef M) {
17561756 auto f = unwrap (M)->functions ();
1757+ raw_fd_ostream OS (2 , false ); // stderr.
17571758 for (auto &func : f)
17581759 {
17591760 auto name = func.getName ();
1761+
17601762 auto count = func.getInstructionCount ();
1763+ OS << name << " \t " << count << " \n " ;
17611764 }
17621765 return unwrap (M)->getInstructionCount ();
17631766}
You can’t perform that action at this time.
0 commit comments