Skip to content
  • whitequark's avatar
    Add profiling support, through the rustc -Z profile flag. · 42754ce7
    whitequark authored
    When -Z profile is passed, the GCDAProfiling LLVM pass is added
    to the pipeline, which uses debug information to instrument the IR.
    After compiling with -Z profile, the $(OUT_DIR)/$(CRATE_NAME).gcno
    file is created, containing initial profiling information.
    After running the program built, the $(OUT_DIR)/$(CRATE_NAME).gcda
    file is created, containing branch counters.
    
    The created *.gcno and *.gcda files can be processed using
    the "llvm-cov gcov" and "lcov" tools. The profiling data LLVM
    generates does not faithfully follow the GCC's format for *.gcno
    and *.gcda files, and so it will probably not work with other tools
    (such as gcov itself) that consume these files.
    42754ce7