diff options
author | Luc Van Oostenryck <luc.vanoostenryck@gmail.com> | 2018-08-04 22:52:37 +0200 |
---|---|---|
committer | Luc Van Oostenryck <luc.vanoostenryck@gmail.com> | 2018-08-04 22:55:24 +0200 |
commit | c22d39ec3768b210ba5ab6110c5f311980f8fb1a (patch) | |
tree | 882ee46f937b58506aca0981294a302d13f8e194 /linearize.h | |
parent | 8a852bf56850a0135e0e50cbc141fafce910d258 (diff) | |
parent | a4fb469ca61a9262361a252e8211f8ea0f67f1fa (diff) | |
download | sparse-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.h | 17 |
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) |