[LLVMdev] alias-aware scheduling

Evan Cheng evan.cheng at apple.com
Tue Dec 19 13:31:10 PST 2006


On Dec 19, 2006, at 12:13 PM, Dan Gohman wrote:

> Hello,
>
> I did a little experiment modifying LLVM to be able to use alias- 
> analysis
> information in scheduling so that independent memory operations may be
> reordered.

I am not sure if it is a good idea to do this at scheduling time.  
LLVM explicitly models control flows dependencies as chain operands.   
This eliminated the need to do a separate edge drawing pass before  
scheduling.

As you have seen there is transformations in dag combiner to  
eliminate the unnecessary chain operands. It's not turned on by  
default. Are you not getting satisfactory results by turning it on?

>
> Attached is a patch which implements this. I copied some routines from
> DAGCombiner.cpp for using SDOperands with alias queries; it should
> probably be factored out somewhere so the code can be shared. I
> reorganized SelectionDAGLowering::getLoadFrom a little, to make it
> simpler to use in other contexts.
>
> Also, the patch fixes a bug where SelectionDAG::getLoad and
> SelectionDAG::getStore were being called with the wrong arguments,  
> with
> a default argument helping to hide it.

Can you be more specific about what the bugs are?

Thanks,

Evan
>
> I'm interested in any comments or feedback that people might have.
>
> Dan
>
> -- 
> Dan Gohman, Cray Inc. <djg at cray.com>
> <patch>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev




More information about the llvm-dev mailing list