projects
/
libfirm
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
simplify Sel lowering code
[libfirm]
/
ir
/
ana
/
irbackedge.c
diff --git
a/ir/ana/irbackedge.c
b/ir/ana/irbackedge.c
index
c28cc9d
..
13fee32
100644
(file)
--- a/
ir/ana/irbackedge.c
+++ b/
ir/ana/irbackedge.c
@@
-1,5
+1,5
@@
/*
/*
- * Copyright (C) 1995-20
08
University of Karlsruhe. All right reserved.
+ * Copyright (C) 1995-20
11
University of Karlsruhe. All right reserved.
*
* This file is part of libFirm.
*
*
* This file is part of libFirm.
*
@@
-44,7
+44,7
@@
* Does not assert whether the backarray is correct -- use
* very careful!
*/
* Does not assert whether the backarray is correct -- use
* very careful!
*/
-static
unsigned
*mere_get_backarray(ir_node *n)
+static
bitset_t
*mere_get_backarray(ir_node *n)
{
switch (get_irn_opcode(n)) {
case iro_Block:
{
switch (get_irn_opcode(n)) {
case iro_Block:
@@
-65,14
+65,14
@@
static unsigned *mere_get_backarray(ir_node *n)
* Returns backarray if the node can have backedges, else returns
* NULL.
*/
* Returns backarray if the node can have backedges, else returns
* NULL.
*/
-static
unsigned
*get_backarray(ir_node *n)
+static
bitset_t
*get_backarray(ir_node *n)
{
{
-
unsigned
*ba = mere_get_backarray(n);
+
bitset_t
*ba = mere_get_backarray(n);
#ifndef NDEBUG
if (ba) {
#ifndef NDEBUG
if (ba) {
-
int bal = r
bitset_size(ba); /* avoid macro expansion in assertion. */
-
in
t inl = get_irn_arity(n);
+
size_t bal =
bitset_size(ba); /* avoid macro expansion in assertion. */
+
size_
t inl = get_irn_arity(n);
assert(bal == inl && "backedge array with faulty length");
}
#endif
assert(bal == inl && "backedge array with faulty length");
}
#endif
@@
-87,8
+87,8
@@
static unsigned *get_backarray(ir_node *n)
*/
static int legal_backarray(ir_node *n)
{
*/
static int legal_backarray(ir_node *n)
{
-
unsigned
*ba = mere_get_backarray(n);
- if (ba && (
r
bitset_size(ba) != (unsigned) get_irn_arity(n)))
+
bitset_t
*ba = mere_get_backarray(n);
+ if (ba && (bitset_size(ba) != (unsigned) get_irn_arity(n)))
return 0;
return 1;
}
return 0;
return 1;
}
@@
-96,15
+96,15
@@
static int legal_backarray(ir_node *n)
void fix_backedges(struct obstack *obst, ir_node *n)
{
void fix_backedges(struct obstack *obst, ir_node *n)
{
-
unsigned
*arr = mere_get_backarray(n);
-
ir_opcode
opc;
+
bitset_t
*arr = mere_get_backarray(n);
+
unsigned
opc;
int arity;
if (! arr)
return;
arity = get_irn_arity(n);
int arity;
if (! arr)
return;
arity = get_irn_arity(n);
- if (
r
bitset_size(arr) != (unsigned) arity) {
+ if (bitset_size(arr) != (unsigned) arity) {
arr = new_backedge_arr(obst, arity);
opc = get_irn_opcode(n);
arr = new_backedge_arr(obst, arity);
opc = get_irn_opcode(n);
@@
-121,35
+121,34
@@
void fix_backedges(struct obstack *obst, ir_node *n)
/* Returns non-zero if the predecessor pos is a backedge. */
int is_backedge(ir_node *n, int pos)
{
/* Returns non-zero if the predecessor pos is a backedge. */
int is_backedge(ir_node *n, int pos)
{
-
unsigned
*ba = get_backarray(n);
+
bitset_t
*ba = get_backarray(n);
if (ba)
if (ba)
- return
r
bitset_is_set(ba, pos);
+ return bitset_is_set(ba, pos);
return 0;
}
/* Remarks that edge pos is a backedge. */
void set_backedge(ir_node *n, int pos)
{
return 0;
}
/* Remarks that edge pos is a backedge. */
void set_backedge(ir_node *n, int pos)
{
-
unsigned
*ba = get_backarray(n);
+
bitset_t
*ba = get_backarray(n);
assert(ba && "can only set backedges at Phi, Block nodes.");
assert(ba && "can only set backedges at Phi, Block nodes.");
-
r
bitset_set(ba, pos);
+ bitset_set(ba, pos);
}
/* Remarks that edge pos is a backedge. */
void set_not_backedge(ir_node *n, int pos)
{
}
/* Remarks that edge pos is a backedge. */
void set_not_backedge(ir_node *n, int pos)
{
-
unsigned
*ba = get_backarray(n);
+
bitset_t
*ba = get_backarray(n);
assert(ba && "can only set backedges at Phi, Block nodes.");
assert(ba && "can only set backedges at Phi, Block nodes.");
-
r
bitset_clear(ba, pos);
+ bitset_clear(ba, pos);
}
/* Returns non-zero if n has backedges. */
int has_backedges(ir_node *n)
{
}
/* Returns non-zero if n has backedges. */
int has_backedges(ir_node *n)
{
- unsigned *ba = get_backarray(n);
- if (ba) {
- int arity = get_irn_arity(n);
- return !rbitset_is_empty(ba, arity);
+ bitset_t *ba = get_backarray(n);
+ if (ba != NULL) {
+ return !bitset_is_empty(ba);
}
return 0;
}
}
return 0;
}
@@
-157,18
+156,14
@@
int has_backedges(ir_node *n)
/** Sets all backedge information to zero. */
void clear_backedges(ir_node *n)
{
/** Sets all backedge information to zero. */
void clear_backedges(ir_node *n)
{
- int i, arity;
- unsigned *ba;
- ba = get_backarray(n);
- if (ba) {
- arity = get_irn_arity(n);
- for (i = 0; i < arity; i++)
- rbitset_clear(ba, i);
+ bitset_t *ba = get_backarray(n);
+ if (ba != NULL) {
+ bitset_clear_all(ba);
}
}
/* Allocate a new backedge array on the obstack for given size. */
}
}
/* Allocate a new backedge array on the obstack for given size. */
-
unsigned *new_backedge_arr(struct obstack *obst, unsigned
size)
+
bitset_t *new_backedge_arr(struct obstack *obst, size_t
size)
{
{
- return
rbitset_w_size
_obstack_alloc(obst, size);
+ return
bitset
_obstack_alloc(obst, size);
}
}