[ValueTracking] Use SmallVector for non-undef/poison ops
authorNikita Popov <npopov@redhat.com>
Mon, 2 Jan 2023 13:37:02 +0000 (14:37 +0100)
committerNikita Popov <npopov@redhat.com>
Mon, 2 Jan 2023 13:40:15 +0000 (14:40 +0100)
commit3f04553e5c16f5ba57e9a82edc190770f5a062bb
treed1002e4b2bd647c2995b41b25ec589784aaafbee
parente87c2bd330d91bc1fcfe7e44d6f62d873b88c5fb
[ValueTracking] Use SmallVector for non-undef/poison ops

The way these APIs are used, there isn't really a benefit to
deduplicating the ops as part of the API. The only place that
benefits from this is PoisonChecking, and for that particular
use the assertion emission was potentially non-deterministic.
We should populate a vector for deterministic order and then
deduplicate via a separate set.
llvm/include/llvm/Analysis/ValueTracking.h
llvm/lib/Analysis/ValueTracking.cpp
llvm/lib/Transforms/Instrumentation/PoisonChecking.cpp