similar to: [LLVMdev] LLVM Instruction selection matcher

Displaying 20 results from an estimated 300 matches similar to: "[LLVMdev] LLVM Instruction selection matcher"

2012 Feb 24
3
[LLVMdev] CodeGen instructions and patterns
Is there a generic function that gives the machine instructions and their patterns given in the .td files of a backend specification ? or a subset which match a certain opcode ? otherwise how are the machine instructions being accessed/matched for instruction selection ? -Omer -------------- next part -------------- An HTML attachment was scrubbed... URL:
2011 Aug 15
0
[LLVMdev] Order of code generation
After enabling assertions and recompilation I still get this error. ~/bin/llvm$ llc -view-isel-dags t3.bc llc: Unknown command line argument '-view-isel-dags'. Try: 'llc -help' llc: Did you mean '-fast-isel-abort'? and I see the view-edge bundles option but get the following error. ~/bin/llvm$ llc -view-edge-bundles t3.bc Writing
2011 Aug 15
2
[LLVMdev] Order of code generation
On 15/08/11 13:12, محمد ﻋﻤﺮ ﺩﻫﻠﻮﻯ wrote: > How do I enable the assertions when building ? > I am using 2.9, the current version, and when I use the standard build llc does > not give me the view-*-dags options. Configure with --enable-assertions Ciao, Duncan. > > -Omer > > On Sat, Aug 13, 2011 at 1:50 AM, Duncan Sands <baldrick at free.fr > <mailto:baldrick at
2011 Aug 13
2
[LLVMdev] Order of code generation
On 13/08/11 00:01, Cameron Zwarich wrote: > They do work if you have GraphViz binaries in your path when you configure LLVM. I think you also need to build with assertions enabled. Ciao, Duncan. > > Cameron > > On Aug 12, 2011, at 2:59 PM, محمد ﻋﻤﺮ ﺩﻫﻠﻮﻯ wrote: > >> I need help with visualizing graphs before and after instruction selection. >> The llc options
2011 Aug 15
0
[LLVMdev] Order of code generation
How do I enable the assertions when building ? I am using 2.9, the current version, and when I use the standard build llc does not give me the view-*-dags options. -Omer On Sat, Aug 13, 2011 at 1:50 AM, Duncan Sands <baldrick at free.fr> wrote: > On 13/08/11 00:01, Cameron Zwarich wrote: > > They do work if you have GraphViz binaries in your path when you > configure LLVM.
2011 Aug 12
2
[LLVMdev] Order of code generation
I need help with visualizing graphs before and after instruction selection. The llc options listed in the docs do not work as specified. -Omer 2011/8/8 Rafael Ávila de Espíndola <rafael.espindola at gmail.com> > On 08/06/2011 02:40 AM, Sanjoy Das wrote: > > Hi! > > > > I have a DAG (attached), which, according to me, should result in the > > code for
2011 Aug 12
0
[LLVMdev] Order of code generation
They do work if you have GraphViz binaries in your path when you configure LLVM. Cameron On Aug 12, 2011, at 2:59 PM, محمد ﻋﻤﺮ ﺩﻫﻠﻮﻯ wrote: > I need help with visualizing graphs before and after instruction selection. > The llc options listed in the docs do not work as specified. > > -Omer > > 2011/8/8 Rafael Ávila de Espíndola <rafael.espindola at gmail.com> > On
2012 Apr 12
1
[LLVMdev] Instruction selector option in clang
In llc I can change the selector using -fast-isel. how can I do this in clang ? -Omer -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20120411/3efacf9e/attachment.html>
2018 Mar 28
2
Instruction selection algorithm
Is the algorithm described in the article "Near-Optimal Instruction Selection on DAGs (https://llvm.org/pubs/2008-CGO-DagISel.html)" really used in llvm instruction selection? I've studied implementation (SelectionDAGISel.cpp) and I see that instructions are selected by target specific MatcherTable generated by llvm-tblgen. In the implementation the first matching pattern from
2011 Nov 16
0
[LLVMdev] LLVM 3.0 release notes ARM Target
what do you mean by "more optimal instructions" ? -omer On Wed, Nov 16, 2011 at 1:28 AM, Joe Abbey <jabbey at arxan.com> wrote: > I've done a first pass over the past 6 months of changes and some notable > things stood out: > > * The ARM backend has reworked Set Jump Long Jump EH Lowering. > * The ARM backend includes improved support for Cortex-M > *
2011 Nov 16
4
[LLVMdev] LLVM 3.0 release notes ARM Target
I've done a first pass over the past 6 months of changes and some notable things stood out: * The ARM backend has reworked Set Jump Long Jump EH Lowering. * The ARM backend includes improved support for Cortex-M * The ARM backend adds parsing and encoding ARM/Thumb/Thumb2 assembly There are also many many code generation improvements which select more optimal instructions. Those seemed
2016 Nov 30
4
[RFC] Parallelizing (Target-Independent) Instruction Selection
> Mehdi Amini <mehdi.amini at apple.com> 於 2016年11月30日 上午5:14 寫道: > >> >> On Nov 29, 2016, at 4:02 AM, Bekket McClane via llvm-dev <llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>> wrote: >> >> Hi, >> Though there exists lots of researches on parallelizing or scheduling optimization passes, If you open up the time matrices of
2016 Nov 29
5
[RFC] Parallelizing (Target-Independent) Instruction Selection
Hi, Though there exists lots of researches on parallelizing or scheduling optimization passes, If you open up the time matrices of codegen(llc -time-passes), you'll find that the most time consuming task is actually instruction selection(40~50% of time) instead of optimization passes(10~0%). That's why we're trying to parallelize the (target-independent) instruction selection process
2016 Nov 29
2
[RFC] Parallelizing (Target-Independent) Instruction Selection
> On Nov 29, 2016, at 1:14 PM, Mehdi Amini <mehdi.amini at apple.com> wrote: > > >> On Nov 29, 2016, at 4:02 AM, Bekket McClane via llvm-dev <llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>> wrote: >> >> Hi, >> Though there exists lots of researches on parallelizing or scheduling optimization passes, If you open up the time
2018 Apr 06
0
Instruction selection algorithm
Hi Ivan, Matcher table generation which is implemented in utils/DAGISelEmitter.cpp does use heusiristics like number of instructions which a pattern will cover, latency (not the one which Targets scheduling defines) while emitting the candidate patterns for a give dag node. Current implications may not be implication of algorithm in toto though. Thanks, Jatin On Wednesday, March 28, 2018, Ivan
2018 Apr 07
0
Instruction selection algorithm
LLVM performs a greedy, bottom-up instruction selection. At each step, it selects the pattern that will absorb the most nodes (roughly: the order can be tweaked by the target using AddedComplexity, which is often used to model the idea that a particular pattern is more profitable than it would otherwise appear). I don’t personally think there is that much to gain from an algorithm significantly
2012 Feb 24
0
[LLVMdev] CodeGen instructions and patterns
Hi Omer, On Feb 24, 2012, at 8:46 AM, محمد ﻋﻤﺮ ﺩﻫﻠﻮﻯ <omerbeg at gmail.com> wrote: > Is there a generic function that gives the machine instructions and their patterns given in the .td files of a backend specification ? > or a subset which match a certain opcode ? I'm not aware of any dump utility functions to display that information concisely. I agree such a thing would be
2012 Feb 24
0
[LLVMdev] CodeGen instructions and patterns
(readding cc llvmdev) On Feb 24, 2012, at 11:46 AM, محمد ﻋﻤﺮ ﺩﻫﻠﻮﻯ <omerbeg at gmail.com> wrote: > > > otherwise how are the machine instructions being accessed/matched for instruction selection ? > > > > Have a look at the code in SelectionDAGISel. > > > I am looking at the ARM backend. > In specific, the instruction selection. > In Select(N),
2016 Jun 02
2
BPF backend with vector operations - error "Could not infer all types in, pattern!"
Hello. I come back to this older thread. Again, because of i64immSExt32 I receive TableGen error "Could not infer all types in, pattern!" (exact details written below). So far I'm not able to generate selection code with TableGen for the ADD_r* instructions, etc: def i64immSExt32 : PatLeaf<(imm), [{return
2017 Aug 15
3
How to debug instruction selection
Hi there, I try to JIT compile some bitcode and seeing the following error: LLVM ERROR: Cannot select: 0x28ec830: ch,glue = X86ISD::CALL 0x28ec7c0, 0x28ef900, Register:i32 %EDI, Register:i8 %AL, RegisterMask:Untyped, 0x28ec7c0:1 0x28ef900: i32 = X86ISD::Wrapper TargetGlobalAddress:i32<void (i8*, ...)* @_ZN5FooBr7xprintfEPKcz> 0 0x28ec520: i32 = TargetGlobalAddress<void (i8*, ...)*