Handbook
Glossary
analyze-aliases ( insn -- insn' )
Vocabulary
compiler
.
cfg
.
alias-analysis
Inputs
insn
an
object
Outputs
insn'
an
object
Definition
IN:
compiler.cfg.alias-analysis
GENERIC:
analyze-aliases
( insn -- insn' )
Methods
USING:
accessors
compiler.cfg.alias-analysis
compiler.cfg.instructions
generic
kernel
namespaces
;
M:
##box-displaced-alien
analyze-aliases
[
M\
##box-displaced-alien
analyze-aliases
(call-next-method)
]
[
base>>
heap-ac
get
merge-acs
]
bi
;
USING:
accessors
compiler.cfg.alias-analysis
compiler.cfg.instructions
generic
kernel
;
M:
##compare
analyze-aliases
M\
##compare
analyze-aliases
(call-next-method)
dup
useless-compare?
[
dst>>
f
##load-reference
new-insn
analyze-aliases
]
when
;
USING:
compiler.cfg.alias-analysis
compiler.cfg.instructions
kernel
;
M:
##copy
analyze-aliases
dup
record-copy
;
USING:
compiler.cfg.alias-analysis
compiler.cfg.instructions
;
M:
alien-call-insn
analyze-aliases
def-acs
clear-recent-stores
clear-live-slots
;
USING:
accessors
compiler.cfg.alias-analysis
compiler.cfg.instructions
kernel
;
M:
allocation-insn
analyze-aliases
dup
dst>>
set-new-ac
;
USING:
compiler.cfg.alias-analysis
compiler.cfg.instructions
;
M:
gc-map-insn
analyze-aliases
def-acs
clear-recent-stores
;
USING:
compiler.cfg.alias-analysis
compiler.cfg.instructions
;
M:
insn
analyze-aliases
;
USING:
accessors
compiler.cfg.alias-analysis
compiler.cfg.instructions
compiler.cfg.utilities
generic
kernel
;
M:
read-insn
analyze-aliases
M\
read-insn
analyze-aliases
(call-next-method)
dup
[
dst>>
]
[
insn-slot#
]
[
insn-object
]
tri
2dup
live-slot
dup
[
2nip
<copy>
analyze-aliases
nip
]
[
drop
remember-slot
]
if
;
USING:
compiler.cfg.alias-analysis
compiler.cfg.instructions
;
M:
vreg-insn
analyze-aliases
def-acs
;
USING:
accessors
compiler.cfg.alias-analysis
compiler.cfg.instructions
kernel
namespaces
;
M::
write-insn
analyze-aliases
( insn -- insn' )
insn
src>>
resolve
:>
src insn
insn-slot#
:>
slot# insn
insn-object
:>
vreg insn
insn#>>
:>
insn# src slot# vreg
idempotent?
[
insn#
dead-store
]
[
src
heap-ac
get
merge-acs
insn
insn#>>
slot# vreg
remember-set-slot
src slot# vreg
load-slot
]
if
insn
;