Skip to content
Snippets Groups Projects
  • John Brawn's avatar
    c907e200
    Adjust Registry interface to not require plugins to export a registry · c907e200
    John Brawn authored
    Currently the Registry class contains the vestiges of a previous attempt to
    allow plugins to be used on Windows without using BUILD_SHARED_LIBS, where a
    plugin would have its own copy of a registry and export it to be imported by
    the tool that's loading the plugin. This only works if the plugin is entirely
    self-contained with the only interface between the plugin and tool being the
    registry, and in particular this conflicts with how IR pass plugins work.
    
    This patch changes things so that instead the add_node function of the registry
    is exported by the tool and then imported by the plugin, which solves this
    problem and also means that instead of every plugin having to export every
    registry they use instead LLVM only has to export the add_node functions. This
    allows plugins that use a registry to work on Windows if
    LLVM_EXPORT_SYMBOLS_FOR_PLUGINS is used.
    
    Differential Revision: http://reviews.llvm.org/D21385
    
    
    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@276856 91177308-0d34-0410-b5e6-96231b3b80d8
    c907e200
    History
    Adjust Registry interface to not require plugins to export a registry
    John Brawn authored
    Currently the Registry class contains the vestiges of a previous attempt to
    allow plugins to be used on Windows without using BUILD_SHARED_LIBS, where a
    plugin would have its own copy of a registry and export it to be imported by
    the tool that's loading the plugin. This only works if the plugin is entirely
    self-contained with the only interface between the plugin and tool being the
    registry, and in particular this conflicts with how IR pass plugins work.
    
    This patch changes things so that instead the add_node function of the registry
    is exported by the tool and then imported by the plugin, which solves this
    problem and also means that instead of every plugin having to export every
    registry they use instead LLVM only has to export the add_node functions. This
    allows plugins that use a registry to work on Windows if
    LLVM_EXPORT_SYMBOLS_FOR_PLUGINS is used.
    
    Differential Revision: http://reviews.llvm.org/D21385
    
    
    git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@276856 91177308-0d34-0410-b5e6-96231b3b80d8
Code owners
Assign users and groups as approvers for specific file changes. Learn more.