Use two uint16_t shared variables in place of one uint32_t
Intended to simplify load/store propagation, as part of working out
why some dead branches remain in spmd kernels.
Uses uint16_t as there are no existing uint8_t shared variables.
Paths
| Differential D105644
[libomptarget][nfc][devicertl] Split execution params Needs ReviewPublic Authored by JonChesterfield on Jul 8 2021, 10:52 AM.
Details Summary Use two uint16_t shared variables in place of one uint32_t Uses uint16_t as there are no existing uint8_t shared variables.
Diff Detail
Event TimelineJonChesterfield created this revision. Comment Actions This did not fix the codegen I wanted it to - the LDS variables that only have one store of a constant, followed by loads, do not propagate that constant - but it should make such a transform easier. No known bits or looking through the bitwise op required. We may get a reasonable hit rate for shared/lds memory out of a transform that looks at a variable that starts undef, and only ever has one constant stored to it, therefore assuming every load is of that constant (as undef loads may as well be assumed to be that constant). efriedma removed a child revision: D34362: [LNT] Support for different DataSet usage in Polybench for "lnt runtest nt".Jul 17 2021, 3:02 PM
Revision Contents
Diff 357281 openmp/libomptarget/deviceRTLs/common/omptarget.h
openmp/libomptarget/deviceRTLs/common/src/omp_data.cu
openmp/libomptarget/deviceRTLs/common/src/omptarget.cu
openmp/libomptarget/deviceRTLs/common/src/support.cu
openmp/libomptarget/deviceRTLs/common/support.h
|
clang-tidy: error: 'common/allocator.h' file not found [clang-diagnostic-error]
not useful