search for: getmemcpyloadsandstores

Displaying 5 results from an estimated 5 matches for "getmemcpyloadsandstores".

2019 May 13
3
How to change CLang struct alignment behaviour?
...39;re seeing. Specifically, a 3 byte struct (for example) ought to either lower to: load i16, load i8 + stores if your target can do misaligned i16 operations. or load i8, load i8, load i8 + stores if not. Neither of those involve shifting operations. I'd suggest breaking just after getMemcpyLoadsAndStores and using SelectionDAG::dump to see exactly what it's created. Then try to work out where that gets pessimized to shifts, because it's not normal. Cheers. Tim.
2019 May 14
2
How to change CLang struct alignment behaviour?
Hi John, On Tue, 14 May 2019 at 17:51, Joan Lluch <joan.lluch at icloud.com> wrote: > This problem is also shared by the MSP430 target, and it’s very easy to reproduce by just compiling the code that I posted before. That's some good detective work; it definitely explains what you're seeing. Since MSP430 is affected it would probably be pretty easy to upstream an alignment-aware
2019 May 09
3
Why did "llvm.memcpy" changed when emitting an object file?
Dear LLVM-Mailing list, I have a beginners question again - please don't be mad at me! I was playing around with llvm::Module instance and ended in iterating over all global values and functions. I then noticed the function "llvm.memcpy". As I understood, this is an intrinsic coming from the LLVM. So far so good! I then emitted an object file with the llvm::ExecutionEngine and
2019 May 13
3
How to change CLang struct alignment behaviour?
I had already adjusted MaxStoresPerMemcpy to my preferred value, and this works great but for the cases where load/stores are used on non-size aligned structs the odd behaviour still happens. For my 3-char, 3-byte struct test, the memcpy replacement appears to consist on a single byte load and store of the last char (this is correct), followed by a 16 bit move of the first two chars, this is also
2011 May 06
0
[LLVMdev] Question about linking llvm-mc when porting a new backend
...cpp.o) getMemmoveLoadsAndStores(llvm::SelectionDAG&, llvm::DebugLoc, llvm::SDValue, llvm::SDValue, llvm::SDValue, unsigned long long, unsigned int, bool, bool, llvm::Value const*, unsigned long long, llvm::Value const*, unsigned long long)in libLLVMSelectionDAG.a(SelectionDAG.cpp.o) getMemcpyLoadsAndStores(llvm::SelectionDAG&, llvm::DebugLoc, llvm::SDValue, llvm::SDValue, llvm::SDValue, unsigned long long, unsigned int, bool, bool, llvm::Value const*, unsigned long long, llvm::Value const*, unsigned long long)in libLLVMSelectionDAG.a(SelectionDAG.cpp.o) llvm::TargetLowering::LowerCallTo(llv...