llvm-capstone/polly/test/lit.site.cfg.in
serge_sans_paille 24ab9b537e Generalize the pass registration mechanism used by Polly to any third-party tool
There's quite a lot of references to Polly in the LLVM CMake codebase. However
the registration pattern used by Polly could be useful to other external
projects: thanks to that mechanism it would be possible to develop LLVM
extension without touching the LLVM code base.

This patch has two effects:

1. Remove all code specific to Polly in the llvm/clang codebase, replaicing it
   with a generic mechanism

2. Provide a generic mechanism to register compiler extensions.

A compiler extension is similar to a pass plugin, with the notable difference
that the compiler extension can be configured to be built dynamically (like
plugins) or statically (like regular passes).

As a result, people willing to add extra passes to clang/opt can do it using a
separate code repo, but still have their pass be linked in clang/opt as built-in
passes.

Differential Revision: https://reviews.llvm.org/D61446
2020-01-02 16:45:31 +01:00

71 lines
3.2 KiB
INI

## Autogenerated by LLVM/Polly configuration.
# Do not edit!
config.llvm_src_root = "@LLVM_SOURCE_DIR@"
config.llvm_obj_root = "@LLVM_BINARY_DIR@"
config.llvm_tools_dir = "@LLVM_TOOLS_DIR@"
config.llvm_libs_dir = "@LLVM_LIBS_DIR@"
config.polly_obj_root = "@POLLY_BINARY_DIR@"
config.polly_lib_dir = "@POLLY_LIB_DIR@"
config.target_triple = "@TARGET_TRIPLE@"
config.enable_gpgpu_codegen = "@GPU_CODEGEN@"
config.llvm_polly_link_into_tools = "@LLVM_POLLY_LINK_INTO_TOOLS@"
config.targets_to_build = "@TARGETS_TO_BUILD@"
config.extra_paths = "@POLLY_TEST_EXTRA_PATHS@".split(";")
## Check the current platform with regex
import re
EAT_ERR_ON_X86 = ' '
if (re.match(r'^x86_64*', '@TARGET_TRIPLE@') == None) :
EAT_ERR_ON_X86 = '|| echo \"error is eaten\"'
for arch in config.targets_to_build.split():
config.available_features.add(arch.lower() + '-registered-target')
# Support substitution of the tools and libs dirs with user parameters. This is
# used when we can't determine the tool dir at configuration time.
try:
config.llvm_tools_dir = config.llvm_tools_dir % lit_config.params
config.llvm_libs_dir = config.llvm_libs_dir % lit_config.params
except KeyError:
e = sys.exc_info()[1]
key, = e.args
lit_config.fatal("unable to find %r parameter, use '--param=%s=VALUE'" % (key,key))
# excludes: A list of directories to exclude from the testsuite. The 'Inputs'
# subdirectories contain auxiliary inputs for various tests in their parent
# directories.
config.excludes = ['Inputs']
if config.llvm_polly_link_into_tools == '' or \
config.llvm_polly_link_into_tools.lower() == '0' or \
config.llvm_polly_link_into_tools.lower() == 'n' or \
config.llvm_polly_link_into_tools.lower() == 'no' or \
config.llvm_polly_link_into_tools.lower() == 'off' or \
config.llvm_polly_link_into_tools.lower() == 'false' or \
config.llvm_polly_link_into_tools.lower() == 'notfound' or \
config.llvm_polly_link_into_tools.lower() == 'llvm_polly_link_into_tools-notfound':
config.substitutions.append(('%loadPolly', '-load '
+ config.polly_lib_dir + '/LLVMPolly@LLVM_SHLIBEXT@'
+ ' -load-pass-plugin '
+ config.polly_lib_dir + '/LLVMPolly@LLVM_SHLIBEXT@'
+ ' -polly-process-unprofitable '
+ ' -polly-remarks-minimal '
+ ' -polly-use-llvm-names '
+ ' -polly-import-jscop-dir=%S '
+ ' -polly-codegen-verify '
))
else:
config.substitutions.append(('%loadPolly', ''
+ ' -polly-process-unprofitable '
+ ' -polly-remarks-minimal '
+ ' -polly-use-llvm-names '
+ ' -polly-import-jscop-dir=%S '
+ ' -polly-codegen-verify '
))
if config.enable_gpgpu_codegen == 'TRUE' :
config.available_features.add('pollyacc')
# Let the main config do the real work.
lit_config.load_config(config, "@POLLY_SOURCE_DIR@/test/lit.cfg")