From cf5be6998b26723ae29ab1edab84d32b0702182d Mon Sep 17 00:00:00 2001 From: Cliff Click Date: Wed, 13 Aug 2025 13:25:24 -0700 Subject: TypeAnalysis continued --- docs/lattice_if.gv | 81 +++++++++++++++++++++++++++++------------------------- 1 file changed, 43 insertions(+), 38 deletions(-) (limited to 'docs/lattice_if.gv') diff --git a/docs/lattice_if.gv b/docs/lattice_if.gv index feb53dfe..445afd62 100644 --- a/docs/lattice_if.gv +++ b/docs/lattice_if.gv @@ -13,58 +13,63 @@ digraph Lattice { INT_TOP [label=<⊤:int>, fillcolor=lightblue, shape=oval]; INT_BOT [label=<⊥:int>, fillcolor=lightblue, shape=oval]; - INT_MIN [label="-n" , fillcolor=lightblue]; - INT_MINDOTS [label="...", fillcolor=lightblue shape=oval]; - INT_MINUS [label="-1" , fillcolor=lightblue]; - INT_ZERO [label="0" , fillcolor=lightblue]; - INT_PLUS [label="1" , fillcolor=lightblue]; - INT_MAXDOTS [label="...", fillcolor=lightblue, shape=oval]; - INT_MAX [label="+n" , fillcolor=lightblue]; + INT_HI [label="max < min" , fillcolor=lightblue, shape=oval]; + INT_XBOOL [label="1...0", fillcolor=lightblue, shape=oval]; + INT_CON [label="constants...", fillcolor=lightblue, shape=oval]; + INT_CON0 [label="0", fillcolor=lightblue]; + INT_CON1 [label="1", fillcolor=lightblue]; + INT_BOOL [label="0...1", fillcolor=lightblue,shape=oval]; + INT_LO [label="max > min" , fillcolor=lightblue, shape=oval]; - TOP -> INT_TOP; - INT_TOP -> INT_MIN; - INT_TOP -> INT_MINDOTS; - INT_TOP -> INT_MINUS; - INT_TOP -> INT_ZERO; - INT_TOP -> INT_PLUS; - INT_TOP -> INT_MAXDOTS; - INT_TOP -> INT_MAX; - INT_MIN -> INT_BOT; - INT_MINDOTS -> INT_BOT; - INT_MINUS -> INT_BOT; - INT_ZERO -> INT_BOT; - INT_PLUS -> INT_BOT; - INT_MAXDOTS -> INT_BOT; - INT_MAX -> INT_BOT; - INT_BOT -> BOT; + TOP -> INT_TOP; + INT_TOP -> INT_HI; + INT_HI -> INT_XBOOL; + INT_XBOOL -> INT_CON0; + INT_XBOOL -> INT_CON1; + INT_HI -> INT_CON; + INT_CON0 -> INT_BOOL; + INT_CON1 -> INT_BOOL; + INT_BOOL -> INT_LO; + INT_CON -> INT_LO; + INT_LO -> INT_BOT; + INT_BOT -> BOT; - INT_MIN -> INT_MINDOTS -> INT_MINUS -> INT_ZERO -> INT_PLUS -> INT_MAXDOTS -> INT_MAX [style=invis]; + INT_CON0 -> INT_CON1 -> INT_CON [style=invis]; // ---------------------- // Floats FLT_TOP [label=<⊤:flt>, fillcolor=aqua, shape=oval]; FLT_BOT [label=<⊥:flt>, fillcolor=aqua, shape=oval]; - FLT_MINDOTS [label="...", fillcolor=aqua, shape=oval]; - FLT_ZERO [label="0" , fillcolor=aqua]; - FLT_MAXDOTS [label="...", fillcolor=aqua, shape=oval]; + FLT_CON64 [label="64b consts\n[excludes\n32b consts]" , fillcolor=aqua, shape=oval]; + FLT_CON32 [label="32b consts", fillcolor=aqua, shape=oval]; + FLT_CONPI [label="3.14159...", fillcolor=aqua, shape=oval]; + FLT_X32 [label="~f32", fillcolor=aqua]; + FLT_CON0 [label="0." , fillcolor=aqua]; + FLT_32 [label="f32" , fillcolor=aqua]; - TOP -> FLT_TOP; - FLT_TOP -> FLT_MINDOTS; - FLT_TOP -> FLT_ZERO; - FLT_TOP -> FLT_MAXDOTS; - FLT_MINDOTS -> FLT_BOT; - FLT_ZERO -> FLT_BOT; - FLT_MAXDOTS -> FLT_BOT; - FLT_BOT -> BOT; + TOP -> FLT_TOP; + FLT_TOP -> FLT_CON64 + FLT_TOP -> FLT_CONPI + FLT_CON64 -> FLT_BOT + FLT_CONPI -> FLT_BOT + + FLT_TOP -> FLT_X32; + FLT_X32 -> FLT_CON0; + FLT_X32 -> FLT_CON32; + FLT_CON0 -> FLT_32; + FLT_CON32 -> FLT_32; + FLT_32 -> FLT_BOT + + FLT_BOT -> BOT; - FLT_MINDOTS -> FLT_ZERO -> FLT_MAXDOTS [style=invis]; + FLT_CON0 -> FLT_CON32 -> FLT_CONPI -> FLT_CON64 [style=invis]; // Additional customization {rank=same; TOP} {rank=same; INT_TOP; FLT_TOP; } - {rank=same; INT_MIN; INT_MINDOTS; INT_MINUS; INT_ZERO; INT_PLUS; INT_MAXDOTS; INT_MAX; - FLT_MINDOTS; FLT_ZERO; FLT_MAXDOTS; + {rank=same; INT_CON; INT_CON0; INT_CON1; + FLT_CON32; FLT_CON64; FLT_CON0; FLT_CONPI; } {rank=same; INT_BOT; FLT_BOT; } {rank=same; BOT;} -- cgit v1.2.3