From 63ae85f194981cc6493b1aeda7b8c25d34fe7e8b Mon Sep 17 00:00:00 2001 From: Jim Laskey Date: Sat, 21 Jan 2006 01:13:18 +0000 Subject: [PATCH] Simplify search for abbreviations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25491 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/CodeGen/DwarfWriter.h | 19 +++++++++++++++++++ lib/CodeGen/DwarfWriter.cpp | 12 ++---------- 2 files changed, 21 insertions(+), 10 deletions(-) diff --git a/include/llvm/CodeGen/DwarfWriter.h b/include/llvm/CodeGen/DwarfWriter.h index 7d04e0abccf..3c8ef877ea0 100644 --- a/include/llvm/CodeGen/DwarfWriter.h +++ b/include/llvm/CodeGen/DwarfWriter.h @@ -476,6 +476,25 @@ namespace llvm { // Accessors unsigned getAttribute() const { return Attribute; } unsigned getForm() const { return Form; } + + /// operator== - Used by DIEAbbrev to locate entry. + /// + bool operator==(const DIEAbbrevData &DAD) const { + return Attribute == DAD.Attribute && Form == DAD.Form; + } + + /// operator!= - Used by DIEAbbrev to locate entry. + /// + bool operator!=(const DIEAbbrevData &DAD) const { + return Attribute != DAD.Attribute || Form != DAD.Form; + } + + /// operator< - Used by DIEAbbrev to locate entry. + /// + bool operator<(const DIEAbbrevData &DAD) const { + return Attribute < DAD.Attribute || + (Attribute == DAD.Attribute && Form < DAD.Form); + } }; //===--------------------------------------------------------------------===// diff --git a/lib/CodeGen/DwarfWriter.cpp b/lib/CodeGen/DwarfWriter.cpp index a5424d048b4..09ec6f1458d 100644 --- a/lib/CodeGen/DwarfWriter.cpp +++ b/lib/CodeGen/DwarfWriter.cpp @@ -589,10 +589,7 @@ bool DIEAbbrev::operator==(const DIEAbbrev &DA) const { if (Data.size() != DA.Data.size()) return false; for (unsigned i = 0, N = Data.size(); i < N; i++) { - const DIEAbbrevData &AttrData = Data[i]; - const DIEAbbrevData &DAAttrData = DA.Data[i]; - if (AttrData.getAttribute() != DAAttrData.getAttribute()) return false; - if (AttrData.getForm() != DAAttrData.getForm()) return false; + if (Data[i] != DA.Data[i]) return false; } return true; @@ -606,12 +603,7 @@ bool DIEAbbrev::operator<(const DIEAbbrev &DA) const { if (Data.size() != DA.Data.size()) return Data.size() < DA.Data.size(); for (unsigned i = 0, N = Data.size(); i < N; i++) { - const DIEAbbrevData &AttrData = Data[i]; - const DIEAbbrevData &DAAttrData = DA.Data[i]; - if (AttrData.getAttribute() != DAAttrData.getAttribute()) - return AttrData.getAttribute() < DAAttrData.getAttribute(); - if (AttrData.getForm() != DAAttrData.getForm()) - return AttrData.getForm() < DAAttrData.getForm(); + if (Data[i] != DA.Data[i]) return Data[i] < DA.Data[i]; } return false;