|
LLVM 24.0.0git
|
#include "DwarfExpression.h"#include "DwarfCompileUnit.h"#include "llvm/ADT/APInt.h"#include "llvm/ADT/SmallBitVector.h"#include "llvm/BinaryFormat/Dwarf.h"#include "llvm/CodeGen/Register.h"#include "llvm/CodeGen/TargetRegisterInfo.h"#include "llvm/IR/DataLayout.h"#include "llvm/MC/MCAsmInfo.h"#include "llvm/Support/ErrorHandling.h"#include <algorithm>Go to the source code of this file.
Macros | |
| #define | DEBUG_TYPE "dwarfdebug" |
Functions | |
| static bool | isRemainingExpressionComplex (const DIExpressionCursor &ExprCursor) |
| Return whether the rest of the expression needs the complex register path. | |
| static bool | isMemoryLocation (DIExpressionCursor ExprCursor) |
| Assuming a well-formed expression, match "DW_OP_deref* DW_OP_LLVM_fragment? | |
| #define DEBUG_TYPE "dwarfdebug" |
Definition at line 27 of file DwarfExpression.cpp.
|
static |
Assuming a well-formed expression, match "DW_OP_deref* DW_OP_LLVM_fragment?
".
Definition at line 530 of file DwarfExpression.cpp.
References llvm::dwarf::DW_OP_LLVM_fragment, and llvm::DIExpressionCursor::take().
|
static |
Return whether the rest of the expression needs the complex register path.
We use this to decide whether we can emit a simple register location and whether a subregister needs to be masked. Non-emitting operations don't affect either decision, so look past them.
Definition at line 33 of file DwarfExpression.cpp.
References llvm::dwarf::DW_OP_LLVM_fragment.
Referenced by llvm::DwarfExpression::addMachineRegExpression().