Please use GitHub pull requests for new patches. Phabricator shutdown timeline
Changeset View
Changeset View
Standalone View
Standalone View
llvm/lib/IR/DebugInfoMetadata.cpp
Show First 20 Lines • Show All 1,661 Lines • ▼ Show 20 Lines | |||||
} | } | ||||
bool DIExpression::hasAllLocationOps(unsigned N) const { | bool DIExpression::hasAllLocationOps(unsigned N) const { | ||||
SmallDenseSet<uint64_t, 4> SeenOps; | SmallDenseSet<uint64_t, 4> SeenOps; | ||||
for (auto ExprOp : expr_ops()) | for (auto ExprOp : expr_ops()) | ||||
if (ExprOp.getOp() == dwarf::DW_OP_LLVM_arg) | if (ExprOp.getOp() == dwarf::DW_OP_LLVM_arg) | ||||
SeenOps.insert(ExprOp.getArg(0)); | SeenOps.insert(ExprOp.getArg(0)); | ||||
for (uint64_t Idx = 0; Idx < N; ++Idx) | for (uint64_t Idx = 0; Idx < N; ++Idx) | ||||
if (!is_contained(SeenOps, Idx)) | if (!SeenOps.contains(Idx)) | ||||
return false; | return false; | ||||
return true; | return true; | ||||
} | } | ||||
const DIExpression *DIExpression::extractAddressClass(const DIExpression *Expr, | const DIExpression *DIExpression::extractAddressClass(const DIExpression *Expr, | ||||
unsigned &AddrClass) { | unsigned &AddrClass) { | ||||
// FIXME: This seems fragile. Nothing that verifies that these elements | // FIXME: This seems fragile. Nothing that verifies that these elements | ||||
// actually map to ops and not operands. | // actually map to ops and not operands. | ||||
▲ Show 20 Lines • Show All 437 Lines • Show Last 20 Lines |