diff options
author | Adrian Prantl <aprantl@apple.com> | 2017-03-16 16:38:22 +0000 |
---|---|---|
committer | Adrian Prantl <aprantl@apple.com> | 2017-03-16 16:38:22 +0000 |
commit | c5b3351750c74b192d1fb31de291494fa8db97b2 (patch) | |
tree | fb8481c4d203f771b59433bb62d17c513e46bf66 /llvm/lib/CodeGen/AsmPrinter/DwarfExpression.cpp | |
parent | 3e54835ad75271d4420feb9a0e29b23b28d03ef5 (diff) | |
download | bcm5719-llvm-c5b3351750c74b192d1fb31de291494fa8db97b2.tar.gz bcm5719-llvm-c5b3351750c74b192d1fb31de291494fa8db97b2.zip |
Revert "PR32288: More efficient encoding for DWARF expr subregister access."
This reverts commit 2bf453116889a576956892ea9683db4fcd96e30e while investigating buildbot breakage.
llvm-svn: 297962
Diffstat (limited to 'llvm/lib/CodeGen/AsmPrinter/DwarfExpression.cpp')
-rw-r--r-- | llvm/lib/CodeGen/AsmPrinter/DwarfExpression.cpp | 31 |
1 files changed, 2 insertions, 29 deletions
diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfExpression.cpp b/llvm/lib/CodeGen/AsmPrinter/DwarfExpression.cpp index caf0bc0f258..43c98442d8b 100644 --- a/llvm/lib/CodeGen/AsmPrinter/DwarfExpression.cpp +++ b/llvm/lib/CodeGen/AsmPrinter/DwarfExpression.cpp @@ -66,12 +66,6 @@ void DwarfExpression::AddShr(unsigned ShiftBy) { EmitOp(dwarf::DW_OP_shr); } -void DwarfExpression::AddAnd(unsigned Mask) { - EmitOp(dwarf::DW_OP_constu); - EmitUnsigned(Mask); - EmitOp(dwarf::DW_OP_and); -} - bool DwarfExpression::AddMachineRegIndirect(const TargetRegisterInfo &TRI, unsigned MachineReg, int Offset) { if (isFrameRegister(TRI, MachineReg)) { @@ -236,12 +230,6 @@ void DwarfExpression::AddExpression(DIExpressionCursor &&ExprCursor, unsigned FragmentOffsetInBits) { while (ExprCursor) { auto Op = ExprCursor.take(); - - // If we need to mask out a subregister, do it now, unless the next - // operation would emit an OpPiece anyway. - if (SubRegisterSizeInBits && Op->getOp() != dwarf::DW_OP_LLVM_fragment) - maskSubRegister(); - switch (Op->getOp()) { case dwarf::DW_OP_LLVM_fragment: { unsigned SizeInBits = Op->getArg(1); @@ -297,24 +285,9 @@ void DwarfExpression::AddExpression(DIExpressionCursor &&ExprCursor, } } -/// Add masking operations to stencil out a subregister. -void DwarfExpression::maskSubRegister() { - assert(SubRegisterSizeInBits && "no subregister was registered"); - if (SubRegisterOffsetInBits > 0) - AddShr(SubRegisterOffsetInBits); - uint64_t Mask = (1UL << SubRegisterSizeInBits) - 1; - AddAnd(Mask); -} - - void DwarfExpression::finalize() { - // Emit any outstanding DW_OP_piece operations to mask out subregisters. - if (SubRegisterSizeInBits == 0) - return; - // Don't emit a DW_OP_piece for a subregister at offset 0. - if (SubRegisterOffsetInBits == 0) - return; - AddOpPiece(SubRegisterSizeInBits, SubRegisterOffsetInBits); + if (SubRegisterSizeInBits) + AddOpPiece(SubRegisterSizeInBits, SubRegisterOffsetInBits); } void DwarfExpression::addFragmentOffset(const DIExpression *Expr) { |