Displaying 16 results from an estimated 16 matches for "matchertables".
Did you mean:
matchertable
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
2012 Mar 31
1
[LLVMdev] LLVM Instruction selection matcher
I have a few questions about matching in the selector.
1. Why does the size of the MatcherTable greatly exceed the number of
patterns defined in the target description? If it simply contains all the
variants of the patterns then what is the encoding of these entries ?
2. Is there a simple way to extract the root opcode of a pattern from the
MatcherTable entry ?
3. I believe the entries in the
2016 Jun 28
2
Question about Instruction Selection
...tion algorithm for DAG
instead of tree matching.
My question is, according to the paper, each tile in DAG has a cost value
which is used in dynamic programming process and CSE decisions. But in
TableGen files, I didn't find any field recording cost values or similar
properties. I know that the MatcherTables in generated TableGen include
files act like a byte code interpreter which perform bottom-up selection,
resembles to bottom-up dynamic programming. But if the generated
MatcherTables are really used for performing bottom-up dynamic programming
selection, it still needs a cost model to help it makin...
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
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
2016 Jun 28
2
Question about Instruction Selection
...ng.
>>
>> My question is, according to the paper, each tile in DAG has a cost value
>> which is used in dynamic programming process and CSE decisions. But in
>> TableGen files, I didn't find any field recording cost values or similar
>> properties. I know that the MatcherTables in generated TableGen include
>> files act like a byte code interpreter which perform bottom-up selection,
>> resembles to bottom-up dynamic programming. But if the generated
>> MatcherTables are really used for performing bottom-up dynamic programming
>> selection, it still...
2016 Jun 28
0
Question about Instruction Selection
...d of tree
> matching.
>
> My question is, according to the paper, each tile in DAG has a cost value
> which is used in dynamic programming process and CSE decisions. But in
> TableGen files, I didn't find any field recording cost values or similar
> properties. I know that the MatcherTables in generated TableGen include
> files act like a byte code interpreter which perform bottom-up selection,
> resembles to bottom-up dynamic programming. But if the generated
> MatcherTables are really used for performing bottom-up dynamic programming
> selection, it still needs a cost mo...
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 Jun 28
0
Question about Instruction Selection
...d of tree
> matching.
>
> My question is, according to the paper, each tile in DAG has a cost value
> which is used in dynamic programming process and CSE decisions. But in
> TableGen files, I didn't find any field recording cost values or similar
> properties. I know that the MatcherTables in generated TableGen include
> files act like a byte code interpreter which perform bottom-up selection,
> resembles to bottom-up dynamic programming. But if the generated
> MatcherTables are really used for performing bottom-up dynamic programming
> selection, it still needs a cost mo...
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
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*, ...)*
2016 Jun 22
2
LLVM Backend Issues
Thanks Anton and Krzysztof!
Here is the dump using the -debug flag. At this point I am not making much
sense of this, would it be too much to ask if one of you could walk me
through one of these lines?
One thing that I didn't point out is that I never defined any separate
floating point registers, not sure if this will pose any issue?
Thanks again for your time!
Jeff
jeff at
2016 Feb 19
3
Failure to match a DAG after a minor pattern change in a custom Target
In an attempt to add vector registers to my target, I ran into a problem.
LLVM started to complain about not being able to infer types from the
provided DAG patterns for several classes of instructions. After a
discussion on the llvm-dev mailing list and IRC channel the recommendation
was to make DAG patterns for these classes of instructions more specific.
Which is what was done. However after
2018 Sep 06
2
How to add Loongson ISA for Mips target?
- my old email address.
The ISA_* classes might not be the best choice for this. There's an overall hierarchy and ordering to the ISA_* classes since they represent the generations of the MIPS ISA. If these extensions are available in Loongson chips based on MIPS32r1 and MIPS32r2 for example, it becomes difficult to describe with ISA_* classes without duplicating instruction definitions or