Displaying 20 results from an estimated 200 matches similar to: "[LLVMdev] loop fusion"
2010 Sep 07
2
[LLVMdev] loop fusion
Is there a transformation in LLVM that will perform loop fusion?
http://en.wikipedia.org/wiki/Loop_fusion
I have the following program, in which I would like the 2 loops
(iterating the same number of times) to be merged into 1, after which
other nice optimizations such as mem2reg will apply:
; ModuleID = 'test'
define void @vector([16 x float]* nocapture %arg, [16 x float]*
nocapture
2010 Sep 08
0
[LLVMdev] loop fusion
I did find this note from 2004 that references a LoopFusion pass, but I
can't find it in the source code:
http://nondot.org/sabre/LLVMNotes/LoopOptimizerNotes.txt
A little background - I'm working on a SIMD runtime, where I have a
scalar program but need to execute it on multiple independent data
elements. One approach is to generate a loop for each operation, then
rely on the
2009 Jan 07
3
[LLVMdev] LLVM optmization
The following C test program was compiled using LLVM with -O3 option and MSVC with /O2.
The MSVC one is about 600 times faster than the one compiled with the LLVM.
We can see that the for loop in MSVC assembler is solved in the optimization pass more efficiently than that in LLVM.
Is there an way to get a optimization result in LLVM like that of the MSVC?
Manoel Teixeira
#include
2012 Mar 29
1
[LLVMdev] Problem recognizing nested select operations
Hello all,
I just noticed that LLVM has trouble recognizing nested simple select
operations.
My testcase is as follows:
-------------------------- snip ------------------------------
#include <stdio.h>
int main(int argc, char **argv)
{
int a;
scanf("%d", &a);
a = a > 255 ? 255 : a < 0 ? 0 : a;
printf("A: %d\n", a);
return 0;
}
2016 Jun 29
2
avx512 JIT backend generates wrong code on <4 x float>
Hi!
When compiling the attached module with the JIT engine on an Intel KNL I
see wrong code getting emitted. I attach a complete exploit program
which shows the bug in LLVM 3.8. It loads and JIT compiles the module
and prints the assembler. I stumbled on this since the result of an
actual calculation was wrong. So, it's not only the text version of the
assembler also the machine
2019 Sep 30
3
[cfe-dev] CFG simplification question, and preservation of branching in the original code
On Mon, Sep 30, 2019 at 11:52 AM Joan Lluch <joan.lluch at icloud.com> wrote:
>
> Hi Roman,
>
> Is "test" actually an implementation of a 64-bit-wide multiplication
> compiler-rt builtin?
> Then i'd think the main problem is that it is being optimized in the
> first place, you could end up with endless recursion…
>
>
> No, this is not a compiler-rt
2019 Sep 30
2
[cfe-dev] CFG simplification question, and preservation of branching in the original code
For the MSP430 example, I'm guess its InstCombiner::transformSExtICmp
or InstCombiner::transformZExtICmp
~Craig
On Mon, Sep 30, 2019 at 2:21 PM Support IMAP <support at sweetwilliamsl.com>
wrote:
> Hi all,
>
> Ok, I just found a much simpler example of the same issue.
>
> Consider the following code
>
> int cmpge32_0(long a) {
> return a>=0;
> }
>
2019 Sep 29
2
[cfe-dev] CFG simplification question, and preservation of branching in the original code
On Sun, Sep 29, 2019 at 3:35 PM Joan Lluch via llvm-dev
<llvm-dev at lists.llvm.org> wrote:
>
> Hi Sanjay,
>
> Actually, the CodeGenPrepare::optimizeSelectInst is not doing the best it could do in some circumstances: The case of “OptSize" for targets not supporting Select was already mentioned to be detrimental.
>
> For targets that actually have selects, but branches
2019 Oct 03
2
[cfe-dev] CFG simplification question, and preservation of branching in the original code
Hi all,
> On 2 Oct 2019, at 14:34, Sanjay Patel <spatel at rotateright.com> wrote
> Providing target options/overrides to code that is supposed to be target-independent sounds self-defeating to me. I doubt that proposal would gain much support.
> Of course, if you're customizing LLVM for your own out-of-trunk backend, you can do anything you'd like if you're willing to
2010 Oct 04
2
[LLVMdev] missing blocks
I suspect this is a straight forward problem so I thought I'd ask.
I'm developing a new backend. I recently updated from the LLVM
repository and now my output assembly is branching to labels/blocks that
have been removed. It had been working fine two weeks ago. What looks
suspicious is the following message:
TryTailMergeBlocks: BB#1, BB#3, BB#4
Looking for common tails of
2019 Oct 01
3
[cfe-dev] CFG simplification question, and preservation of branching in the original code
Hi Sanjay,
Thanks for your reply.
> So yes, the IR optimizer (instcombine is the specific pass) sometimes turns icmp (and select) sequences into ALU ops. Instcombine is almost entirely *target-independent* and should remain that way. The (sometimes unfortunate) decision to create shifts were made based on popular targets of the time (PowerPC and/or x86), and other targets may have suffered
2014 Nov 03
8
[LLVMdev] [PATCH] Protection against stack-based memory corruption errors using SafeStack
Dear LLVM developers,
Our team has developed an LLVM-based protection mechanism that (i) prevents
control-flow hijack attacks enabled by memory corruption errors and (ii)
has very low performance overhead. We would like to contribute the
implementation to LLVM. We presented this work at the OSDI 2014 conference,
at several software companies, and several US universities. We received
positive
2018 Jan 25
0
Panic: data stack: Out of memory when allocating bytes
Hi,
Am 24.01.2018 um 23:39 schrieb Josef 'Jeff' Sipek:
> It looks like the binaries are stripped. There should be a "debug" package
> you can install with symbol information. Then, the backtrace should be much
> more helpful.
I installed the debug package and the backtrace now is:
--- snip ---
(gdb) bt full
#0 0x00007f73f1386495 in raise () from /lib64/libc.so.6
No
2004 Jun 30
1
mkdiskimage question (another one?)
Hi,
I am trying for quite some time to create a bootable hd disk
image with mkdiskimage (included in the syslinux distribution)
and the combination isolinux/memdisk. It just won't work:-}
I have done the following:
[snip]
# ./mkdiskimage -d -o disk 256 32 1
640
# losetup -o 640 /dev/loop3 disk
# mount /dev/loop3 /mnt/3
# mount | grep loop3
/dev/loop3 on /mnt/3 type vfat (rw)
:: copy
2019 Sep 25
2
[cfe-dev] CFG simplification question, and preservation of branching in the original code
Changing the order of the checks in CodeGenPrepare::optimizeSelectInst()
sounds good to me.
But you may need to go further for optimum performance. For example, we may
be canonicalizing math/logic IR patterns into 'select' such as in the
recent:
https://reviews.llvm.org/D67799
So if you want those to become ALU ops again rather than branches, then you
need to do the transform later in
2018 Jan 29
1
Panic: data stack: Out of memory when allocating bytes
Any idea what the problem could be? Is there anything more i could do
to encircle the problem? Or perhaps is the information i provided
uncomplete?
Am 25.01.2018 um 16:24 schrieb Thomas Robers:
> Hi,
>
> Am 24.01.2018 um 23:39 schrieb Josef 'Jeff' Sipek:
>> It looks like the binaries are stripped.? There should be a "debug"
>> package
>> you can
2011 Aug 14
3
cant mount degraded (it worked in kernel 2.6.38.8)
# uname -a
Linux dhcppc1 3.0.1-xxxx-std-ipv6-64 #1 SMP Sun Aug 14 17:06:21 CEST
2011 x86_64 x86_64 x86_64 GNU/Linux
mkdir test5
cd test5
dd if=/dev/null of=img5 bs=1 seek=2G
dd if=/dev/null of=img6 bs=1 seek=2G
losetup /dev/loop2 img5
losetup /dev/loop3 img6
mkfs.btrfs -d raid1 -m raid1 /dev/loop2 /dev/loop3
btrfs device scan
btrfs filesystem show
Label: none uuid:
2005 Feb 11
7
fdisk hard drive image
Hello list,
Currently, i use a partition image to run my XenU (/dev/hda2) and "fdisk
-l" return nothing and can''t open /dev/hda .
I want to use a full hard drive image (not partition image) from my Xen0
as hda in my XenU. I want to be able to run fdisk on hda in my XenU to
list and regenerate partitions.
I tried with this (/img is my hard drive image):
disk =
2013 Feb 14
1
[LLVMdev] LiveIntervals analysis problem
Hello everyone,
please I need your help.
To reproduce my problem I created simple pass for backends (TestPass.cpp
in attached files). That pass I call from Mips backend in this way
(MipsTargetMachine.cpp):
bool MipsPassConfig::addPreRegAlloc() {
addPass(createTestPass());
return false;
}
The problem becomes, when I am trying compile file ldtoa.ll (in attached
files). Compiling
2011 Feb 15
2
[PATCH] virtio: use __GFP_NOWARN for try_fill_recv in virtnet_poll
virtnet_poll is called from soft IRQ and it tries to allocate GFP_ATOMIC
memory (through try_fill_recv). This allocation can fail and we are
falling back to schedule_delayed_work in that case.
Let's add __GFP_NOWARN to the allocation flags to get rid of the
allocator complains for failed allocations:
[22798.508903] The following is only an harmless informational message.
[22798.508909]