Displaying 20 results from an estimated 2000 matches similar to: "BSWAP matching in codegen"
2016 Dec 08
2
BSWAP matching in codegen
>> Are you sure there isn't any test coverage? As far as I can tell, the tests from https://reviews.llvm.org/rL133503 are still in the tree.
I looked at those, but none of them include the full pattern that decomposes into bswap and rol. I debugged through the X86 bswap.ll test and verified none of those cases make it through MatchBSwapHWord (they get handled in MatchBSwapHWordLow
2016 Dec 09
0
BSWAP matching in codegen
On 12/9/2016 11:03 AM, Jim Lewis via llvm-dev wrote:
>
> Thanks, that helps enormously! The issue is that the match is supposed
> to support both cascade and tree OR patterns, but there appears to be
> a problem with the tree matching. Both test1 and test6 in the ARM
> tests exercise the cascade pattern, and I remember now our fix is
> confined to the tree case.
>
> I
2011 Oct 13
2
[LLVMdev] Failed test: CodeGen/X86/bswap.ll
Hi all,
As of r141677 I have a failing regression test, see below.
This is for LLVM built with clang on a Intel Atom running FreeBSD8.2.
Should I file a bug for this?
Thanks,
Ed.
******************** TEST 'LLVM :: CodeGen/X86/bswap.ll' FAILED
********************
Script:
--
/usr/home/emeewis/build/llvm-debug-clang-configure/Debug+Asserts/bin/llc
<
2011 Oct 13
0
[LLVMdev] Failed test: CodeGen/X86/bswap.ll
On 13.10.2011, at 15:57, Edward Meewis wrote:
> Hi all,
>
> As of r141677 I have a failing regression test, see below.
>
> This is for LLVM built with clang on a Intel Atom running FreeBSD8.2.
>
> Should I file a bug for this?
Fixed in r141863.
- Ben
2019 Sep 11
2
Load combine pass
Hi,
Can I ask what is the status of load widening. It seems there is no load
widening on IR at all.
// Paweł
On Wed, Oct 5, 2016 at 1:49 PM Artur Pilipenko via llvm-dev <
llvm-dev at lists.llvm.org> wrote:
> Philip and I talked about this is person. Given the fact that load
> widening in presence of atomics is irreversible transformation we agreed
> that we don't want to do
2019 Sep 12
2
Load combine pass
Ok, thanks.
Are there any plans to reintroduce it on the IR level? I'm not confident
this is strictly necessary, but in some cases not having load widening ends
up really bad.
Like in the case where vectorizer tries to do something about it:
https://godbolt.org/z/60RuEw
https://bugs.llvm.org/show_bug.cgi?id=42708
At the current state I'm forced to use memset() to express uint64 load from
2013 May 02
1
[LLVMdev] Bug in InstCombiner::FoldAndOfFCmps
On 5/2/2013 4:20 PM, Rafael Espíndola wrote:
>
> I don't get any errors compiling this. Do you know if it was fixed? Do
> you get an error only for some particular target? What is the 'clang
> -cc1' command line that you seed in the error?
I see this error in our compiler, but not with the trunk. I guess it's
been fixed, but I don't know which commit did it.
2019 Sep 25
2
Load combine pass
If we do load combining at the IR level, one thing we'll need to give
some thought to is atomicity. Combining two atomic loads into a wider
(legal) atomic load is not a reversible transformation given our current
specification.
I've been thinking about a concept I've been tentatively calling
"element wise atomicity" which would make this a reversible transform by
2011 Aug 04
3
[LLVMdev] Multiple one-line bugs in LLVM
Hi. There are few one-line bugs Andrey Karpov have found with static analisys.
He wrote a big article in russian on http://habrahabr.ru/blogs/compilers/125626/
for advertising purposes of static analyzer for Visual Studio his company
developed.
Most of the problems are easy to fix, so I list them in here for trunk version.
Also few problems in clang code were found, I don't list them in here.
2018 Nov 25
3
BUGS n code generated for target i386 compiling __bswapdi3, and for target x86-64 compiling __bswapsi2()
bswapdi2 for i386 is correct
Bits 31:0 of the source are loaded into edx. Bits 63:32 are loaded into
eax. Those are each bswapped. The ABI for the return is edx contains bits
[63:32] and eax contains [31:0]. This is opposite of how the register were
loaded.
~Craig
On Sun, Nov 25, 2018 at 10:36 AM Craig Topper <craig.topper at gmail.com>
wrote:
> bswapsi2 on the x86-64 isn't using
2018 Nov 25
3
BUGS n code generated for target i386 compiling __bswapdi3, and for target x86-64 compiling __bswapsi2()
Hi @ll,
targetting i386, LLVM/clang generates wrong code for the following
functions:
unsigned long __bswapsi2 (unsigned long ul)
{
return (((ul) & 0xff000000ul) >> 3 * 8)
| (((ul) & 0x00ff0000ul) >> 8)
| (((ul) & 0x0000ff00ul) << 8)
| (((ul) & 0x000000fful) << 3 * 8);
}
unsigned long long __bswapdi2(unsigned long
2018 Dec 16
2
LLC Version 3.8 : Unsupported library call operation for a mul instruction
Hello List,
I am on the hook to instrument a piece of legacy LLVM IR code, and then we
are planning to feed to the SeaHorn framework for some model checking tasks.
After the instrumentation, I tried to use llc (version 3.9) to compile the
IR code, and it works fine. However, when I try to use llc (version 3.8.1,
the default llvm version of SeaHorn) to compile the IR code, it shows the
following
2009 Dec 22
2
[LLVMdev] LegalizeDAG Error?
The LegalizeDAG.cpp file has this code in SelectionDAGLegalize::PromoteNode:
case ISD::BSWAP: {
unsigned DiffBits = NVT.getSizeInBits() - OVT.getSizeInBits();
Tmp1 = DAG.getNode(ISD::ZERO_EXTEND, dl, NVT, Tmp1);
Tmp1 = DAG.getNode(ISD::BSWAP, dl, NVT, Tmp1);
Tmp1 = DAG.getNode(ISD::SRL, dl, NVT, Tmp1,
DAG.getConstant(DiffBits, TLI.getShiftAmountTy()));
2016 Apr 07
7
Implementing a proposed InstCombine optimization
I am not entirely sure this is safe. Transforming this to an fsub could change the value stored on platforms that implement negates using arithmetic instead of with bitmath (such as ours) and either canonicalize NaNs or don’t support denormals. This is actually important because this kind of bitmath on floats is very commonly used as part of algorithms for complex math functions that need to get
2019 Mar 27
4
monorepo: bad performance when using gitk / git log
Hi!
Anyone else experiencing performance problems when using the new monorepo?
My experience is that performance of gitk (and git log) sometimes is really bad when working in the monorepo.
I've mainly seen it when using gitk on specific files/directories, but since gitk seems to be using "git log --no-color -z --pretty=raw --show-notes --parents --boundary HEAD -- <file>" it
2018 Nov 25
2
BUGS n code generated for target i386 compiling __bswapdi3, and for target x86-64 compiling __bswapsi2()
I just compiled the two attached files in 32-bit mode and ran it.
It printed efcdab8967452301.
I verified via objdump that the my_bswap function contains the follow
assembly which I believe matches the assembly you linked to on godbolt.
_my_bswap:
1f70: 55 pushl %ebp
1f71: 89 e5 movl %esp, %ebp
1f73: 8b 55 08 movl 8(%ebp), %edx
1f76: 8b 45 0c movl 12(%ebp), %eax
1f79: 0f c8
2019 Mar 26
2
Implement LLVM Intrinsics in C/LLVM IR
Have you looked at these?
https://llvm.org/docs/LangRef.html
https://llvm.org/docs/ExtendingLLVM.html
On Tue, Mar 26, 2019 at 9:06 AM div code via llvm-dev <
llvm-dev at lists.llvm.org> wrote:
> Of course, in this sense they are not platform-dependent. I just want to
> write a semantics-correct version of such intrinsics and let my static
> analyzer goes smoothly.
>
> On
2011 Oct 03
0
[LLVMdev] [RFC] Proposal to make LLVM-IR endian agnostic
On 10/03/2011 09:36 PM, Villmow, Micah wrote:
> One of the projects I am working on with others is to make LLVM-IR endian agnostic.
>
>
>
> So, I am sending out this proposal for feedback to the LLVM community. I’ve attached
>
> pretty version of the proposal in PDF format and pasted a 80-column safe text version
>
> below.
>
>
>
> A second smaller
2016 Sep 28
4
Load combine pass
One of the arguments for doing this earlier is inline cost perception of the original pattern. Reading i32/i64 by bytes look much more expensive than it is and can prevent inlining of interesting function.
Inhibiting other optimizations concern can be addressed by careful selection of the pattern we’d like to match. I limit the transformation to the case when all the individual have no uses other
2009 Feb 24
3
[LLVMdev] [llvm-commits] [llvm] r65296 - in /llvm/trunk: include/llvm/CodeGen/ lib/CodeGen/SelectionDAG/ lib/Target/CellSPU/ lib/Target/PowerPC/ lib/Target/X86/ test/CodeGen/X86/
On Feb 23, 2009, at 2:49 PM, Scott Michel wrote:
> On Mon, Feb 23, 2009 at 2:19 PM, Nate Begeman <natebegeman at me.com>
> wrote:
>
> On Feb 23, 2009, at 1:46 PM, Chris Lattner wrote:
>
> In my opinion, the proper direction for shuffles is:
>
> 1. Back out your patch.
> 2. Move the functionality of "is splat" etc to method somewhere, e.g.
> on