I'm new to LLVM dev, but I have been working with a target with a minimum addressable byte of 16-bits. I found that in DAGCombiner::visitAND, EVT::isRound could create i8 loads on my 16-bit target which are ultimately invalid. EVT::isRound appears to use a hard-coded 8, rather than pulling the targets BitsPerByte field. Is this a potential bug or is there a better way to address this? Hard coding a 16 in the isRound field fixes the issue for me. Cheers, Sam
Hi Sam, On 09/07/13 17:01, Sam Cristall wrote:> I'm new to LLVM dev, but I have been working with a target with a > minimum addressable byte of 16-bits. I found that in > DAGCombiner::visitAND, EVT::isRound could create i8 loads on my 16-bit > target which are ultimately invalid. EVT::isRound appears to use a > hard-coded 8, rather than pulling the targets BitsPerByte field. Is this > a potential bug or is there a better way to address this? Hard coding a > 16 in the isRound field fixes the issue for me.last time I checked LLVM did not have a BitsPerByte field. Are you working with a private copy of LLVM where someone has added support for non-octet bytes? If so, I guess they forgot to adjust isRound. Ciao, Duncan.
Seemingly Similar Threads
- [LLVMdev] EVT::isRound on non-8-bit byte targets
- [LLVMdev] [PATCH] Replacing EVT:s with MVT:s (when possible)
- [LLVMdev] [RFC] Replacing EVT:s with MVT:s (when possible)
- RFC: On non 8-bit bytes and the target for it
- [LLVMdev] [RFC] Replacing EVT:s with MVT:s (when possible)