[llvm] [polly] IR: Remove uselist for constantdata (PR #137313)

Martin Storsjö via llvm-commits llvm-commits at lists.llvm.org
Wed May 7 00:25:40 PDT 2025


mstorsjo wrote:

I also bisected a breakage down to this commit. It can be triggered with this reduced input:
```c++
struct QTransform {
  double m_matrix[3];
};
struct QPaintEngineState {
  int dirtyFlags;
};
struct QPaintEngine {
  QPaintEngineState *state;
};
struct QPainterState : QPaintEngineState {
  virtual ~QPainterState();
  QTransform matrix;
};
struct QPaintEngineEx : QPaintEngine {
  void stroke();
  QPainterState *state() {
    return static_cast<QPainterState *>(QPaintEngine::state);
  }
};
void QPaintEngineEx::stroke() {
  QPainterState __trans_tmp_1;
  QTransform xform = state()->matrix;
  state()->matrix = QTransform();
  __trans_tmp_1.matrix = xform;
}
```

Compiled e.g. like this:
```console
$ clang -target x86_64-linux-gnu -c repro.cpp -O2
clang: ../include/llvm/IR/Value.h:360: llvm::Value::const_use_iterator llvm::Value::materialized_use_begin() const: Assertion `hasUseList()' failed.
```

https://github.com/llvm/llvm-project/pull/137313


More information about the llvm-commits mailing list