Skip to content

Commit 1de79cd

Browse files
committed
address comments
1 parent 93ec94f commit 1de79cd

File tree

2 files changed

+31
-33
lines changed

2 files changed

+31
-33
lines changed

llvm/lib/Target/NVPTX/NVPTXISelDAGToDAG.cpp

+2-9
Original file line numberDiff line numberDiff line change
@@ -363,15 +363,8 @@ static std::optional<unsigned> convertAS(unsigned AS) {
363363
}
364364

365365
static unsigned int getCodeAddrSpace(const MemSDNode *N) {
366-
if (const Value *Src = N->getMemOperand()->getValue())
367-
if (auto *PT = dyn_cast<PointerType>(Src->getType()))
368-
if (auto AS = convertAS(PT->getAddressSpace()))
369-
return AS.value();
370-
371-
if (auto AS = convertAS(N->getMemOperand()->getAddrSpace()))
372-
return AS.value();
373-
374-
return NVPTX::AddressSpace::Generic;
366+
return convertAS(N->getMemOperand()->getAddrSpace())
367+
.value_or(NVPTX::AddressSpace::Generic);
375368
}
376369

377370
namespace {

llvm/test/CodeGen/NVPTX/variadics-backend.ll

+29-24
Original file line numberDiff line numberDiff line change
@@ -214,32 +214,34 @@ define dso_local i32 @bar() {
214214
; CHECK-PTX-NEXT: .reg .b64 %SPL;
215215
; CHECK-PTX-NEXT: .reg .b16 %rs<8>;
216216
; CHECK-PTX-NEXT: .reg .b32 %r<4>;
217-
; CHECK-PTX-NEXT: .reg .b64 %rd<4>;
217+
; CHECK-PTX-NEXT: .reg .b64 %rd<6>;
218218
; CHECK-PTX-EMPTY:
219219
; CHECK-PTX-NEXT: // %bb.0: // %entry
220220
; CHECK-PTX-NEXT: mov.u64 %SPL, __local_depot3;
221221
; CHECK-PTX-NEXT: cvta.local.u64 %SP, %SPL;
222-
; CHECK-PTX-NEXT: mov.u64 %rd1, __const_$_bar_$_s1;
223-
; CHECK-PTX-NEXT: ld.global.nc.u8 %rs1, [%rd1+7];
222+
; CHECK-PTX-NEXT: add.u64 %rd2, %SPL, 0;
223+
; CHECK-PTX-NEXT: mov.u64 %rd3, __const_$_bar_$_s1;
224+
; CHECK-PTX-NEXT: ld.global.nc.u8 %rs1, [%rd3+7];
224225
; CHECK-PTX-NEXT: cvt.u16.u8 %rs2, %rs1;
225-
; CHECK-PTX-NEXT: st.u8 [%SP+2], %rs2;
226-
; CHECK-PTX-NEXT: ld.global.nc.u8 %rs3, [%rd1+5];
226+
; CHECK-PTX-NEXT: st.local.u8 [%rd2+2], %rs2;
227+
; CHECK-PTX-NEXT: ld.global.nc.u8 %rs3, [%rd3+6];
227228
; CHECK-PTX-NEXT: cvt.u16.u8 %rs4, %rs3;
228-
; CHECK-PTX-NEXT: ld.global.nc.u8 %rs5, [%rd1+6];
229+
; CHECK-PTX-NEXT: st.local.u8 [%rd2+1], %rs4;
230+
; CHECK-PTX-NEXT: ld.global.nc.u8 %rs5, [%rd3+5];
229231
; CHECK-PTX-NEXT: cvt.u16.u8 %rs6, %rs5;
230232
; CHECK-PTX-NEXT: st.local.u8 [%rd2], %rs6;
231233
; CHECK-PTX-NEXT: mov.b32 %r1, 1;
232234
; CHECK-PTX-NEXT: st.u32 [%SP+8], %r1;
233-
; CHECK-PTX-NEXT: mov.b16 %rs9, 1;
234-
; CHECK-PTX-NEXT: st.u8 [%SP+12], %rs9;
235-
; CHECK-PTX-NEXT: mov.b64 %rd2, 1;
236-
; CHECK-PTX-NEXT: st.u64 [%SP+16], %rd2;
237-
; CHECK-PTX-NEXT: add.u64 %rd3, %SP, 8;
235+
; CHECK-PTX-NEXT: mov.b16 %rs7, 1;
236+
; CHECK-PTX-NEXT: st.u8 [%SP+12], %rs7;
237+
; CHECK-PTX-NEXT: mov.b64 %rd4, 1;
238+
; CHECK-PTX-NEXT: st.u64 [%SP+16], %rd4;
239+
; CHECK-PTX-NEXT: add.u64 %rd5, %SP, 8;
238240
; CHECK-PTX-NEXT: { // callseq 1, 0
239241
; CHECK-PTX-NEXT: .param .b32 param0;
240242
; CHECK-PTX-NEXT: st.param.b32 [param0], 1;
241243
; CHECK-PTX-NEXT: .param .b64 param1;
242-
; CHECK-PTX-NEXT: st.param.b64 [param1], %rd3;
244+
; CHECK-PTX-NEXT: st.param.b64 [param1], %rd5;
243245
; CHECK-PTX-NEXT: .param .b32 retval0;
244246
; CHECK-PTX-NEXT: call.uni (retval0),
245247
; CHECK-PTX-NEXT: variadics2,
@@ -378,25 +380,28 @@ define dso_local void @qux() {
378380
; CHECK-PTX-NEXT: .reg .b64 %SP;
379381
; CHECK-PTX-NEXT: .reg .b64 %SPL;
380382
; CHECK-PTX-NEXT: .reg .b32 %r<3>;
381-
; CHECK-PTX-NEXT: .reg .b64 %rd<6>;
383+
; CHECK-PTX-NEXT: .reg .b64 %rd<10>;
382384
; CHECK-PTX-EMPTY:
383385
; CHECK-PTX-NEXT: // %bb.0: // %entry
384386
; CHECK-PTX-NEXT: mov.u64 %SPL, __local_depot7;
385387
; CHECK-PTX-NEXT: cvta.local.u64 %SP, %SPL;
386-
; CHECK-PTX-NEXT: ld.global.nc.u64 %rd1, [__const_$_qux_$_s];
387-
; CHECK-PTX-NEXT: st.u64 [%SP], %rd1;
388-
; CHECK-PTX-NEXT: mov.u64 %rd2, __const_$_qux_$_s;
389-
; CHECK-PTX-NEXT: ld.global.nc.u64 %rd3, [%rd2+8];
390-
; CHECK-PTX-NEXT: st.u64 [%SP+8], %rd3;
391-
; CHECK-PTX-NEXT: mov.b64 %rd4, 1;
392-
; CHECK-PTX-NEXT: st.u64 [%SP+16], %rd4;
393-
; CHECK-PTX-NEXT: add.u64 %rd5, %SP, 16;
388+
; CHECK-PTX-NEXT: add.u64 %rd2, %SPL, 0;
389+
; CHECK-PTX-NEXT: mov.u64 %rd3, __const_$_qux_$_s;
390+
; CHECK-PTX-NEXT: ld.global.nc.u64 %rd4, [%rd3+8];
391+
; CHECK-PTX-NEXT: st.local.u64 [%rd2+8], %rd4;
392+
; CHECK-PTX-NEXT: ld.global.nc.u64 %rd5, [__const_$_qux_$_s];
393+
; CHECK-PTX-NEXT: st.local.u64 [%rd2], %rd5;
394+
; CHECK-PTX-NEXT: mov.b64 %rd6, 1;
395+
; CHECK-PTX-NEXT: st.u64 [%SP+16], %rd6;
396+
; CHECK-PTX-NEXT: ld.local.u64 %rd7, [%rd2];
397+
; CHECK-PTX-NEXT: ld.local.u64 %rd8, [%rd2+8];
398+
; CHECK-PTX-NEXT: add.u64 %rd9, %SP, 16;
394399
; CHECK-PTX-NEXT: { // callseq 3, 0
395400
; CHECK-PTX-NEXT: .param .align 8 .b8 param0[16];
396-
; CHECK-PTX-NEXT: st.param.b64 [param0], %rd1;
397-
; CHECK-PTX-NEXT: st.param.b64 [param0+8], %rd3;
401+
; CHECK-PTX-NEXT: st.param.b64 [param0], %rd7;
402+
; CHECK-PTX-NEXT: st.param.b64 [param0+8], %rd8;
398403
; CHECK-PTX-NEXT: .param .b64 param1;
399-
; CHECK-PTX-NEXT: st.param.b64 [param1], %rd5;
404+
; CHECK-PTX-NEXT: st.param.b64 [param1], %rd9;
400405
; CHECK-PTX-NEXT: .param .b32 retval0;
401406
; CHECK-PTX-NEXT: call.uni (retval0),
402407
; CHECK-PTX-NEXT: variadics4,

0 commit comments

Comments
 (0)