gregrodgers wrote:

There are two types of emissary APIs.  
1. Internal.  This is when llvm contains the host runtime to link to.  
EmissaryFortrt, and EmissaryPrint are the only two internal Emissary APIs for 
now
2. External.  This is used when the host runtime is not available, or 
proprietary.   Most future use of Emissary APIs will be developed externally.  
The Emissary header to support it will be distributed by the library 
maintainers.  The file EmissaryMPI.h  is just an example for demo purposes.    
I expect hardware specific Emissary APIs to be developed externally to LLVM.   
The only change needed for new external Emissary APIs will be a new enum field 
in offload_emis_id_t  and a weak external reference in EmissaryTop from a new 
case entry.   In fact, external Emissary API can be developed with the Reserved 
ID which has a weak external call to EmissaryReserve()  .   API maintainers of 
the Emissary header file can use EmissaryReserve ID indefinitely or until they 
have multiple Emissary APIs. 

https://github.com/llvm/llvm-project/pull/175265
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to