Displaying 20 results from an estimated 71 matches for "binops".
Did you mean:
binop
2015 Sep 30
2
InstCombine wrongful (?) optimization on BinOp with SameOperands
Hi all,
I have been looking at the way LLVM optimizes code before
forwarding it to the backend I develop for my company and while building
define i32 @test_extract_subreg_func(i32 %x, i32 %y) #0 {
entry:
%conv = zext i32 %x to i64
%conv1 = zext i32 %y to i64
%mul = mul nuw i64 %conv1, %conv
%shr = lshr i64 %mul, 32
%xor = xor i64 %shr, %mul
%conv2 = trunc i64 %xor to i32
2018 Sep 25
2
[FPEnv] FNEG instruction
On Tue, Sep 25, 2018 at 1:39 PM Sanjay Patel <spatel at rotateright.com> wrote:
> I have 1 concern about adding an explicit fneg op to IR:
>
> Currently, fneg qualifies as a binop in IR (since there's no other way to
> represent it), and we have IR transforms that are based on matching that
> pattern (m_BinOp). With a proper unary fneg instruction, those transforms
>
2018 Sep 26
2
[FPEnv] FNEG instruction
...s a unary fneg and we want that to behave as it
> does today, we'd have to duplicate that fold for fneg (or fake it by
> substituting an fsub).
>
> But after rummaging around in instcombine at least, I'm actually not too
> worried by the proposed change. Transforms on generic binops are not common.
>
Oh, I see. So you're worried that an FNeg won't match the generic
m_c_BinOp(...) as it does now. That's a reasonable concern.
This is the first time I'm looking at foldShuffledBinop(...), so maybe a
naive question, but why not do similar shuffle canonicalizati...
2017 Apr 02
6
[Bug 1142] New: invalid binop operation 6nft
https://bugzilla.netfilter.org/show_bug.cgi?id=1142
Bug ID: 1142
Summary: invalid binop operation 6nft
Product: nftables
Version: unspecified
Hardware: x86_64
OS: other
Status: NEW
Severity: major
Priority: P5
Component: nft
Assignee: pablo at netfilter.org
Reporter:
2007 Nov 25
0
[LLVMdev] OCaml
> On Sunday 25 November 2007 03:42, Christopher Lamb wrote:
>> Try this google query. I know there's been some discussion/work on
>> OCaml and LLVM.
>>
>> site:lists.cs.uiuc.edu/pipermail/llvmdev OCaml interface
>
> I just rediscovered the OCaml bindings in bindings/ocaml (rather than the
> ones
> in test/Bindings/OCaml!). They do indeed look quite
2007 Nov 25
2
[LLVMdev] OCaml
On Sunday 25 November 2007 03:42, Christopher Lamb wrote:
> Try this google query. I know there's been some discussion/work on
> OCaml and LLVM.
>
> site:lists.cs.uiuc.edu/pipermail/llvmdev OCaml interface
I just rediscovered the OCaml bindings in bindings/ocaml (rather than the ones
in test/Bindings/OCaml!). They do indeed look quite complete but I can't find
any examples
2007 Nov 25
2
[LLVMdev] OCaml
On Sunday 25 November 2007 05:28, Aaron Gray wrote:
> > On Sunday 25 November 2007 03:42, Christopher Lamb wrote:
> >> Try this google query. I know there's been some discussion/work on
> >> OCaml and LLVM.
> >>
> >> site:lists.cs.uiuc.edu/pipermail/llvmdev OCaml interface
> >
> > I just rediscovered the OCaml bindings in bindings/ocaml
2010 Feb 17
2
[LLVMdev] Kaleidoscope toy4 failure seg fault on llvm::ExecutionEngine::getTargetData (this=0x0)
I am new to llvm so I might be missing a critical step. My system is
Fedora 12 but this also happens in Mac OS X 10.6.2. Here are the
steps I used to compile llvm:
export TARGETS=x86,x86_64,cpp
export INSTALLDIR=/home/rovitotv/llvm
../llvm-2.6/configure --prefix=$INSTALLDIR --enable-bindings=none
--enable-targets=$TARGETS --enable-optimized
--with-llvmgccdir=$INSTALLDIR
2010 Feb 17
0
[LLVMdev] Kaleidoscope toy4 failure seg fault on llvm::ExecutionEngine::getTargetData (this=0x0)
First, you have to call llvm-g++ to use the llvm-gcc front end, but it
doesn't matter here.
I'd like to suggest that you use pastebin to put your code and the send us
the link, so that we can download it. The problem is that TheExecutionEngine
is set to NULL (maybe because of a previous error), but it will be really
better if you use pastebin.
On Wed, Feb 17, 2010 at 6:01 AM, Todd Rovito
2011 Oct 07
4
[LLVMdev] Enhancing TableGen
Che-Liang Chiou <clchiou at gmail.com> writes:
> My purpose is to eliminate copy-paste style of programming in td files
> as much as possible, but only to a point that the new language
> constructs do not create too much overhead/readability-downgrade.
Yes!
> In other words, I am targeting those low-hanging fruit of copy-paste
> programmings in td files that are eliminated
2019 Apr 01
3
Please expose predicates to MachineVerifier
Could we expose predicates defined in the target InstrInfo.td file to the MachineVerifier? We use BuildMI() to create many instructions after ISEL, but the predicates are not being checked at this point. Thus, I could forget to check the target and build an instruction that is illegal for a specific configuration. In such a case it would be nice if the MachineVerifier could detect this for me.
2010 Feb 17
1
[LLVMdev] Kaleidoscope toy4 failure seg fault on llvm::ExecutionEngine::getTargetData (this=0x0)
On Wed, Feb 17, 2010 at 6:29 AM, Conrado Miranda
<miranda.conrado at gmail.com> wrote:
> First, you have to call llvm-g++ to use the llvm-gcc front end, but it
> doesn't matter here.
I got the compile command from the Kaleidoscope documentation.
> I'd like to suggest that you use pastebin to put your code and the send us
> the link, so that we can download it. The
2017 Jan 20
3
getScalarizationOverhead()
On 2017-01-20 14:31, Hal Finkel wrote:
>
> On 01/20/2017 06:11 AM, Jonas Paulsson via llvm-dev wrote:
>> Hi,
>>
>> I wonder why getScalarizationOverhead() does not take into account
>> the number of operands of the instruction? This should influence the
>> number of extracts needed, so instead of
>>
>> Scalarization cost = NumEls * (insert +
2007 Nov 26
0
[LLVMdev] Fibonacci example in OCaml
Here is a complete 104-line native code compiler for a tiny subset of OCaml
that is expressive enough to compile an external Fibonacci program:
type expr =
| Int of int
| Var of string
| BinOp of [ `Add | `Sub | `Leq ] * expr * expr
| If of expr * expr * expr
| Apply of expr * expr
type defn =
| LetRec of string * string * expr
open Camlp4.PreCast;;
let expr = Gram.Entry.mk
2018 May 23
0
RFC: should CVP always narrow the width of lshr?
...ere are multiple solutions, and more than one
solution can be implemented, i suppose.
1. https://reviews.llvm.org/D46760
Somehow relax instcombine, to check for this very specific pattern.
I don't think we want that.
2. Extend aggressive-instcombine to narrow a sequence of arbitrary
binops (and maybe even more than binops). This is probably
the most powerful, but i'm not quite sure how it would look..
3. Teach CVP to always narrow the width of lshr.
https://reviews.llvm.org/D47113
As Sanjay Patel notes in https://reviews.llvm.org/D47113#1106601,
> <cut> b...
2011 Oct 07
0
[LLVMdev] Enhancing TableGen
David and Che-Liang, thank you for your hard work on this. Let me clarify what we may accept and what we cannot.
Che-Liang, we cannot accept TGPreprocessor. Please revert it as soon as possible. The for-loop syntax is still being discussed, it's not yet clear what we will end up accepting. Please work with Jakob on this.
David, we cannot accept the 'multidef' keyword. Please revert
2011 Oct 08
0
[LLVMdev] Enhancing TableGen
On Fri, Oct 7, 2011 at 11:05 PM, David A. Greene <greened at obbligato.org> wrote:
> Che-Liang Chiou <clchiou at gmail.com> writes:
>
>> My purpose is to eliminate copy-paste style of programming in td files
>> as much as possible, but only to a point that the new language
>> constructs do not create too much overhead/readability-downgrade.
>
> Yes!
>
2007 Nov 25
2
[LLVMdev] Fibonacci example in OCaml
Here's my translation of the Fibonacci example into OCaml:
open Printf
open Llvm
let build_fib m =
let fibf =
define_function "fib" (function_type i32_type [| i32_type |]) m in
let bb = builder_at_end (entry_block fibf) in
let one = const_int i32_type 1 and two = const_int i32_type 2 in
let argx = param fibf 0 in
set_value_name "AnArg" argx;
let
2007 Jul 23
2
[LLVMdev] LHS of an expression
...%tmp into maybe a variable
set.
If i have a store instruction then it is pretty much simpler as the
getOperand(1) can give me the LHS of the expression but in the above case
how can we get it.
I tried searching for some stuff and got a method called getLHS() method
using BinaryOperator and takes Binops as parameter but i dont think that
is of much help if i am having a malloc instruction.
Can anybody please guide me on this thing please?
Thanks in advance..
Abhinav
2011 Oct 07
0
[LLVMdev] Enhancing TableGen
My purpose is to eliminate copy-paste style of programming in td files
as much as possible, but only to a point that the new language
constructs do not create too much overhead/readability-downgrade.
In other words, I am targeting those low-hanging fruit of copy-paste
programmings in td files that are eliminated by a simple for-loop
syntax. The repetitive patterns I observed in PTX backend (and