*
* 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).
}
/* 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);
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);