@@ -1981,85 +1981,66 @@ int32_t GenericPluginTy::supports_empty_images() {
1981
1981
return supportsEmptyImages ();
1982
1982
}
1983
1983
1984
- int32_t GenericPluginTy::is_plugin_compatible (__tgt_device_image *Image) {
1985
- auto T = logger::log<int32_t >(__func__, Image);
1986
- auto R = [&]() {
1987
- StringRef Buffer (reinterpret_cast <const char *>(Image->ImageStart ),
1988
- utils::getPtrDiff (Image->ImageEnd , Image->ImageStart ));
1989
-
1990
- auto HandleError = [&](Error Err) -> bool {
1991
- [[maybe_unused]] std::string ErrStr = toString (std::move (Err));
1992
- DP (" Failure to check validity of image %p: %s" , Image, ErrStr.c_str ());
1993
- return false ;
1994
- };
1995
- switch (identify_magic (Buffer)) {
1996
- case file_magic::elf:
1997
- case file_magic::elf_relocatable:
1998
- case file_magic::elf_executable:
1999
- case file_magic::elf_shared_object:
2000
- case file_magic::elf_core: {
2001
- auto MatchOrErr = checkELFImage (Buffer);
2002
- if (Error Err = MatchOrErr.takeError ())
2003
- return HandleError (std::move (Err));
2004
- return *MatchOrErr;
2005
- }
2006
- case file_magic::bitcode: {
2007
- auto MatchOrErr = checkBitcodeImage (Buffer);
2008
- if (Error Err = MatchOrErr.takeError ())
2009
- return HandleError (std::move (Err));
2010
- return *MatchOrErr;
2011
- }
2012
- default :
2013
- return false ;
2014
- }
2015
- }();
2016
- T.res (R);
2017
- return R;
1984
+ int32_t GenericPluginTy::isPluginCompatible (StringRef Image) {
1985
+ auto HandleError = [&](Error Err) -> bool {
1986
+ [[maybe_unused]] std::string ErrStr = toString (std::move (Err));
1987
+ DP (" Failure to check validity of image %p: %s" , Image, ErrStr.c_str ());
1988
+ return false ;
1989
+ };
1990
+ switch (identify_magic (Image)) {
1991
+ case file_magic::elf:
1992
+ case file_magic::elf_relocatable:
1993
+ case file_magic::elf_executable:
1994
+ case file_magic::elf_shared_object:
1995
+ case file_magic::elf_core: {
1996
+ auto MatchOrErr = checkELFImage (Image);
1997
+ if (Error Err = MatchOrErr.takeError ())
1998
+ return HandleError (std::move (Err));
1999
+ return *MatchOrErr;
2000
+ }
2001
+ case file_magic::bitcode: {
2002
+ auto MatchOrErr = checkBitcodeImage (Image);
2003
+ if (Error Err = MatchOrErr.takeError ())
2004
+ return HandleError (std::move (Err));
2005
+ return *MatchOrErr;
2006
+ }
2007
+ default :
2008
+ return false ;
2009
+ }
2018
2010
}
2019
2011
2020
- int32_t GenericPluginTy::is_device_compatible (int32_t DeviceId,
2021
- __tgt_device_image *Image) {
2022
- auto T = logger::log<int32_t >(__func__, DeviceId, Image);
2023
- auto R = [&]() {
2024
- StringRef Buffer (reinterpret_cast <const char *>(Image->ImageStart ),
2025
- utils::getPtrDiff (Image->ImageEnd , Image->ImageStart ));
2026
-
2027
- auto HandleError = [&](Error Err) -> bool {
2028
- [[maybe_unused]] std::string ErrStr = toString (std::move (Err));
2029
- DP (" Failure to check validity of image %p: %s" , Image, ErrStr.c_str ());
2030
- return false ;
2031
- };
2032
- switch (identify_magic (Buffer)) {
2033
- case file_magic::elf:
2034
- case file_magic::elf_relocatable:
2035
- case file_magic::elf_executable:
2036
- case file_magic::elf_shared_object:
2037
- case file_magic::elf_core: {
2038
- auto MatchOrErr = checkELFImage (Buffer);
2039
- if (Error Err = MatchOrErr.takeError ())
2040
- return HandleError (std::move (Err));
2041
- if (!*MatchOrErr)
2042
- return false ;
2043
-
2044
- // Perform plugin-dependent checks for the specific architecture if
2045
- // needed.
2046
- auto CompatibleOrErr = isELFCompatible (DeviceId, Buffer);
2047
- if (Error Err = CompatibleOrErr.takeError ())
2048
- return HandleError (std::move (Err));
2049
- return *CompatibleOrErr;
2050
- }
2051
- case file_magic::bitcode: {
2052
- auto MatchOrErr = checkBitcodeImage (Buffer);
2053
- if (Error Err = MatchOrErr.takeError ())
2054
- return HandleError (std::move (Err));
2055
- return *MatchOrErr;
2056
- }
2057
- default :
2012
+ int32_t GenericPluginTy::isDeviceCompatible (int32_t DeviceId, StringRef Image) {
2013
+ auto HandleError = [&](Error Err) -> bool {
2014
+ [[maybe_unused]] std::string ErrStr = toString (std::move (Err));
2015
+ DP (" Failure to check validity of image %p: %s" , Image, ErrStr.c_str ());
2016
+ return false ;
2017
+ };
2018
+ switch (identify_magic (Image)) {
2019
+ case file_magic::elf:
2020
+ case file_magic::elf_relocatable:
2021
+ case file_magic::elf_executable:
2022
+ case file_magic::elf_shared_object:
2023
+ case file_magic::elf_core: {
2024
+ auto MatchOrErr = checkELFImage (Image);
2025
+ if (Error Err = MatchOrErr.takeError ())
2026
+ return HandleError (std::move (Err));
2027
+ if (!*MatchOrErr)
2058
2028
return false ;
2059
- }
2060
- }();
2061
- T.res (R);
2062
- return R;
2029
+ // Perform plugin-dependent checks for the specific architecture if needed.
2030
+ auto CompatibleOrErr = isELFCompatible (DeviceId, Image);
2031
+ if (Error Err = CompatibleOrErr.takeError ())
2032
+ return HandleError (std::move (Err));
2033
+ return *CompatibleOrErr;
2034
+ }
2035
+ case file_magic::bitcode: {
2036
+ auto MatchOrErr = checkBitcodeImage (Image);
2037
+ if (Error Err = MatchOrErr.takeError ())
2038
+ return HandleError (std::move (Err));
2039
+ return *MatchOrErr;
2040
+ }
2041
+ default :
2042
+ return false ;
2043
+ }
2063
2044
}
2064
2045
2065
2046
int32_t GenericPluginTy::is_device_initialized (int32_t DeviceId) const {
0 commit comments