LLVMMetadata.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Tue, 30 Aug 2016 16:57:29 +0100
changeset 78 7a4c769a9fea
parent 77 67e1328d58c9
permissions -rw-r--r--
llvm_c_ext: Improved `LLVMSetMetadata2()` to support also function values ...in addition to instruction values. This is handy to attach data to functions, such as debugging information. Added Smalltalk API for setting metadata nodes on instructions and functions.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
29
6ea02617c9ab Added bindings to LLVM C API Extensions library.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
"
6ea02617c9ab Added bindings to LLVM C API Extensions library.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
    Copyright (C) 2015-now Jan Vrany
6ea02617c9ab Added bindings to LLVM C API Extensions library.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     3
6ea02617c9ab Added bindings to LLVM C API Extensions library.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     4
    This code is not an open-source (yet). You may use this code
6ea02617c9ab Added bindings to LLVM C API Extensions library.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
    for your own experiments and projects, given that:
6ea02617c9ab Added bindings to LLVM C API Extensions library.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
6ea02617c9ab Added bindings to LLVM C API Extensions library.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
    * all modification to the code will be sent to the
6ea02617c9ab Added bindings to LLVM C API Extensions library.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
      original author for inclusion in future releases
6ea02617c9ab Added bindings to LLVM C API Extensions library.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
    * this is not used in any commercial software
6ea02617c9ab Added bindings to LLVM C API Extensions library.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
6ea02617c9ab Added bindings to LLVM C API Extensions library.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
    This license is provisional and may (will) change in
6ea02617c9ab Added bindings to LLVM C API Extensions library.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
    a future.
6ea02617c9ab Added bindings to LLVM C API Extensions library.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    13
"
6ea02617c9ab Added bindings to LLVM C API Extensions library.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    14
"{ Package: 'jv:llvm_s' }"
6ea02617c9ab Added bindings to LLVM C API Extensions library.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    15
6ea02617c9ab Added bindings to LLVM C API Extensions library.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    16
"{ NameSpace: Smalltalk }"
6ea02617c9ab Added bindings to LLVM C API Extensions library.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    17
33
feabf14b6c1d Initial support for generating (DWARF) debug info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 29
diff changeset
    18
LLVMObject subclass:#LLVMMetadata
29
6ea02617c9ab Added bindings to LLVM C API Extensions library.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    19
	instanceVariableNames:''
6ea02617c9ab Added bindings to LLVM C API Extensions library.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    20
	classVariableNames:''
41
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
    21
	poolDictionaries:'LLVMMetadataKind'
29
6ea02617c9ab Added bindings to LLVM C API Extensions library.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    22
	category:'LLVM-S-Core'
6ea02617c9ab Added bindings to LLVM C API Extensions library.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    23
!
6ea02617c9ab Added bindings to LLVM C API Extensions library.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    24
6ea02617c9ab Added bindings to LLVM C API Extensions library.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
!LLVMMetadata class methodsFor:'documentation'!
6ea02617c9ab Added bindings to LLVM C API Extensions library.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    26
6ea02617c9ab Added bindings to LLVM C API Extensions library.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    27
copyright
6ea02617c9ab Added bindings to LLVM C API Extensions library.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    28
"
6ea02617c9ab Added bindings to LLVM C API Extensions library.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    29
    Copyright (C) 2015-now Jan Vrany
6ea02617c9ab Added bindings to LLVM C API Extensions library.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    30
6ea02617c9ab Added bindings to LLVM C API Extensions library.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    31
    This code is not an open-source (yet). You may use this code
6ea02617c9ab Added bindings to LLVM C API Extensions library.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    32
    for your own experiments and projects, given that:
6ea02617c9ab Added bindings to LLVM C API Extensions library.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    33
6ea02617c9ab Added bindings to LLVM C API Extensions library.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    34
    * all modification to the code will be sent to the
6ea02617c9ab Added bindings to LLVM C API Extensions library.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    35
      original author for inclusion in future releases
6ea02617c9ab Added bindings to LLVM C API Extensions library.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    36
    * this is not used in any commercial software
6ea02617c9ab Added bindings to LLVM C API Extensions library.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    37
6ea02617c9ab Added bindings to LLVM C API Extensions library.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    38
    This license is provisional and may (will) change in
6ea02617c9ab Added bindings to LLVM C API Extensions library.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    39
    a future.
6ea02617c9ab Added bindings to LLVM C API Extensions library.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    40
"
6ea02617c9ab Added bindings to LLVM C API Extensions library.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    41
! !
6ea02617c9ab Added bindings to LLVM C API Extensions library.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    42
41
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
    43
!LLVMMetadata methodsFor:'accessing'!
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
    44
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
    45
kind
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
    46
    ^ LLVMCEXT GetMedadataKind: self
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
    47
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
    48
    "Created: / 17-09-2015 / 16:42:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
    49
! !
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
    50
33
feabf14b6c1d Initial support for generating (DWARF) debug info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 29
diff changeset
    51
!LLVMMetadata methodsFor:'converting'!
feabf14b6c1d Initial support for generating (DWARF) debug info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 29
diff changeset
    52
feabf14b6c1d Initial support for generating (DWARF) debug info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 29
diff changeset
    53
asLLVMMetadata
feabf14b6c1d Initial support for generating (DWARF) debug info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 29
diff changeset
    54
    ^ self
feabf14b6c1d Initial support for generating (DWARF) debug info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 29
diff changeset
    55
feabf14b6c1d Initial support for generating (DWARF) debug info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 29
diff changeset
    56
    "Created: / 15-08-2015 / 06:41:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
feabf14b6c1d Initial support for generating (DWARF) debug info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 29
diff changeset
    57
!
feabf14b6c1d Initial support for generating (DWARF) debug info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 29
diff changeset
    58
feabf14b6c1d Initial support for generating (DWARF) debug info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 29
diff changeset
    59
asLLVMValue
feabf14b6c1d Initial support for generating (DWARF) debug info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 29
diff changeset
    60
    ^ LLVMCEXT MetadataAsValue: self.
feabf14b6c1d Initial support for generating (DWARF) debug info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 29
diff changeset
    61
feabf14b6c1d Initial support for generating (DWARF) debug info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 29
diff changeset
    62
    "Created: / 14-08-2015 / 16:35:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
feabf14b6c1d Initial support for generating (DWARF) debug info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 29
diff changeset
    63
! !
feabf14b6c1d Initial support for generating (DWARF) debug info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 29
diff changeset
    64
77
67e1328d58c9 llvm_c_ext: Added `LLVMPrintMetadataToString()`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 74
diff changeset
    65
!LLVMMetadata methodsFor:'debugging-dumping'!
67e1328d58c9 llvm_c_ext: Added `LLVMPrintMetadataToString()`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 74
diff changeset
    66
67e1328d58c9 llvm_c_ext: Added `LLVMPrintMetadataToString()`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 74
diff changeset
    67
dumpOn: aStream
67e1328d58c9 llvm_c_ext: Added `LLVMPrintMetadataToString()`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 74
diff changeset
    68
    aStream nextPutAll: self dumpString
74
47bf2a306c14 Show metadata kind in LLVMMetadata print string
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 41
diff changeset
    69
77
67e1328d58c9 llvm_c_ext: Added `LLVMPrintMetadataToString()`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 74
diff changeset
    70
    "Created: / 10-07-2015 / 14:32:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
67e1328d58c9 llvm_c_ext: Added `LLVMPrintMetadataToString()`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 74
diff changeset
    71
!
74
47bf2a306c14 Show metadata kind in LLVMMetadata print string
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 41
diff changeset
    72
77
67e1328d58c9 llvm_c_ext: Added `LLVMPrintMetadataToString()`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 74
diff changeset
    73
dumpString
67e1328d58c9 llvm_c_ext: Added `LLVMPrintMetadataToString()`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 74
diff changeset
    74
    | cstr str|
74
47bf2a306c14 Show metadata kind in LLVMMetadata print string
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 41
diff changeset
    75
77
67e1328d58c9 llvm_c_ext: Added `LLVMPrintMetadataToString()`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 74
diff changeset
    76
    cstr := LLVMCEXT PrintMetadataToString: self.
67e1328d58c9 llvm_c_ext: Added `LLVMPrintMetadataToString()`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 74
diff changeset
    77
    str := cstr copyCStringFromHeap.
67e1328d58c9 llvm_c_ext: Added `LLVMPrintMetadataToString()`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 74
diff changeset
    78
    LLVM DisposeMessage: cstr.
67e1328d58c9 llvm_c_ext: Added `LLVMPrintMetadataToString()`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 74
diff changeset
    79
    ^ str
67e1328d58c9 llvm_c_ext: Added `LLVMPrintMetadataToString()`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 74
diff changeset
    80
67e1328d58c9 llvm_c_ext: Added `LLVMPrintMetadataToString()`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 74
diff changeset
    81
    "Created: / 10-07-2015 / 14:31:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
67e1328d58c9 llvm_c_ext: Added `LLVMPrintMetadataToString()`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 74
diff changeset
    82
    "Modified: / 30-08-2016 / 12:24:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
67e1328d58c9 llvm_c_ext: Added `LLVMPrintMetadataToString()`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 74
diff changeset
    83
!
74
47bf2a306c14 Show metadata kind in LLVMMetadata print string
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 41
diff changeset
    84
77
67e1328d58c9 llvm_c_ext: Added `LLVMPrintMetadataToString()`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 74
diff changeset
    85
printOn: aStream
67e1328d58c9 llvm_c_ext: Added `LLVMPrintMetadataToString()`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 74
diff changeset
    86
    super printOn: aStream.
67e1328d58c9 llvm_c_ext: Added `LLVMPrintMetadataToString()`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 74
diff changeset
    87
    aStream nextPut: $(.
67e1328d58c9 llvm_c_ext: Added `LLVMPrintMetadataToString()`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 74
diff changeset
    88
    aStream nextPutAll: self dumpString.
67e1328d58c9 llvm_c_ext: Added `LLVMPrintMetadataToString()`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 74
diff changeset
    89
    aStream nextPut: $)
74
47bf2a306c14 Show metadata kind in LLVMMetadata print string
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 41
diff changeset
    90
77
67e1328d58c9 llvm_c_ext: Added `LLVMPrintMetadataToString()`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 74
diff changeset
    91
    "Created: / 11-07-2015 / 07:09:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
67e1328d58c9 llvm_c_ext: Added `LLVMPrintMetadataToString()`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 74
diff changeset
    92
    "Modified (format): / 30-08-2016 / 12:24:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
74
47bf2a306c14 Show metadata kind in LLVMMetadata print string
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 41
diff changeset
    93
! !
47bf2a306c14 Show metadata kind in LLVMMetadata print string
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 41
diff changeset
    94
33
feabf14b6c1d Initial support for generating (DWARF) debug info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 29
diff changeset
    95
!LLVMMetadata methodsFor:'testing'!
feabf14b6c1d Initial support for generating (DWARF) debug info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 29
diff changeset
    96
41
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
    97
isDIBasicType
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
    98
    ^ self kind == DIBasicTypeKind
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
    99
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   100
    "Created: / 17-09-2015 / 16:48:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   101
!
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   102
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   103
isDICompileUnit
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   104
    ^ self kind == DICompileUnitKind
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   105
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   106
    "Created: / 17-09-2015 / 16:47:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   107
!
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   108
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   109
isDICompositeType
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   110
    ^ self kind == DICompositeTypeKind
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   111
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   112
    "Created: / 17-09-2015 / 16:48:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   113
!
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   114
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   115
isDIDerivedType
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   116
    ^ self kind == DIDerivedTypeKind
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   117
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   118
    "Created: / 17-09-2015 / 16:48:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   119
!
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   120
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   121
isDIEnumerator
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   122
    ^ self kind == DIEnumeratorKind
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   123
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   124
    "Created: / 17-09-2015 / 16:45:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   125
!
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   126
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   127
isDIExpression
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   128
    ^ self kind == DIExpressionKind
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   129
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   130
    "Created: / 17-09-2015 / 16:45:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   131
!
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   132
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   133
isDIFile
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   134
    ^ self kind == DIFileKind
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   135
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   136
    "Created: / 17-09-2015 / 16:47:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   137
!
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   138
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   139
isDIGlobalVariable
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   140
    ^ self kind == DIGlobalVariableKind
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   141
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   142
    "Created: / 17-09-2015 / 16:47:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   143
!
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   144
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   145
isDIImportedEntity
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   146
    ^ self kind == DIImportedEntityKind
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   147
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   148
    "Created: / 17-09-2015 / 16:45:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   149
!
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   150
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   151
isDILexicalBlock
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   152
    ^ self kind == DILexicalBlockKind
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   153
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   154
    "Created: / 17-09-2015 / 16:48:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   155
!
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   156
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   157
isDILexicalBlockFile
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   158
    ^ self kind == DILexicalBlockFileKind
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   159
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   160
    "Created: / 17-09-2015 / 16:48:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   161
!
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   162
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   163
isDILocalScope
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   164
    ^ { DILexicalBlockKind . DILexicalBlockFileKind . DISubprogramKind } includes: self kind.
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   165
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   166
    "Created: / 17-09-2015 / 16:59:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   167
!
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   168
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   169
isDILocalVariable
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   170
    ^ self kind == DILocalVariableKind
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   171
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   172
    "Created: / 17-09-2015 / 16:46:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   173
!
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   174
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   175
isDILocation
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   176
    ^ self kind == DILocationKind
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   177
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   178
    "Created: / 17-09-2015 / 16:43:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   179
!
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   180
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   181
isDINamespace
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   182
    ^ self kind == DINamespaceKind
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   183
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   184
    "Created: / 17-09-2015 / 16:47:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   185
!
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   186
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   187
isDIObjCProperty
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   188
    ^ self kind == DIObjCPropertyKind
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   189
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   190
    "Created: / 17-09-2015 / 16:45:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   191
!
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   192
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   193
isDIScope
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   194
    ^ { DILexicalBlockKind . DILexicalBlockFileKind . DISubprogramKind .
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   195
        DICompileUnitKind . DIFileKind . DINamespaceKind } includes: self kind.
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   196
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   197
    "Created: / 17-09-2015 / 17:05:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   198
!
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   199
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   200
isDISubprogram
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   201
    ^ self kind == DISubprogramKind
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   202
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   203
    "Created: / 17-09-2015 / 16:47:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   204
!
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   205
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   206
isDISubprogramType
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   207
    ^ self kind == DISubroutineTypeKind
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   208
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   209
    "Created: / 17-09-2015 / 16:49:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   210
!
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   211
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   212
isDISubrange
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   213
    ^ self kind == DISubrangeKind
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   214
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   215
    "Created: / 17-09-2015 / 16:46:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   216
!
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   217
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   218
isDIType
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   219
    ^ { DIBasicTypeKind . DIDerivedTypeKind . DICompositeTypeKind . DISubroutineTypeKind } includes: self kind.
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   220
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   221
    "Created: / 17-09-2015 / 16:59:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   222
!
e4cbc8e75207 Added testing and assestion methods to test metadata nodes for their type
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 33
diff changeset
   223
33
feabf14b6c1d Initial support for generating (DWARF) debug info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 29
diff changeset
   224
isLLVMMetadata
feabf14b6c1d Initial support for generating (DWARF) debug info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 29
diff changeset
   225
    ^ true
feabf14b6c1d Initial support for generating (DWARF) debug info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 29
diff changeset
   226
feabf14b6c1d Initial support for generating (DWARF) debug info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 29
diff changeset
   227
    "Created: / 14-08-2015 / 08:51:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
feabf14b6c1d Initial support for generating (DWARF) debug info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 29
diff changeset
   228
! !
feabf14b6c1d Initial support for generating (DWARF) debug info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 29
diff changeset
   229
74
47bf2a306c14 Show metadata kind in LLVMMetadata print string
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 41
diff changeset
   230
!LLVMMetadata class methodsFor:'documentation'!
47bf2a306c14 Show metadata kind in LLVMMetadata print string
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 41
diff changeset
   231
47bf2a306c14 Show metadata kind in LLVMMetadata print string
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 41
diff changeset
   232
version_HG
47bf2a306c14 Show metadata kind in LLVMMetadata print string
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 41
diff changeset
   233
47bf2a306c14 Show metadata kind in LLVMMetadata print string
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 41
diff changeset
   234
    ^ '$Changeset: <not expanded> $'
47bf2a306c14 Show metadata kind in LLVMMetadata print string
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 41
diff changeset
   235
! !
47bf2a306c14 Show metadata kind in LLVMMetadata print string
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 41
diff changeset
   236