Displaying 20 results from an estimated 9000 matches similar to: "[LLVMdev] Floating point atomic load and add"
2015 Apr 24
3
[LLVMdev] Floating point atomic load and add
Quoting Tim Northover <t.p.northover at gmail.com>:
> On 24 April 2015 at 13:53, Tyler Denniston <tyler at csail.mit.edu> wrote:
>> I'm wondering how I can create an atomic load and add instruction for
>> floating point values. If I use IRBuilder::CreateAtomicRMW() I get the
>> error message: "atomicrmw operand must have integer type".
>
>
2015 Apr 24
2
[LLVMdev] Floating point atomic load and add
> } while (__c11_atomic_compare_exchange_weak(
> addr, &oldval, newval, memory_order_seq_cst, memory_order_relaxed));
Actually, I think this condition is inverted. Should be "while
(!_c11...". Sorry about that.
Tim.
2012 Sep 14
4
[LLVMdev] Atomic ops cannot be built from C/OCaml bindings
Forgive me if I'm missing something obvious, but it seems that a
number of core instructions—I'm specifically running in to
`atomicrmw`, `fence`, and `cmpxchg` at the moment—cannot be
constructed from the C bindings, and are therefore also inaccessible
to the OCaml bindings. There are opcodes for each of these in the
llvm-c/Core.h, but there seems to be no way to construct them.
Is there
2012 Oct 24
0
[LLVMdev] Atomic ops cannot be built from C/OCaml bindings
I finally got around to adding these.
The patch is posted in a pull request on my copy of llvm.git:
https://github.com/jrk/llvm/pull/3
and a simple test with OCaml is here:
https://gist.github.com/3948460
Feedback welcome.
On Sep 14, 2012, at 7:53 PM, Jonathan Ragan-Kelley <jrk at csail.mit.edu> wrote:
> Forgive me if I'm missing something obvious, but it seems that a
>
2015 Dec 11
2
RFC: Extending atomic loads and stores to floating point and vector types
On 12/11/2015 01:29 PM, James Y Knight wrote:
>
> On Fri, Dec 11, 2015 at 3:05 PM, Philip Reames via llvm-dev
> <llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>> wrote:
>
>> One open question I don't know the answer to: Are there any
>> special semantics required from floating point stores which
>> aren't met
2015 Dec 11
2
RFC: Extending atomic loads and stores to floating point and vector types
On 12/11/2015 12:05 AM, JF Bastien wrote:
> On Fri, Dec 11, 2015 at 3:22 AM, Philip Reames via llvm-dev
> <llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>> wrote:
>
> Currently, we limit atomic loads and stores to either pointer or
> integer types. I would like to propose that we extend this to
> allow both floating point and vector types
2011 Nov 19
1
[LLVMdev] PTX backend support for atomics
Looking further during down time at the dev meeting today, it actually
seems that PTX atom.* and red.* intrinsics map extremely naturally
onto the LLVM atomicrmw and cmpxchg instructions. The biggest issue is
that a subset of things expressible with these LLVM instructions do
not trivially map to PTX, and the range of things naturally supported
depends on the features of a given target. With
2011 Oct 31
2
[LLVMdev] PTX backend support for atomics
I notice that there is not currently any intrinsic support for atomics in the PTX backend. Is this on the roadmap? Should it be as easy to add as it seems (plumbing through just like the thread ID instructions, &c.)? The obvious difference is that these ops have side effects.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type:
2014 Oct 02
2
[LLVMdev] Use list preservation when using Instruction::clone
I'm trying to create a clone of a function using Function::Create()
and CloneFunctionInto. However, I'm running into an issue. I believe
that the instructions in the function clone still have Use edges to
values in the original function. This is a problem for my purposes.
For example, consider an original function F. I create a new function
G belonging to the same module and call
2015 Dec 14
2
RFC: Extending atomic loads and stores to floating point and vector types
On Mon, Dec 14, 2015 at 11:46 AM, Philip Reames <listmail at philipreames.com>
wrote:
>
>
> On 12/12/2015 01:44 PM, JF Bastien wrote:
>
> On Sat, Dec 12, 2015 at 1:24 AM, Philip Reames <listmail at philipreames.com>
> wrote:
>
>> Patch posted for review: http://reviews.llvm.org/D15471
>
>
> Looking at the patch, I think we should do FP only for now
2011 Nov 01
0
[LLVMdev] PTX backend support for atomics
On Mon, Oct 31, 2011 at 3:15 PM, Jonathan Ragan-Kelley <jrk at csail.mit.edu>wrote:
> I notice that there is not currently any intrinsic support for atomics in
> the PTX backend. Is this on the roadmap? Should it be as easy to add as it
> seems (plumbing through just like the thread ID instructions, &c.)? The
> obvious difference is that these ops have side effects.
>
It
2014 May 29
4
[LLVMdev] Proposal: "load linked" and "store conditional" atomic instructions
Hi,
I've been looking at improving atomicrmw & cmpxchg code more,
particularly on architectures using the load-linked/store-conditional
model.
The summary is that current expansion for cmpxchg seems to happen too
late for LLVM to make meaningful use of the opportunities it provides.
I'd like to move it earlier and express it in terms of a first-class
pair of "load linked"
2014 Jul 07
4
[LLVMdev] Splitting basic block results in unknown instruction type assertion
Hello,
I would like to see if this issue is a result of a misunderstanding on
my part before I file a bug. I am using LLVM 3.4, built from the
source tarballs. My system's uname is "Darwin tyler-air 12.5.0 Darwin
Kernel Version 12.5.0: Sun Sep 29 13:33:47 PDT 2013;
root:xnu-2050.48.12~1/RELEASE_X86_64 x86_64".
All I'm trying to do is add a runtime check after all call
2015 Dec 15
2
RFC: Extending atomic loads and stores to floating point and vector types
>
> Would you mind explaining what complexities you see for vectors? As per
>> my direct email, the set of vectors which can practically be made atomic
>> may be smaller than we'd like, but the existing atomic semantics seem to
>> map cleanly. What am I missing?
>>
>
>
> I'm also concerned about:
>
> - Alignment is the big one, I think
2018 Jun 13
12
RFC: Atomic LL/SC loops in LLVM revisited
# RFC: Atomic LL/SC loops in LLVM revisited
## Summary
This proposal gives a brief overview of the challenges of lowering to LL/SC
loops and details the approach I am taking for RISC-V. Beyond getting feedback
on that work, my intention is to find consensus on moving other backends
towards a similar approach and sharing common code where feasible. Scroll down
to 'Questions' for a summary
2015 Dec 11
7
RFC: Extending atomic loads and stores to floating point and vector types
Currently, we limit atomic loads and stores to either pointer or integer
types. I would like to propose that we extend this to allow both
floating point and vector types which meet the other requirements.
(i.e. power-of-two multiple of 8 bits, and aligned)
This will enable a couple of follow on changes:
1) Teaching the vectorizer how to vectorize unordered atomic loads and
stores
2)
2020 Aug 14
3
cmpxchg on floats
We've relaxed `atomicrmw xchg` to support floating point types but not
cmpxchg -- the cmpxchg comparison behavior is not a floating point
comparison, so that would be potentially misleading. I'd say adding
the assertion is a good idea.
Cheers,
Nicolai
On Thu, Aug 13, 2020 at 10:59 PM Chris Lattner via llvm-dev
<llvm-dev at lists.llvm.org> wrote:
>
> Does the code generator
2014 May 29
3
[LLVMdev] Proposal: "load linked" and "store conditional" atomic instructions
Hi Philip,
On 29 May 2014 17:03, Philip Reames <listmail at philipreames.com> wrote:
> I have some reservations about this proposal. I don't have anything
> particularly concrete, but the idea of supporting both LL/SC and atomicrwm
> in the IR concerns me from a complexity perspective.
Well, I'll start by saying my particular optimisation use case looks
like it's not
2018 Jul 24
2
Possibility of implementing a low-level naive lock purely with LLVM atomics?
Hi:
In our frontend we are attempting to build a lock mechanism without using system apis like pthreads and whatnot for internal reasons.
In order to achieve this we are now creating a int32 type GV, and then use atomic load/store and comparisons. The generated IR looks like the following:
```
@Flag = private global i32 0, align 4
%0 = load atomic i32, i32* @Flag acquire, align 4
%1 = icmp eq
2020 Aug 13
2
cmpxchg on floats
Hi LLVM-dev,
when working on MLIR-to-LLVM-IR conversion, I noticed that it is possible
to programmatically construct a cmpxchg instruction operating on floats (or
actually any type since there is no assertion on pointer element type here
https://github.com/llvm/llvm-project/blob/9c2e708f0dc547d386ea528450a33ef4bd2a750b/llvm/lib/IR/Instructions.cpp#L1501),
but LangRef specifies that only integers