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

    <tr>
        <th>Summary</th>
        <td>
            [clang tools]How to make clang tool execute the CodeGen process.
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

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

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

<pre>
     I created a clang tool to analyze AST and get the required information. I add a FrontentAction.  I also noticed CodegenAction class. But I can't use CodegenAction class in same way. Thank you.

code:main()
```
int main(int argc, const char **argv)
{
    cout<<"tools start"<<endl;
    auto Op = CommonOptionsParser::create(argc, argv, MyToolCategory);
    if(!Op){llvm::errs()<<Op.takeError();return 1;}
    CommonOptionsParser &Opg=Op.get();
    
    ClangTool Tool(Opg.getCompilations(),Opg.getSourcePathList());
    Matrix_ident matrixidenter;
    MatchFinder Finder;
    Finder.addMatcher(MatrixMatcher, &matrixidenter);
    Tool.run(newFrontendActionFactory(&Finder).get());
    
    cout<<"tools finish"<<endl;
    return 0;
}
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJx1VF1v2yAU_TX2C5pl48SJH_yQj2WbtCqV2veK4BubFYMHuG3263fBzkerNkIOcLmHcw8HDro-VeQX4QaYg5owwiVTDXFaS_wQppg8_QOyenjEfk0acMS1QAz8HYTBBKGO2nTMCa0SxGG1x9gZrRwot-LjvA9Iq4nSTnBM2ugaGlBj2O9obULWg_NEmIrowpHBwmfLcD9iWQfklZ0S8tgy9UxOekiidBulq_HLMS3KVx0TCLWMaDkFi3RqYSiUI9MS32Wm4RHdEK6VdYS3zJCIrrBh4OWKsViPHYI_rgcX5RvfKPWCWWIdMw5H4zSoWkb5TQYbUNJ9T6J8i8V1nVb73tdm75mxYJA0tvEokNaZ0shgQ-5Oj7jJBoONNifP6RZbHEOx2b73kcVaypduBARj7CREoLXvE8ee4bsx2pzn1wbcYBTJPOZie4X9hCYKU-z7BotAJDTEBeOadZPv7eR5E__BpZjpkxC3FzL45kyObqbYgx4Mh3vm2t_CnuE_7HDHnBFvT6KGcI5-EPpexffLeLsTqkba49-78DiVoGvDQvB6jMiX8caX-36DD1R8YYkZvJMUvE7er0fX7hh34bCwhmIiQMsb1b4U7hN3HYUStv3aXtMZppfJy0levB9DlRVFWqbZLFvGdZXXZV6y2AknoYrm6-vtt9F8-1O_-kegQ7fcvgvwBnxwEB4Cf0d_gCK90RzwGseDkVXrXG-9-egOWyNcOxwSrjscBFuOf98w5w9wVGInrB0AfbCbL-hsFrdVeWS8zo4lpVmRlbNDuswKelhQWtQZAKSxZAeQ1lNGPVB2EiC8NvNtLCqaUoo5ZVrmaZYnOU1rVmDLlou0KHk0SwEvv0w8j0SbJjZVoHQYGotBib6z1yA-PKJREBTy-HiPW22qZyElGIluZXHYvgr0_wP2kaEg">