47 lines
1.2 KiB
Ada
47 lines
1.2 KiB
Ada
package Opt8 is
|
|
|
|
type Value_Number_Kind is
|
|
(Int_Literal_VN,
|
|
Selected_Address_VN,
|
|
Membership_VN,
|
|
Initial_External_Kappa_VN,
|
|
Aliased_Kappa_VN,
|
|
Phi_As_Kappa_VN,
|
|
Multi_Target_Call_Kappa_VN,
|
|
Final_Value_Of_Seq_Kappa_VN,
|
|
Block_Kappa_VN);
|
|
|
|
subtype Kappa_VN is Value_Number_Kind
|
|
range Initial_External_Kappa_VN .. Block_Kappa_VN;
|
|
|
|
type Value_Number_Id is new Positive;
|
|
|
|
type Kappa_Component_Rec;
|
|
|
|
type Kappa_Component_Ptr is access Kappa_Component_Rec;
|
|
|
|
type Kappa_Component_Rec is record
|
|
Content_VN : Value_Number_Id;
|
|
Next : Kappa_Component_Ptr;
|
|
end record;
|
|
|
|
type Value_Number_Rec(Kind : Value_Number_Kind) is record
|
|
Id: Value_Number_Id;
|
|
case Kind is
|
|
when Int_Literal_VN =>
|
|
Int_Val : Integer;
|
|
when Kappa_VN =>
|
|
Old_Value : Kappa_Component_Rec;
|
|
Possible_New_Values : Kappa_Component_Ptr;
|
|
Use_Default : Boolean;
|
|
when Others =>
|
|
null;
|
|
end case;
|
|
end record;
|
|
|
|
type Value_Number is access all Value_Number_Rec;
|
|
|
|
function VN_Complexity (Val : Value_Number; N : Natural) return Natural;
|
|
|
|
end Opt8;
|