### From cTuning.org

Navigation:cTuning.org>CTools>MilepostGCC

**Static Features available in MILEPOST GCC V1.0**:

ft1 | Number of basic blocks in the method |

ft2 | Number of basic blocks with a single successor |

ft3 | Number of basic blocks with two successors |

ft4 | Number of basic blocks with more then two successors |

ft5 | Number of basic blocks with a single predecessor |

ft6 | Number of basic blocks with two predecessors |

ft7 | Number of basic blocks with more then two predecessors |

ft8 | Number of basic blocks with a single predecessor and a single successor |

ft9 | Number of basic blocks with a single predecessor and two successors |

ft10 | Number of basic blocks with a two predecessors and one successor |

ft11 | Number of basic blocks with two successors and two predecessors |

ft12 | Number of basic blocks with more then two successors and more then two predecessors |

ft13 | Number of basic blocks with number of instructions less then 15 |

ft14 | Number of basic blocks with number of instructions in the interval [15, 500] |

ft15 | Number of basic blocks with number of instructions greater then 500 |

ft16 | Number of edges in the control flow graph |

ft17 | Number of critical edges in the control flow graph |

ft18 | Number of abnormal edges in the control flow graph |

ft19 | Number of direct calls in the method |

ft20 | Number of conditional branches in the method |

ft21 | Number of assignment instructions in the method |

ft21 | Number of unconditional branches in the method |

ft22 | Number of binary integer operations in the method |

ft23 | Number of binary floating point operations in the method |

ft24 | Number of instructions in the method |

ft25 | Average of number of instructions in basic blocks |

ft26 | Average of number of phi-nodes at the beginning of a basic block |

ft27 | Average of arguments for a phi-node |

ft28 | Number of basic blocks with no phi nodes |

ft29 | Number of basic blocks with phi nodes in the interval [0, 3] |

ft30 | Number of basic blocks with more then 3 phi nodes |

ft31 | Number of basic block where total number of arguments for all phi-nodes is in greater then 5 |

ft32 | Number of basic block where total number of arguments for all phi-nodes is in the interval [1, 5] |

ft33 | Number of switch instructions in the method |

ft34 | Number of unary operations in the method |

ft35 | Number of instruction that do pointer arithmetic in the method |

ft36 | Number of indirect references via pointers ("*" in C) |

ft37 | Number of times the address of a variables is taken ("\&" in C) |

ft38 | Number of times the address of a function is taken ("\&" in C) |

ft39 | Number of indirect calls (i.e. done via pointers) in the method |

ft40 | Number of assignment instructions with the left operand an integer constant in the method |

ft41 | Number of binary operations with one of the operands an integer constant in the method |

ft42 | Number of calls with pointers as arguments |

ft42 | Number of calls with the number of arguments is greater then 4 |

ft44 | Number of calls that return a pointer |

ft45 | Number of calls that return an integer |

ft46 | Number of occurrences of integer constant zero |

ft47 | Number of occurrences of 32-bit integer constants |

ft48 | Number of occurrences of integer constant one |

ft49 | Number of occurrences of 64-bit integer constants |

ft50 | Number of references of a local variables in the method |

ft51 | Number of references (def/use) of static/extern variables in the method |

ft52 | Number of local variables referred in the method |

ft53 | Number of static/extern variables referred in the method |

ft54 | Number of local variables that are pointers in the method |

ft55 | Number of static/extern variables that are pointers in the method |

Mircea Namolaru (IBM) developed the first version of the feature extractor for MILEPOST GCC and Grigori Fursin (INRIA/UVSQ) integrated it within the MILEPOST GCC and cTuning framework together with the machine learning support to predict good optimizations. We are currently extending feature extractor to improve program characterization and mapping with beneficial optimizations.