History log of /external/llvm/lib/CodeGen/CodePlacementOpt.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
831737d329a727f53a1fb0572f7b7a8127208881 30-Dec-2012 Bill Wendling <isanbard@gmail.com> Remove the Function::getFnAttributes method in favor of using the AttributeSet
directly.

This is in preparation for removing the use of the 'Attribute' class as a
collection of attributes. That will shift to the AttributeSet class instead.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171253 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/CodePlacementOpt.cpp
034b94b17006f51722886b0f2283fb6fb19aca1f 19-Dec-2012 Bill Wendling <isanbard@gmail.com> Rename the 'Attributes' class to 'Attribute'. It's going to represent a single attribute in the future.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170502 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/CodePlacementOpt.cpp
d04a8d4b33ff316ca4cf961e06c9e312eff8e64f 03-Dec-2012 Chandler Carruth <chandlerc@gmail.com> Use the new script to sort the includes of every file under lib.

Sooooo many of these had incorrect or strange main module includes.
I have manually inspected all of these, and fixed the main module
include to be the nearest plausible thing I could find. If you own or
care about any of these source files, I encourage you to take some time
and check that these edits were sensible. I can't have broken anything
(I strictly added headers, and reordered them, never removed), but they
may not be the headers you'd really like to identify as containing the
API being implemented.

Many forward declarations and missing includes were added to a header
files to allow them to parse cleanly when included first. The main
module rule does in fact have its merits. =]

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169131 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/CodePlacementOpt.cpp
6765834754cbb3cb0f15b4b15e98c5e73fa50066 09-Oct-2012 Bill Wendling <isanbard@gmail.com> Create enums for the different attributes.

We use the enums to query whether an Attributes object has that attribute. The
opaque layer is responsible for knowing where that specific attribute is stored.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165488 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/CodePlacementOpt.cpp
2c189061184925c6a8ecbb5a19e648b230a41c0e 26-Sep-2012 Bill Wendling <isanbard@gmail.com> Remove the `hasFnAttr' method from Function.

The hasFnAttr method has been replaced by querying the Attributes explicitly. No
intended functionality change.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164725 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/CodePlacementOpt.cpp
d9b0b025612992a0b724eeca8bdf10b1d7a5c355 02-Jun-2012 Benjamin Kramer <benny.kra@googlemail.com> Fix typos found by http://github.com/lyda/misspell-check

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157885 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/CodePlacementOpt.cpp
1dd8c8560d45d36a8e507cd014352f1d313f9f9e 08-Feb-2012 Andrew Trick <atrick@apple.com> Codegen pass definition cleanup. No functionality.

Moving toward a uniform style of pass definition to allow easier target configuration.
Globally declare Pass ID.
Globally declare pass initializer.
Use INITIALIZE_PASS consistently.
Add a call to the initializer from CodeGen.cpp.
Remove redundant "createPass" functions and "getPassName" methods.

While cleaning up declarations, cleaned up comments (sorry for large diff).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150100 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/CodePlacementOpt.cpp
7a2bdde0a0eebcd2125055e0eacaca040f0b766c 15-Apr-2011 Chris Lattner <sabre@nondot.org> Fix a ton of comment typos found by codespell. Patch by
Luis Felipe Strano Moraes!



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129558 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/CodePlacementOpt.cpp
f7af396c9571e4efe944c5bf739bce667f99556a 02-Mar-2011 Cameron Zwarich <zwarich@apple.com> Fix some typos.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126829 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/CodePlacementOpt.cpp
90c579de5a383cee278acc3f7e7b9d0a656e6a35 06-Aug-2010 Owen Anderson <resistor@mac.com> Reapply r110396, with fixes to appease the Linux buildbot gods.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110460 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/CodePlacementOpt.cpp
1f74590e9d1b9cf0f1f81a156efea73f76546e05 06-Aug-2010 Owen Anderson <resistor@mac.com> Revert r110396 to fix buildbots.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110410 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/CodePlacementOpt.cpp
9ccaf53ada99c63737547c0235baeb8454b04e80 06-Aug-2010 Owen Anderson <resistor@mac.com> Don't use PassInfo* as a type identifier for passes. Instead, use the address of the static
ID member as the sole unique type identifier. Clean up APIs related to this change.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110396 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/CodePlacementOpt.cpp
ba1fe142450f46b44deccb21c8b422bc02b32d8b 08-Jun-2010 Dan Gohman <gohman@apple.com> Add some basic debug output.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105561 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/CodePlacementOpt.cpp
49d7f8d341a7b4137c674ce0f08f5b18e8195f4a 18-Feb-2010 Dan Gohman <gohman@apple.com> Make CodePlacementOpt detect special EH control flow by
checking whether AnalyzeBranch disagrees with the CFG
directly, rather than looking for EH_LABEL instructions.
EH_LABEL instructions aren't always at the end of the
block, due to FP_REG_KILL and other things. This fixes
an infinite loop compiling MultiSource/Benchmarks/Bullet.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96611 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/CodePlacementOpt.cpp
f3b11aa6a72e0c31066a60c2e888e7a5eb5f2399 10-Feb-2010 Dan Gohman <gohman@apple.com> Fix several comments which had previously been "the the" where a
different word was intended.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95795 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/CodePlacementOpt.cpp
f451cb870efcf9e0302d25ed05f4cac6bb494e42 10-Feb-2010 Dan Gohman <gohman@apple.com> Fix "the the" and similar typos.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95781 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/CodePlacementOpt.cpp
518bb53485df640d7b7e3f6b0544099020c42aa7 09-Feb-2010 Chris Lattner <sabre@nondot.org> move target-independent opcodes out of TargetInstrInfo
into TargetOpcodes.h. #include the new TargetOpcodes.h
into MachineInstr. Add new inline accessors (like isPHI())
to MachineInstr, and start using them throughout the
codebase.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95687 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/CodePlacementOpt.cpp
ebc0c8cc6dc5716c554775fe0514fd3e4a4d3db9 25-Dec-2009 Bill Wendling <isanbard@gmail.com> Remove dead store.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92157 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/CodePlacementOpt.cpp
7896c9f436a4eda5ec15e882a7505ba482a2fcd0 03-Dec-2009 Chris Lattner <sabre@nondot.org> improve portability to avoid conflicting with std::next in c++'0x.
Patch by Howard Hinnant!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90365 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/CodePlacementOpt.cpp
7707a0df5b00c8326a581205639d6b2871f182e9 12-Nov-2009 Jim Grosbach <grosbach@apple.com> Move the utility function UpdateTerminator() from CodePlacementOpt() into
MachineBasicBlock so other passes can utilize it.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86947 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/CodePlacementOpt.cpp
07adb85cb7f97968b3b9a102e5fa504a5f6ac682 20-Oct-2009 Dan Gohman <gohman@apple.com> Re-apply r84295, with fixes to how the loop "top" and "bottom" blocks are
tracked. Instead of trying to manually keep track of these locations
while doing complex modifications, just recompute them when they're needed.
This fixes a bug in which the TopMBB and BotMBB were not correctly updated,
leading to invalid transformations.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84598 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/CodePlacementOpt.cpp
766fc1db1640499c6affce80e7337d8c22dc8cb1 19-Oct-2009 Anton Korobeynikov <asl@math.spbu.ru> Revert r84295, this unbreaks llvm-gcc bootstrap on x86-64/linux

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84516 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/CodePlacementOpt.cpp
c499e32b371faf02cbd17e03bad2a42b93ade82a 18-Oct-2009 Daniel Dunbar <daniel@zuster.org> Fix my -Asserts warning fix.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84372 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/CodePlacementOpt.cpp
afc158780089a3d9c1bfe78de77855dfdd901bd0 17-Oct-2009 Daniel Dunbar <daniel@zuster.org> Suppress -Asserts warning.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84327 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/CodePlacementOpt.cpp
3bdd8de2806e47f34369c1e6ce6e6b44a135bd29 17-Oct-2009 Dan Gohman <gohman@apple.com> Enhance CodePlacementOpt's unconditional intra-loop branch elimination logic
to be more general and understand more varieties of loops.

Teach CodePlacementOpt to reorganize the basic blocks of a loop so that
they are contiguous. This also includes a fair amount of logic for preserving
fall-through edges while doing so. This fixes a BranchFolding-ism where blocks
which can't be made to use a fall-through edge and don't conveniently fit
anywhere nearby get tossed out to the end of the function.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84295 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/CodePlacementOpt.cpp
cd2ae14ce3f16f0cef162aa85707f32295c4ee3d 15-Oct-2009 Dan Gohman <gohman@apple.com> Make CodePlacementOpt align loops, rather than loop headers. The
header is just the entry block to the loop, and it needn't be at
the top of the loop in the code layout.

Remove the code that suppressed loop alignment for outer loops,
so that outer loops are aligned.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84158 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/CodePlacementOpt.cpp
bd31b173d276cb488b5fa72de8d42ae192cbfc97 07-Oct-2009 Dan Gohman <gohman@apple.com> Fix this comment. The loop header is the loop entry point.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83437 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/CodePlacementOpt.cpp
8ad05c4bdf2739742131adbab247e5c8ee0df857 18-May-2009 Bob Wilson <bob.wilson@apple.com> Fix CodePlacementOpt::OptimizeIntraLoopEdges so that its return value
correctly indicates whether it changed the code.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72038 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/CodePlacementOpt.cpp
6ebf7bc7405ee79d27d50b70f0c1a474cbea820d 13-May-2009 Evan Cheng <evan.cheng@apple.com> Run code placement optimization for targets that want it (arm and x86 for now).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71726 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/CodePlacementOpt.cpp
9d3094b38e51c85e93fc5a9c8ab23c95b73f78d4 13-May-2009 Evan Cheng <evan.cheng@apple.com> If header of inner loop is aligned, do not align the outer loop header. We don't want to add nops in the outer loop for the sake of aligning the inner loop.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71609 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/CodePlacementOpt.cpp
74b0ccc577062a25b8b3ab99b13cd1efa6e3a75a 12-May-2009 Bob Wilson <bob.wilson@apple.com> Fix pr4195: When iterating through predecessor blocks, break out of the loop
after finding the (unique) layout predecessor. Sometimes a block may be listed
more than once, and processing it more than once in this loop can lead to
inconsistent values for FtTBB/FtFBB, since the AnalyzeBranch method does not
clear these values. There's no point in continuing the loop regardless.
The testcase for this is reduced from the 2003-05-02-DependentPHI SingleSource
test.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71536 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/CodePlacementOpt.cpp
5374405dc12673e6c07869132faf7b837e95dc79 09-May-2009 Evan Cheng <evan.cheng@apple.com> Oops. Don't forget to align single bb loops.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71363 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/CodePlacementOpt.cpp
f045f80ba9af29fc8e0409201ad66c8f2e1a527c 09-May-2009 Evan Cheng <evan.cheng@apple.com> Enable loop bb placement optimization.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71291 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/CodePlacementOpt.cpp
0269d3cbf37227c48b7ce0f9710f0c6a15ff6fa9 08-May-2009 Evan Cheng <evan.cheng@apple.com> Don't align loop header unless the loop back edge is below the header.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71242 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/CodePlacementOpt.cpp
4b7f7a6e1f3eacf116472c1b0d0eaddf01fa4495 08-May-2009 Evan Cheng <evan.cheng@apple.com> Reverse branch condition only when there is a conditional branch.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71214 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/CodePlacementOpt.cpp
0ab2dcee5bf751211ca1fc49decb1540b4cb427c 08-May-2009 Nick Lewycky <nicholas@mxc.ca> Add explicit braces to disambiguate nested if/else. Removes a warning.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71211 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/CodePlacementOpt.cpp
45e0010e14d419ebeca9266b9b705867fd251b83 08-May-2009 Evan Cheng <evan.cheng@apple.com> Optimize code placement in loop to eliminate unconditional branches or move unconditional branch to the outside of the loop. e.g.

/// A:
/// ...
/// <fallthrough to B>
///
/// B: --> loop header
/// ...
/// jcc <cond> C, [exit]
///
/// C:
/// ...
/// jmp B
///
/// ==>
///
/// A:
/// ...
/// jmp B
///
/// C: --> new loop header
/// ...
/// <fallthough to B>
///
/// B:
/// ...
/// jcc <cond> C, [exit]


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71209 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/CodePlacementOpt.cpp
7132e12ee5658aa2b8ba6cdd81adb7944ddcb33e 07-May-2009 Evan Cheng <evan.cheng@apple.com> Code refactoring.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71151 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/CodePlacementOpt.cpp
bbf1db72133e9cf986e4da6260736335533067db 07-May-2009 Evan Cheng <evan.cheng@apple.com> Rename "loop aligner" pass to "code placement optimization" pass.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71150 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/CodePlacementOpt.cpp