llvm-project/llvm/lib
Chandler Carruth bed1abf9ca Remove an over zealous assert. The assert was trying to catch places
where a chain outside of the loop block-set ended up in the worklist for
scheduling as part of the contiguous loop. However, asserting the first
block in the chain is in the loop-set isn't a valid check -- we may be
forced to drag a chain into the worklist due to one block in the chain
being part of the loop even though the first block is *not* in the loop.
This occurs when we have been forced to form a chain early due to
un-analyzable branches.

No test case here as I have no idea how to even begin reducing one, and
it will be hopelessly fragile. We have to somehow end up with a loop
header of an inner loop which is a successor of a basic block with an
unanalyzable pair of branch instructions. Ow. Self-host triggers it so
it is unlikely it will regress.

This at least gets block placement back to passing selfhost and the test
suite. There are still a lot of slowdown that I don't like coming out of
block placement, although there are now also a lot of speedups. =[ I'm
seeing swings in both directions up to 10%. I'm going to try to find
time to dig into this and see if we can turn this on for 3.1 as it does
a really good job of cleaning up after some loops that degraded with the
inliner changes.

llvm-svn: 154287
2012-04-08 14:37:02 +00:00
..
Analysis Fix ValueTracking to conclude that debug intrinsics are safe to 2012-04-07 19:22:18 +00:00
Archive Include cstdio in a few place that depended on getting it transitively through StringExtras.h 2012-03-23 11:35:30 +00:00
AsmParser Convert assert(0) to llvm_unreachable 2012-02-07 05:05:23 +00:00
Bitcode llvm::SwitchInst 2012-03-11 06:09:17 +00:00
CodeGen Remove an over zealous assert. The assert was trying to catch places 2012-04-08 14:37:02 +00:00
DebugInfo Fix a C++11 UDL conflict. 2012-04-04 20:33:56 +00:00
ExecutionEngine Removing a file that's no longer being used after the recent refactorings 2012-04-01 06:50:01 +00:00
Linker It's possible for two types, which are isomorphic, to be added to the 2012-03-23 23:17:38 +00:00
MC Output UTF-8-encoded characters as identifier characters into assembly 2012-04-07 00:37:53 +00:00
Object Object: drop bogus VMCore dependency 2012-04-03 15:48:10 +00:00
Support In MemoryBuffer::getOpenFile() make sure that the buffer is null-terminated if 2012-04-05 04:23:56 +00:00
TableGen Fix infinite loop in nested multiclasses. 2012-03-07 16:39:35 +00:00
Target AVX2: Build splat vectors by broadcasting a scalar from the constant pool. 2012-04-08 12:54:54 +00:00
Transforms Teach InstCombine to nuke a common alloca pattern -- an alloca which has 2012-04-08 14:36:56 +00:00
VMCore Remove the 'Parent' pointer from the MDNodeOperand class. 2012-04-08 10:20:49 +00:00
CMakeLists.txt Move TableGen's parser and entry point into a library 2011-10-01 16:41:13 +00:00
LLVMBuild.txt LLVMBuild: Introduce a common section which currently has a list of the 2011-12-12 22:45:54 +00:00
Makefile Remove more of llvmc and dependencies. 2011-09-20 00:34:27 +00:00