llvm/lib
Chandler Carruth 4a85cc982a Add loop aligning to MachineBlockPlacement based on review discussion so
it's a bit more plausible to use this instead of CodePlacementOpt. The
code for this was shamelessly stolen from CodePlacementOpt, and then
trimmed down a bit. There doesn't seem to be much utility in returning
true/false from this pass as we may or may not have rewritten all of the
blocks. Also, the statistic of counting how many loops were aligned
doesn't seem terribly important so I removed it. If folks would like it
to be included, I'm happy to add it back.

This was probably the most egregious of the missing features, and now
I'm going to start gathering some performance numbers and looking at
specific loop structures that have different layout between the two.

Test is updated to include both basic loop alignment and nested loop
alignment.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142645 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-21 08:57:37 +00:00
..
Analysis A FIXME about block addresses and indirectbr. 2011-10-20 04:05:33 +00:00
Archive
AsmParser Backing out patch. Will refactor to remove the AsmParser dependency on Target. 2011-10-18 00:23:49 +00:00
Bitcode
CodeGen Add loop aligning to MachineBlockPlacement based on review discussion so 2011-10-21 08:57:37 +00:00
DebugInfo lib/DebugInfo/DWARFDebugLine.cpp: De-Unicode-ify. 2011-10-08 11:22:47 +00:00
ExecutionEngine Adding dependencies to allow -DBUILD_SHARED_LIBS=true to complete. 2011-10-19 00:13:13 +00:00
Linker Allow the source module to be materialized during the linking process. 2011-10-14 22:17:46 +00:00
MC Fix parsing of a line with only a # in it. 2011-10-19 18:48:52 +00:00
Object Object/COFF: Remove useless test. 2011-10-18 19:51:36 +00:00
Support Remove unused include of sys/uio.h in MemoryBuffer.cpp. It was not correctly protected by ifdef either. 2011-10-20 21:57:46 +00:00
TableGen Implement Paste 2011-10-19 13:04:43 +00:00
Target Remove intrinsics for X86 BLSI, BLSMSK, and BLSR intrinsics and replace with custom isel lowering code. 2011-10-21 06:55:01 +00:00
Transforms Refactor code from inlining and globalopt that checks whether a function definition is unused, and enhance it so it can tell that functions which are only used by a blockaddress are in fact dead. This probably doesn't happen much on most code, but the Linux kernel's _THIS_IP_ can trigger this issue with blockaddress. (GlobalDCE can also handle the given tescase, but we only run that at -O3.) Found while looking at PR11180. 2011-10-20 05:23:42 +00:00
VMCore Refactor code from inlining and globalopt that checks whether a function definition is unused, and enhance it so it can tell that functions which are only used by a blockaddress are in fact dead. This probably doesn't happen much on most code, but the Linux kernel's _THIS_IP_ can trigger this issue with blockaddress. (GlobalDCE can also handle the given tescase, but we only run that at -O3.) Found while looking at PR11180. 2011-10-20 05:23:42 +00:00
CMakeLists.txt
Makefile