Displaying 2 results from an estimated 2 matches for "value_gc".
Did you mean:
value_bh
2016 Jun 24
6
RFC: Strong GC References in LLVM
...alue is actually a valid GC reference then this transform is
valid, but typically it won't be able to except in cases like "%value
is provably 0" in which case it is better to just fold the load away.
%value = load i64, i64* %ptr
== Transformed to ==>
%value = load i64, i64* %ptr
%value_gc = inttoptr %value to GCREF (%value_gc unused)
is invalid for the same reason.
## GCREF -> Integer conversion
Converting a GCREF to an integer is fine if the integer is unused.
However, cases like these are problematic:
%v0 = load GCREF, GCREF* %ptr_0
%v1 = load GCREF, GCREF* %ptr_1
%cmp =...
2016 Jul 12
2
RFC: Strong GC References in LLVM
...; valid, but typically it won't be able to except in cases like "%value
>> is provably 0" in which case it is better to just fold the load away.
>>
>> %value = load i64, i64* %ptr
>> == Transformed to ==>
>> %value = load i64, i64* %ptr
>> %value_gc = inttoptr %value to GCREF (%value_gc unused)
>>
>> is invalid for the same reason.
>
> Ok. I know some passes may think it’s fine to “pass values through
memory" and bitcast the source and dest. Are there specific passes
in-tree that you’ve seen do this? Are they just...