Support ValuePtr in alias analysis and llvm

This commit is contained in:
Ayaz Hafiz 2023-07-12 13:37:23 -05:00
parent 8d9c6d09b9
commit 0385da490a
No known key found for this signature in database
GPG key ID: 0E2A37416A25EF58
2 changed files with 3 additions and 2 deletions

View file

@ -1820,7 +1820,7 @@ fn erasure_load(
) -> Result<ValueId> {
match field {
ErasedField::Callee => builder.add_get_tuple_field(block, value, ERASURE_CALEE_INDEX),
ErasedField::Value => {
ErasedField::Value | ErasedField::ValuePtr => {
let unknown_heap_cell_value =
builder.add_get_tuple_field(block, value, ERASURE_VALUE_INDEX)?;
// Cast the unknown cell to the wanted type

View file

@ -96,12 +96,13 @@ pub fn load<'ctx>(
) -> PointerValue<'ctx> {
let index = match field {
ErasedField::Value => 0,
ErasedField::ValuePtr => 0,
ErasedField::Callee => 1,
};
let value = env
.builder
.build_extract_value(erasure, index, "extract_value")
.build_extract_value(erasure, index, "extract_erased_value")
.unwrap()
.into_pointer_value();