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
This is most likely a fundamental bug with the register allocator and codegen, even more so how they're designed.
The root cause of this issue is that in LLVM, constants with the same type and value have the same pointer, and the allocator uses a map<Value *, reg> to store register allocation information. The allocation algorithm allocates by iterating through instructions in reverse and allocating its operands depending on the opcode. Of course, this means that if there are constants with the same type and value, the old one would be overwritten.
This is most likely a fundamental bug with the register allocator and codegen, even more so how they're designed.
The root cause of this issue is that in LLVM, constants with the same type and value have the same pointer, and the allocator uses a
map<Value *, reg>
to store register allocation information. The allocation algorithm allocates by iterating through instructions in reverse and allocating its operands depending on the opcode. Of course, this means that if there are constants with the same type and value, the old one would be overwritten.Help needed.
Input:
Output:
The text was updated successfully, but these errors were encountered: