IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    2023年总结

    MaskRay发表于 2024-01-01 03:56:56
    love 0

    一如既往,主要在工具链领域耕耘。

    llvm-project

    I made 700+ commits this year. Many are clean-up commits or fixup forothers' work. I hope that I can do more useful work next year.

    • Enabled --features=layering_check for Bazel's llvm andclang projects
    • Implemented LLVM_ENABLE_REVERSE_ITERATION forStringMap
    • Added llvm::xxh3_64bits and adopted it inllvm/clang/lld
    • Made AArch64 changes to msan and dfsan
    • Made various improvements to the clang driver, including-### exit code, auxiliary files, errors forunsupported target-specific options, -fsanitize=kcfi,and XRay
    • Made various sanitizer changes
    • Made -fsanitize=function work for C and non-x86architectures
    • Fixed several major problems of assembler implementation of RISC-Vlinker relaxation
    • clangSema: %lb recognization for printf/scanf, checkingthe failure memory order for atomic_compare_exchange-familybuilt-in functions, -Wc++11-narrowing-const-reference
    • llvm-objdump: @plt symbols for x86.plt.got, mapping symbol improvements,--disassemble-symbols changes, etc
    • Supported R_RISCV_SET_ULEB128/R_RISCV_SUB_ULEB128 for.uleb128 directives
    • gcov: fix instrumentation crashes when using inline variables,#line, and #include, made llvm-cov gcov workwith a smaller stack size
    • LTO: fixed local ifunc for ThinLTO, reported errors when parsingmodule-level inline assembly
    • CodeLayout: fixed a correctness bug and improved performance to besuitable for lld/ELF --call-graph-profile-sort=hfsortdefault

    Reviewed many commits. A lot of people don't add aReviewed By: tag. Anyway, counting commits with the tag cangive an underestimate.

    1
    2
    % git shortlog -sn 2679e8bba3e166e3174971d040b9457ec7b7d768...main --grep 'Reviewed .*MaskRay' | awk '{s+=$1}END{print s}'
    395

    Many GitHub pull requests are not counted.

    I createda read-only archive of the LLVM phabricator instance.

    lld/ELF

    lld/ELF is quite stable. I have made some maintenance changes. Asusual, I wrote the ELF port's release notes for the two releases. See lld 16 ELF changes andlld 17 ELF changes fordetail.

    I made someslides on how I improved the performance of lld/ELF.

    psABI

    I have made changes to x86-64, AArch64, and RISC-V psABIdocuments.

    binutils

    Reported many bugs and feature requests:

    • ld: Should --gc-sections respect RHS of a symbol assignment?
    • objcopy: add support for changing ELF symbol visibility
    • rtld: resolve ifunc relocations after JUMP_SLOT/GLOB_DAT/etc
    • ld riscv: --emit-relocs does not retain the original relocation type
    • gas aarch64: GOT relocations referencing a local symbol should not be changed to reference STT_SECTION
    • objcopy --set-section-flags: support toggling a flag
    • gas x86: reject {call,jmp} [offset func] in Intel syntax

    My commits:

    • PR30592 objcopy: allow --set-section-flags to add or remove SHF_X86_64_LARGE
    • ld: Allow R_386_GOT32 for call *__tls_get_addr@GOT(%reg)
    • ld: Allow R_X86_64_GOTPCREL for call *__tls_get_addr@GOTPCREL(%rip)
    • RISC-V: Add --[no-]relax-gp to ld

    GCC

    I had one patch landed supporting-mlarge-data-threshold= for x86-64-mcmodel=medium.

    Linux kernel

    8 commits. Consulted on a number of toolchain questions.

    Blog

    Wrote 29 blog posts (including this one, mainly about toolchains) andrevised many posts initially written between 2020 and 2023.

    Misc

    Trips: Orlando, Philadelphia, Harrisburg, Trenton, Newark, New YorkCity, Alaska, Ontario, Quebec, Nova Scotia, Chicago, Atlanta, Miami,Jamaica, Haiti.

    Mastodon: https://hachyderm.io/@meowray



沪ICP备19023445号-2号
友情链接