summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/MachineVerifier.cpp
diff options
context:
space:
mode:
authorChandler Carruth <chandlerc@gmail.com>2011-11-14 00:00:35 +0000
committerChandler Carruth <chandlerc@gmail.com>2011-11-14 00:00:35 +0000
commit1071cfa4aeb0df203317179a6bda8c4c8a4cc39b (patch)
tree15e80c8d3f20a860e22441e889ce8663e07ece2e /llvm/lib/CodeGen/MachineVerifier.cpp
parent697979028fe9bdc1fb7780617cd7f6def0bc3a51 (diff)
downloadbcm5719-llvm-1071cfa4aeb0df203317179a6bda8c4c8a4cc39b.tar.gz
bcm5719-llvm-1071cfa4aeb0df203317179a6bda8c4c8a4cc39b.zip
Teach machine block placement to cope with unnatural loops. These don't
get loop info structures associated with them, and so we need some way to make forward progress selecting and placing basic blocks. The technique used here is pretty brutal -- it just scans the list of blocks looking for the first unplaced candidate. It keeps placing blocks like this until the CFG becomes tractable. The cost is somewhat unfortunate, it requires allocating a vector of all basic block pointers eagerly. I have some ideas about how to simplify and optimize this, but I'm trying to get the logic correct first. Thanks to Benjamin Kramer for the reduced test case out of GCC. Sadly there are other bugs that GCC is tickling that I'm reducing and working on now. llvm-svn: 144516
Diffstat (limited to 'llvm/lib/CodeGen/MachineVerifier.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud