64-bit compile produces ICE: Internal compiler error: 0 @00000000

TwineCompile - Cut C++Builder compile times by up to 50x!
Post Reply
Geocentrix
Posts: 7
Joined: Fri Jan 10, 2020 5:35 am

64-bit compile produces ICE: Internal compiler error: 0 @00000000

Post by Geocentrix »

I am using a registered version of TwineCompile 5.2.3.319 with C++Builder 10.4 (with Update 2 applied).

When compiling a large app (24 DLLs plus EXE) using the CLANG 32-bit compiler, TwineCompile (TC) speeds build times up enormously and works without issue.

However, When compiling the same app using the CLANG 64-bit compiler, TC displays two problems:
  • On doing a Make All, TC compiles all sources files, whether they need to be re-compiled or not. This negates any gain in speed that TC provides and forces me to build individual DLLs one by one
  • For two of the DLLs, TC emits the following error from several of the source files
    ICE: Internal compiler error: 0 @ 00000000
Is there anything I can do to resolve these issues?

Thanks in advance for any help.

Andrew
jomitech
Site Admin
Posts: 2153
Joined: Wed Oct 08, 2008 12:23 am

Re: 64-bit compile produces ICE: Internal compiler error: 0 @00000000

Post by jomitech »

Geocentrix wrote: Fri Aug 20, 2021 10:21 amOn doing a Make All, TC compiles all sources files, whether they need to be re-compiled or not. This negates any gain in speed that TC provides and forces me to build individual DLLs one by one
Is this specific to this particular project, or you encounter it with any 64-bit projects?
Geocentrix wrote: Fri Aug 20, 2021 10:21 amFor two of the DLLs, TC emits the following error from several of the source files ICE: Internal compiler error: 0 @ 00000000
This is unfortunately some internal bug in the 64-bit CLANG compiler that we haven't been able to pinpoint the cause for, to be able to get Embarcadero to fix. Some other users have been able to find specific code sequences that cause it and change the code slightly to prevent the bug from being encountered. It's almost impossible to reproduce once you start to trim the code down to create a test case.
Jon
Geocentrix
Posts: 7
Joined: Fri Jan 10, 2020 5:35 am

Re: 64-bit compile produces ICE: Internal compiler error: 0 @00000000

Post by Geocentrix »

Jon
Is this specific to this particular project, or you encounter it with any 64-bit projects?
All my 64-bit projects are affected. I normally open a Project Group and do a make all for that. TC receopiles all the source files in all the projects. It also occurs if I open a single 64-bit project and make that.

Is it possible to turn TC off for some Projects in a Project Group but not for others? The Enable Twine Compile options appears to turn TC on or off globally.
This is unfortunately some internal bug in the 64-bit CLANG compiler that we haven't been able to pinpoint the cause for
Any suggestions how to change existing code to avoid this? Or is it just try-and-see?

Andrew
jomitech
Site Admin
Posts: 2153
Joined: Wed Oct 08, 2008 12:23 am

Re: 64-bit compile produces ICE: Internal compiler error: 0 @00000000

Post by jomitech »

Is it possible that you have the "generate dependency information" turned off in the 64-bit compiler options? TwineCompile does rely on the dependency files being created to track which files have been modified.

Regarding the ICE - it's just a try-and-see unfortunately.
Jon
Geocentrix
Posts: 7
Joined: Fri Jan 10, 2020 5:35 am

Re: 64-bit compile produces ICE: Internal compiler error: 0 @00000000

Post by Geocentrix »

Jon

Thanks for your reply and suggestion.

How do I set the "generate dependency information" flag for the 64-bit compiler? I could not find that option in the Project Options dialog box or in the list of bcc64.exe command line switches.

The closest I can find is "Include system headers in dependency output, Windows 64-bit platform only". However, turning that flag on made no difference - TwineCompile still rebuilds everything on invoking make all.

Any further guidance would be appreciated!

Andrew
jomitech
Site Admin
Posts: 2153
Joined: Wed Oct 08, 2008 12:23 am

Re: 64-bit compile produces ICE: Internal compiler error: 0 @00000000

Post by jomitech »

Can you do the following (to hopefully identify the cause):

1. Run a Build All
2. Once it's complete, run a Make on one of the projects. (Based on your description, this should recompile the files in this project)
3. Copy the entire contents of the Console Output tab from the compile window and save into a text file.
4. Attach both this text file and the twfiles.@@@ file from the project directory here.
Jon
Geocentrix
Posts: 7
Joined: Fri Jan 10, 2020 5:35 am

Re: 64-bit compile produces ICE: Internal compiler error: 0 @00000000

Post by Geocentrix »

Jon

1. Run a Build All - done
2. Once it's complete, run a Make on one of the projects. (Based on your description, this should recompile the files in this project) - done and yes it did
3. Copy the entire contents of the Console Output tab from the compile window and save into a text file. - done
4. Attach both this text file and the twfiles.@@@ file from the project directory here. - attached
JomiTech.zip
(6.77 KiB) Downloaded 343 times
Thanks
Andrew
jomitech
Site Admin
Posts: 2153
Joined: Wed Oct 08, 2008 12:23 am

Re: 64-bit compile produces ICE: Internal compiler error: 0 @00000000

Post by jomitech »

Everything looks good there, it should have just performed a Make. Can you try deleting all the .d files in the C:\Software Development\CB10.4 Sydney\Win64\Obj\Debug\Platform\ folder, run a Build, and then try another Make?

If that doesn't work, can you send one of the .d files that was re-compiled during the Make to support@jomitech.com?
Jon
Post Reply