[PATCH] Document HLE metadata

Chris Lattner clattner at apple.com
Wed Mar 27 11:31:01 PDT 2013


On Mar 26, 2013, at 10:56 PM, Eric Christopher <echristo at gmail.com> wrote:
>> We don't have the video from the BOF, but the high level concept is that we would like to move away from our SelectionDAG+fastisel duopoly to a point where we have one model that lowers directly from IR to MachineInstrs and then does legalization/combining on MachineInstrs.  In the case that fast isel handles well today (when you have all legal types) this should be just as fast, but would also be fully general (which fast isel isn't), and would allow "whole function" dag combines and other things we've been dreaming of for some time now.
>> 
>> I don't know of anyone planning to do the work, but it sounds like a great future to me. :-)
> 
> So, Dan and I have been talking about this for some time (since both
> of us worked on fast isel) and we're looking in this direction. We've
> got some ideas and are planning on starting both some prototyping of
> more selection/legalization as well as expanding some of the existing
> lowering. Expect to see some patches and larger work here shortly.
> We're definitely open for ideas or collaboration in this area and look
> forward to working with the community on this.

I'd really be interested in seeing a design document, something like one of my "LLVM Notes", or anything about the ultimate design before you guys start implementing stuff.  If you're really serious about making this happen, it would be great to meet in person to get one the same page.

Someone else asked some questions off list, here is "mho" on a ridiculously high level design direction:

"I'm envisioning pretty much exactly what we have today, but using machineinstrs instead of selectiondag.  In the normal optimized path, the equivalent of "SelectionDAG builder" emit pseudo machine instrs ("ISD" instructions?), which then get optimized like selection dag does.

In the "fast" path, we emit hybrid instructions, where the equivalent of "SelectionDAG builder" emits psuedo instructions for *illegal* MVTs and operations, but emits legal instructions for legal ones.  This allows skipping legalization completely when everything is legal or custom lowered (the fast isel case) but keeps the infrastructure working together."

-Chris 



More information about the llvm-commits mailing list