aboutsummaryrefslogtreecommitdiff
path: root/flang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorEvan Wilde <etceterawilde@gmail.com>2024-09-19 14:14:18 -0700
committerGitHub <noreply@github.com>2024-09-19 14:14:18 -0700
commitc3fe727181818d3efdd2ce96598bfe6a2d3ffb83 (patch)
treebed86acf5c81f4e32534209fdcfa7d9c6aa374af /flang/lib/Frontend/CompilerInvocation.cpp
parent0347c1122625e3f8a0a2b602b2ef02fa334a13e1 (diff)
downloadllvm-c3fe727181818d3efdd2ce96598bfe6a2d3ffb83.zip
llvm-c3fe727181818d3efdd2ce96598bfe6a2d3ffb83.tar.gz
llvm-c3fe727181818d3efdd2ce96598bfe6a2d3ffb83.tar.bz2
Add missing deps edge: CodeGenAction.cpp.o -> GenVT.inc (#109306)
CodeGenAction.cpp.o depends on generating GenVT.inc before trying to compile it through the following header chain: ``` GenVT.inc MachineValueType.h LowLevelType.h MachineMemOperand.h MachineInstr.h MachineBasicBlock.h MachineFunctionPass.h MachineOptimizationRemarkEmitter.h CodeGenAction.cpp ``` There is a dependency edge through LLVMCodeGenTypes, but that edge is applied to the clangCodeGen link step, not the compile step of the files that make up clangCodeGen. Usually the compile and link are close enough in the build that GenVT.inc is scheduled early enough that it exists by the time we're compiling CodeGenAction.cpp.o, but on machines with high core counts, it seems to be more prevalent that the scheduling works out just right to expose the missing edge. I've only been able to reproduce this on machines with at least 64 cores (but even then it was not reliable). Additionally, llvm-tblgen depends on GenVT.inc, so to see the missing dependency edge, one must be using a pre-built tablegen binary. Adding the missing dependency edge to ensure that GenVT.inc is generated before trying to compile CodeGenAction.cpp.o. Found by inspecting the dependency graph generated from Ninja with: ```sh cmake -G 'Ninja' \ ... -DLLVM_TABLEGEN=<path to native tblegen> \ -DCLANG_TABLEGEN=<path to native clang tblgen> \ -DLLVM_ENABLE_PROJECTS=clang \ ... ninja -t graph \ tools/clang/lib/CodeGen/CMakeFiles/obj.clangCodeGen.dir/CodeGenAction.cpp.o | dot -Tpdf > CodeGenAction.pdf ```
Diffstat (limited to 'flang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions