summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJakob Stoklund Olesen <stoklund@2pi.dk>2010-05-15 02:52:58 +0000
committerJakob Stoklund Olesen <stoklund@2pi.dk>2010-05-15 02:52:58 +0000
commit3ced97c0a05273eae61b9bc89725780fd04028e0 (patch)
tree077e139e45409ad4709d069c90acf90647189e9a
parent3d214cdfaffc231a9ef76b49d114e4e7d854b215 (diff)
downloadbcm5719-llvm-3ced97c0a05273eae61b9bc89725780fd04028e0.tar.gz
bcm5719-llvm-3ced97c0a05273eae61b9bc89725780fd04028e0.zip
Add reg_nodbg_iterator
llvm-svn: 103856
-rw-r--r--llvm/include/llvm/CodeGen/MachineRegisterInfo.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/llvm/include/llvm/CodeGen/MachineRegisterInfo.h b/llvm/include/llvm/CodeGen/MachineRegisterInfo.h
index 131231e5ba0..fd7431ff0bc 100644
--- a/llvm/include/llvm/CodeGen/MachineRegisterInfo.h
+++ b/llvm/include/llvm/CodeGen/MachineRegisterInfo.h
@@ -93,6 +93,20 @@ public:
/// specified register (it may be live-in).
bool reg_empty(unsigned RegNo) const { return reg_begin(RegNo) == reg_end(); }
+ /// reg_nodbg_iterator/reg_nodbg_begin/reg_nodbg_end - Walk all defs and uses
+ /// of the specified register, skipping those marked as Debug.
+ typedef defusechain_iterator<true,true,true> reg_nodbg_iterator;
+ reg_nodbg_iterator reg_nodbg_begin(unsigned RegNo) const {
+ return reg_nodbg_iterator(getRegUseDefListHead(RegNo));
+ }
+ static reg_nodbg_iterator reg_nodbg_end() { return reg_nodbg_iterator(0); }
+
+ /// reg_nodbg_empty - Return true if the only instructions using or defining
+ /// Reg are Debug instructions.
+ bool reg_nodbg_empty(unsigned RegNo) const {
+ return reg_nodbg_begin(RegNo) == reg_nodbg_end();
+ }
+
/// def_iterator/def_begin/def_end - Walk all defs of the specified register.
typedef defusechain_iterator<false,true,false> def_iterator;
def_iterator def_begin(unsigned RegNo) const {
OpenPOWER on IntegriCloud