aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/linearize.h
diff options
context:
space:
mode:
authorLuc Van Oostenryck <luc.vanoostenryck@gmail.com>2018-08-04 22:52:37 +0200
committerLuc Van Oostenryck <luc.vanoostenryck@gmail.com>2018-08-04 22:55:24 +0200
commitc22d39ec3768b210ba5ab6110c5f311980f8fb1a (patch)
tree882ee46f937b58506aca0981294a302d13f8e194 /linearize.h
parent8a852bf56850a0135e0e50cbc141fafce910d258 (diff)
parenta4fb469ca61a9262361a252e8211f8ea0f67f1fa (diff)
downloadsparse-c22d39ec3768b210ba5ab6110c5f311980f8fb1a.tar.gz
Merge branch 'list-optims' (early part) into tip
* add optimized version of some list operations Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
Diffstat (limited to 'linearize.h')
-rw-r--r--linearize.h17
1 files changed, 16 insertions, 1 deletions
diff --git a/linearize.h b/linearize.h
index 2bd6185a..1184df98 100644
--- a/linearize.h
+++ b/linearize.h
@@ -303,6 +303,11 @@ static inline int remove_pseudo(struct pseudo_list **list, pseudo_t pseudo)
return delete_ptr_list_entry((struct ptr_list **)list, pseudo, 0) != 0;
}
+static inline int pseudo_in_list(struct pseudo_list *list, pseudo_t pseudo)
+{
+ return lookup_ptr_list_entry((struct ptr_list *)list, pseudo);
+}
+
static inline int bb_terminated(struct basic_block *bb)
{
struct instruction *insn;
@@ -333,9 +338,19 @@ static inline int pseudo_user_list_size(struct pseudo_user_list *list)
return ptr_list_size((struct ptr_list *)list);
}
+static inline bool pseudo_user_list_empty(struct pseudo_user_list *list)
+{
+ return ptr_list_empty((struct ptr_list *)list);
+}
+
static inline int has_users(pseudo_t p)
{
- return pseudo_user_list_size(p->users) != 0;
+ return !pseudo_user_list_empty(p->users);
+}
+
+static inline bool multi_users(pseudo_t p)
+{
+ return ptr_list_multiple((struct ptr_list *)(p->users));
}
static inline int nbr_users(pseudo_t p)