In Mesa we'd like to start creating constant globals. These should be in
the CONSTANT address space to let us use scalar loads where possible.
However, we also have to support pasting multiple text sections
together for RadeonSI, which means that we need to have constants in a
separate .rodata section so that they can get relocated after all the
pasted-together .text sections. We don't need this for radv, but it
shouldn't hurt either.
Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
- Build Status
Buildable 37570 Build 37569: arc lint + arc unit
Event Timeline
FYI, I think I don't have commit access anymore because of the whole licensing thing, so I'll need someone else to commit for me.
Is mesa actually using mesa3d now? I thought we were still in the unpleasant situation where "unknown" OS was treated like mesa3d, but not quite. I thought clover and radv were using mesa3d, but OpenGL was not. If it has, can we finally drop the second scratch implementation?
Ugh, you're right, radeonsi still has target triple = "amdgcn--". Why exactly is that? Would anything break if we just changed it to amdgcn-mesa-mesa3d like what radv does? I don't want that to block this, though, so is there any other user that needs to return true here? AMDVLK maybe?
Mesa is the only oddball relying on the unknown OS behavior. IIRC this required work in mesa to switch the scratch ABI from using relocations to what radv does, but besides that I think everything would work
Ok, but what I wanted to ask is whether just deleting this function and just always using .rodata is feasible, i.e. whether the only other user (AMDVLK) depends on sticking constant data in .text.
I just noticed that this already came up in D65813 and it does the right thing, it's just waiting review.