config.available_features.add('shell')
# Registered Targets
-def getRegisteredTargets(tool):
+def get_llc_props(tool):
set_of_targets = set()
+ enable_assertions = False
cmd = subprocess.Popen([tool, '-version'], stdout=subprocess.PIPE)
elif "Registered Targets:" in line:
parse_targets = True
- return set_of_targets
+ if re.search(r'with assertions', line):
+ enable_assertions = True
-registered_targets = getRegisteredTargets(os.path.join(llvm_tools_dir, 'llc'))
-if len(registered_targets) > 0:
- config.available_features.update(registered_targets)
+ return {"set_of_targets": set_of_targets,
+ "enable_assertions": enable_assertions}
+
+llc_props = get_llc_props(os.path.join(llvm_tools_dir, 'llc'))
+if len(llc_props['set_of_targets']) > 0:
+ config.available_features.update(llc_props['set_of_targets'])
else:
lit.fatal('No Targets Registered with the LLVM Tools!')
+
+if llc_props['enable_assertions']:
+ config.available_features.add('asserts')