projects
/
libfirm
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fix wrong usage of ircons functions
[libfirm]
/
ir
/
be
/
besched.h
diff --git
a/ir/be/besched.h
b/ir/be/besched.h
index
e78f978
..
bd7c093
100644
(file)
--- a/
ir/be/besched.h
+++ b/
ir/be/besched.h
@@
-1,5
+1,5
@@
/*
/*
- * Copyright (C) 1995-20
08
University of Karlsruhe. All right reserved.
+ * Copyright (C) 1995-20
10
University of Karlsruhe. All right reserved.
*
* This file is part of libFirm.
*
*
* This file is part of libFirm.
*
@@
-27,6
+27,7
@@
#define FIRM_BE_BESCHED_H
#include <stdio.h>
#define FIRM_BE_BESCHED_H
#include <stdio.h>
+#include <stdbool.h>
#include "irgraph.h"
#include "irnode.h"
#include "irgraph.h"
#include "irnode.h"
@@
-41,7
+42,6
@@
void be_sched_dump(FILE *f, ir_graph *irg);
* unique to that block. a node schedule before another node has a lower
* timestep than this node.
*/
* unique to that block. a node schedule before another node has a lower
* timestep than this node.
*/
-int have_sched_info(const ir_graph *irg);
int sched_get_time_step(const ir_node *irn);
int sched_has_next(const ir_node *irn);
int sched_has_prev(const ir_node *irn);
int sched_get_time_step(const ir_node *irn);
int sched_has_next(const ir_node *irn);
int sched_has_prev(const ir_node *irn);
@@
-54,6
+54,7
@@
void sched_add_before(ir_node *before, ir_node *irn);
void sched_add_after(ir_node *after, ir_node *irn);
void sched_init_block(ir_node *block);
void sched_reset(ir_node *node);
void sched_add_after(ir_node *after, ir_node *irn);
void sched_init_block(ir_node *block);
void sched_reset(ir_node *node);
+int sched_comes_after(const ir_node *n1, const ir_node *n2);
void sched_remove(ir_node *irn);
#define sched_is_end(irn) is_Block(irn)
void sched_remove(ir_node *irn);
#define sched_is_end(irn) is_Block(irn)
@@
-93,21
+94,11
@@
void sched_remove(ir_node *irn);
* Removes dead nodes from schedule
* @param irg the graph
*/
* Removes dead nodes from schedule
* @param irg the graph
*/
-void be_remove_dead_nodes_from_schedule(
be_irg_t *b
irg);
+void be_remove_dead_nodes_from_schedule(
ir_graph *
irg);
#define SCHED_INITIAL_GRANULARITY (1 << 14)
#define get_irn_sched_info(irn) (&be_get_info(skip_Proj_const(irn))->sched_info)
#define SCHED_INITIAL_GRANULARITY (1 << 14)
#define get_irn_sched_info(irn) (&be_get_info(skip_Proj_const(irn))->sched_info)
-/**
- * Returns non-zero if schedule information is available
- * for a given graph.
- * @param irg The graph.
- */
-static inline int _have_sched_info(const ir_graph *irg)
-{
- return be_info_initialized(irg);
-}
-
/**
* Check, if the node is scheduled.
* @param irn The node.
/**
* Check, if the node is scheduled.
* @param irn The node.
@@
-135,16
+126,25
@@
static inline int _sched_get_time_step(const ir_node *irn)
* @param irn The node to check for.
* @return 1, if the node consumes/produces data, false if not.
*/
* @param irn The node to check for.
* @return 1, if the node consumes/produces data, false if not.
*/
-static inline
int
to_appear_in_schedule(const ir_node *irn)
+static inline
bool
to_appear_in_schedule(const ir_node *irn)
{
switch(get_irn_opcode(irn)) {
{
switch(get_irn_opcode(irn)) {
- case iro_Jmp:
- case iro_Break:
- return 1;
- case iro_Proj:
- return 0;
- default:
- return is_data_node(irn);
+ case iro_Anchor:
+ case iro_Bad:
+ case iro_Block:
+ case iro_Confirm:
+ case iro_Dummy:
+ case iro_End:
+ case iro_NoMem:
+ case iro_Pin:
+ case iro_Proj:
+ case iro_Sync:
+ case iro_Unknown:
+ return false;
+ case iro_Phi:
+ return mode_is_data(get_irn_mode(irn));
+ default:
+ return ! (arch_irn_get_flags(irn) & arch_irn_flags_not_scheduled);
}
}
}
}
@@
-168,7
+168,7
@@
static inline int _sched_has_next(const ir_node *irn)
static inline int _sched_has_prev(const ir_node *irn)
{
const sched_info_t *info = get_irn_sched_info(irn);
static inline int _sched_has_prev(const ir_node *irn)
{
const sched_info_t *info = get_irn_sched_info(irn);
- const ir_node *block = is_Block(irn) ? irn : get_nodes_block(irn);
+ const ir_node *block = is_Block(irn) ? irn : get_nodes_block(irn);
return info->prev != block;
}
return info->prev != block;
}
@@
-410,7
+410,6
@@
int sched_skip_phi_predicator(const ir_node *irn, void *data);
*/
ir_node *sched_skip(ir_node *from, int forward, sched_predicator_t *predicator, void *data);
*/
ir_node *sched_skip(ir_node *from, int forward, sched_predicator_t *predicator, void *data);
-#define have_sched_info(irg) _have_sched_info(irg)
#define sched_get_time_step(irn) _sched_get_time_step(irn)
#define sched_has_next(irn) _sched_has_next(irn)
#define sched_has_prev(irn) _sched_has_prev(irn)
#define sched_get_time_step(irn) _sched_get_time_step(irn)
#define sched_has_next(irn) _sched_has_next(irn)
#define sched_has_prev(irn) _sched_has_prev(irn)