bool DenseMapInfo<ComparableFunction>::isEqual(const ComparableFunction &LHS, const ComparableFunction &RHS) { if (LHS.getFunc() == RHS.getFunc() && LHS.getHash() == RHS.getHash()) return true; if (!LHS.getFunc() || !RHS.getFunc()) return false; assert(LHS.getTD() == RHS.getTD() && "Comparing functions for different targets"); return FunctionComparator(LHS.getTD(), LHS.getFunc(), RHS.getFunc()).Compare(); }
bool DenseMapInfo<ComparableFunction>::isEqual(const ComparableFunction &LHS, const ComparableFunction &RHS) { if (LHS.getFunc() == RHS.getFunc() && LHS.getHash() == RHS.getHash()) return true; if (!LHS.getFunc() || !RHS.getFunc()) return false; // One of these is a special "underlying pointer comparison only" object. if (LHS.getTD() == ComparableFunction::LookupOnly || RHS.getTD() == ComparableFunction::LookupOnly) return false; assert(LHS.getTD() == RHS.getTD() && "Comparing functions for different targets"); return FunctionComparator(LHS.getTD(), LHS.getFunc(), RHS.getFunc()).compare(); }