[llvm] r313287 - Remove usages of deprecated std::unary_function and std::binary_function.

David Blaikie via llvm-commits llvm-commits at lists.llvm.org
Mon Sep 18 11:16:42 PDT 2017


On Thu, Sep 14, 2017 at 11:34 AM Benjamin Kramer via llvm-commits <
llvm-commits at lists.llvm.org> wrote:

> Author: d0k
> Date: Thu Sep 14 11:33:25 2017
> New Revision: 313287
>
> URL: http://llvm.org/viewvc/llvm-project?rev=313287&view=rev
> Log:
> Remove usages of deprecated std::unary_function and std::binary_function.
>
> These are removed in C++17. We still have some users of
> unary_function::argument_type, so just spell that typedef out. No
> functionality change intended.
>

Given the point of the deprecation was to remove the use/need for these
typedefs, it'd be good to remove that usage - anything that's relying on
the typedefs won't be compatible with standard library functors which no
longer provide them.

Are you planning to remove them?


>
> Note that many of the argument types are actually wrong :)
>
> Modified:
>     llvm/trunk/include/llvm/ADT/STLExtras.h
>     llvm/trunk/include/llvm/CodeGen/LatencyPriorityQueue.h
>     llvm/trunk/include/llvm/CodeGen/MachineBasicBlock.h
>     llvm/trunk/include/llvm/CodeGen/ResourcePriorityQueue.h
>     llvm/trunk/include/llvm/Target/TargetRegisterInfo.h
>     llvm/trunk/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp
>     llvm/trunk/utils/TableGen/SequenceToOffsetTable.h
>
> Modified: llvm/trunk/include/llvm/ADT/STLExtras.h
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/ADT/STLExtras.h?rev=313287&r1=313286&r2=313287&view=diff
>
> ==============================================================================
> --- llvm/trunk/include/llvm/ADT/STLExtras.h (original)
> +++ llvm/trunk/include/llvm/ADT/STLExtras.h Thu Sep 14 11:33:25 2017
> @@ -56,8 +56,8 @@ using ValueOfRange = typename std::remov
>  //     Extra additions to <functional>
>
>  //===----------------------------------------------------------------------===//
>
> -template<class Ty>
> -struct identity : public std::unary_function<Ty, Ty> {
> +template <class Ty> struct identity {
> +  using argument_type = Ty;
>    Ty &operator()(Ty &self) const {
>      return self;
>    }
> @@ -66,15 +66,13 @@ struct identity : public std::unary_func
>    }
>  };
>
> -template<class Ty>
> -struct less_ptr : public std::binary_function<Ty, Ty, bool> {
> +template <class Ty> struct less_ptr {
>    bool operator()(const Ty* left, const Ty* right) const {
>      return *left < *right;
>    }
>  };
>
> -template<class Ty>
> -struct greater_ptr : public std::binary_function<Ty, Ty, bool> {
> +template <class Ty> struct greater_ptr {
>    bool operator()(const Ty* left, const Ty* right) const {
>      return *right < *left;
>    }
>
> Modified: llvm/trunk/include/llvm/CodeGen/LatencyPriorityQueue.h
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/LatencyPriorityQueue.h?rev=313287&r1=313286&r2=313287&view=diff
>
> ==============================================================================
> --- llvm/trunk/include/llvm/CodeGen/LatencyPriorityQueue.h (original)
> +++ llvm/trunk/include/llvm/CodeGen/LatencyPriorityQueue.h Thu Sep 14
> 11:33:25 2017
> @@ -22,7 +22,7 @@ namespace llvm {
>    class LatencyPriorityQueue;
>
>    /// Sorting functions for the Available queue.
> -  struct latency_sort : public std::binary_function<SUnit*, SUnit*, bool>
> {
> +  struct latency_sort {
>      LatencyPriorityQueue *PQ;
>      explicit latency_sort(LatencyPriorityQueue *pq) : PQ(pq) {}
>
>
> Modified: llvm/trunk/include/llvm/CodeGen/MachineBasicBlock.h
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/MachineBasicBlock.h?rev=313287&r1=313286&r2=313287&view=diff
>
> ==============================================================================
> --- llvm/trunk/include/llvm/CodeGen/MachineBasicBlock.h (original)
> +++ llvm/trunk/include/llvm/CodeGen/MachineBasicBlock.h Thu Sep 14
> 11:33:25 2017
> @@ -762,8 +762,8 @@ private:
>  raw_ostream& operator<<(raw_ostream &OS, const MachineBasicBlock &MBB);
>
>  // This is useful when building IndexedMaps keyed on basic block pointers.
> -struct MBB2NumberFunctor :
> -  public std::unary_function<const MachineBasicBlock*, unsigned> {
> +struct MBB2NumberFunctor {
> +  using argument_type = const MachineBasicBlock *;
>    unsigned operator()(const MachineBasicBlock *MBB) const {
>      return MBB->getNumber();
>    }
>
> Modified: llvm/trunk/include/llvm/CodeGen/ResourcePriorityQueue.h
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/ResourcePriorityQueue.h?rev=313287&r1=313286&r2=313287&view=diff
>
> ==============================================================================
> --- llvm/trunk/include/llvm/CodeGen/ResourcePriorityQueue.h (original)
> +++ llvm/trunk/include/llvm/CodeGen/ResourcePriorityQueue.h Thu Sep 14
> 11:33:25 2017
> @@ -28,7 +28,7 @@ namespace llvm {
>    class ResourcePriorityQueue;
>
>    /// Sorting functions for the Available queue.
> -  struct resource_sort : public std::binary_function<SUnit*, SUnit*,
> bool> {
> +  struct resource_sort {
>      ResourcePriorityQueue *PQ;
>      explicit resource_sort(ResourcePriorityQueue *pq) : PQ(pq) {}
>
>
> Modified: llvm/trunk/include/llvm/Target/TargetRegisterInfo.h
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Target/TargetRegisterInfo.h?rev=313287&r1=313286&r2=313287&view=diff
>
> ==============================================================================
> --- llvm/trunk/include/llvm/Target/TargetRegisterInfo.h (original)
> +++ llvm/trunk/include/llvm/Target/TargetRegisterInfo.h Thu Sep 14
> 11:33:25 2017
> @@ -1124,7 +1124,8 @@ public:
>  };
>
>  // This is useful when building IndexedMaps keyed on virtual registers
> -struct VirtReg2IndexFunctor : public std::unary_function<unsigned,
> unsigned> {
> +struct VirtReg2IndexFunctor {
> +  using argument_type = unsigned;
>    unsigned operator()(unsigned Reg) const {
>      return TargetRegisterInfo::virtReg2Index(Reg);
>    }
>
> Modified: llvm/trunk/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp?rev=313287&r1=313286&r2=313287&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp (original)
> +++ llvm/trunk/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp Thu Sep 14
> 11:33:25 2017
> @@ -1575,7 +1575,7 @@ void ScheduleDAGRRList::ListScheduleBott
>  namespace {
>  class RegReductionPQBase;
>
> -struct queue_sort : public std::binary_function<SUnit*, SUnit*, bool> {
> +struct queue_sort {
>    bool isReady(SUnit* SU, unsigned CurCycle) const { return true; }
>  };
>
>
> Modified: llvm/trunk/utils/TableGen/SequenceToOffsetTable.h
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/TableGen/SequenceToOffsetTable.h?rev=313287&r1=313286&r2=313287&view=diff
>
> ==============================================================================
> --- llvm/trunk/utils/TableGen/SequenceToOffsetTable.h (original)
> +++ llvm/trunk/utils/TableGen/SequenceToOffsetTable.h Thu Sep 14 11:33:25
> 2017
> @@ -37,7 +37,7 @@ class SequenceToOffsetTable {
>
>    // Define a comparator for SeqT that sorts a suffix immediately before a
>    // sequence with that suffix.
> -  struct SeqLess : public std::binary_function<SeqT, SeqT, bool> {
> +  struct SeqLess {
>      Less L;
>      bool operator()(const SeqT &A, const SeqT &B) const {
>        return std::lexicographical_compare(A.rbegin(), A.rend(),
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170918/846631df/attachment.html>


More information about the llvm-commits mailing list