lower_intrinsics() now has an additional parameter alloweing part_block() to be used
authorMichael Beck <beck@ipd.info.uni-karlsruhe.de>
Thu, 9 Aug 2007 13:47:22 +0000 (13:47 +0000)
committerMichael Beck <beck@ipd.info.uni-karlsruhe.de>
Thu, 9 Aug 2007 13:47:22 +0000 (13:47 +0000)
[r15510]

include/libfirm/lowering.h
ir/lower/lower_intrinsics.c

index fa3f825..bc91300 100644 (file)
@@ -261,12 +261,13 @@ typedef union _i_record {
  *
  * current_ir_graph is always set.
  *
- * @param list    an array of intrinsic map records
- * @param length  the length of the array
+ * @param list             an array of intrinsic map records
+ * @param length           the length of the array
+ * @param part_block_used  set to true if part_block() must be using during lowering
  *
  * @return number of found intrinsics.
  */
-unsigned lower_intrinsics(i_record *list, int length);
+unsigned lower_intrinsics(i_record *list, int length, int part_block_used);
 
 /**
  * A mapper for the integer absolute value: inttype abs(inttype v).
index 1e77eb6..466950b 100644 (file)
@@ -89,7 +89,7 @@ static void call_mapper(ir_node *node, void *env) {
 }
 
 /* Go through all graphs and map calls to intrinsic functions. */
-unsigned lower_intrinsics(i_record *list, int length) {
+unsigned lower_intrinsics(i_record *list, int length, int part_block_used) {
        int            i, n_ops = get_irp_n_opcodes();
        ir_graph       *irg;
        pmap           *c_map = pmap_create_ex(length);
@@ -120,6 +120,9 @@ unsigned lower_intrinsics(i_record *list, int length) {
        for (i = get_irp_n_irgs() - 1; i >= 0; --i) {
                irg = get_irp_irg(i);
 
+               if (part_block_used)
+                       collect_phiprojs(irg);
+
                wenv.nr_of_intrinsics = 0;
                irg_walk_graph(irg, NULL, call_mapper, &wenv);