[PATCH] D30047: [GlobalISel] Split LowLevelType to a fundamental type in libSupport.

Ahmed Bougacha via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Feb 28 19:04:40 PST 2017


ab added a comment.



In https://reviews.llvm.org/D30047#688544, @dsanders wrote:

> Unfortunately, this approach introduces a circular dependency when LLVM_ENABLE_MODULES=1. The failure was in http://lab.llvm.org:8011/builders/clang-x86_64-linux-selfhost-modules-2/builds/4942 and was caused by the following dependency loop:
>
>   LLVM_Utils -> LLVM_CodeGen_MachineValueType -> LLVM_Utils


Oh boy..

> To write it another way, we have these dependencies:
> 
> - TableGen -> Support
> - CodeGen -> Support
> - Support -> CodeGen

None of these are new, right?  Looking at the log, none of the failures are related to LLT.

> I can see two ways forward:
> 
> - We use the original version of https://reviews.llvm.org/D30046 (https://reviews.llvm.org/D30046?id=88737) so that we continue to have the following dependencies:
>   - TableGen -> Support
>   - TableGen -> CodeGen
>   - CodeGen -> Support
> - We also move the MVT type to Support so we remove the TableGen->CodeGen dependency and are left with:
>   - TableGen -> Support
>   - CodeGen -> Support

How about a lazy variant of this:  move MVT to the Utils module, without changing its path on disk.  It's already in its own special little module anyway.

Honestly, I'd love for us to finally tackle MVT, but right in the middle of branches is going to add a lot of merge pain..


https://reviews.llvm.org/D30047





More information about the llvm-commits mailing list