My involvement with LLVM 18
source link: https://maskray.me/blog/2024-02-25-my-involvement-with-llvm-18
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
My involvement with LLVM 18
LLVM 18 will soon be relased. This post provides a summary of my contributions in this release cycle to record my learning progress.
- LLVM binary utility maintenance, e.g.
- sanitizer maintenance, e.g.
- [asan] Enable StackSafetyAnalysis by default
- asan_static x86-64: Support 64-bit
ASAN_SHADOW_OFFSET_CONST
(#75748) - [asan] Report executable/DSO name for report_globals=2 and odr-violation checking (#71879)
- changed lsan to work with high-entropy ASLR for x86-64 Linux
- removed crypt and crypt_r interceptors to work with glibc
- implemented
interceptors for glibc 2.38
__isoc23_strtol
and__isoc23_scanf
family functions - tsan: Respect !nosanitize metadata and remove gcov special case
- [dfsan] Wrap glibc 2.38
__isoc23_*
functions (#79958) -fsanitize=alignment
: check memcpy/memmove arguments (#67766)
- gcov maintenance
- Ignore blocks from another file to fix a crash
- LTO maintenance
- Improve diagnostics handling when parsing module-level inline assembly (#75726)
- MC maintenance
- [MC,AArch64] Suppress local symbol to STT_SECTION conversion for GOT relocations
- MC Make
.pseudo_probe
created sections deterministic after D91878 - Change
.reloc
to register used symbols - Change
SHF_LINK_ORDER
and section group parsing order to match GNU assembler
- AArch32
- [ARM,ELF] Fix access to dso_preemptable __stack_chk_guard with static relocation model (#70014)
- AArch64
- Suppress local symbol to STT_SECTION conversion for GOT relocations
- Restrict MOVZ/MOVK to non-PIC large code model (#70178)
- clang: Define
__GCC_HAVE_SYNC_COMPARE_AND_SWAP_16
for AArch64 (#74954)
- MIPS
- Use generic isBlockOnlyReachableByFallthrough (#80799)
- RISC-V
- Clean up code after improved assembler support for linker relaxation
- Support R_RISCV_SET_ULEB128/R_RISCV_SUB_ULEB128 for .uleb128 directives
- Parse SHF_LINK_ORDER argument before section group name (#77407)
R_RISCV_CALL
/R_RISCV_CALL_PLT
assembler and assembly parser cleanup- Force relocations if initial MCSubtargetInfo contains FeatureRelax (#77436)
- x86
- Support inline assembly constraint "Ws"
- Change displacement overflow when parsing assembly code (#75747)
- Fix MSVC-style inline assembly
call fptr
andjmp fptr
(#73207) - In 32-bit mode, fix FastISel
-fno-pic
for intrinsics to emitR_386_PC32
instead ofR_386_PLT32
(#51078) - clang: Support
arch=x86-64{,-v2,-v3,-v4}
fortarget_clones
attribute - clang:
__builtin_cpu_supports
: supportx86-64{,-v2,-v3,-v4}
- libunwind
- Bump to
CXX_STANDARD 17
(#75986)
- Bump to
- Removed many obsoleted workarounds from the integrated assembler
- Fixed placement of function entry comments
- Re-architectured a substantial part of the integrated assembler that is used by RISC-V linker relaxation, fixing some longstanding bugs. See The dark side of RISC-V linker relaxation for detail.
Clang
Driver maintenance
- [Driver] -###: exit with code 1 if hasErrorOccurred
- Report errors for target-specific options on unsupported targets
- Remove RequiresPIE and msan's NeedPIE setting (#77689)
- Add -fandroid-pad-segment/-fno-android-pad-segment (#77244)
- Support
-mtls-dialect=desc
Others:
- Function multi-versioning: don't set comdat for internal linkage resolvers
Code review
Reviewed many patches, including ADT/Support, binary utilities, MC, lld (sometimes non-ELF ports even if my primary expertise is in ELF), clangDriver, LTO, sanitizers, LoongArch, RISC-V, x86-64 medium/large code models, etc.
TODO
is:pr is:closed sort:updated-desc review-requested:@me
lists pull requests that requested a review from me, but it's unclear
how to list pull requests that I've made a comment.
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK