LLVMValue.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Fri, 31 Jul 2015 16:21:29 +0100
changeset 12 f98e97fd02ef
parent 5 3ac0c9381634
child 13 fa967c0e1827
permissions -rw-r--r--
Package renamed from jv:libllvms to jv:llvm_s
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
12
f98e97fd02ef Package renamed from jv:libllvms to jv:llvm_s
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 5
diff changeset
     1
"{ Package: 'jv:llvm_s' }"
0
38af781b75ab First shot.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
38af781b75ab First shot.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     3
"{ NameSpace: Smalltalk }"
38af781b75ab First shot.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     4
1
e3dcb6272f0b Introduced abstract superclasses LLVMObject and LLVMDisposableObject
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 0
diff changeset
     5
LLVMObject subclass:#LLVMValue
5
3ac0c9381634 Temporary commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
     6
	instanceVariableNames:'type'
0
38af781b75ab First shot.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
	classVariableNames:''
38af781b75ab First shot.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
	poolDictionaries:''
38af781b75ab First shot.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
	category:'LLVM-Core'
38af781b75ab First shot.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
!
38af781b75ab First shot.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
4
d33c64726c86 Temporary commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    12
!LLVMValue methodsFor:'accessing'!
d33c64726c86 Temporary commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    13
d33c64726c86 Temporary commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    14
name
d33c64726c86 Temporary commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    15
    ^ LLVM GetValueName: self
d33c64726c86 Temporary commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    16
d33c64726c86 Temporary commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    17
    "Created: / 11-07-2015 / 07:28:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
d33c64726c86 Temporary commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    18
!
d33c64726c86 Temporary commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    19
d33c64726c86 Temporary commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    20
name: aString
d33c64726c86 Temporary commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    21
    ^ LLVM SetValueName: self  _: aString
d33c64726c86 Temporary commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    22
d33c64726c86 Temporary commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    23
    "Created: / 11-07-2015 / 07:31:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5
3ac0c9381634 Temporary commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
    24
!
3ac0c9381634 Temporary commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
    25
3ac0c9381634 Temporary commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
    26
type
3ac0c9381634 Temporary commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
    27
    type isNil ifTrue:[ 
3ac0c9381634 Temporary commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
    28
        type := LLVM TypeOf: self.  
3ac0c9381634 Temporary commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
    29
    ].
3ac0c9381634 Temporary commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
    30
    ^ type
3ac0c9381634 Temporary commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
    31
3ac0c9381634 Temporary commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
    32
    "Created: / 11-07-2015 / 14:53:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
4
d33c64726c86 Temporary commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    33
! !
d33c64726c86 Temporary commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    34
0
38af781b75ab First shot.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    35
!LLVMValue methodsFor:'debugging'!
38af781b75ab First shot.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    36
2
53abac7217de Added support for creating execution engines and fetching function addresses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    37
inspectorExtraAttributes 
53abac7217de Added support for creating execution engines and fetching function addresses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    38
    | d |
53abac7217de Added support for creating execution engines and fetching function addresses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    39
53abac7217de Added support for creating execution engines and fetching function addresses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    40
    d := super inspectorExtraAttributes.      
53abac7217de Added support for creating execution engines and fetching function addresses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    41
    d add: '-dump' -> [ self dumpString ].
53abac7217de Added support for creating execution engines and fetching function addresses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    42
    ^ d
53abac7217de Added support for creating execution engines and fetching function addresses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    43
53abac7217de Added support for creating execution engines and fetching function addresses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    44
    "Created: / 10-07-2015 / 14:36:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
53abac7217de Added support for creating execution engines and fetching function addresses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    45
! !
53abac7217de Added support for creating execution engines and fetching function addresses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    46
53abac7217de Added support for creating execution engines and fetching function addresses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    47
!LLVMValue methodsFor:'debugging-dumping'!
0
38af781b75ab First shot.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    48
2
53abac7217de Added support for creating execution engines and fetching function addresses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    49
dumpOn: aStream
53abac7217de Added support for creating execution engines and fetching function addresses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    50
    aStream nextPutAll: self dumpString
53abac7217de Added support for creating execution engines and fetching function addresses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    51
53abac7217de Added support for creating execution engines and fetching function addresses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    52
    "Created: / 10-07-2015 / 14:32:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
53abac7217de Added support for creating execution engines and fetching function addresses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    53
!
53abac7217de Added support for creating execution engines and fetching function addresses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    54
53abac7217de Added support for creating execution engines and fetching function addresses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    55
dumpString
53abac7217de Added support for creating execution engines and fetching function addresses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    56
    | cstr str|
53abac7217de Added support for creating execution engines and fetching function addresses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    57
53abac7217de Added support for creating execution engines and fetching function addresses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    58
    cstr := LLVM PrintValueToString: self.
53abac7217de Added support for creating execution engines and fetching function addresses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    59
    str := cstr copyCStringFromHeap.
53abac7217de Added support for creating execution engines and fetching function addresses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    60
    LLVM DisposeMessage: cstr.
53abac7217de Added support for creating execution engines and fetching function addresses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    61
    ^ str
53abac7217de Added support for creating execution engines and fetching function addresses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    62
53abac7217de Added support for creating execution engines and fetching function addresses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1
diff changeset
    63
    "Created: / 10-07-2015 / 14:31:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
4
d33c64726c86 Temporary commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    64
!
0
38af781b75ab First shot.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    65
4
d33c64726c86 Temporary commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    66
printOn: aStream
d33c64726c86 Temporary commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    67
    super printOn: aStream.
d33c64726c86 Temporary commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    68
    aStream nextPutAll: ' - '.
d33c64726c86 Temporary commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    69
    aStream nextPutAll: self dumpString
0
38af781b75ab First shot.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    70
4
d33c64726c86 Temporary commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2
diff changeset
    71
    "Created: / 11-07-2015 / 07:09:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
0
38af781b75ab First shot.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    72
! !
38af781b75ab First shot.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    73
5
3ac0c9381634 Temporary commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
    74
!LLVMValue methodsFor:'testing'!
3ac0c9381634 Temporary commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
    75
3ac0c9381634 Temporary commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
    76
isIntegerOrVectorValue
3ac0c9381634 Temporary commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
    77
    ^ self type isIntegerType or:[ type isVectorType ]
3ac0c9381634 Temporary commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
    78
3ac0c9381634 Temporary commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
    79
    "Created: / 11-07-2015 / 14:55:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3ac0c9381634 Temporary commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
    80
    "Modified: / 11-07-2015 / 16:49:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3ac0c9381634 Temporary commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
    81
!
3ac0c9381634 Temporary commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
    82
3ac0c9381634 Temporary commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
    83
isIntegerValue
3ac0c9381634 Temporary commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
    84
    ^ self type isIntegetType
3ac0c9381634 Temporary commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
    85
3ac0c9381634 Temporary commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
    86
    "Created: / 11-07-2015 / 14:55:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3ac0c9381634 Temporary commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
    87
! !
3ac0c9381634 Temporary commit
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
    88