[Instrumentor] Introduce BasePointerIO to communicate base pointer information
Loads, stores, and later probably calls, can request a base pointer info
object from the user runtime. This object is queried right after the
base pointer of the operation is defined, and then passed to the
pre/post runtime calls of the loads and stores. This allows users to
inspect pointers early and once, but provide the analysis results to all
operations that might be executed in loops. A potential use case is to
lookup the size and start of the underlying object and then provide
those to the access runtime calls for in-bounds checking.
[Instrumentor] Add Cast instruction instrumentation support
We now allow to have instrumentation opportunities for many instructions
(=opcodes) to bundle common classes together. Users can use filters on
the opcode, type-id, and size to statically select what they are
interested in.
[AggressiveInstCombine] Factor common code out of tryToRecognizePopCount and tryToRecognizePopCount2n3. (#199440)
Both of these patterns end with code to compute the popcount of each
byte.
This isn't NFC because tryToRecognizePopCount2n3 handled an alternate
pattern for one of the steps and tryToRecognizePopCount used
MaskedValueIsZero. The shared code applies these differences to both
cases. New tests have been added.
Assisted-by: Claude Sonnet 4.6
---------
Co-authored-by: Min-Yih Hsu <min at myhsu.dev>
[SandboxVec][DAG] Implement missing API for successors (#195301)
This patch implements the missing API for accessing the DAG successors.
This includes the successor iterators and DAG Node member functions like
succs(). These are mirroring the existing predecessor API.
[clang-tidy] Fixes false positive with a non-const method on a pointer (#188844)
Fixes
#56777
#58098
#64955
Non-const member functions don't mutate the pointer but the pointee.
Pointee mutations follow different path within the analyzer, so should
not be effected.
Edit to old tests were needed. Adds a dedicated tests besides those.