From 08b277e892827200d908b974ea7c273c8212321f Mon Sep 17 00:00:00 2001 From: Slava Pestov <slava@slava-pestovs-macbook-pro.local> Date: Mon, 3 Nov 2008 01:52:55 -0600 Subject: [PATCH] Fix alias anlaysis bug: result of ##box-alien and ##box-float did not get an AC, so calling hi-tag would not compile --- .../cfg/alias-analysis/alias-analysis-tests.factor | 8 ++++++++ .../compiler/cfg/alias-analysis/alias-analysis.factor | 10 ++++++++++ 2 files changed, 18 insertions(+) diff --git a/basis/compiler/cfg/alias-analysis/alias-analysis-tests.factor b/basis/compiler/cfg/alias-analysis/alias-analysis-tests.factor index 2f0649ed40..c7094c8c36 100644 --- a/basis/compiler/cfg/alias-analysis/alias-analysis-tests.factor +++ b/basis/compiler/cfg/alias-analysis/alias-analysis-tests.factor @@ -3,6 +3,14 @@ compiler.cfg.alias-analysis cpu.architecture tools.test kernel ; IN: compiler.cfg.alias-analysis.tests +[ ] [ + { + T{ ##peek f V int-regs 2 D 1 f } + T{ ##box-alien f V int-regs 1 V int-regs 2 } + T{ ##slot-imm f V int-regs 3 V int-regs 1 0 3 } + } alias-analysis drop +] unit-test + [ ] [ { T{ ##load-indirect f V int-regs 1 "hello" } diff --git a/basis/compiler/cfg/alias-analysis/alias-analysis.factor b/basis/compiler/cfg/alias-analysis/alias-analysis.factor index e68d304047..98569d868c 100644 --- a/basis/compiler/cfg/alias-analysis/alias-analysis.factor +++ b/basis/compiler/cfg/alias-analysis/alias-analysis.factor @@ -229,6 +229,16 @@ M: ##allot analyze-aliases* #! object. dup dst>> set-new-ac ; +M: ##box-float analyze-aliases* + #! A freshly allocated object is distinct from any other + #! object. + dup dst>> set-new-ac ; + +M: ##box-alien analyze-aliases* + #! A freshly allocated object is distinct from any other + #! object. + dup dst>> set-new-ac ; + M: ##read analyze-aliases* dup dst>> set-heap-ac dup [ dst>> ] [ insn-slot# ] [ insn-object ] tri