Page 1 of 1

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

Posted: Fri Aug 20, 2021 10:21 am
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

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

Posted: Sat Aug 21, 2021 11:05 am
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.

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

Posted: Sat Aug 21, 2021 3:56 pm
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

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

Posted: Mon Aug 23, 2021 4:00 pm
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.

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

Posted: Tue Aug 24, 2021 6:36 am
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

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

Posted: Tue Aug 24, 2021 4:53 pm
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.

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

Posted: Wed Aug 25, 2021 4:10 am
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 372 times
Thanks
Andrew

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

Posted: Thu Aug 26, 2021 4:43 pm
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?