[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