You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[CIR] Fix Address element type problems (llvm#1373)
There were problems with the pointer type and element type of the
Address class getting out of sync. In the traditional codegen the
pointer has no type, so it was sufficient for the Address class to
simply track the type it was supposed to be pointing to. Since ClangIR
pointer values are typed, the Address::withType function wasn't really
doing what it was supposed to. It returned an object with the same
pointer that the original object had, but with a mismatched element
type.
This change updates the Address::withType function to perform a bitcast
to get the expected pointer type before creating a new Address object.
It also adds assertions in the Address class to verify that pointer type
and element type are consistent and updates many places that were
causing those assertions to fire.
These code changes cause extra bitcasts to be emitted in a few places.
Regression tests have been updated as needed to reflect the CIR that is
now generated.
0 commit comments