Skip to content

Commit

Permalink
Added compilation of Plugin API headers with strict flags (#1654)
Browse files Browse the repository at this point in the history
* Minimized ngraph headers inclusion

* Added compilation of plugin api headers with strict flags

* Fixed -WPedantic issue in ngraph headers

* Fixed compilation

* Trying to fix Windows

* Fixed GNA unit tests compilation

* Disabled WX test on Windows
  • Loading branch information
ilya-lavrenov authored Aug 7, 2020
1 parent 054a7cd commit f832453
Show file tree
Hide file tree
Showing 19 changed files with 99 additions and 49 deletions.
1 change: 0 additions & 1 deletion inference-engine/src/cldnn_engine/cldnn_infer_request.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@
#include <description_buffer.hpp>
#include "cldnn_infer_request.h"
#include "cldnn_remote_context.h"
#include "inference_engine.hpp"
#include "cldnn_executable_network.h"
#include "cldnn_itt.h"

Expand Down
2 changes: 1 addition & 1 deletion inference-engine/src/gna_plugin/connection_details.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

#pragma once

#include "inference_engine.hpp"
#include "ie_layers.h"

namespace GNAPluginNS {
struct ConnectionDetails {
Expand Down
1 change: 1 addition & 0 deletions inference-engine/src/gna_plugin/gna_graph_compiler.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
#include <string>
#include <vector>

#include "ie_layers.h"
#include "descriptions/gna_input_desc.hpp"
#include "descriptions/gna_flags.hpp"
#include "cpp_interfaces/base/ie_plugin_base.hpp"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
#include <string>
#include <vector>

#include "inference_engine.hpp"
#include "ie_layers.h"

namespace GNAPluginNS {
class GNAConcatLayer {
Expand Down
2 changes: 1 addition & 1 deletion inference-engine/src/gna_plugin/layers/gna_crop_layer.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

#pragma once

#include "inference_engine.hpp"
#include "ie_layers.h"

namespace GNAPluginNS {
class GNACropLayer {
Expand Down
2 changes: 1 addition & 1 deletion inference-engine/src/gna_plugin/layers/gna_layer_info.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
#include <string>
#include <memory>
#include <vector>
#include "inference_engine.hpp"
#include "ie_layers.h"
#include "caseless.hpp"
#include "ie_algorithm.hpp"
#include "gna-api.h"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

#pragma once

#include "inference_engine.hpp"
#include "ie_layers.h"

namespace GNAPluginNS {
/**
Expand Down
1 change: 1 addition & 0 deletions inference-engine/src/gna_plugin/layers/gna_split_layer.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@

#include <vector>

#include "ie_layers.h"
#include "cpp_interfaces/base/ie_plugin_base.hpp"

namespace GNAPluginNS {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
#include "xml_parse_utils.h"
#include "ie_ngraph_utils.hpp"
#include <ngraph/variant.hpp>
#include <ngraph/function.hpp>

namespace InferenceEngine {
namespace Serialization {
Expand Down
2 changes: 1 addition & 1 deletion inference-engine/src/mkldnn_plugin/bf16transformer.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@

#pragma once

#include <cpp/ie_cnn_network.h>
#include <caseless.hpp>
#include <string>
#include <set>
#include "inference_engine.hpp"

namespace MKLDNNPlugin {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@
#include <nodes/mkldnn_concat_node.h>
#include <nodes/mkldnn_split_node.h>
#include <ie_compound_blob.h>
#include "inference_engine.hpp"
#include "mkldnn_exec_network.h"
#include "mkldnn_itt.h"

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@

#pragma once

#include <ie_layers.h>
#include <ie_iextension.h>
#include <ie_input_info.hpp>
#include <ie_icnn_network.hpp>
Expand Down Expand Up @@ -68,7 +67,6 @@ static void copyInputOutputInfo(const InputsDataMap & networkInputs, const Outpu
newPtr.reset(new InputInfo());
copyPreProcess(it.second->getPreProcess(), newPtr->getPreProcess());
DataPtr newData(new Data(*it.second->getInputData()));
getInputTo(newData).clear();
newPtr->setInputData(newData);
}
_networkInputs[it.first] = newPtr;
Expand All @@ -77,7 +75,6 @@ static void copyInputOutputInfo(const InputsDataMap & networkInputs, const Outpu
DataPtr newData;
if (it.second) {
newData.reset(new Data(*it.second));
getInputTo(newData).clear();
}
_networkOutputs[it.first] = newData;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
namespace InferenceEngine {
namespace itt {
namespace domains {
OV_ITT_DOMAIN(Plugin);
OV_ITT_DOMAIN(Plugin)
}
}
}
1 change: 0 additions & 1 deletion inference-engine/src/plugin_api/exec_graph_info.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@
#include <string>

#include <ngraph/node.hpp>
#include <ngraph/function.hpp>

/**
* @brief A namespace with const values for Execution Graph parameters names.
Expand Down
6 changes: 4 additions & 2 deletions inference-engine/src/plugin_api/generic_ie.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,10 @@
#include <ie_ishape_infer_extension.hpp>
#include <ie_parameter.hpp>
#include <ie_precision.hpp>
#include "ngraph/op/op.hpp"
#include <ngraph/ngraph.hpp>

#include <ngraph/op/op.hpp>
#include <ngraph/op/tensor_iterator.hpp>
#include <ngraph/graph_util.hpp>

namespace ngraph {
namespace op {
Expand Down
111 changes: 80 additions & 31 deletions inference-engine/tests/functional/inference_engine/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -38,37 +38,46 @@ include(CMakeParseArguments)

#
# ie_headers_compilation_with_custom_flags(TEST_SUFFIX <prefix>
# FLAGS <flags>
# DEFINITIONS <definitions>
# HEADERS_TO_SKIP <skip headers>
# CXX_STANDARD <number>)
# [FLAGS <flags>]
# [PLUGIN_API]
# [DEFINITIONS <definitions>]
# [HEADERS_TO_SKIP <skip headers>]
# [CXX_STANDARD <number>])
#
# Tests compilation with modern flags
#
function(ie_headers_compilation_with_custom_flags)
set(options)
set(oneValueArgs TEST_SUFFIX CXX_STANDARD)
set(multiValueArgs FLAGS DEFINITIONS HEADERS_TO_SKIP)
set(options PLUGIN_API)
set(oneValueArgs FLAGS TEST_SUFFIX CXX_STANDARD)
set(multiValueArgs DEFINITIONS HEADERS_TO_SKIP)
cmake_parse_arguments(IE_TEST "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})

file(GLOB_RECURSE header_files RELATIVE "${IE_MAIN_SOURCE_DIR}/include"
"${IE_MAIN_SOURCE_DIR}/include/*")
if(IE_TEST_PLUGIN_API)
set(IE_TEST_INCLUDE_DIRECTORY "${IE_MAIN_SOURCE_DIR}/src/plugin_api")
else()
set(IE_TEST_INCLUDE_DIRECTORY "${IE_MAIN_SOURCE_DIR}/include")
endif()

file(GLOB_RECURSE header_files RELATIVE "${IE_TEST_INCLUDE_DIRECTORY}"
"${IE_TEST_INCLUDE_DIRECTORY}/*")

if(NOT IE_TEST_CXX_STANDARD)
set(IE_TEST_CXX_STANDARD ${CMAKE_CXX_STANDARD})
endif()

if(NOT CLDNN__IOCL_ICD_INCDIRS)
list(APPEND IE_TEST_HEADERS_TO_SKIP "gpu/gpu_ocl_wrapper.hpp"
"gpu/gpu_context_api_ocl.hpp"
"gpu/gpu_context_api_va.hpp"
"gpu/gpu_context_api_dx.hpp")
endif()
if(NOT WIN32)
list(APPEND IE_TEST_HEADERS_TO_SKIP "gpu/gpu_context_api_dx.hpp")
endif()
if(NOT LIBVA_FOUND)
list(APPEND IE_TEST_HEADERS_TO_SKIP "gpu/gpu_context_api_va.hpp")
if(NOT IE_TEST_PLUGIN_API)
if(NOT CLDNN__IOCL_ICD_INCDIRS)
list(APPEND IE_TEST_HEADERS_TO_SKIP "gpu/gpu_ocl_wrapper.hpp"
"gpu/gpu_context_api_ocl.hpp"
"gpu/gpu_context_api_va.hpp"
"gpu/gpu_context_api_dx.hpp")
endif()
if(NOT WIN32)
list(APPEND IE_TEST_HEADERS_TO_SKIP "gpu/gpu_context_api_dx.hpp")
endif()
if(NOT LIBVA_FOUND)
list(APPEND IE_TEST_HEADERS_TO_SKIP "gpu/gpu_context_api_va.hpp")
endif()
endif()

set(content "\n")
Expand Down Expand Up @@ -96,17 +105,28 @@ function(ie_headers_compilation_with_custom_flags)

set(target_name ieFuncTestsCompilation${IE_TEST_TEST_SUFFIX})
add_library(${target_name} OBJECT ${source_file})
target_include_directories(${target_name} PRIVATE $<TARGET_PROPERTY:inference_engine,INTERFACE_INCLUDE_DIRECTORIES>)
target_include_directories(${target_name} PRIVATE "${IE_TEST_INCLUDE_DIRECTORY}"
$<TARGET_PROPERTY:inference_engine,INTERFACE_INCLUDE_DIRECTORIES>)
target_compile_definitions(${target_name} PRIVATE $<TARGET_PROPERTY:inference_engine,INTERFACE_COMPILE_DEFINITIONS>)

if(IE_TEST_PLUGIN_API)
# ngraph, pugixml, openvino::itt, inference_engine_preproc headers
target_include_directories(${target_name} SYSTEM PRIVATE
$<TARGET_PROPERTY:pugixml,INTERFACE_INCLUDE_DIRECTORIES>
$<TARGET_PROPERTY:openvino::itt,INTERFACE_INCLUDE_DIRECTORIES>)
target_include_directories(${target_name} PRIVATE
$<TARGET_PROPERTY:${NGRAPH_LIBRARIES},INTERFACE_INCLUDE_DIRECTORIES>
$<TARGET_PROPERTY:inference_engine_preproc,INTERFACE_INCLUDE_DIRECTORIES>)
else()
# OpenCL headers if any
if(CLDNN__IOCL_ICD_INCDIRS)
target_include_directories(${target_name} SYSTEM PRIVATE ${CLDNN__IOCL_ICD_INCDIRS})
endif()
endif()

# To include TBB headers as system
set_ie_threading_interface_for(${target_name})

# OpenCL headers if any
if(CLDNN__IOCL_ICD_INCDIRS)
target_include_directories(${target_name} SYSTEM PRIVATE ${CLDNN__IOCL_ICD_INCDIRS})
endif()

set_target_properties(${target_name} PROPERTIES
CXX_STANDARD ${IE_TEST_CXX_STANDARD}
CXX_STANDARD_REQUIRED OFF)
Expand All @@ -123,27 +143,56 @@ function(ie_headers_compilation_with_custom_flags)
add_dependencies(${TARGET_NAME} ${target_name})
endfunction()

# compilation with c++17
ie_headers_compilation_with_custom_flags(TEST_SUFFIX Cxx17 CXX_STANDARD 17)
#
# Public headers tests
#

ie_headers_compilation_with_custom_flags(TEST_SUFFIX Cxx17
CXX_STANDARD 17)

if(UNIX)
if(CMAKE_CXX_COMPILER_ID STREQUAL "Intel")
ie_headers_compilation_with_custom_flags(TEST_SUFFIX WarningsAreErrors
FLAGS "-Werror-all -Werror -Wall")
else()
ie_headers_compilation_with_custom_flags(TEST_SUFFIX Pedantic FLAGS -Wpedantic)
ie_headers_compilation_with_custom_flags(TEST_SUFFIX Pedantic FLAGS "-Wpedantic")
endif()
else()
ie_headers_compilation_with_custom_flags(TEST_SUFFIX WindowsAreErrors
HEADERS_TO_SKIP "gpu/gpu_ocl_wrapper.hpp"
"gpu/gpu_context_api_ocl.hpp"
"gpu/gpu_context_api_dx.hpp"
FLAGS "/we4996 /W4 /WX")
ie_headers_compilation_with_custom_flags(TEST_SUFFIX Unicode
DEFINITIONS UNICODE _UNICODE)
endif()

# compilation with -Wweak-vtables
# if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
# ie_headers_compilation_with_custom_flags(TEST_SUFFIX WeakTables FLAGS -Wweak-vtables)
# endif()

#
# Plugin API headers tests
#

ie_headers_compilation_with_custom_flags(TEST_SUFFIX PluginApiCxx17
HEADERS_TO_SKIP "generic_ie.hpp"
CXX_STANDARD 17 PLUGIN_API)

if(UNIX)
if(CMAKE_CXX_COMPILER_ID STREQUAL "Intel")
ie_headers_compilation_with_custom_flags(TEST_SUFFIX PluginApiWarningsAreErrors
HEADERS_TO_SKIP "generic_ie.hpp"
FLAGS "-Werror-all -Werror -Wall"
PLUGIN_API)
else()
ie_headers_compilation_with_custom_flags(TEST_SUFFIX PluginApiPedantic FLAGS "-Wpedantic"
HEADERS_TO_SKIP "generic_ie.hpp"
PLUGIN_API)
endif()
else()
# TODO: enable
# ie_headers_compilation_with_custom_flags(TEST_SUFFIX PluginApiWindowsAreErrors
# HEADERS_TO_SKIP "generic_ie.hpp"
# FLAGS "/we4996 /W4 /WX"
# PLUGIN_API)
endif()
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
#include <frontend/model_quantizer.hpp>
#include "frontend/layer_quantizer.hpp"
#include "gna_matcher.hpp"
#include <ie_core.hpp>

using namespace InferenceEngine;
using namespace GNAPluginNS;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
#include "net_pass.h"
#include "matchers/input_data_matcher.hpp"
#include <blob_factory.hpp>
#include <ie_core.hpp>
#include <details/ie_cnn_network_tools.h>

#include "unit_test_utils/mocks/mock_icnn_network.hpp"
Expand Down
6 changes: 3 additions & 3 deletions ngraph/src/ngraph/node.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -194,7 +194,7 @@ namespace ngraph
public:
virtual ~Node();

virtual bool visit_attributes(AttributeVisitor& visitor) { return false; }
virtual bool visit_attributes(AttributeVisitor&) { return false; }
/// \returns the autobroadcasr spec
virtual const op::AutoBroadcastSpec& get_autob() const;
/// \brief Evaluates the op on input_values putting results in output_values
Expand Down Expand Up @@ -531,14 +531,14 @@ namespace ngraph
#define NGRAPH_RTTI_DECLARATION \
static const ::ngraph::Node::type_info_t type_info; \
const ::ngraph::Node::type_info_t& get_type_info() const override; \
static const ::ngraph::Node::type_info_t& get_type_info_static();
static const ::ngraph::Node::type_info_t& get_type_info_static()

#define _NGRAPH_RTTI_DEFINITION_COMMON(CLASS) \
const ::ngraph::Node::type_info_t& CLASS::get_type_info() const \
{ \
return get_type_info_static(); \
} \
const ::ngraph::Node::type_info_t CLASS::type_info = CLASS::get_type_info_static();
const ::ngraph::Node::type_info_t CLASS::type_info = CLASS::get_type_info_static()
#define _NGRAPH_RTTI_DEFINITION_WITH_PARENT(CLASS, TYPE_NAME, _VERSION_INDEX, PARENT_CLASS) \
const ::ngraph::Node::type_info_t& CLASS::get_type_info_static() \
{ \
Expand Down

0 comments on commit f832453

Please sign in to comment.