diff options
author | Andrew Savonichev <andrew.savonichev@gmail.com> | 2023-01-11 20:48:06 +0300 |
---|---|---|
committer | Andrew Savonichev <andrew.savonichev@gmail.com> | 2023-01-15 00:10:49 +0300 |
commit | 75345fb11638ff4c3f4c6c691dbb6c4f72e6666f (patch) | |
tree | d16af440d9605e580ddec58c8ec16e5912c6d7db /clang/lib/Frontend/CompilerInvocation.cpp | |
parent | 6ad0788c332bb2043142954d300c49ac3e537f34 (diff) | |
download | llvm-75345fb11638ff4c3f4c6c691dbb6c4f72e6666f.zip llvm-75345fb11638ff4c3f4c6c691dbb6c4f72e6666f.tar.gz llvm-75345fb11638ff4c3f4c6c691dbb6c4f72e6666f.tar.bz2 |
[NVPTX] Drop memory references of LDG/LDU
This patch fixes machine verifier errors:
*** Bad machine code: Missing mayLoad flag ***
- function: foo1
- basic block: %bb.0 (0x5560fc64ef08)
- instruction: %4:float32regs =
INT_PTX_LDG_GLOBAL_f32areg64 killed %3:int64regs
:: (load (s32) from %ir.from1, addrspace 1)
mayLoad flag is missing because LDG and LDU instructions operate on
read-only memory, so we want to treat them as regular instructions and
exclude them from memory analysis.
Machine verifier checks for memoperands to determine whether an
instruction is a load, so dropping them during lowering fixes the
problem.
Differential Revision: https://reviews.llvm.org/D112466
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions