Register DAGUpdateListeners with SelectionDAG.
authorJakob Stoklund Olesen <stoklund@2pi.dk>
Fri, 20 Apr 2012 22:08:46 +0000 (22:08 +0000)
committerJakob Stoklund Olesen <stoklund@2pi.dk>
Fri, 20 Apr 2012 22:08:46 +0000 (22:08 +0000)
commitbc7d448f242b1bbc1031fb87cd69c285ff9aaffa
tree743a77e04b77783124c33579dbc5748e0e137cb7
parentc61382b7633cf4ff5b967ac9575c3121418afc04
Register DAGUpdateListeners with SelectionDAG.

Instead of passing listener pointers to RAUW, let SelectionDAG itself
keep a linked list of interested listeners.

This makes it possible to have multiple listeners active at once, like
RAUWUpdateListener was already doing. It also makes it possible to
register listeners up the call stack without controlling all RAUW calls
below.

DAGUpdateListener uses an RAII pattern to add itself to the SelectionDAG
list of active listeners.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155248 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/CodeGen/SelectionDAG.h
include/llvm/CodeGen/SelectionDAGISel.h
lib/CodeGen/SelectionDAG/DAGCombiner.cpp
lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
lib/CodeGen/SelectionDAG/LegalizeTypes.cpp
lib/CodeGen/SelectionDAG/LegalizeTypes.h
lib/CodeGen/SelectionDAG/SelectionDAG.cpp
lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp