diff --git a/docs/LLVMBuild.html b/docs/LLVMBuild.html
index 1616b2d4593..2f06e30bd0e 100644
--- a/docs/LLVMBuild.html
+++ b/docs/LLVMBuild.html
@@ -292,6 +292,12 @@ required_libraries = Archive BitReader Core Support TransformUtils
Components with this type use the LibraryGroup properties in addition
to:
+ - has_asmparser [optional] [boolean]
+
Whether this target defines an assembly parser.
+ - has_asmprinter [optional] [boolean]
+
Whether this target defines an assembly printer.
+ - has_disassembler [optional] [boolean]
+
Whether this target defines a disassembler.
- has_jit [optional] [boolean]
Whether this target supports JIT compilation.
diff --git a/lib/Target/ARM/LLVMBuild.txt b/lib/Target/ARM/LLVMBuild.txt
index 79cae91f5b9..9082539bf50 100644
--- a/lib/Target/ARM/LLVMBuild.txt
+++ b/lib/Target/ARM/LLVMBuild.txt
@@ -19,6 +19,9 @@
type = TargetGroup
name = ARM
parent = Target
+has_asmparser = 1
+has_asmprinter = 1
+has_disassembler = 1
has_jit = 1
[component_1]
diff --git a/lib/Target/CellSPU/LLVMBuild.txt b/lib/Target/CellSPU/LLVMBuild.txt
index a2127dd1c00..4ae26b26b95 100644
--- a/lib/Target/CellSPU/LLVMBuild.txt
+++ b/lib/Target/CellSPU/LLVMBuild.txt
@@ -19,6 +19,7 @@
type = TargetGroup
name = CellSPU
parent = Target
+has_asmprinter = 1
[component_1]
type = Library
diff --git a/lib/Target/MBlaze/LLVMBuild.txt b/lib/Target/MBlaze/LLVMBuild.txt
index fa8955252d8..f1a3f5d4a28 100644
--- a/lib/Target/MBlaze/LLVMBuild.txt
+++ b/lib/Target/MBlaze/LLVMBuild.txt
@@ -19,6 +19,9 @@
type = TargetGroup
name = MBlaze
parent = Target
+has_asmparser = 1
+has_asmprinter = 1
+has_disassembler = 1
[component_1]
type = Library
diff --git a/lib/Target/MSP430/LLVMBuild.txt b/lib/Target/MSP430/LLVMBuild.txt
index 9ade1106688..024312b9e3c 100644
--- a/lib/Target/MSP430/LLVMBuild.txt
+++ b/lib/Target/MSP430/LLVMBuild.txt
@@ -19,6 +19,7 @@
type = TargetGroup
name = MSP430
parent = Target
+has_asmprinter = 1
[component_1]
type = Library
diff --git a/lib/Target/Mips/LLVMBuild.txt b/lib/Target/Mips/LLVMBuild.txt
index 65c7d7fd2f0..e733b52fe38 100644
--- a/lib/Target/Mips/LLVMBuild.txt
+++ b/lib/Target/Mips/LLVMBuild.txt
@@ -19,6 +19,7 @@
type = TargetGroup
name = Mips
parent = Target
+has_asmprinter = 1
has_jit = 1
[component_1]
diff --git a/lib/Target/PTX/LLVMBuild.txt b/lib/Target/PTX/LLVMBuild.txt
index 180e7ce82cc..27807e6930a 100644
--- a/lib/Target/PTX/LLVMBuild.txt
+++ b/lib/Target/PTX/LLVMBuild.txt
@@ -19,6 +19,7 @@
type = TargetGroup
name = PTX
parent = Target
+has_asmprinter = 1
[component_1]
type = Library
diff --git a/lib/Target/PowerPC/LLVMBuild.txt b/lib/Target/PowerPC/LLVMBuild.txt
index ce8b2e9196a..5baa9886bef 100644
--- a/lib/Target/PowerPC/LLVMBuild.txt
+++ b/lib/Target/PowerPC/LLVMBuild.txt
@@ -19,6 +19,7 @@
type = TargetGroup
name = PowerPC
parent = Target
+has_asmprinter = 1
has_jit = 1
[component_1]
diff --git a/lib/Target/Sparc/LLVMBuild.txt b/lib/Target/Sparc/LLVMBuild.txt
index d99057f20b2..38c797f6b27 100644
--- a/lib/Target/Sparc/LLVMBuild.txt
+++ b/lib/Target/Sparc/LLVMBuild.txt
@@ -19,6 +19,7 @@
type = TargetGroup
name = Sparc
parent = Target
+has_asmprinter = 1
[component_1]
type = Library
diff --git a/lib/Target/X86/LLVMBuild.txt b/lib/Target/X86/LLVMBuild.txt
index 814e81b304b..514566c257e 100644
--- a/lib/Target/X86/LLVMBuild.txt
+++ b/lib/Target/X86/LLVMBuild.txt
@@ -19,6 +19,9 @@
type = TargetGroup
name = X86
parent = Target
+has_asmparser = 1
+has_asmprinter = 1
+has_disassembler = 1
has_jit = 1
[component_1]
diff --git a/lib/Target/XCore/LLVMBuild.txt b/lib/Target/XCore/LLVMBuild.txt
index f1b75740cbe..1f7e2d5d0a3 100644
--- a/lib/Target/XCore/LLVMBuild.txt
+++ b/lib/Target/XCore/LLVMBuild.txt
@@ -19,6 +19,7 @@
type = TargetGroup
name = XCore
parent = Target
+has_asmprinter = 1
[component_1]
type = Library
diff --git a/utils/llvm-build/llvmbuild/componentinfo.py b/utils/llvm-build/llvmbuild/componentinfo.py
index 6897d10f31a..b9a2d4f1dce 100644
--- a/utils/llvm-build/llvmbuild/componentinfo.py
+++ b/utils/llvm-build/llvmbuild/componentinfo.py
@@ -198,10 +198,18 @@ class TargetGroupComponentInfo(ComponentInfo):
kwargs['add_to_library_groups'] = items.get_list(
'add_to_library_groups')
kwargs['has_jit'] = items.get_optional_bool('has_jit', False)
+ kwargs['has_asmprinter'] = items.get_optional_bool('has_asmprinter',
+ False)
+ kwargs['has_asmparser'] = items.get_optional_bool('has_asmparser',
+ False)
+ kwargs['has_disassembler'] = items.get_optional_bool('has_disassembler',
+ False)
return TargetGroupComponentInfo(subpath, **kwargs)
def __init__(self, subpath, name, parent, required_libraries = [],
- add_to_library_groups = [], has_jit = False):
+ add_to_library_groups = [], has_jit = False,
+ has_asmprinter = False, has_asmparser = False,
+ has_disassembler = False):
ComponentInfo.__init__(self, subpath, name, [], parent)
# The names of the library components which are required when linking
@@ -215,6 +223,15 @@ class TargetGroupComponentInfo(ComponentInfo):
# Whether or not this target supports the JIT.
self.has_jit = bool(has_jit)
+ # Whether or not this target defines an assembly printer.
+ self.has_asmprinter = bool(has_asmprinter)
+
+ # Whether or not this target defines an assembly parser.
+ self.has_asmparser = bool(has_asmparser)
+
+ # Whether or not this target defines an disassembler.
+ self.has_disassembler = bool(has_disassembler)
+
# Whether or not this target is enabled. This is set in response to
# configuration parameters.
self.enabled = False
@@ -238,9 +255,10 @@ class TargetGroupComponentInfo(ComponentInfo):
if self.add_to_library_groups:
print >>result, 'add_to_library_groups = %s' % ' '.join(
self.add_to_library_groups)
- if self.has_jit:
- print >>result, 'has_jit = %s' % ' '.join(
- int(self.has_jit))
+ for bool_key in ('has_asmparser', 'has_asmprinter', 'has_disassembler',
+ 'has_jit'):
+ if getattr(self, bool_key):
+ print >>result, '%s = 1' % (bool_key,)
return result.getvalue()
def get_llvmconfig_component_name(self):