Displaying 20 results from an estimated 5000 matches similar to: "[LLVMdev] Plan to optimize atomics in LLVM"
2014 Aug 08
6
[LLVMdev] Plan to optimize atomics in LLVM
> I am planning in doing in IR, but with target specific-passes (such as X86ExpandAtomicPass)
> that just share some of the code
This would more normally be done via target hooks in LLVM, though the
principle is sound.
> But it must be target-dependent as for example on Power a
> seq_cst store has a fence before it, while on ARM it has a fence
> both before and after it (per
2014 Aug 08
2
[LLVMdev] Plan to optimize atomics in LLVM
> Longer term, I hope to improve the fence elimination of the ARM backend with
> a kind of PRE algorithm. Both of these improvements to the ARM backend
> should be fairly straightforward to port to the POWER architecture later,
> and I hope to also do that.
>
> Any reason these couldn't be done at the IR level?
I definitely agree here. At the time, it was a plausible idea
2015 Apr 10
4
[LLVMdev] Optimization on Atomics (and the OpenMP memory model)
Hi everyone,
The OpenMP standards committee has begun work to formalize their memory model, and define its relationship to the C/C++ memory models. A questionnaire has been put together (pasted below), and I'd like everyone's help in composing detailed answers to inform their decision-making process. While our OpenMP support is still in active development, many of these questions apply
2014 Aug 15
2
[LLVMdev] Plan to optimize atomics in LLVM
> From my reading of Atomics.rst, it would be sound to reorder (It does not
> say much about load-linked, so I am treating it as a normal load here)
>
>> store seq_cst
>> fence release
>> load-linked monotonic
>
> into
>
>> load-linked monotonic
>> store seq_cst
>> fence release
> Which would make an execution ending in %old_x = %old_y = 0
2014 Aug 18
2
[LLVMdev] Plan to optimize atomics in LLVM
Hi Robin,
On 15 August 2014 21:49, Robin Morisset <morisset at google.com> wrote:
> I have
> attached the corresponding patches; they are not completely ready for review
> (mostly missing tests), I would just like to make sure that the general
> approach seems reasonable.
I've had a quick glance at the patches, and the code seems fairly sane.
But I'm not so sure about
2016 Jan 28
0
Adding sanity to the Atomics implementation
I don't have much of substance to add, but I will say that I like the
proposal (I too prefer Alternative A). When adding C11 atomic support
for hexagon, I found it surprising that support for the __sync_* was
implemented completely differently than the C11 atomics.
On 1/27/2016 1:55 PM, James Knight via llvm-dev wrote:
> Right now, the atomics implementation in clang is a bit of a
2013 May 13
2
[LLVMdev] [PATCH] 3.3 Release fix on ARM - atomics
Identified a while before the release, there is an issue with 64-bit
atomics on ARM that was making Clang mis-compile a lot of code, including
Clang itself.
http://llvm.org/bugs/show_bug.cgi?id=15429
Attached is a patch proposed by Benjamin with the corrections to the test.
I'm not an expert on how Clang lowers C11 atomics, but the resulting IR
seems correct, and after self-hosting Clang
2016 Jan 31
2
Adding sanity to the Atomics implementation
----- Original Message -----
> From: "Ben via llvm-dev Craig" <llvm-dev at lists.llvm.org>
> To: llvm-dev at lists.llvm.org
> Sent: Thursday, January 28, 2016 9:41:06 AM
> Subject: Re: [llvm-dev] Adding sanity to the Atomics implementation
>
>
> I don't have much of substance to add, but I will say that I like the
> proposal (I too prefer Alternative
2016 Jan 27
7
Adding sanity to the Atomics implementation
Right now, the atomics implementation in clang is a bit of a mess. It has three basically completely distinct code-paths:
There's the legacy __sync_* builtins, which clang lowers directly to atomic IR instructions. Then, the llvm atomic IR instructions themselves can sometimes emit libcalls to __sync_* library functions (which are basically undocumented, and users are often responsible for
2013 May 13
0
[LLVMdev] [PATCH] 3.3 Release fix on ARM - atomics
Hi Rafael,
As you mentioned in the bug, we should only apply this change when
hard-float is set, which it is by default on armv7a, I presume.
>From that part of the code, I can infer that by the time
"MaxAtomicPromoteWidth = 64;", the variable SoftFloat is not properly set,
so a simple "if (!SoftFloat)" won't cut in there. It seems SoftFloat is
being set on
2014 Jun 27
2
[LLVMdev] [RFC] Add compiler scheduling barriers
Hi Philip,
> Aside: From the documentation, it's actually unclear how strong a barrier
> ISB actually is. The "fetched after the ISB" gives a lot of room for
> interpretation. (i.e. is it legal for a cpu to fetch every instruction in a
> function, queue them for execution under wait conditions, *then* fetch the
> ISB? This would be a *really* weird implementation,
2009 May 17
0
[LLVMdev] RFC: Atomics.h
On May 16, 2009, at 10:01 PM, Owen Anderson wrote:
> OK, I've enhanced Atomic.h by pulling in a bunch of implementations
> from libatomic_ops, and others that I could figure out on my own.
>
> Again, my plea: PLEASE TRY THIS OUT ON YOUR PLATFORM, AND SEND ME
> PATCHES IF IT DOESN'T WORK! Similarly, if you think the
> implementation could be improved for your
2009 May 17
2
[LLVMdev] RFC: Atomics.h
On May 17, 2009, at 12:32 PM, Chris Lattner wrote:
> Owen, I would really rather that you didn't take this path. Threading
> support in LLVM should always be optional: it should be possible to
> use LLVM on systems where we don't have support for threading
> operations. Indeed, some systems don't support threads!
I'm not trying to make it required. I had provided
2020 Oct 15
3
Out-of-line atomics implementation ways
Greetings everyone,
I am working on Aarch64 LSE out-of-line atomics support in LLVM, porting this GCC series: https://gcc.gnu.org/legacy-ml/gcc-patches/2019-09/msg01034.html
After local design experiments I've got some questions about upstream-suitable ways of implementation. More specifically:
1. Pass to expand atomics to library helper functions calls.
These helpers test for the presence
2012 Jul 13
2
[LLVMdev] LLVM IR atomics: difference between unordered and monotonic?
Hi All,
I am reading about LLVM IR atomics (http://llvm.org/docs/Atomics.html)
and get confused about the difference between "Unordered" and "Monotonic".
In particular, I am not sure I understand the statement of "It essentially
guarantees that if you take all the operations affecting a specific
address, a consistent ordering exists.". For me, it means that for the
2011 Oct 13
1
[LLVMdev] Are x86/ARM likely to support atomics larger than 2 pointers?
There's a discussion over on cfe-commits about how future-proof to
make the C1x/C++11 atomic ABI.
(http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20111010/047647.html)
One argument is that, because C ABI changes are painful, and
processors may introduce larger atomic operations in the future, we
should try to design the atomics implementation in such a way that it
can take
2009 Jun 02
1
[LLVMdev] RFC: Atomics.h
On Jun 1, 2009, at 11:17 PM, Jonathan Ragan-Kelley wrote:
> Yes, indeed.
Are they macros or functions? If macros, why not just #undef them at
the top of Atomics.h?
-Chris
>
>
> On May 28, 10:41 pm, Owen Anderson <resis... at mac.com> wrote:
>>
>> Wait, it defines MemoryFence() AND MemoryBarrier()??
>>
>> Sheesh, they had to take all the reasonable
2009 May 17
2
[LLVMdev] RFC: Atomics.h
OK, I've enhanced Atomic.h by pulling in a bunch of implementations
from libatomic_ops, and others that I could figure out on my own.
Again, my plea: PLEASE TRY THIS OUT ON YOUR PLATFORM, AND SEND ME
PATCHES IF IT DOESN'T WORK! Similarly, if you think the
implementation could be improved for your platform, send me a patch.
I know that Sparc doesn't work currently (no CAS
2013 Feb 11
1
UPS, ISB Sola basic, usb conection does not works
Hello people.
My name is Rub?n.
Firts, excuse me for my bad english.
I run Debian 6.0.6, kernel 2.6.32-5-amd64 in my machine.
I bought a ISB Sola basic UPS, model Micro SR inet, with usb conection.
I Configure the nut.conf file in standalone mode and I install de isbmex
driver.
The ups.conf:
[ISB_sola-basic]
driver = isbmex
port = auto
With de command upsdrvctl start the
2002 Apr 22
1
predict.*bSpline() bugs extrapolating for deriv >= 1 (PR#1473)
I've already fixed the bugs, but as with the last one, this is
not critical enough to allow breaking current R-devel's code
freeze. I hope I will have corrected it for 1.5.1..
## Here is code reproducing the problems;
## I use try(.) whenever I know the current versions of R would
## give an error:
library(splines)
x <- c(1:3,5:6)
y <- c(3:1,5:6)
(isP <- interpSpline(x,y))#