aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/SplitKit.cpp
diff options
context:
space:
mode:
authorBob Wilson <bob.wilson@apple.com>2011-03-02 23:38:06 +0000
committerBob Wilson <bob.wilson@apple.com>2011-03-02 23:38:06 +0000
commit24b3ba5990aa833941ef56499440851555bb82b8 (patch)
tree69a08f9afec56c5dd9bc13ff1033819a18f8d5ac /llvm/lib/CodeGen/SplitKit.cpp
parent815196ca198c5e3e0c2e988c8cb357478abe70d2 (diff)
downloadllvm-24b3ba5990aa833941ef56499440851555bb82b8.zip
llvm-24b3ba5990aa833941ef56499440851555bb82b8.tar.gz
llvm-24b3ba5990aa833941ef56499440851555bb82b8.tar.bz2
Avoid exponential blow-up when printing DAGs.
David Greene changed CannotYetSelect() to print the full DAG including multiple copies of operands reached through different paths in the DAG. Unfortunately this blows up exponentially in some cases. The depth limit of 100 is way too high to prevent this -- I'm seeing a message string of 150MB with a depth of only 40 in one particularly bad case, even though the DAG has less than 200 nodes. Part of the problem is that the printing code is following chain operands, so if you fail to select an operation with a chain, the printer will follow all the chained operations back to the entry node. llvm-svn: 126899
Diffstat (limited to 'llvm/lib/CodeGen/SplitKit.cpp')
0 files changed, 0 insertions, 0 deletions