llvm-6502/lib
Andrew Trick 37aa33bc11 A new algorithm for computing LoopInfo. Temporarily disabled.
-stable-loops enables a new algorithm for generating the Loop
forest. It differs from the original algorithm in a few respects:

- Not determined by use-list order.
- Initially guarantees RPO order of block and subloops.
- Linear in the number of CFG edges.
- Nonrecursive.

I didn't want to change the LoopInfo API yet, so the block lists are
still inclusive. This seems strange to me, and it means that building
LoopInfo is not strictly linear, but it may not be a problem in
practice. At least the block lists start out in RPO order now. In the
future we may add an attribute or wrapper analysis that allows other
passes to assume RPO order.

The primary motivation of this work was not to optimize LoopInfo, but
to allow reproducing performance issues by decomposing the compilation
stages. I'm often unable to do this with the current LoopInfo, because
the loop tree order determines Loop pass order. Serializing the IR
tends to invert the order, which reverses the optimization order. This
makes it nearly impossible to debug interdependent loop optimizations
such as LSR.

I also believe this will provide more stable performance results across time.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158790 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-20 05:23:33 +00:00
..
Analysis A new algorithm for computing LoopInfo. Temporarily disabled. 2012-06-20 05:23:33 +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 switch AttrListPtr::get to take an ArrayRef, simplifying a lot of clients. 2012-05-28 01:47:44 +00:00
Bitcode PR1255: case ranges. 2012-06-02 09:42:43 +00:00
CodeGen A new algorithm for computing LoopInfo. Temporarily disabled. 2012-06-20 05:23:33 +00:00
DebugInfo Fix a C++11 UDL conflict. 2012-04-04 20:33:56 +00:00
ExecutionEngine Disable the right instance of TheJIT, this one is only used in asserts. 2012-06-16 21:55:52 +00:00
Linker Supply a C interface to the "LinkModules" method. 2012-05-09 08:55:40 +00:00
MC Implement irpc. Extracted from a patch by the PaX team. I just added the test. 2012-06-16 18:03:25 +00:00
Object Added accessors for getting coff_relocation info 2012-06-18 19:47:16 +00:00
Support Unbreak the MSVC build: add return to unimplemented functions. 2012-06-20 04:08:49 +00:00
TableGen Emit TableGen's header comment with C-style comments, so it can be used from C89 code. 2012-06-19 17:04:16 +00:00
Target Add DAG-combines for aggressive FMA formation. 2012-06-19 22:51:23 +00:00
Transforms Now that SROA can form alloca's for dynamic vector accesses, further improve it to be able to replace operations on these vector alloca's with insert/extract element insts 2012-06-17 03:58:26 +00:00
VMCore revert r158660, since Chris has some issues with this patch (namely using code to reprent information only used by the compiler) 2012-06-18 23:34:26 +00:00
CMakeLists.txt
LLVMBuild.txt LLVMBuild: Introduce a common section which currently has a list of the 2011-12-12 22:45:54 +00:00
Makefile