mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-19 06:31:18 +00:00
Make it simplier to dump DAGs while in DAGCombiner. Remove a nasty optimization.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31009 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
3f3a6f6c3b
commit
26f7fa7bba
@ -49,7 +49,7 @@ namespace {
|
||||
|
||||
static cl::opt<bool>
|
||||
CombinerAA("combiner-alias-analysis", cl::Hidden,
|
||||
cl::desc("Turn on alias analysis turning testing"));
|
||||
cl::desc("Turn on alias analysis during testing"));
|
||||
|
||||
//------------------------------ DAGCombiner ---------------------------------//
|
||||
|
||||
@ -388,6 +388,9 @@ void DAGCombiner::Run(bool RunningAfterLegalize) {
|
||||
// changes of the root.
|
||||
HandleSDNode Dummy(DAG.getRoot());
|
||||
|
||||
// The root of the dag may dangle to deleted nodes until the dag combiner is
|
||||
// done. Set it to null to avoid confusion.
|
||||
DAG.setRoot(SDOperand());
|
||||
|
||||
/// DagCombineInfo - Expose the DAG combiner to the target combiner impls.
|
||||
TargetLowering::DAGCombinerInfo
|
||||
@ -2759,13 +2762,6 @@ SDOperand DAGCombiner::visitSTORE(SDNode *N) {
|
||||
}
|
||||
|
||||
if (CombinerAA) {
|
||||
// If the store ptr is a frame index and the frame index has a use of one
|
||||
// and this is a return block, then the store is redundant.
|
||||
if (Ptr.hasOneUse() && isa<FrameIndexSDNode>(Ptr) &&
|
||||
DAG.getRoot().getOpcode() == ISD::RET) {
|
||||
return Chain;
|
||||
}
|
||||
|
||||
// Walk up chain skipping non-aliasing memory nodes.
|
||||
SDOperand BetterChain = FindBetterChain(N, Chain);
|
||||
|
||||
|
@ -2684,7 +2684,7 @@ void SelectionDAG::dump() const {
|
||||
DumpNodes(Nodes[i], 2, this);
|
||||
}
|
||||
|
||||
DumpNodes(getRoot().Val, 2, this);
|
||||
if (getRoot().Val) DumpNodes(getRoot().Val, 2, this);
|
||||
|
||||
std::cerr << "\n\n";
|
||||
}
|
||||
|
@ -61,7 +61,8 @@ namespace llvm {
|
||||
static void addCustomGraphFeatures(SelectionDAG *G,
|
||||
GraphWriter<SelectionDAG*> &GW) {
|
||||
GW.emitSimpleNode(0, "plaintext=circle", "GraphRoot");
|
||||
GW.emitEdge(0, -1, G->getRoot().Val, -1, "");
|
||||
if (G->getRoot().Val)
|
||||
GW.emitEdge(0, -1, G->getRoot().Val, -1, "");
|
||||
}
|
||||
};
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user