[PATCH] D142647: [ConstraintElimination] Move Value2Index map to ConstraintSystem (NFC)
Zain Jaffal via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Feb 7 06:04:55 PST 2023
zjaffal updated this revision to Diff 495498.
zjaffal added a comment.
Add comments to explain Value2Index map.
Address nit comments
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D142647/new/
https://reviews.llvm.org/D142647
Files:
llvm/include/llvm/Analysis/ConstraintSystem.h
llvm/lib/Transforms/Scalar/ConstraintElimination.cpp
Index: llvm/lib/Transforms/Scalar/ConstraintElimination.cpp
===================================================================
--- llvm/lib/Transforms/Scalar/ConstraintElimination.cpp
+++ llvm/lib/Transforms/Scalar/ConstraintElimination.cpp
@@ -123,8 +123,6 @@
/// based on signed-ness, certain conditions can be transferred between the two
/// systems.
class ConstraintInfo {
- DenseMap<Value *, unsigned> UnsignedValue2Index;
- DenseMap<Value *, unsigned> SignedValue2Index;
ConstraintSystem UnsignedCS;
ConstraintSystem SignedCS;
@@ -135,10 +133,10 @@
ConstraintInfo(const DataLayout &DL) : DL(DL) {}
DenseMap<Value *, unsigned> &getValue2Index(bool Signed) {
- return Signed ? SignedValue2Index : UnsignedValue2Index;
+ return Signed ? SignedCS.getValue2Index() : UnsignedCS.getValue2Index();
}
const DenseMap<Value *, unsigned> &getValue2Index(bool Signed) const {
- return Signed ? SignedValue2Index : UnsignedValue2Index;
+ return Signed ? SignedCS.getValue2Index() : UnsignedCS.getValue2Index();
}
ConstraintSystem &getCS(bool Signed) {
Index: llvm/include/llvm/Analysis/ConstraintSystem.h
===================================================================
--- llvm/include/llvm/Analysis/ConstraintSystem.h
+++ llvm/include/llvm/Analysis/ConstraintSystem.h
@@ -11,18 +11,23 @@
#include "llvm/ADT/APInt.h"
#include "llvm/ADT/ArrayRef.h"
+#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/SmallVector.h"
#include <string>
namespace llvm {
-
+class Value;
class ConstraintSystem {
/// Current linear constraints in the system.
/// An entry of the form c0, c1, ... cn represents the following constraint:
/// c0 >= v0 * c1 + .... + v{n-1} * cn
SmallVector<SmallVector<int64_t, 8>, 4> Constraints;
+ /// a Map between variabled collected in ConstraintElimination and their
+ /// corresponding index in the constraint system solver.
+ DenseMap<Value *, unsigned> Value2Index;
+
/// Current greatest common divisor for all coefficients in the system.
uint32_t GCD = 1;
@@ -52,6 +57,11 @@
return true;
}
+ DenseMap<Value *, unsigned> &getValue2Index() { return Value2Index; }
+ const DenseMap<Value *, unsigned> &getValue2Index() const {
+ return Value2Index;
+ }
+
bool addVariableRowFill(ArrayRef<int64_t> R) {
// If all variable coefficients are 0, the constraint does not provide any
// usable information.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D142647.495498.patch
Type: text/x-patch
Size: 2428 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20230207/e0487dd7/attachment.bin>
More information about the llvm-commits
mailing list