[LLVMdev] Out-of-source subclassses vs. LLVM's RTTI system

Tobias Grosser tobias at grosser.es
Wed Jun 24 09:43:11 PDT 2015


On 06/24/2015 06:20 PM, Christian Convey wrote:
> Hi all,
>
> Is there a good way to add out-of-LLVM-source subclasses, without
> modifying the corresponding in-source "Kind" enumeration?
>
> As I play around with writing an AA pass, I'd like a good way to issue
> warnings for cases where my AA pass can't handle a particular IR
> construct.  I was thinking to report those warnings via
> /llvm::LLVMContext::diagnose( const DiagnosticInfo & DI )/.  None of the
> existing subclasses of /DiangosticInfo/ seems quite appropriate for my
> needs, so I wanted to create my own subclass, outside of the LLVM source.
>
> So I'm stuck between (a) wanting all of my code to reside outside of the
> LLVM source, and (b) being obligated (I think) to modify the
> /DiagnosticKind/ enum.

Maybe have a look at Polly's lib/Analysis/ScopDetectionDiagnostic.cpp 
and lib/Analysis/ScopDetection.cpp. We use LLVM's diagnostics in a 
loadable module without modifying LLVM's DiagnosticKind enum.

Best,
Tobias



More information about the llvm-dev mailing list