llvm-6502/lib
Chandler Carruth 3273c8937b Rather than trying to use the loop block sequence *or* the function
block sequence when recovering from unanalyzable control flow
constructs, *always* use the function sequence. I'm not sure why I ever
went down the path of trying to use the loop sequence, it is
fundamentally not the correct sequence to use. We're trying to preserve
the incoming layout in the cases of unreasonable control flow, and that
is only encoded at the function level. We already have a filter to
select *exactly* the sub-set of blocks within the function that we're
trying to form into a chain.

The resulting code layout is also significantly better because of this.
In several places we were ending up with completely unreasonable control
flow constructs due to the ordering chosen by the loop structure for its
internal storage. This change removes a completely wasteful vector of
basic blocks, saving memory allocation in the common case even though it
costs us CPU in the fairly rare case of unnatural loops. Finally, it
fixes the latest crasher reduced out of GCC's single source. Thanks
again to Benjamin Kramer for the reduction, my bugpoint skills failed at
it.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144627 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-15 06:26:43 +00:00
..
Analysis Refactor capture tracking (which already had a couple flags for whether returns 2011-11-14 22:49:42 +00:00
Archive build: Add initial cut at LLVMBuild.txt files. 2011-11-03 18:53:17 +00:00
AsmParser build: Add initial cut at LLVMBuild.txt files. 2011-11-03 18:53:17 +00:00
Bitcode build: Add initial cut at LLVMBuild.txt files. 2011-11-03 18:53:17 +00:00
CodeGen Rather than trying to use the loop block sequence *or* the function 2011-11-15 06:26:43 +00:00
DebugInfo Audited all the format strings in libDebugInfo and fixed those that didn't match the types. 2011-11-05 16:01:13 +00:00
ExecutionEngine Fixed the MCJIT so that it can emit not only instance 2011-11-12 02:31:32 +00:00
Linker build: Add initial cut at LLVMBuild.txt files. 2011-11-03 18:53:17 +00:00
MC Disable generation of compact unwind encodings. <rdar://problem/10441578> 2011-11-14 18:21:07 +00:00
Object build: Attempt to rectify inconsistencies between CMake and LLVMBuild versions of explicit dependencies. 2011-11-12 02:10:57 +00:00
Support Move WEAK marking to the declaration. 2011-11-15 01:23:22 +00:00
TableGen ARM vldm and vstm VFP instructions can take a data type suffix. 2011-11-11 23:08:10 +00:00
Target Properly qualify AVX2 specific parts of execution dependency table. Also enable converting between 256-bit PS/PD operations when AVX1 is enabled. Fixes PR11370. 2011-11-15 05:55:35 +00:00
Transforms Make headers standalone, move a virtual method out of line. 2011-11-14 17:22:45 +00:00
VMCore Fold ConstantVector::isAllOnesValue into Constant::isAllOnesValue and simplify it. 2011-11-14 19:12:20 +00:00
CMakeLists.txt Move TableGen's parser and entry point into a library 2011-10-01 16:41:13 +00:00
LLVMBuild.txt build: Add initial cut at LLVMBuild.txt files. 2011-11-03 18:53:17 +00:00
Makefile