This is an archive of the discontinued LLVM Phabricator instance.

[Polly][Support] Force instatiation of isl dump() methods. NFC.
ClosedPublic

Authored by Meinersbur on Sep 22 2017, 3:26 PM.

Details

Summary

In order for debuggers to be able to call an inline method, it must have
been instantiated somewhere. The dump() methods are usually not used, so
add an instantiation in debug builds.

This allows to call .dump() on any isl++ object from the gcc/gdb and
Visual Studio debugger in debug builds with assertions enabled.
In optimized builds, even with assertions enabled, the dump() methods
are also inlined in GICHelper.cpp, so no externally visible symbols
will be available either. This would require e.g.
attribute((noinline)) in isl-noexceptions.cpp which in turn would
require a translation unit they are instatiated in, making the isl C++
binding loose its header-only property.

Diff Detail

Repository
rL LLVM

Event Timeline

Meinersbur created this revision.Sep 22 2017, 3:26 PM
This revision is now accepted and ready to land.Sep 24 2017, 12:22 AM

For reference: the alternative is D38308.

I see. Let's go with the hack for now. ;-)

Best,
Tobias

This revision was automatically updated to reflect the committed changes.