<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/83290>83290</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            [flang][beginner] Clean-up function types creation in Optimizer/Builder/Runtime files
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            enhancement,
            flang
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          vzakhari
      </td>
    </tr>
</table>

<pre>
    This comes up from @jeanPerier's comment https://github.com/llvm/llvm-project/pull/83219/files#r1506118851

We'd better use `fir::runtime::getModel` instead of direct MLIR/FIR types creation in `Numeric.cpp`, `Reduction.cpp`, `Transformational.cpp`, etc.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyUkk2LpTwQhX9NuQktSWm8unBxPxAa3n5nuDTMOsZS0xOj5KOh-9cPehlmBmYzG01VJSfknEeFYCZH1IK8gLxlKsV59e37p_o-K2-yfh0-2tfZBKbXhQJLGxv9ujAo-Rsp95W8IQ94OuYLucjmGLcAxRmwA-wmE-fU53pdADtr33_-nja_vpGOgN2WrAXs6gJFA9iNxlIALLyQvBKirqUAfgN-fny_EeBpYD3FSJ6lQAwqPhq_31icfXLRLPQoJoov60AWKs6MC5HUwNaRDcaTjuzlv-c7YNc931n82Cgw7UlFszpm3K75f1rIG53rbYOKA1735p2GpPdNf7ZfvXJhXP1yCCj725SizrOhLYamaFRGrTjxRhSNkGU2t6UWpDmWWGhNYzWMJMaqGKkaJO9PTZOZFjmWHLEWlcQCcy5kqVXVNzVvONUaSk6LMjbfTc1XP2UmhERtXWDDM6t6suHIFpHcrJymPSRABLwC4miVm_ZK3jLfHsH0aQpQcmtCDL9Uo4n2gORxQt5AXnqajHPkQd7Y1ZJyTzsdyR0G_cXUL1s0i_nceekuydjhWN0fkbEj9yx52_4zQceTw4Ohhv8IAAD__3UC5ss">