Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
- Build Status
Buildable 32401 Build 32400: arc lint + arc unit
Event Timeline
DAGTypeLegalizer calls ReplaceNodeResults whenever CustomLowerNode is called and its parameter LegalizeResult is true or when CustomWidenLowerNode is called. So basically it is the same as LowerOperation except that it is meant to focus on legalizing the result type rather than simply transforming the operation. There is even a TODO on LowerOperationWrapper, /// TODO: Consider merging with ReplaceNodeResults..
llvm/test/CodeGen/WebAssembly/simd-illegal-signext.ll | ||
---|---|---|
9 | I would have to break up the very long WebAssemblyTargetLowering::ReplaceNodeResults to make the wrapping prettier. I think it's more valuable to keep the name so the reader knows exactly what was fixed. |
Thanks for investigating this! This is getting kind of hard to understand without knowing the context that why signext_inreg is custom lowered for SIMD but actually not custom lowered....
llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp | ||
---|---|---|
903 | Can we guarantee this function is only executed in case of SIGN_EXTEND_INREG? How about checking its opcode here and if not do llvm_unreachable or something, with some comments why we need this for SIGN_EXTEND_INREG? |
Can we guarantee this function is only executed in case of SIGN_EXTEND_INREG? How about checking its opcode here and if not do llvm_unreachable or something, with some comments why we need this for SIGN_EXTEND_INREG?