Displaying 15 results from an estimated 15 matches for "iselpattern".
2005 Mar 17
1
[LLVMdev] Floating point compare instruction selection
...tst. The simple
> isel used to produce ftst for compare against zero. If you do some
> benchmarking and find that one is noticably faster than the other, we
> should switch them both to use the same code sequence.
It's generating _both_ the SAHF and the fucomi -- look at the code ISelPattern generates:
17160443 call HueVMReadCommands_LLVMReadVoxel (19BB229h)
17160448 fsub dword ptr ds:[161D6280h]
1716044E fabs
17160450 fst qword ptr [esp+14h]
17160454 ftst
17160456 fstp st(0)
17160458 fnstsw ax
1716045A sahf
1716045B fldz
1716045D fchs
17160...
2005 Mar 18
1
[LLVMdev] new IA64 backend
...(
Right, but once the MI are RAed, you want to be able to do a post-pass
scheduling also. So you need to be able to take a MBB and produce a
DAG. A scheduler obviously wouldn't care how it came about having a
DAG. And it is easier to do the lift from a MBB to a DAG than to change
the entire ISelPattern process at the moment. Baby steps.
Andrew
2005 Apr 24
0
[LLVMdev] trig language-like code generator generator
...se:
http://llvm.cs.uiuc.edu/docs/WritingAnLLVMBackend.html
http://llvm.cs.uiuc.edu/docs/TableGenFundamentals.html
If you're unsure of how things are implemented, take a look at how
similar things are done in X86, PowerPC, Alpha or IA64, they all have
SelectionDAG-based instruction selectors (*ISelPattern.cpp). If that
doesn't clear things up, ask on the list or IRC channel.
--
Misha Brukman :: http://misha.brukman.net :: http://llvm.cs.uiuc.edu
2005 Apr 24
4
[LLVMdev] trig language-like code generator generator
i'd like to know if there is any plan or existing work to add a Aho's
trig language like code generator generator?
"...If you are starting a new port, we recommend that you write the
instruction selector using the SelectionDAG infrastructure."
any other things i should know before i write one?
thank you.
2005 Apr 24
0
[LLVMdev] trig language-like code generator generator
...ure
is mean to support exactly this (perform Tree or DAG pattern matching on
the optimized DAG instead of on the LLVM code).
This is described here:
http://llvm.cs.uiuc.edu/docs/CodeGenerator.html
Currently, we use simple greedy bottom-up matchers that are manually
written in the <target>ISelPattern.cpp file. The plan is to extend this
by allowing targets to write the DAG pattern for each instruction in the
.td files, then build use an optimal code generator generator to emit the
matching code.
This processes of increased automation has been happening slowly over the
years, but we've...
2005 Apr 24
2
[LLVMdev] trig language-like code generator generator
http://portal.acm.org/citation.cfm?id=75700
On 4/25/05, Chris Lattner <sabre at nondot.org> wrote:
> On Sun, 24 Apr 2005, Tzu-Chien Chiu wrote:
> > i'd like to know if there is any plan or existing work to add a Aho's
> > trig language like code generator generator?
>
> Trig is a code generator generator? Is there any documentation for it
> available
2005 Apr 25
4
[LLVMdev] trig language-like code generator generator
...his (perform Tree or DAG pattern matching on
> the optimized DAG instead of on the LLVM code).
>
> This is described here:
> http://llvm.cs.uiuc.edu/docs/CodeGenerator.html
>
> Currently, we use simple greedy bottom-up matchers that are manually
> written in the <target>ISelPattern.cpp file. The plan is to extend this
> by allowing targets to write the DAG pattern for each instruction in the
> .td files, then build use an optimal code generator generator to emit the
> matching code.
>
> This processes of increased automation has been happening slowly over the...
2005 Mar 11
0
[LLVMdev] FP Intrinsics
...t 0, int 1)
store float 0.000000e+000, float* getelementptr ([4 x float]* cast (<4
x float>* %_ARGB56 to [4 x float]*), int 0, int 2)
store float 0.000000e+000, float* getelementptr ([4 x float]* cast (<4
x float>* %_ARGB56 to [4 x float]*), int 0, int 3)
ret void
}
Generated with ISelPattern:
17160410 sub esp,1Ch
17160413 mov dword ptr ds:[161D6240h],0
1716041D mov dword ptr ds:[161D6244h],0
17160427 mov dword ptr ds:[161D6248h],0
17160431 mov dword ptr ds:[161D624Ch],0
1716043B mov eax,76E4560h
17160440 mov dword ptr [esp...
2005 Apr 25
0
[LLVMdev] trig language-like code generator generator
...attern matching on
>> the optimized DAG instead of on the LLVM code).
>>
>> This is described here:
>> http://llvm.cs.uiuc.edu/docs/CodeGenerator.html
>>
>> Currently, we use simple greedy bottom-up matchers that are manually
>> written in the <target>ISelPattern.cpp file. The plan is to extend this
>> by allowing targets to write the DAG pattern for each instruction in the
>> .td files, then build use an optimal code generator generator to emit the
>> matching code.
>>
>> This processes of increased automation has been happen...
2005 Apr 25
1
[LLVMdev] trig language-like code generator generator
...e optimized DAG instead of on the LLVM code).
> >>
> >> This is described here:
> >> http://llvm.cs.uiuc.edu/docs/CodeGenerator.html
> >>
> >> Currently, we use simple greedy bottom-up matchers that are manually
> >> written in the <target>ISelPattern.cpp file. The plan is to extend this
> >> by allowing targets to write the DAG pattern for each instruction in the
> >> .td files, then build use an optimal code generator generator to emit the
> >> matching code.
> >>
> >> This processes of increased a...
2005 Mar 18
0
[LLVMdev] new IA64 backend
On Fri, 18 Mar 2005, Duraid Madina wrote:
>>> - No instruction scheduling/bundling of any sort
>>
>> So this one needs to be coordinated. Next week, I might see about
>> adding MachineInstruction support to the SelectionDAG so you can load up
>> a DAG post-ISel and then spit it back out scheduled.
>
> That would be much appreciated, particularly if it
2005 Mar 16
0
[LLVMdev] Floating point compare instruction selection
On Wed, 16 Mar 2005, Morten Ofstad wrote:
> Hello,
>
> I didn't get any reply to my previous mail about adding floating point
> intrinsics to the X86 pattern instruction selector... And I could really need
> some help.
Sorry about that, it slipped through the cracks. :(
> Anyway, I think my confusion was caused partly by an already
> existing bug in the instruction
2005 Mar 16
2
[LLVMdev] Floating point compare instruction selection
Hello,
I didn't get any reply to my previous mail about adding floating point intrinsics to the X86 pattern instruction
selector... And I could really need some help. Anyway, I think my confusion was caused partly by an already existing bug
in the instruction selection for floating point compares.
The case which emits code for the special case of comparing against constant 0.0 does not
2005 Mar 18
2
[LLVMdev] new IA64 backend
Andrew Lenharth wrote:
> On Fri, 2005-03-18 at 05:04 +0900, Duraid Madina wrote:
>> - No varargs
>
> What are your issues here? Or are they simply at the "not implemented
> so I don't know" stage?
The two bugs I mentioned (no varargs, no alloca) are pretty much two
sides of the same coin: I'm ignoring the IA64 stack frame layout (for no
good reason), so
2005 Mar 11
5
[LLVMdev] FP Intrinsics
Hello,
I am trying to make the FP intrinsics (abs, sin, cos, sqrt) I've added
work with the X86ISelPattern, but I'm having some difficulties
understanding what needs to be done. I assume I have to add new
nodetypes for the FP instructions to SelectionDAGNodes.h, and make nodes
for these in SelectionDAGLowering::visitCall when I find the intrinsic...
The part I don't quite understand is what...