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
From my analysis, the problem is allocating and storing the Ci struct, that cannot be optimized away as we do not have dead store optimisations, and the closure conversion should thus process this as it remains in Thorin IR. However, because closure conversion works by looking at the signature of the continuations, it is unable to detect the issue in this particular case, as the stored value is obtained by looking at a global, and so does not appear in the signature. It follows that closure conversion leaves this unprocessed, leading to the LLVM emission pass trying to emit an alloca/store to a function value rather than a function pointer.
Possible fixes (?):
Look specifically for memory operations during CC ?
Make CC work in reverse from continuations and look at their uses ?
Eagerly look in the contents of all continuations ?
Make Types into Defs and look at the uses of HOTs ?
The text was updated successfully, but these errors were encountered:
The following Artic snippet (obtained by simplifying an example in rastify/anyosl)
produces invalid LLVM code.
From my analysis, the problem is allocating and storing the
Ci
struct, that cannot be optimized away as we do not have dead store optimisations, and the closure conversion should thus process this as it remains in Thorin IR. However, because closure conversion works by looking at the signature of the continuations, it is unable to detect the issue in this particular case, as the stored value is obtained by looking at a global, and so does not appear in the signature. It follows that closure conversion leaves this unprocessed, leading to the LLVM emission pass trying to emit an alloca/store to a function value rather than a function pointer.Possible fixes (?):
Type
s intoDef
s and look at the uses of HOTs ?The text was updated successfully, but these errors were encountered: