Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
This change revises the offset calculation, not only for 64-bit support but also for the removal of the assumption in AMDGPUMCInstLower::getLongBranchBlockExpr in the preparation to handle the case where there's no scavenged register when expanding an unconditional branch. In that case, s_getpc follows a code sequence spilling an SGPR pair. But, that sequence has a variable code length.
Do any of these tests stress object emission?
Should also make sure we have some MC tests to make sure these new expressions parse
Rebase and test another MC encoding test.
- llvm/test/MC/AMDGPU/expressions.s adds the assembly parsing test
- llvm/test/MC/AMDGPU/offset-expr.s adds the encoding test
llvm/lib/Target/AMDGPU/SIInstrInfo.cpp | ||
---|---|---|
2307 | This is supposed to return the number of bytes added, not necessarily the size of the block. At least should assert the block is empty, which I think is always the case | |
llvm/test/CodeGen/AMDGPU/branch-relaxation-debug-info.mir | ||
12 | It would be better if this mask was printed as hex, but I guess there’s no direct control over this |
llvm/lib/Target/AMDGPU/SIInstrInfo.cpp | ||
---|---|---|
2307 | the assertion on the empty block is already added on L2217. That's how I was motivated to get this change. | |
llvm/test/CodeGen/AMDGPU/branch-relaxation-debug-info.mir | ||
12 | yes, there is no control on that as the readability depends on the value itself. People may prefer small values in decimal but larger one or special values in hex. But, the definition on small, large, or special values is quite diverse. |
llvm/lib/Target/AMDGPU/SIInstrInfo.cpp | ||
---|---|---|
2217 | the assertion on the empty block is already there |
the assertion on the empty block is already there