History log of /external/llvm/lib/CodeGen/TailDuplication.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
dce4a407a24b04eebc6a376f8e62b41aaa7b071f 29-May-2014 Stephen Hines <srhines@google.com> Update LLVM for 3.5 rebase (r209712).

Change-Id: I149556c940fb7dc92d075273c87ff584f400941f
/external/llvm/lib/CodeGen/TailDuplication.cpp
36b56886974eae4f9c5ebc96befd3e7bfe5de338 24-Apr-2014 Stephen Hines <srhines@google.com> Update to LLVM 3.5a.

Change-Id: Ifadecab779f128e62e430c2b4f6ddd84953ed617
/external/llvm/lib/CodeGen/TailDuplication.cpp
8819c84aed10777ba91d4e862229882b8da0b272 01-Oct-2013 Rafael Espindola <rafael.espindola@gmail.com> Remove several unused variables.

Patch by Alp Toker.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191757 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/TailDuplication.cpp
83d63f8a4dca45d1bba13710c26b4173ace58a65 14-Jul-2013 Tobias Grosser <grosser@fim.uni-passau.de> Fix build by replacing '>>' with '> >'

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186276 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/TailDuplication.cpp
a0ec3f9b7b826b9b40b80199923b664bad808cce 14-Jul-2013 Craig Topper <craig.topper@gmail.com> Use SmallVectorImpl& instead of SmallVector to avoid repeating small vector size.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186274 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/TailDuplication.cpp
0b8c9a80f20772c3793201ab5b251d3520b9cea3 02-Jan-2013 Chandler Carruth <chandlerc@gmail.com> Move all of the header files which are involved in modelling the LLVM IR
into their new header subdirectory: include/llvm/IR. This matches the
directory structure of lib, and begins to correct a long standing point
of file layout clutter in LLVM.

There are still more header files to move here, but I wanted to handle
them in separate commits to make tracking what files make sense at each
layer easier.

The only really questionable files here are the target intrinsic
tablegen files. But that's a battle I'd rather not fight today.

I've updated both CMake and Makefile build systems (I think, and my
tests think, but I may have missed something).

I've also re-sorted the includes throughout the project. I'll be
committing updates to Clang, DragonEgg, and Polly momentarily.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171366 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/TailDuplication.cpp
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/TailDuplication.cpp
7b79b9862c9e6fc31ec072acb09171fd6ec7b0e0 20-Dec-2012 Jakob Stoklund Olesen <stoklund@2pi.dk> Use MachineInstrBuilder in a few CodeGen passes.

This automatically passes a context pointer to MI->addOperand().

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170711 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/TailDuplication.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/TailDuplication.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/TailDuplication.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/TailDuplication.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/TailDuplication.cpp
d14e4e133f940d0c1f454a40f3bd835a8c7a7886 06-Jun-2012 Benjamin Kramer <benny.kra@googlemail.com> Stop leaking RegScavengers from TailDuplication.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158069 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/TailDuplication.cpp
eb25bd2356cca5ef83472b1ae0f764037b82ad82 30-May-2012 Evan Cheng <evan.cheng@apple.com> Teach taildup to update livein set. rdar://11538365

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157663 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/TailDuplication.cpp
0fda545c2c164dc607f48f4b77f54c35bcafa413 20-May-2012 Jakob Stoklund Olesen <stoklund@2pi.dk> Constrain register classes in TailDup.

When rewriting operands, make sure the new registers have a compatible
register class.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157163 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/TailDuplication.cpp
df7e8bd7020c300a3c17f5858d281828a5e0cf87 20-Feb-2012 Evan Cheng <evan.cheng@apple.com> Make post-ra tail duplication bundle safe. No test case as recent codegen
flow changes have already hidden the bug. rdar://10893812


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150949 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/TailDuplication.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/TailDuplication.cpp
d2a7bedbc9d3db35ff424a6a2d257c72341af224 08-Feb-2012 Andrew Trick <atrick@apple.com> Move pass configuration out of pass constructors: TailDuplicate::PreRegAlloc

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150091 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/TailDuplication.cpp
5a96b3dad2f634c9081c8b2b6c2575441dc5a2bd 07-Dec-2011 Evan Cheng <evan.cheng@apple.com> Add bundle aware API for querying instruction properties and switch the code
generator to it. For non-bundle instructions, these behave exactly the same
as the MC layer API.

For properties like mayLoad / mayStore, look into the bundle and if any of the
bundled instructions has the property it would return true.
For properties like isPredicable, only return true if *all* of the bundled
instructions have the property.
For properties like canFoldAsLoad, isCompare, conservatively return false for
bundles.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146026 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/TailDuplication.cpp
7c2a4a30e0e16762c75adacebd05ec9fcbccf16b 06-Dec-2011 Evan Cheng <evan.cheng@apple.com> First chunk of MachineInstr bundle support.
1. Added opcode BUNDLE
2. Taught MachineInstr class to deal with bundled MIs
3. Changed MachineBasicBlock iterator to skip over bundled MIs; added an iterator to walk all the MIs
4. Taught MachineBasicBlock methods about bundled MIs


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145975 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/TailDuplication.cpp
c66d36028b21077aa1715331c22347b47b4da94f 10-Aug-2011 Jakob Stoklund Olesen <stoklund@2pi.dk> Trim an unneeded header.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137184 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/TailDuplication.cpp
6a9d2b13fdc14d19b27776666cf50684bcfddc8d 04-Jul-2011 Rafael Espindola <rafael.espindola@gmail.com> Move most of the pre BB code to TailDuplicateAndUpdate. Change the
HasIndirectbr variable to be just that. No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134371 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/TailDuplication.cpp
c0af352038e43bd51ef3ea11e7d43647e4df42bf 04-Jul-2011 Rafael Espindola <rafael.espindola@gmail.com> Reduce indentation and fix the count of how many PHIs we have inserted.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134370 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/TailDuplication.cpp
e837dead3c8dc3445ef6a0e2322179c57e264a13 28-Jun-2011 Evan Cheng <evan.cheng@apple.com> - Rename TargetInstrDesc, TargetOperandInfo to MCInstrDesc and MCOperandInfo and
sink them into MC layer.
- Added MCInstrInfo, which captures the tablegen generated static data. Chang
TargetInstrInfo so it's based off MCInstrInfo.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134021 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/TailDuplication.cpp
40179bf8748b2729d6c733022428dfa1061325c9 24-Jun-2011 Rafael Espindola <rafael.espindola@gmail.com> Simplify

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133798 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/TailDuplication.cpp
d7f35fa824165eea799a583ff5af678f2d842b87 24-Jun-2011 Rafael Espindola <rafael.espindola@gmail.com> Now that bb with phis are not considered simple, duplicate them even if
we cannot duplicate to every predecessor.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133797 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/TailDuplication.cpp
1f71549a2ef24fc5d0fc9f0bb3b49fda770fe3d2 24-Jun-2011 Rafael Espindola <rafael.espindola@gmail.com> Simplify now that blocks with phis are not considered simple.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133793 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/TailDuplication.cpp
9dbbd87938a0dc2ffe23f4205ec61618e052ca92 23-Jun-2011 Rafael Espindola <rafael.espindola@gmail.com> Move more logic to shouldTailDuplicate and only duplicate regular bb before
register allocation if it has a indirectbr or if we can duplicate it to
every predecessor.

This fixes the SingleSource/Benchmarks/Shootout-C++/matrix.cpp regression but
keeps the previous improvements to sunspider.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133682 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/TailDuplication.cpp
d6379a993c7e40521bd5c8c6469e32697b4c41d1 23-Jun-2011 Rafael Espindola <rafael.espindola@gmail.com> Reenable tail duplication of bb with just an unconditional jump, but
don't remove blocks that have their address taken.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133659 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/TailDuplication.cpp
f78b5952c30b69c764ff48270eb56540a3fa56f3 22-Jun-2011 Chad Rosier <mcrosier@apple.com> Revert r133607. This is causing failures in the Clang gccTestSuite.
Specifically, gcc.c-torture/compile/pr21356.c.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133646 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/TailDuplication.cpp
c9be25726114b43ac03a4f8f84b537c21ee2bd6d 22-Jun-2011 Rafael Espindola <rafael.espindola@gmail.com> Reenable the optimization added in 133415, but change the definition of a "simple" bb to
be one with only one unconditional branch and no phis. Duplicating the phis in this case
is possible, but requeres liveness analysis or breaking edges.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133607 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/TailDuplication.cpp
b87e37f1b1ce76e34ac1d2c22fd6c22f900f28be 20-Jun-2011 Rafael Espindola <rafael.espindola@gmail.com> Disable again.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133446 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/TailDuplication.cpp
689c24768bce1a3bf33b47559e9398525d11142d 20-Jun-2011 Rafael Espindola <rafael.espindola@gmail.com> Re enable 133415 with two fixes
* Don't introduce a duplicated bb in the CFG
* When making a branch unconditional, clear the PredCond array so that it
is really unconditional.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133432 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/TailDuplication.cpp
2ee2d932328522267d845402e8b31d1d06f8bdd1 20-Jun-2011 Duncan Sands <baldrick@free.fr> Disable the logic added by rafael in commit 133415 to see if it brings the
dragonegg buildbots back to life. Original commit message:
Teach early dup how to duplicate basic blocks with one successor and only phi instructions
into more complex blocks.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133430 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/TailDuplication.cpp
289a27946fc11ae6b5a9aa517639d94efa4d91d9 20-Jun-2011 Francois Pichet <pichet2000@gmail.com> Fix MSVC build. next() function already exists in the MSVC headers. This create a overload conflict. Make sure we pick up the llvm one.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133416 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/TailDuplication.cpp
275c1f9f93bf71bcf97fe0315bbd9b86dd020177 20-Jun-2011 Rafael Espindola <rafael.espindola@gmail.com> Teach early dup how to duplicate basic blocks with one successor and only phi instructions
into more complex blocks.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133415 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/TailDuplication.cpp
db3983bd762a53f197f6c8a6de401974f39f4789 17-Jun-2011 Rafael Espindola <rafael.espindola@gmail.com> Two fixes relating to debug value:
* We should change the generated code because of a debug use.
* Avoid creating debug uses of undef, as they become a kill.
Test to follow.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133255 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/TailDuplication.cpp
ec324e5ae44025c6bdb930b78198f30f807e355b 17-Jun-2011 Rafael Espindola <rafael.espindola@gmail.com> Enable early duplication of small blocks. There are still improvements to
be made, but this is already a win.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133240 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/TailDuplication.cpp
33b465877255cc75241216817247c61374958a36 10-Jun-2011 Rafael Espindola <rafael.espindola@gmail.com> Removed tabs. Also fixed my editor...

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132857 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/TailDuplication.cpp
9a9a3a5c0fff9647a7a6454d974c058a4fb187d7 10-Jun-2011 Rafael Espindola <rafael.espindola@gmail.com> Remove duplicated test.
Thanks Bob Wilson for noticing it!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132851 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/TailDuplication.cpp
d3f4eeaec177ed34a54fede9faea4ffa94c4d0af 10-Jun-2011 Rafael Espindola <rafael.espindola@gmail.com> Make the optional verification step more strict.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132822 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/TailDuplication.cpp
4d7b4573f97157877f6875b69c9d32b2cb8c5329 10-Jun-2011 Rafael Espindola <rafael.espindola@gmail.com> Avoid a gcc warning about multiline comments.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132821 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/TailDuplication.cpp
689d7d5dffc02993eef367be3380f2b4c49e434f 10-Jun-2011 Rafael Espindola <rafael.espindola@gmail.com> On last fix to the early tail duplication.

With this I am able to bootstrap clang with early tail duplication enabled
for any small bb and setting tail-dup-size to a relatively large value(8) to
stress this code.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132816 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/TailDuplication.cpp
0f28c3f0c30769c1a96e5664eea4acbc48eed6a4 10-Jun-2011 Rafael Espindola <rafael.espindola@gmail.com> Also consider phi nodes when deciding if a register is live out.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132814 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/TailDuplication.cpp
a899b223109ca5dba7b44439e955148a03f23d4c 09-Jun-2011 Rafael Espindola <rafael.espindola@gmail.com> AnalyzeBranch modifies the bb, but we don't want to modify a bb with
eh edges. Swap the order of the checks to avoid it.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132806 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/TailDuplication.cpp
c2e9a50dfb523964bd9d7598ee27b37669f9a5b8 09-Jun-2011 Rafael Espindola <rafael.espindola@gmail.com> A PHI in this basic block is a use in another basic block.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132805 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/TailDuplication.cpp
54c256233f8dcd29406d5fe6f8a5be79a826cef3 09-Jun-2011 Rafael Espindola <rafael.espindola@gmail.com> Refactor some checks into shouldTailDuplicate. Update comments.
No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132798 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/TailDuplication.cpp
d69f85eb416c08e5f803bffccd974745be3d1b2e 08-Jun-2011 Rafael Espindola <rafael.espindola@gmail.com> Fix count.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132749 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/TailDuplication.cpp
0cdca089b289845664d660f0b285499800822919 08-Jun-2011 Rafael Espindola <rafael.espindola@gmail.com> Count how many phis we are creating.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132748 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/TailDuplication.cpp
c8b90e22a8f2987126a7e2e841adc8db9776521c 04-Feb-2011 Evan Cheng <evan.cheng@apple.com> Update comments.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124843 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/TailDuplication.cpp
8352062e52eed6e50786fdb89f5e601fdcbe0d90 30-Jan-2011 Jakob Stoklund Olesen <stoklund@2pi.dk> Respect the -tail-dup-size command line option even when optimizing for size.

This is similar to the -unroll-threshold option. There should be no change in
behavior when -tail-dup-size is not explicit on the llc command line.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124564 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/TailDuplication.cpp
c3f507f98a0747bd256e1c13536060b6fc5c4b62 29-Jan-2011 Evan Cheng <evan.cheng@apple.com> Re-apply r124518 with fix. Watch out for invalidated iterator.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124526 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/TailDuplication.cpp
b0a42fdb36b575a8ad939ca9624105908aeedf51 29-Jan-2011 Evan Cheng <evan.cheng@apple.com> Revert r124518. It broke Linux self-host.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124522 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/TailDuplication.cpp
5e6940788fb2f8cf3ce4219d3ac0f78317f54696 29-Jan-2011 Evan Cheng <evan.cheng@apple.com> Re-commit r124462 with fixes. Tail recursion elim will now dup ret into unconditional predecessor to enable TCE on demand.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124518 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/TailDuplication.cpp
1b5c0cb71dd9d529a14cedb4bd89d544bf7e61c3 28-Jan-2011 Evan Cheng <evan.cheng@apple.com> Revert r124462. There are a few big regressions that I need to fix first.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124478 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/TailDuplication.cpp
40f64cb0de40802ddd2f928b62e9564e1e721ff3 28-Jan-2011 Evan Cheng <evan.cheng@apple.com> - Stop simplifycfg from duplicating "ret" instructions into unconditional
branches. PR8575, rdar://5134905, rdar://8911460.
- Allow codegen tail duplication to dup small return blocks after register
allocation is done.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124462 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/TailDuplication.cpp
c9df025e33ac435adb3b3318d237c36ca7cec659 10-Jan-2011 Jakob Stoklund Olesen <stoklund@2pi.dk> Simplify a bunch of isVirtualRegister() and isPhysicalRegister() logic.

These functions not longer assert when passed 0, but simply return false instead.

No functional change intended.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123155 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/TailDuplication.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/TailDuplication.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/TailDuplication.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/TailDuplication.cpp
04c528a0c86ddf3d6a70681f72e1b2ec07b0b53a 16-Jul-2010 Jakob Stoklund Olesen <stoklund@2pi.dk> Remove many calls to TII::isMoveInstr. Targets should be producing COPY anyway.

TII::isMoveInstr is going tobe completely removed.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108507 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/TailDuplication.cpp
1e1098c6f39590e1e74e5cb3c2a1652d8f3cb16a 11-Jul-2010 Jakob Stoklund Olesen <stoklund@2pi.dk> Replace copyRegToReg with COPY everywhere in lib/CodeGen except for FastISel.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108062 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/TailDuplication.cpp
34dcc6fadca0a1117cdbd0e9b35c991a55b6e556 06-May-2010 Dan Gohman <gohman@apple.com> Add a DebugLoc argument to TargetInstrInfo::copyRegToReg, so that it
doesn't have to guess.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103194 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/TailDuplication.cpp
cbe1e31732c5d4fb1277195e76b9b42c115396aa 16-Mar-2010 Devang Patel <dpatel@apple.com> Ignore debug value instructions while analyzing BB for tail duplication.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98675 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/TailDuplication.cpp
18589de9b1b8c157dea602653042e486128dd9e4 14-Mar-2010 Chris Lattner <sabre@nondot.org> eliminate InvalidateLabel and LabelIDList from MMI and replace
them with a counter.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98462 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/TailDuplication.cpp
09eeac9f5f8c21621f82f9b6598eb7e34593357e 11-Feb-2010 Jakob Stoklund Olesen <stoklund@2pi.dk> Reuse operand location when updating PHI instructions.

Calling RemoveOperand is very expensive on huge PHI instructions. This makes
early tail duplication run twice as fast on the Firefox JavaScript
interpreter.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95832 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/TailDuplication.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/TailDuplication.cpp
cb44b28f4d96c059d30c1a77d3b7e406d362d94e 16-Jan-2010 Bob Wilson <bob.wilson@apple.com> Treat indirect branches specially only during pre-regalloc tail duplication,
not during the later post-alloc tail duplication.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93600 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/TailDuplication.cpp
057d53993c8f5ae3b5d8b5357c8c1ec6cc6d63ee 15-Jan-2010 Jakob Stoklund Olesen <stoklund@2pi.dk> Simplify logic. Any functional change is unintended.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93540 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/TailDuplication.cpp
bfdcf3bd49f50050fe98523f882b2241d2752fb4 15-Jan-2010 Bob Wilson <bob.wilson@apple.com> Change pre-regalloc tail duplication to only duplicate indirect branch blocks.
The pre-regalloc pass caused some regressions in both compile time and
performance of the generated code, and it did not improve performance, except
for indirect branches. I also moved the check for single-block loops to speed
up the common case when running the taildup pass before reg allocation.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93505 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/TailDuplication.cpp
30ac0467ced4627a9b84d8a1d3ca5e8706ddad63 07-Jan-2010 Jakob Stoklund Olesen <stoklund@2pi.dk> Add Target hook to duplicate machine instructions.

Some instructions refer to unique labels, and so cannot be trivially cloned
with CloneMachineInstr.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92873 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/TailDuplication.cpp
00dec1bbf9ad44af7b5b7ae669cae78b79a09c56 05-Jan-2010 David Greene <greened@obbligato.org> Change errs() to dbgs().

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92582 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/TailDuplication.cpp
3466f13f38b2f3e652cca82bd5da8527e72e195d 15-Dec-2009 Evan Cheng <evan.cheng@apple.com> Tail duplication should zap a copy it inserted for SSA update if the copy is the only use of its source.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91390 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/TailDuplication.cpp
80564f761aafad4b5630d04dce6eb65499d5a01e 07-Dec-2009 Evan Cheng <evan.cheng@apple.com> Delete code accidentally left behind.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90804 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/TailDuplication.cpp
75eb53584367098a5625028e22f1ff8e169d0efd 07-Dec-2009 Evan Cheng <evan.cheng@apple.com> Pre-regalloc tale duplication. Work in progress.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90759 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/TailDuplication.cpp
11572babb12d169965c63c47aab9c9fad354e5df 04-Dec-2009 Evan Cheng <evan.cheng@apple.com> Handle recursive PHI's.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90575 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/TailDuplication.cpp
79fc6f44b64f47b8a7d5e298c9f3c596b89fa88d 04-Dec-2009 Evan Cheng <evan.cheng@apple.com> Add a pre-regalloc tail duplication pass.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90567 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/TailDuplication.cpp
111e7629cc84dad39d6b546871cdec3740b22781 03-Dec-2009 Evan Cheng <evan.cheng@apple.com> Teach tail duplication to update SSA form. Work in progress.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90432 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/TailDuplication.cpp
f1e01dcc94fde6b1e184dc799df7145aed34a18b 02-Dec-2009 Bob Wilson <bob.wilson@apple.com> Don't count PHI instructions toward the limit for tail duplicating a block.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90326 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/TailDuplication.cpp
3858225afc2a7f1027dce34dc72de5686b636c2d 30-Nov-2009 Bob Wilson <bob.wilson@apple.com> Reprioritize tests for tail duplication to be aggressive about indirect
branches even when optimizing for code size. Unless we find evidence to the
contrary in the future, the special treatment for indirect branches does not
have a significant effect on code size, and performance still matters with -Os.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90147 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/TailDuplication.cpp
15217e63bce6c161b355b63d6496c7c327d15817 30-Nov-2009 Bob Wilson <bob.wilson@apple.com> Remove isProfitableToDuplicateIndirectBranch target hook. It is profitable
for all the processors where I have tried it, and even when it might not help
performance, the cost is quite low. The opportunities for duplicating
indirect branches are limited by other factors so code size does not change
much due to tail duplicating indirect branches aggressively.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90144 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/TailDuplication.cpp
2d521e51acd5f1a0100cbbe4c611a35c978c2456 26-Nov-2009 Bob Wilson <bob.wilson@apple.com> Rename new TailDuplicationPass to avoid name conflict with the old one.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89968 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/TailDuplication.cpp
15acadde5f87703da5f36721a19c09a7e3f97f53 26-Nov-2009 Bob Wilson <bob.wilson@apple.com> Split tail duplication into a separate pass. This is needed to avoid
running tail duplication when doing branch folding for if-conversion, and
we also want to be able to run tail duplication earlier to fix some
reg alloc problems. Move the CanFallThrough function from BranchFolding
to MachineBasicBlock so that it can be shared by TailDuplication.


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