mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2024-12-26 09:49:48 +00:00
24ab9b537e
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
71 lines
3.2 KiB
INI
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")
|