Displaying 20 results from an estimated 100 matches similar to: "[CodeGen] PeepholeOptimizer: optimizing condition dependent instrunctions"
2016 Mar 10
2
[CodeGen] PeepholeOptimizer: optimizing condition dependent instrunctions
Hi Quentin,
Yes, the code allows to process connected instructions. Although it should be taken into account that the instruction next to the current processed instruction must never be erased because this invalidates iterator.
I've been fixing a bug in AArch64InstrInfo::optimizeCompareInstr: instructions are converted into S form but it's not checked that they produce the same flags as
2011 Feb 18
0
[LLVMdev] Adding "S" suffixed ARM/Thumb2 instructions
On Feb 17, 2011, at 10:35 PM, Вадим Марковцев wrote:
> Hello everyone,
>
> I've added the "S" suffixed versions of ARM and Thumb2 instructions to tablegen. Those are, for example, "movs" or "muls".
> Of course, some instructions have already had their twins, such as add/adds, and I leaved them untouched.
Adding separate "s" instructions is
2011 Feb 18
2
[LLVMdev] Adding "S" suffixed ARM/Thumb2 instructions
Hello everyone,
I've added the "S" suffixed versions of ARM and Thumb2 instructions to
tablegen. Those are, for example, "movs" or "muls".
Of course, some instructions have already had their twins, such as add/adds,
and I leaved them untouched.
Besides, I propose the codegen optimization based on them, which removes the
redundant comparison in patterns like
orr
2010 Nov 24
1
[LLVMdev] Selecting BRCOND instead of BRCC
Hi everyone,
I have the following code (as part of a larger function):
%0 = icmp eq i16 %a, 0 ; <i1> [#uses=1]
br i1 %0, label %bb1, label %bb
I would like to match this with a BRCOND, but all I get is an error message
when compiling the above code that say:
LLVM ERROR: Cannot yet select: 0x170f200: ch = br_cc 0x170f000, 0x170ed00,
0x170dc60, 0x170ec00, 0x170ef00 [ID=19]
2004 Feb 20
1
[LLVMdev] Changes in MachineInstruction/Peephole Optimizer?
Hi all,
The register allocator that I implemented is failing in the LLVM cvs
version, but not in LLVM 1.1. The generated code fails a check in the
x86 peephole optimizer:
llc: PeepholeOptimizer.cpp:128: bool
<unnamed>::PH::PeepholeOptimize(llvm::Machi
neBasicBlock&, llvm::ilist_iterator<llvm::MachineInstr>&): Assertion
`MI->getNum
Operands() == 2 && "These
2015 Jan 19
6
[LLVMdev] X86TargetLowering::LowerToBT
I'm tracking down an X86 code generation malfeasance regarding BT (bit
test) and I have some questions.
This IR *matches* and then *X86TargetLowering::LowerToBT **is called:*
%and = and i64 %shl, %val * ; (val & (1 << index)) != 0 ; *bit test
with a *register* index
This IR *does not match* and so *X86TargetLowering::LowerToBT **is not
called:*
%and = lshr i64 %val, 25
2015 Jan 19
2
[LLVMdev] X86TargetLowering::LowerToBT
Sure. Attached is the file but here are the functions. The first uses a
fixed bit offset. The second has a indexed bit offset. Compiling with llc
-O3, LLVM version 3.7.0svn, it compiles the IR from IsBitSetB() using btq %rsi,
%rdi. Good. But then it compiles IsBitSetA() with shrq/andq, which is is
pretty much what Clang had generated as IR.
shrq $25, %rdi
andq $1, %rdi
LLVM should be able to
2015 Jan 22
2
[LLVMdev] X86TargetLowering::LowerToBT
> On Jan 22, 2015, at 1:22 PM, Fiona Glaser <fglaser at apple.com> wrote:
>
> According to Agner’s docs, many CPUs have slower BT than TEST; Haswell has only 0.5 inverse throughput as opposed to 0.25, Atom has 1 instead of 0.5, and Silvermont can’t even dual-issue BT (it locks both ALUs). So while BT does seem have a shorter instruction encoding than TEST for TEST reg, imm32 where
2010 Dec 15
2
[LLVMdev] Optimization passes break machine instructions on new backend
Hello!
I'm working on a new back-end and have hit a bit of a snag. I'm working on
getting selectcc working and have followed the MSP430 model of emitting a
custom CMP and SELECT_CC node and matching that with a pseudo-instruction
that has useCustomEmitter=1. However, my output ends up very wrong, despite
the Machine code being initially correct:
# Machine code for function func:
Function
2019 Feb 02
3
GlobalISEL, and MachineMemOperands?
Looking through the X86 GlobalISEL code for selecting loads and stores,
I'm not seeing the creation of the MachineMemOperands I'd expect to see
and do see being generated by SelectionDAG. Is this simply an
oversight, or is there some aspect of the new design which pushes us
away from MMOs?
Various parts of the machine instruction level optimization passes use
the existence and
2010 Dec 15
0
[LLVMdev] Optimization passes break machine instructions on new backend
Hello Per,
> The CMPrr instruction is moved down to after the PHI node. My guess is that
> the 'dead' in CFR<imp-def,dead> is to blame, but I can't see what I'm doing
> differently from MSP430/sparc that makes this not work. Any help GREATLY
> appreciated!
It seems like no use of CFR after CMP, indeed. How condbranches on
your platform look like (patterns, etc.)
2006 Mar 14
3
EICON Diva 4BRI
Are there any step by step instrunctions on how to install drivers and I
guess bristuff for this card?
Just need to use it to handle voice on 2 BRI circuits (UK) then utilise
with Asterisk and some Digium cards handling POTS phones (and some VoIP
out the back).
It's the EICON card stuff and how to make it all work I'm finding
confusing?
Steve
--
NetTek Ltd UK mob +44-(0)7775 755503
2019 Aug 23
2
Using [GlobalISel] to provide peephole optimizations
Hi,
GlobalISel is fantastic, but obviously lacks a lot of the transforms that
makes SelectionDAG so good. Whilst it's plenty usable, you'll find yourself
wanting/needing to add a lot of manual little transforms to clean things up.
I know of the RFC for a new Combiner with its own syntax
(https://reviews.llvm.org/D54286 is the latest I can find of it), but after
manually adding my Nth
2008 Feb 05
1
[LLVMdev] Handling "adde" nodes !!
Any idea how to handle "adde" nodes for processors that do not have an "add
with carry" instruction?
In our case, we rely on "carry test" and "increment" instrunctions.
Any reference to a similiar existing LLVM target will be helpful..
TIA,
Sanjiv
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
2017 Sep 26
2
yum update problem - dependancy problem
On Tuesday 26 September 2017 14:27:43 Mark Haney wrote:
> On 09/26/2017 09:23 AM, James B. Byrne wrote:
> > You have a conflicting package installed from repository @atrpms. You
> > need to remove that package and/or disable that repository to get past
> > the dependency issue. 'Skip broken' is not going to handle this
> > situation nor will any other set of
2013 Jul 05
1
postfix + amavisd-new
I've been following the instrunctions in
<http://wiki.centos.org/HowTos/Amavisd>
for installing Amavisd, Clamav and SpamAssassin
on top of postfix/dovecot .
Dovecot is working fine,
but I want to deal with spam email.
(I am using sendmail/dovecot with procmail and spamassassin
on another server, but decided to go over to postfix
on this server when I saw it is now the CentOS default.)
2010 Aug 18
4
[LLVMdev] global type legalization?
On Aug 18, 2010, at 9:56 AM, Chris Lattner wrote:
> On Aug 18, 2010, at 9:22 AM, Bob Wilson wrote:
>> I'm looking at llvm-generated ARM code that has some unnecessary UXTB (zero extend) instructions, and it seems to me that doing type legalization as an entirely local transformation is not the best approach.
>
> That's true, but doing isel as a purely local approach
2014 Jul 01
16
[LLVMdev] Usability of phabricator review threads for non-phab-users
Alp noted that the current setup on how phab reviews land on the list are
not working for him. I'd be curious whether his setup is special, or
whether there are more widespread problems. If this is more widely
perceived as a problem, please speak up, and I'll make sure to prioritize
the fixes (note that this is unrelated to the "lost email" problem - those
are always highest
2010 Dec 15
2
[LLVMdev] Optimization passes break machine instructions on new backend
But in the first version it's used on the next row:
%reg16388<def> = CMPrr %reg16384, %reg16385, %CFR<imp-def,dead>;
IntRegs:%reg16388,16384,16385
SKIPCOND 1, *%CFR<imp-use>*
Or doesn't that count?
Following are patters for cmp and skipcond:
def cmpcc : SDNode<"CSISD::CMP", SDTIntBinOp, [SDNPOutFlag]>;
let Defs = [CFR] in {
def CMPrr :
2017 Sep 26
0
yum update problem - dependancy problem
> Am 26.09.2017 um 15:38 schrieb Gary Stainburn <gary at ringways.co.uk>:
>
> On Tuesday 26 September 2017 14:27:43 Mark Haney wrote:
>> On 09/26/2017 09:23 AM, James B. Byrne wrote:
>>> You have a conflicting package installed from repository @atrpms. You
>>> need to remove that package and/or disable that repository to get past
>>> the dependency