[llvm-dev] Question about the build

James Henderson via llvm-dev llvm-dev at lists.llvm.org
Tue Jan 5 03:01:42 PST 2021


I'm not sure what sort of details exactly you want. I use Visual Studio
2017 to build my LLVM checkout. The LLVM_OPTIMIZED_TABLEGEN setting is
enabled, and when I build the Debug build it always complains that a number
of the projects that use tablegen are out of date. Specifically, if I turn
up the build log verbosity to "Detailed", I get a large number of projects
which say something like this:

23>------ Up-To-Date check: Project:
utils\TableGen\LLVM-tablegen-host.vcxproj, Configuration: Debug x64 ------
23>Project is not up-to-date: build input
'c:\llvm\build\native\release\bin\llvm-tblgen' is missing.

Subsequently, tablegen runs and emits "Building Options.inc..." and similar
lines for all tablegen inputs, rather than doing nothing, resulting in
virtually the whole build being run ultimately.

Note that c:\llvm\build\native\release\bin\llvm-tblgen.exe exists and the
project build to build that executable says there is nothing to update.
When investigating this last year, I found that applying a small change to
CrossCompile.cmake to add ".exe" to the end of the output_path for the
optimized tablegen output was sufficient to fix things, but I don't think
that's a realistic long-term solution, as it's not cross-platform.

I don't really know enough about cmake or tablegen to have any further clue
what to do to fix things.

James


On Mon, 4 Jan 2021 at 14:54, Paul C. Anagnostopoulos <paul at windfall.com>
wrote:

> I was having the opposite problem: Building the native TableGen did not
> trigger downstream rebuilds.
>
> Could you see if the problem is still happening and then post some details
> here? I know almost nothing about the build process, but I can investigate
> whether TableGen is unnecessarily rewriting identical output files.
>
> At 1/4/2021 03:32 AM, James Henderson wrote:
> >For what it's worth, I've recently been running into problems related to
> the NATIVE tablegen build for optimized tablegen usage in debug builds. In
> my case, it was (and may still be) unnecessarily rebuilding tablegen
> related files every time, even though nothing has changed, which in turn
> causes the rest of the build to trigger (as Visual Studio sees things as
> being out-of-date). I forget the exact details, but can dig them out later
> if someone is interested in investigating further. I haven't had the time
> to dig into this properly myself, but it is frequently hurting my
> productivity.
>
>
> ----------------------------------------------------------------
> Windfall               Paul C. Anagnostopoulos
>       ----------------------------------------------------------
>    Software            978 369-0839
>                              www.windfall.com
> ----------------------------------------------------------------
> My life has been filled with calamities,
> some of which actually happened.
> ---Mark Twain
>
> Guga 'mzimba, sala 'nhliziyo
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20210105/2a1ddec0/attachment.html>


More information about the llvm-dev mailing list