[all-commits] [llvm/llvm-project] 6bbccd: GlobalsModRef, ValueTracking: Look through threadl...
Matthias Braun via All-commits
all-commits at lists.llvm.org
Fri Apr 19 10:02:04 PDT 2024
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 6bbccd2516c3a843809a8303da48abce58a88855
https://github.com/llvm/llvm-project/commit/6bbccd2516c3a843809a8303da48abce58a88855
Author: Matthias Braun <matze at braunis.de>
Date: 2024-04-19 (Fri, 19 Apr 2024)
Changed paths:
M llvm/include/llvm/Analysis/ValueTracking.h
M llvm/lib/Analysis/GlobalsModRef.cpp
M llvm/lib/Analysis/ValueTracking.cpp
M llvm/test/Analysis/GlobalsModRef/nonescaping-noalias.ll
M llvm/test/CodeGen/PowerPC/aix-small-local-dynamic-tls-largeaccess.ll
M llvm/test/CodeGen/PowerPC/aix-small-local-exec-tls-largeaccess.ll
M llvm/test/CodeGen/PowerPC/aix-small-tls-globalvarattr-funcattr.ll
M llvm/test/CodeGen/X86/threadlocal_address.ll
Log Message:
-----------
GlobalsModRef, ValueTracking: Look through threadlocal.address intrinsic (#88418)
This improves handling of `threadlocal.address` intrinsic in analyses:
The thread-id cannot change within a function with the exception of
suspend points of pre-split coroutines. This changes
`llvm::getUnderlyingObject` to look through `threadlocal.address` in
these cases.
`GlobalsAAResult::AnalyzeUsesOfPointer` checks whether an address can be
traced to simple loads/stores or escapes to other places. Starting the
analysis from a thread-local `GlobalValue` the `threadlocal.address`
intrinsic is safe to skip here.
This improves issue #87437
To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications
More information about the All-commits
mailing list