search for: memcpyinst

Displaying 10 results from an estimated 10 matches for "memcpyinst".

2017 Aug 17
3
[RFC] Injecting new element atomic memory intrinsics into MemIntrinsic class hierarchy
...rarchy. We have a preference for the first option, but would appreciate thoughts/opinions/discussion on the best way to insert the element atomic intrinsics into the hierarchy. For background, the relevant portion of the current hierarchy looks like: MemIntrinsic * MemSetInst * MemTransferInst ** MemCpyInst ** MemMoveInst Option 1) ------------- Do not add any new classes to the hierarchy. Instead, teach each class to recognize the unordered-atomic variant as belonging to the class (ex: element unordered-atomic memcpy is recognized as a MemCpyInst, MemTransferInst, and a MemIntrinsic), and add a qu...
2017 Aug 21
2
[RFC] Injecting new element atomic memory intrinsics into MemIntrinsic class hierarchy
...Option 2) ------------- Add separate classes to the hierarchy for each intrinsic. There are a few different ways that this could be organized (note: UA* = unordered-atomic version of intrinsic, to save typing): a) Completely disjoint hierarchy UAMemIntrinsic * UAMemSetInst * UAMemTransferInst ** UAMemCpyInst ** UAMemMoveInst MemIntrinsic * MemSetInst * MemTransferInst ** MemCpyInst ** MemMoveInst e) Multiple inheritance This is a variant on options 2b to 2d. To make it possible to easily use isa<> to query for whether or not a memory intrinsic is unordered-atomic or not we could add an interfac...
2009 Jul 30
2
[LLVMdev] How to produce a "Intrinsic Function" call instruction?
...%obit = extractvalue {i32, i1} %res, 1 br i1 %obit, label %overflow, label %normal* into an assembly file, and it works OK. And now, my question is "How to produce such a call instruction using the LLVM classes?" I have also noticed that LLVM provides some classes like "*MemCpyInst"* to wrap the "*llvm.memcpy"* Intrinsic. But other intrinsic functions such as *" **llvm.sadd.with.overflow"* I've mentioned above don't have the corresponding classes. How to deal with it? Anyone could help me? Thank you! -------------- next part -------------- An...
2018 Mar 13
2
How to optimize store of constant arrays
...e relative to the pointer. Each instruction takes several bytes, and I am trying to optimize for code size. The Q: What should I do to make the generated code more size-efficient (think `-Os`)? Current ideas, which may not include the best answer: - Store the data as-is in the IR, and use the `MemCpyInst` instead of the store when `get_default_data()` returns something big? - Add a custom -- or any available built-in -- pass to the output to transform the store instns to memcpy when appropriate? Thanks for any help, Boldizsar This message and any attachments are intended for the use of the addre...
2004 Oct 24
2
[LLVMdev] Some question on LLVM design
...lloc") { > // ... > } > whereas with the malloc instruction raising/lowering pass, you would say > if (MallocInst *MI = dyn_cast<MallocInst>(I)) { Not true at all. Consider the "llvm/IntrinsicInst.h" header, which lets us write stuff like this, today: if (MemCpyInst *MCI = dyn_cast<MemCpyInst>(I)) MCI->getSource() MCI->getLength() ... The one advantage that mallocinst has over using an intrnisic is that instructions can have different return values in various parts of the program (e.g., you can write 'malloc int' instead of '(int...
2004 Oct 23
0
[LLVMdev] Some question on LLVM design
On Fri, Oct 22, 2004 at 03:18:00PM +0200, Marc Ordinas i Llopis wrote: > I'm currently looking at LLVM as a possible back-end to a dynamic > programming system (in the tradition of Smalltalk) we are developing. Neat! > I have read most of the llvmdev archives, and I'm aware that some > things are 'planned' but not implemented yet. We are willing to > contribute
2004 Oct 22
6
[LLVMdev] Some question on LLVM design
Hi everybody, I'm currently looking at LLVM as a possible back-end to a dynamic programming system (in the tradition of Smalltalk) we are developing. I have read most of the llvmdev archives, and I'm aware that some things are 'planned' but not implemented yet. We are willing to contribute the code we'll need for our project, but before I can start coding I'll have to
2016 Feb 06
2
[RFC] FP Environment and Rounding mode handling in LLVM
FWIW, +1 from me. Just one request on the implementation though. However we model these intrinsics and their properties (metadata, constants, etc), can we please abstract away those details the same way we have MemCpyInst which just wraps an IntrinsicInst? I think this would be very beneficial if we ever need to add more state, or change something about the underlying implementation, and not have to search all the code for ‘bool traps = cast<ConstantInt>(I->getOperand(1))->getZextValue()’ or whatever it...
2016 Feb 06
2
[RFC] FP Environment and Rounding mode handling in LLVM
----- Original Message ----- > From: "Chandler Carruth" <chandlerc at gmail.com> > To: "Hal Finkel" <hfinkel at anl.gov>, "Chandler Carruth" <chandlerc at gmail.com> > Cc: "llvm-dev" <llvm-dev at lists.llvm.org> > Sent: Friday, February 5, 2016 4:36:54 PM > Subject: Re: [llvm-dev] [RFC] FP Environment and Rounding mode
2015 Sep 08
2
[RFC] Generalize llvm.memcpy / llvm.memmove intrinsics.
Hi Hal, > If you attach noalias metadata to the memcpy call, it will apply to both the source and destination; we don't have a way to differentiate. It might be true that if you attach both noalias and alias.scope metadata to the call, then querying the call against itself will return NoModRef, but that's really hacky (and, in part, wrong, because the destination still alias with