[all-commits] [llvm/llvm-project] ca0ed4: Remove builder that takes SSA value instead of Att...

Mehdi Amini via All-commits all-commits at lists.llvm.org
Tue Nov 2 15:58:33 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: ca0ed40e0000833e739f997f320bfafae35b4996
      https://github.com/llvm/llvm-project/commit/ca0ed40e0000833e739f997f320bfafae35b4996
  Author: Mehdi Amini <joker.eph at gmail.com>
  Date:   2021-11-02 (Tue, 02 Nov 2021)

  Changed paths:
    M flang/include/flang/Lower/ComplexExpr.h
    M flang/include/flang/Optimizer/Dialect/FIROps.td
    M flang/lib/Lower/CharacterExpr.cpp
    M flang/lib/Optimizer/Builder/Character.cpp
    M flang/lib/Optimizer/Dialect/FIROps.cpp

  Log Message:
  -----------
  Remove builder that takes SSA value instead of Attribute on ExtractValueOp, InsetValueOp, and InsertOnRangeOp

This builder exposed a somehow "unsafe" API: it pretends we can
construct an InsertOnRangeOp from a range of SSA values, even though
this will crash if these aren't the result of `arith.constant` since
the operation actually needs attribute values (a build method can't
fail gracefully).
That means that the caller must check for the producer, at which
point they can just assemble the attribute array directly and call
the existing builder.

The existing call-sites were even in a worse state here: they would
actually create a constant operation that wouldn't be used and only
serve to carry the attribute through the builder API.

Differential Revision: https://reviews.llvm.org/D112946


  Commit: ba7a6b314fd14bb2c9ff5d3f4fe2b6525514cada
      https://github.com/llvm/llvm-project/commit/ba7a6b314fd14bb2c9ff5d3f4fe2b6525514cada
  Author: Mehdi Amini <joker.eph at gmail.com>
  Date:   2021-11-02 (Tue, 02 Nov 2021)

  Changed paths:
    M llvm/include/llvm/ADT/STLExtras.h
    M llvm/include/llvm/ADT/iterator.h
    M llvm/unittests/ADT/IteratorTest.cpp

  Log Message:
  -----------
  Fix iterator_adaptor_base/enumerator_iter to allow composition of llvm::enumerate with llvm::make_filter_range

* Properly specify reference type in enumerator_iter
* Fix constness of iterator_adaptor_base::operator*

Differential Revision: https://reviews.llvm.org/D112981


Compare: https://github.com/llvm/llvm-project/compare/885072820c4e...ba7a6b314fd1


More information about the All-commits mailing list