[all-commits] [llvm/llvm-project] 7af802: [CodeGen] Add text section prefix for COFF object ...

pantao78 via All-commits all-commits at lists.llvm.org
Tue Dec 8 03:01:42 PST 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 7af802994eb0521e1b00eda95303f21e874d9f22
      https://github.com/llvm/llvm-project/commit/7af802994eb0521e1b00eda95303f21e874d9f22
  Author: Pan, Tao <tao.pan at intel.com>
  Date:   2020-12-08 (Tue, 08 Dec 2020)

  Changed paths:
    M llvm/include/llvm/ProfileData/ProfileCommon.h
    M llvm/lib/CodeGen/CodeGenPrepare.cpp
    M llvm/lib/CodeGen/MachineFunctionSplitter.cpp
    M llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
    M llvm/test/CodeGen/X86/machine-function-splitter.ll
    M llvm/test/CodeGen/X86/mingw-comdats.ll
    A llvm/test/CodeGen/X86/text-section-prefix.ll
    M llvm/test/Transforms/CodeGenPrepare/X86/section-samplepgo.ll
    M llvm/test/Transforms/CodeGenPrepare/X86/section.ll
    M llvm/test/Transforms/HotColdSplit/coldentrycount.ll
    M llvm/test/Transforms/SampleProfile/section-accurate-samplepgo.ll

  Log Message:
  -----------
  [CodeGen] Add text section prefix for COFF object file

Text section prefix is created in CodeGenPrepare, it's file format independent implementation,  text section name is written into object file in TargetLoweringObjectFile, it's file format dependent implementation, port code of adding text section prefix to text section name from ELF to COFF.
Different with ELF that use '.' as concatenation character, COFF use '$' as concatenation character. That is, concatenation character is variable, so split concatenation character from text section prefix.
Text section prefix is existing feature of ELF, it can help to reduce icache and itlb misses, it's also make possible aggregate other compilers e.g. v8 created same prefix sections. Furthermore, the recent feature Machine Function Splitter (basic block level text prefix section) is based on text section prefix.

Reviewed By: pengfei, rnk

Differential Revision: https://reviews.llvm.org/D92073




More information about the All-commits mailing list