morehouse added a subscriber: MaskRay. morehouse added a comment. We should also tests for the new flags in clang/test/Driver/clang_f_opts.c.
================ Comment at: clang/docs/CallGraphSection.rst:58 + +A type identifier may be repeated in different entries. The id value 0 is +reserved for unknown and used for indirect targets with unknown type. ---------------- necipfazil wrote: > morehouse wrote: > > Why would a type ID be repeated? > Current implementation [1] creates a call graph section per function comdat > group, to which the assembly printer writes the call graph entries related to > the function. This is done to enable dead-stripping of call graph entries. > Consequently, the callsites from two functions may share the same type ID but > appear as distinct entries as they will be written to distinct sections. > Although they are merged to a single section by the linker, the type ID > repetition persists since the linker only concatenates. > > Eliminating this to ensure that type IDs are not repeated should only > decrease the binary size overhead. > > [1] https://reviews.llvm.org/D105916 , see > MCObjectFileInfo::getCallGraphSection() Indeed, this is a tricky problem. The current solution is probably OK, but maybe we can simplify the callgraph section format in light of this solution. e.g., ``` Format version, Type id, IsFuncEntry, PC 0, NumericTypeId(foo), 1, FuncEntryPc(foo) 0, NumericTypeId(foo), 0, CallSitePc(fp_foo()) 0, NumericTypeId(main), 1, FuncEntryPc(main) ``` cc @MaskRay Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D105907/new/ https://reviews.llvm.org/D105907 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits