summaryrefslogtreecommitdiffhomepage
path: root/ir/be/besched.h
diff options
context:
space:
mode:
authorMatthias Braun <matze@braunis.de>2010-09-22 16:07:34 +0200
committerMatthias Braun <matze@braunis.de>2010-09-22 16:07:34 +0200
commitf46792d0e49d452ef92de2a802ae894c0ce30bbb (patch)
tree1c317f61de354d434f60fa5762f6ecc01f5f3bc9 /ir/be/besched.h
parentad9464a5db0b98cb926aae609abe84db70b74291 (diff)
remove ilp scheduler; simplify listsched interface
[r28010]
Diffstat (limited to 'ir/be/besched.h')
-rw-r--r--ir/be/besched.h24
1 files changed, 18 insertions, 6 deletions
diff --git a/ir/be/besched.h b/ir/be/besched.h
index e55f763..bd7c093 100644
--- a/ir/be/besched.h
+++ b/ir/be/besched.h
@@ -27,6 +27,7 @@
#define FIRM_BE_BESCHED_H
#include <stdio.h>
+#include <stdbool.h>
#include "irgraph.h"
#include "irnode.h"
@@ -125,14 +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.
*/
-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)) {
- case iro_Jmp:
- 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);
}
}