Changes

Summary

  1. [BPF] turn on -mattr=+alu32 for cpu version v3 and later (details)
  2. [ConstantRange] Add `ushl_sat()`/`sshl_sat()` methods. (details)
  3. [CR] ConstantRange::sshl_sat(): check sigdness of the min/max, not (details)
  4. [NFC][IndVarS] Adjust a comment (details)
  5. [Analyzer] Checker for Debugging Iterator Checkers (details)
Commit 6b8baf3062cdc7bd88867e239f26b6966ee3142c by yhs
[BPF] turn on -mattr=+alu32 for cpu version v3 and later
-mattr=+alu32 has shown good performance vs. without this attribute.
Based on discussion at

https://lore.kernel.org/bpf/1ec37838-966f-ec0b-5223-ca9b6eb0860d@fb.com/T/#t
cpu version v3 should support -mattr=+alu32. This patch enabled alu32 if
cpu version is v3, either specified by user or probed by the llvm.
Differential Revision: https://reviews.llvm.org/D69957
The file was modifiedllvm/test/CodeGen/BPF/32-bit-subreg-alu.ll
The file was modifiedllvm/lib/Target/BPF/BPFSubtarget.cpp
Commit e0ea842baec00b6bf6dc0069f1c1961da5889927 by lebedev.ri
[ConstantRange] Add `ushl_sat()`/`sshl_sat()` methods.
Summary: To be used in `ConstantRange::shlWithNoOverflow()`, may in
future be useful for when saturating shift/mul ops are added.
Unlike `ConstantRange::shl()`, these are precise.
Reviewers: nikic, spatel, reames
Reviewed By: nikic
Subscribers: hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D69960
The file was modifiedllvm/lib/IR/ConstantRange.cpp
The file was modifiedllvm/unittests/IR/ConstantRangeTest.cpp
The file was modifiedllvm/include/llvm/IR/ConstantRange.h
Commit 72a21ad6c9cdbb41c8f17de2318fa469c013caef by lebedev.ri
[CR] ConstantRange::sshl_sat(): check sigdness of the min/max, not
ranges
This was pointed out in review, but forgot to stage this change into the
commit itself..
The file was modifiedllvm/lib/IR/ConstantRange.cpp
Commit 7b9f5401a61646f584249012de0be27ee0cb2b9b by suc-daniil
[NFC][IndVarS] Adjust a comment
(test commit)
The file was modifiedllvm/lib/Transforms/Scalar/IndVarSimplify.cpp
Commit 0f88caeef8f2d4708f442d03db7723396712a143 by adam.balogh
[Analyzer] Checker for Debugging Iterator Checkers
For white-box testing correct container and iterator modelling it is
essential to access the internal data structures stored for container
and iterators. This patch introduces a simple debug checkers called
debug.IteratorDebugging to achieve this.
Differential Revision: https://reviews.llvm.org/D67156
The file was modifiedclang/lib/StaticAnalyzer/Checkers/IteratorChecker.cpp
The file was modifiedclang/include/clang/StaticAnalyzer/Checkers/Checkers.td
The file was addedclang/test/Analysis/debug-iterator-modeling.cpp