mirror of
https://github.com/vercel-labs/scriptc.git
synced 2026-11-01 07:33:12 +08:00
A profile merged with --sparse has no record of the functions its training never ran, so a build with it optimized them as without a profile, and on tsc-ts they are 72% of the program's IR. The block-count file a recording build writes now also names those functions, with an entry count of zero and no blocks. A --profile-use build that reads the file gives such a function an entry count of 0 and the cold attribute, as it does for a mismatched function the file records as never run, so LLVM optimizes it for size and places it with the other unlikely code. A function the file does not name, such as one added since the profile was collected, keeps no counts.