[all-commits] [llvm/llvm-project] 550ed5: Simplify BitVector code

serge-sans-paille via All-commits all-commits at lists.llvm.org
Fri Apr 16 13:48:58 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 550ed575cbbd2c81cb855d4debb4a215ae75ef1e
      https://github.com/llvm/llvm-project/commit/550ed575cbbd2c81cb855d4debb4a215ae75ef1e
  Author: serge-sans-paille <sguelton at redhat.com>
  Date:   2021-04-16 (Fri, 16 Apr 2021)

  Changed paths:
    M llvm/include/llvm/ADT/BitVector.h
    M llvm/lib/CodeGen/RegisterScavenging.cpp

  Log Message:
  -----------
  Simplify BitVector code

Instead of managing memory by hand, delegate it to std::vector. This makes the
code much simpler, and also avoids repeatedly computing the storage size.

According to valgrind --tool=callgrind, this also slightly decreases the
instruction count, but by a small margin.

This is a recommit of 82f0e3d3ea6bf927e3397b2fb423abbc5821a30f with one usage
fixed in llvm/lib/CodeGen/RegisterScavenging.cpp.

Not the slight API change: BitVector::clear() now has the same behavior as any
other container: it does not free memory, but indeed sets the size of the
BitVector to 0. It is thus incorrect to access its content right afterwards, a
scenario which wasn't enforced in previous implementation.

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




More information about the All-commits mailing list