X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fir%2Firnodeset.c;h=2d59b6ce2b07ffa6a01f3e23ac8cac4c4bdbb605;hb=eb38e825ba0a4295779cd431856a379643cb347f;hp=7ab40f983c14361b61bb16a4560c28a952c5a966;hpb=3eced231d086db25ba65f7265950915671fe6467;p=libfirm diff --git a/ir/ir/irnodeset.c b/ir/ir/irnodeset.c index 7ab40f983..2d59b6ce2 100644 --- a/ir/ir/irnodeset.c +++ b/ir/ir/irnodeset.c @@ -1,14 +1,33 @@ +/* + * Copyright (C) 1995-2008 University of Karlsruhe. All right reserved. + * + * This file is part of libFirm. + * + * This file may be distributed and/or modified under the terms of the + * GNU General Public License version 2 as published by the Free Software + * Foundation and appearing in the file LICENSE.GPL included in the + * packaging of this file. + * + * Licensees holding valid libFirm Professional Edition licenses may use + * this file in accordance with the libFirm Commercial License. + * Agreement provided with the Software. + * + * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE + * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE. + */ + /** * @file * @author Matthias Braun * @date 30.03.2007 - * @brief A nodeset. This should be prefered over a simple pset, because it + * @brief A nodeset. This should be preferred over a simple pset, because it tries to guarantee deterministic behavior. - * @version $Id$ */ -#include +#include "config.h" #include "irnodeset.h" +#include "irnode_t.h" #include "hashptr.h" #define DO_REHASH @@ -18,28 +37,25 @@ #define ValueType ir_node* #define NullValue NULL #define DeletedValue ((ir_node*)-1) -#ifdef FIRM_debug -#define Hash(this,value) (value)->node_nr -#else -#define Hash(this,value) HASH_PTR(value) -#endif +#define Hash(this,key) ((unsigned)((key)->node_nr)) #define KeysEqual(this,key1,key2) (key1) == (key2) #define SetRangeEmpty(ptr,size) memset(ptr, 0, (size) * sizeof((ptr)[0])) -#define hashset_init ir_nodeset_init +void ir_nodeset_init_(ir_nodeset_t *self); +#define hashset_init ir_nodeset_init_ #define hashset_init_size ir_nodeset_init_size #define hashset_destroy ir_nodeset_destroy #define hashset_insert ir_nodeset_insert #define hashset_remove ir_nodeset_remove -#define hashset_find _ir_nodeset_find +#define hashset_find ir_nodeset_contains #define hashset_size ir_nodeset_size #define hashset_iterator_init ir_nodeset_iterator_init #define hashset_iterator_next ir_nodeset_iterator_next #define hashset_remove_iterator ir_nodeset_remove_iterator -#include "hashset.c" +#include "hashset.c.inl" -int ir_nodeset_contains(const ir_nodeset_t *this, const ir_node *node) +void ir_nodeset_init(ir_nodeset_t *nodeset) { - return _ir_nodeset_find(this, node) != NULL; + ir_nodeset_init_size(nodeset, 16); }