cddc3e03e4ec99c0268c03a126195173e519ed58 |
|
04-Mar-2016 |
Pirama Arumuga Nainar <pirama@google.com> |
Update aosp/master LLVM for rebase to r256229 http://b/26987366 (cherry picked from commit f3ef5332fa3f4d5ec72c178a2b19dac363a19383) Change-Id: Ic75dcb63191d65df1b69724576392c0aaeb47728
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
6948897e478cbd66626159776a8017b3c18579b9 |
|
01-Jul-2015 |
Pirama Arumuga Nainar <pirama@google.com> |
Update aosp/master LLVM for rebase to r239765 Bug: 20140355: This rebase pulls the upstream fix for the spurious warnings mentioned in the bug. Change-Id: I7fd24253c50f4d48d900875dcf43ce3f1721a3da
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
4c5e43da7792f75567b693105cc53e3f1992ad98 |
|
08-Apr-2015 |
Pirama Arumuga Nainar <pirama@google.com> |
Update aosp/master llvm for rebase to r233350 Change-Id: I07d935f8793ee8ec6b7da003f6483046594bca49
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
37ed9c199ca639565f6ce88105f9e39e898d82d0 |
|
01-Dec-2014 |
Stephen Hines <srhines@google.com> |
Update aosp/master LLVM for rebase to r222494. Change-Id: Ic787f5e0124df789bd26f3f24680f45e678eef2d
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
dce4a407a24b04eebc6a376f8e62b41aaa7b071f |
|
29-May-2014 |
Stephen Hines <srhines@google.com> |
Update LLVM for 3.5 rebase (r209712). Change-Id: I149556c940fb7dc92d075273c87ff584f400941f
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
9e639e8fd95488cb4c8ef2f7f3a41919acb29ac4 |
|
11-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@186098 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
f22fd3f7b557a967b1edc1fa9ae770006a39e97c |
|
03-Jul-2013 |
Craig Topper <craig.topper@gmail.com> |
Use SmallVectorImpl instead of SmallVector for iterators and references to avoid specifying the vector size unnecessarily. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185512 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
5cc3c989fc4295103ee46a2697e82dc1c4453545 |
|
23-May-2013 |
Chad Rosier <mcrosier@apple.com> |
Simplify logic now that r182490 is in place. No functional change intended. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182526 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
b45e4deb102d47602f5b941da7f412ecc9a867e9 |
|
05-Feb-2013 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove special-casing of return blocks for liveness. Now that return value registers are return instruction uses, there is no need for special treatment of return blocks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174416 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.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/LiveVariables.cpp
|
fb9ebbf236974beac31705eaeb9f50ab585af6ab |
|
15-Oct-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Switch most getReservedRegs() clients to the MRI equivalent. Using the cached bit vector in MRI avoids comstantly allocating and recomputing the reserved register bit vector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165983 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
b720be6a50f4e1b3280d2b029ee38dda14577525 |
|
12-Sep-2012 |
Manman Ren <mren@apple.com> |
Release build: guard dump functions with "#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)" No functional change. Update r163339. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163653 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
11b450589978a39e59b77cd074dcda9d5697f174 |
|
09-Sep-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
LiveVariables: Compute a set of defs and kills to speed up updating LV during critical edge splitting. Previously we checked if the register is def'd in a block via the def/use list a nd walked the list of kills to check if the register is killed in a block. Both of these checks can be made much cheaper by walking the block first and recording all defs and kills. This reduces the compile time of the test case from PR13651 from 40s to 15s at -O2. The compile time is still dominated by LV updating but now the main culprit is SparseBitVector's slowness. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163478 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
77e300e8f0b8db8eec448cae9c87d7c5bfad9757 |
|
06-Sep-2012 |
Manman Ren <mren@apple.com> |
Release build: guard dump functions with "ifndef NDEBUG" No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163339 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
7806c0778f22552ebe6711f3dc43887dc6097bfc |
|
23-Jun-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Teach LiveVariables to handle <undef> operands. It's simple: Don't treat <undef> operands as uses, and don't assume a virtual register has a defining instruction unless a real use has been seen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159061 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
396618b43a85e12d290a90b181c6af5d7c0c5f11 |
|
02-Jun-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Switch all register list clients to the new MC*Iterator interface. No functional change intended. Sorry for the churn. The iterator classes are supposed to help avoid giant commits like this one in the future. The TableGen-produced register lists are getting quite large, and it may be necessary to change the table representation. This makes it possible to do so without changing all clients (again). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157854 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
16d6eae08209251a31dae638908c79bd39620c91 |
|
01-Apr-2012 |
Lang Hames <lhames@gmail.com> |
Fix typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153846 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
9ab3dbe617af06627fed2455c93ab9dc6b459951 |
|
10-Mar-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Assert on SSA errors in LiveVariables. All uses of a virtual register must be dominated by its def. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152449 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
9ebfbf8b9fd5f982e0db9293808bd32168615ba9 |
|
05-Mar-2012 |
Craig Topper <craig.topper@gmail.com> |
Convert more GenRegisterInfo tables from unsigned to uint16_t to reduce static data size. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152016 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
8dd26253f54247e77e5accfdd70e7b4bf27b39c2 |
|
10-Feb-2012 |
Andrew Trick <atrick@apple.com> |
RegAlloc superpass: includes phi elimination, coalescing, and scheduling. Creates a configurable regalloc pipeline. Ensure specific llc options do what they say and nothing more: -reglloc=... has no effect other than selecting the allocator pass itself. This patch introduces a new umbrella flag, "-optimize-regalloc", to enable/disable the optimizing regalloc "superpass". This allows for example testing coalscing and scheduling under -O0 or vice-versa. When a CodeGen pass requires the MachineFunction to have a particular property, we need to explicitly define that property so it can be directly queried rather than naming a specific Pass. For example, to check for SSA, use MRI->isSSA, not addRequired<PHIElimination>. CodeGen transformation passes are never "required" as an analysis ProcessImplicitDefs does not require LiveVariables. We have a plan to massively simplify some of the early passes within the regalloc superpass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150226 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
8247e0dca6759d9a22ac4c5cf305fac052b285ac |
|
03-Feb-2012 |
Andrew Trick <atrick@apple.com> |
whitespace git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149671 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
7423db2dcf3434e74456e379751459f0d579da46 |
|
21-Jan-2012 |
Evan Cheng <evan.cheng@apple.com> |
Fix an obvious typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148622 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
8c47ad8c4708286bda9362f8089f84a3d7e41056 |
|
21-Jan-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Handle register masks in LiveVariables. A register mask operand kills any live physreg that isn't preserved. Unlike an implicit-def operand, the clobbered physregs are never live afterwards. This means LiveVariables has to track a much smaller number of live physregs, and it should spend much less time in addRegisterDead(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148609 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
4888d5e98c7ae1fed28e41d75a65ddf70b25b03d |
|
20-Jan-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Delete an unused member variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148594 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
bfe8afaaec03795fe6c78daa9817e54c186a699d |
|
14-Jan-2012 |
Evan Cheng <evan.cheng@apple.com> |
After r147827 and r147902, it's now possible for unallocatable registers to be live across BBs before register allocation. This miscompiled 197.parser when a cmp + b are optimized to a cbnz instruction even though the CPSR def is live-in a successor. cbnz r6, LBB89_12 ... LBB89_12: ble LBB89_1 The fix consists of two parts. 1) Teach LiveVariables that some unallocatable registers might be liveouts so don't mark their last use as kill if they are. 2) ARM constantpool island pass shouldn't form cbz / cbnz if the conditional branch does not kill CPSR. rdar://10676853 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148168 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.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/LiveVariables.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/LiveVariables.cpp
|
1f6a329f79b3568d379142f921f59c4143ddaa14 |
|
12-Aug-2011 |
Duncan Sands <baldrick@free.fr> |
Silence a bunch (but not all) "variable written but not read" warnings when building with assertions disabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137460 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
f337fb2fa8be9100f469650f1e32e8474525672f |
|
08-Mar-2011 |
Benjamin Kramer <benny.kra@googlemail.com> |
Reduce vector reallocations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127254 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
b421c566f512ed0ec87851866d335e9086c3f8be |
|
09-Jan-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use an IndexedMap for LiveVariables::VirtRegInfo. Provide MRI::getNumVirtRegs() and TRI::index2VirtReg() functions to allow iteration over virtual registers without depending on the representation of virtual register numbers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123098 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
2ab36d350293c77fc8941ce1023e4899df7e3a82 |
|
12-Oct-2010 |
Owen Anderson <resistor@mac.com> |
Begin adding static dependence information to passes, which will allow us to perform initialization without static constructors AND without explicit initialization by the client. For the moment, passes are required to initialize both their (potential) dependencies and any passes they preserve. I hope to be able to relax the latter requirement in the future. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116334 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
ce665bd2e2b581ab0858d1afe359192bac96b868 |
|
08-Oct-2010 |
Owen Anderson <resistor@mac.com> |
Now with fewer extraneous semicolons! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115996 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
5ba3e4d75d37d4cb145ebd01c2b0b2fec0db27c0 |
|
16-Aug-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove unused functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111156 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
d13db2c59cc94162d6cf0a04187d408bfef6d4a7 |
|
22-Jul-2010 |
Owen Anderson <resistor@mac.com> |
Fix batch of converting RegisterPass<> to INTIALIZE_PASS(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109045 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
98cdfc779df1d8d9a0071103af13f43ba65504c2 |
|
14-Jun-2010 |
Chris Lattner <sabre@nondot.org> |
fix a -Wbool-conversions warning from clang. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105942 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
88004c25c795dae031d22e5560cc4a0f98594e7c |
|
05-Jun-2010 |
Dale Johannesen <dalej@apple.com> |
Fix some liveout handling related to tail calls, see comments. I don't think this ever resulted in problems on x86, but it would on ARM. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105509 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
81bf03eb5cd68243eabb52505105aa5f4a831bf3 |
|
13-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Eliminate MachineBasicBlock::const_livein_iterator and make MachineBasicBlock::livein_iterator a const_iterator, because clients shouldn't ever be using the iterator interface to mutate the livein set. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101147 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
d05e8055362be52fc33dcc685ba2ae5c722506b5 |
|
26-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
LiveVariables should clear kill / dead markers first. This allows us to remove a hack in the scheduler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99597 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
53e000bac319a25f7c13ec8b7b413418fba5ef20 |
|
05-Mar-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Better handling of dead super registers in LiveVariables. We used to do this: CALL ... %RAX<imp-def> ... [not using %RAX] %EAX = ..., %RAX<imp-use, kill> RET %EAX<imp-use,kill> Now we do this: CALL ... %RAX<imp-def, dead> ... [not using %RAX] %EAX = ... RET %EAX<imp-use,kill> By not artificially keeping %RAX alive, we lower register pressure a bit. The correct number of instructions for 2008-08-05-SpillerBug.ll is obviously 55, anybody can see that. Sheesh. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97838 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
dcfe5f30b5e262971f601a65bebcc0367fef56c5 |
|
23-Feb-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Keep track of phi join registers explicitly in LiveVariables. Previously, LiveIntervalAnalysis would infer phi joins by looking for multiply defined registers. That doesn't work if the phi join is implicitly defined in all but one of the predecessors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96994 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.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/LiveVariables.cpp
|
d94998f52574eacef148bd856de701af2c594b03 |
|
09-Feb-2010 |
Dale Johannesen <dalej@apple.com> |
Skip DEBUG_VALUE in some places where it was affecting codegen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95647 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
e7078aed24d81c0b4bacb41385ea0237d1c0caf0 |
|
07-Jan-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
Remove dead variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92919 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
1d44df6afe6f9e722a8c7be4a0fbcd9163d9a379 |
|
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92532 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
8f72235a77e7ac262471936ea0ad2a3467d18871 |
|
01-Dec-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Move PHIElimination::isLiveOut method to LiveVariables. We want LiveVariables clients to use methods rather than accessing the getVarInfo data structure directly. That way it will be possible to change the LiveVariables representation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90240 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
a4025df42d2393da7041cd11e48a3d44b0ae2bb1 |
|
01-Dec-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR5614: parts of a physical register def may be killed the rest. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90180 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
323d8c3ed72c9e440c2079e8c1954af69357c7cf |
|
21-Nov-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Be more clever about calculating live variables through new basic blocks. When splitting a critical edge, the registers live through the edge are: - Used in a PHI instruction, or - Live out from the predecessor, and - Live in to the successor. This allows the coalescer to eliminate even more phi joins. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89530 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
236490d870c2734203ecf26c8f104d0b3283e69e |
|
13-Nov-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR5410: LiveVariables lost subreg def: D0<def,dead> = ... ... = S0<use, kill> S0<def> = ... ... D0<def> = The first D0 def is correctly marked dead, however, livevariables should have added an implicit def of S0 or we end up with a use without a def. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88690 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
3e20475feebca3bfb29375ac7f3e5acbeb2a95c8 |
|
11-Nov-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix liveness calculation when splitting critical edges during PHI elimination. - Edges are split before any phis are eliminated, so the code is SSA. - Create a proper IR BasicBlock for the split edges. - LiveVariables::addNewBlock now has same syntax as MachineDominatorTree::addNewBlock. Algorithm calculates predecessor live-out set rather than successor live-in set. This feature still causes some miscompilations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86867 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
f235f13931835b3335f3f2ff2d3060381b93626c |
|
10-Nov-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Teach PHIElimination to split critical edges when -split-phi-edges is enabled. Critical edges leading to a PHI node are split when the PHI source variable is live out from the predecessor block. This help the coalescer eliminate more PHI joins. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86725 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
a2f80471345960c971825a053d22ec886a2ab514 |
|
15-Oct-2009 |
Evan Cheng <evan.cheng@apple.com> |
When LiveVariables is adding implicit-def to model "partial dead", add the earlyclobber marker if the superreg def has it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84153 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
ad934b821c78d39e73a213c62cd57288f8605a0c |
|
24-Sep-2009 |
Evan Cheng <evan.cheng@apple.com> |
Clean up LiveVariables and change how it deals with partial updates and kills. This also eliminate the horrible check which scan forward to the end of the basic block. It should be faster and more accurate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82676 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
296925dc169b45e7535abdccc8dc143a8bec7f0a |
|
23-Sep-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR5024. LiveVariables physical register defs should *commit* only after all of the defs are processed. Also fix a implicit_def propagation bug: a implicit_def of a physical register should be applied to uses of the sub-registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82616 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
60c7df2c9311fc35ab02f1600419e91d55d5b133 |
|
22-Sep-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR5024. LiveVariables::FindLastPartialDef should return a set of sub-registers that were defined by the last partial def, not just a single sub-register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82535 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
dbe89cd2f019c23f41fe6471b8bfe0b45cc1c1ce |
|
24-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
remove the last uses of Config/alloca.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79873 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
705e07f578e2b3af47ddab610feb4e7f2d3063a5 |
|
23-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
remove various std::ostream version of printing methods from MachineInstr and MachineOperand. This required eliminating a bunch of stuff that was using DOUT, I hope that bill doesn't mind me stealing his fun. ;-) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79813 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
ad2afc2a421a0e41603d5eee412d4d8c77e9bc1c |
|
31-Jul-2009 |
Dan Gohman <gohman@apple.com> |
Reapply r77654 with a fix: MachineFunctionPass's getAnalysisUsage shouldn't do AU.setPreservesCFG(), because even though CodeGen passes don't modify the LLVM IR CFG, they may modify the MachineFunction CFG, and passes like MachineLoop are registered with isCFGOnly set to true. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77691 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
c5b19b21d84814d19692a6bbea11fbd135f4b094 |
|
31-Jul-2009 |
Daniel Dunbar <daniel@zuster.org> |
Revert r77654, it appears to be causing llvm-gcc bootstrap failures, and many failures when building assorted projects with clang. --- Reverse-merging r77654 into '.': U include/llvm/CodeGen/Passes.h U include/llvm/CodeGen/MachineFunctionPass.h U include/llvm/CodeGen/MachineFunction.h U include/llvm/CodeGen/LazyLiveness.h U include/llvm/CodeGen/SelectionDAGISel.h D include/llvm/CodeGen/MachineFunctionAnalysis.h U include/llvm/Function.h U lib/Target/CellSPU/SPUISelDAGToDAG.cpp U lib/Target/PowerPC/PPCISelDAGToDAG.cpp U lib/CodeGen/LLVMTargetMachine.cpp U lib/CodeGen/MachineVerifier.cpp U lib/CodeGen/MachineFunction.cpp U lib/CodeGen/PrologEpilogInserter.cpp U lib/CodeGen/MachineLoopInfo.cpp U lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp D lib/CodeGen/MachineFunctionAnalysis.cpp D lib/CodeGen/MachineFunctionPass.cpp U lib/CodeGen/LiveVariables.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77661 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
933c762371fe8cc6e2ef5d00d6866f4924852fed |
|
31-Jul-2009 |
Dan Gohman <gohman@apple.com> |
Manage MachineFunctions with an analysis Pass instead of the Annotable mechanism. To support this, make MachineFunctionPass a little more complete. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77654 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
2c4d96dfe9c309cc6b206c7d2cf03fe9fbd8aa93 |
|
06-Jul-2009 |
Evan Cheng <evan.cheng@apple.com> |
Avoid adding a duplicate def. This fixes PR4478. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74857 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
694f6c81e885818840d374c855cd0c91ed3f2f15 |
|
20-Jun-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR4419: handle defs of partial uses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73816 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
95299c194d4f852d17554779117c4125c3fae73d |
|
03-Jun-2009 |
Evan Cheng <evan.cheng@apple.com> |
If there is a def of a super-register followed by a use of a sub-register, do *not* add an implicit def of the sub-register. e.g. EAX = ..., AX<imp-def> ... = AX This creates a double-def. Apparently this used to be necessary but is no longer needed. Thanks to Anton for pointing this out. Anton, I cannot create a test case without your uncommitted ARM patches. Please check in a test case for me. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72755 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
493a3d015cbb2bcc18d9293a4dec3b35c7493818 |
|
26-May-2009 |
Jeffrey Yasskin <jyasskin@google.com> |
LiveVariables::VarInfo contains an AliveBlocks BitVector, which has as many entries as there are basic blocks in the function. LiveVariables::getVarInfo creates a VarInfo struct for every register in the function, leading to quadratic space use. This patch changes the BitVector to a SparseBitVector, which doesn't help the worst-case memory use but does reduce the actual use in very long functions with short-lived variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72426 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
aed4a430f4f6cc0e3ff06d458e68e5d195bbed7c |
|
26-May-2009 |
Evan Cheng <evan.cheng@apple.com> |
Eliminate VarInfo::UsedBlocks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72411 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
a894ae130b6e69a367aa691eec7e96973a20e901 |
|
20-Jan-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix PR3243: a LiveVariables bug. When HandlePhysRegKill is checking whether the last reference is also the last def (i.e. dead def), it should also check if last reference is the current machine instruction being processed. This can happen when it is processing a physical register use and setting the current machine instruction as sub-register's last ref. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62617 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
59500c8f9a76b3386329b6f837255c16f4e8b61b |
|
21-Nov-2008 |
Devang Patel <dpatel@apple.com> |
Silence unused variable warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59841 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
4a829ecc54cdcb0192550639556a18728af5119c |
|
13-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Use find_first/find_next to iterate through all the set bits in a BitVector, instead of manually testing each bit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59246 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
d735b8019b0f297d7c14b55adcd887af24d8e602 |
|
03-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Switch the MachineOperand accessors back to the short names like isReg, etc., from isRegister, etc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57006 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
3bdf5fe71ad2d48d81d013b16181766bde295f58 |
|
21-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Factor out code into HandleVirtRegDef, for consistency with Handle{Virt,Phys}Reg{Def,Use}. Remove a redundant check for register zero, and redundant checks for isPhysicalRegister. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56412 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
bbf55832831482a73fa59fcd1746f9272e82a144 |
|
15-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Use SmallSet instead of std::set to save allocations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54810 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
bd3ba461eb5578a81ba09ff7bd7eb271d1130196 |
|
05-Aug-2008 |
Owen Anderson <resistor@mac.com> |
- Fix SelectionDAG to generate correct CFGs. - Add a basic machine-level dead block eliminator. These two have to go together, since many other parts of the code generator are unable to handle the unreachable blocks otherwise created. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54333 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
9f1c8317a4676945b4961ddb9827ef2412551620 |
|
03-Jul-2008 |
Evan Cheng <evan.cheng@apple.com> |
- Remove calls to copyKillDeadInfo which is an N^2 function. Instead, propagate kill / dead markers as new instructions are constructed in foldMemoryOperand, convertToThressAddress, etc. - Also remove LiveVariables::instructionChanged, etc. Replace all calls with cheaper calls which update VarInfo kill list. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53097 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
5b9f60bc22582e80b081d4277a47d8b7fa14e3f4 |
|
03-Jul-2008 |
Evan Cheng <evan.cheng@apple.com> |
Use std::replace instead of std::find and push_back. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53063 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
be04dc1413bdab0c8687a8086792af6cfd7540c0 |
|
03-Jul-2008 |
Evan Cheng <evan.cheng@apple.com> |
- Add LiveVariables::replaceKillInstruction. This does a subset of instructionChanged. That is, it only update the VarInfo.kills if the new instruction is known to have the correct dead and kill markers. - CommuteInstruction copies kill / dead markers over to new instruction. So use replaceKillInstruction instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53061 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
bffdf66b8050b45188cb265f27e81c41277ab0ca |
|
27-Jun-2008 |
Owen Anderson <resistor@mac.com> |
Use a SmallSet when we can to reduce memory allocations. This speeds up a particular testcase from 0.0302s to 0.0222s in LiveVariables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52819 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
48b0b882c75f4f05000c53bc29e52096e1e51be3 |
|
26-Jun-2008 |
Dan Gohman <gohman@apple.com> |
Fix the text in an assert string. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52744 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
ebcba612b537f45a033ccd9a60bee0c45e2e2ded |
|
24-Jun-2008 |
Bill Wendling <isanbard@gmail.com> |
This situation can occur: ,------. | | | v | t2 = phi ... t1 ... | | | v | t1 = ... | ... = ... t1 ... | | `------' where there is a use in a PHI node that's a predecessor to the defining block. We don't want to mark all predecessors as having the value "alive" in this case. Also, the assert was too restrictive and didn't handle this case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52655 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
0d4bdde3270a8ed182a685a580031d6d5d743164 |
|
16-Apr-2008 |
Evan Cheng <evan.cheng@apple.com> |
Rewrite LiveVariable liveness computation. The new implementation is much simplified. It eliminated the nasty recursive routines and removed the partial def / use bookkeeping. There is also potential for performance improvement by replacing the conservative handling of partial physical register definitions. The code is currently disabled until live interval analysis is taught of the name scheme. This patch also fixed a couple of nasty corner cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49784 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
ea1d9cdc4e4f4e4570acddb7c4a63f703b110dad |
|
02-Apr-2008 |
Evan Cheng <evan.cheng@apple.com> |
Now that I am told MachineRegisterInfo also tracks physical register uses / defs, I can do away with the horribleness I introduced a while back. It's impossible to detect if there is any use of a physical register below an instruction (and before any def of the register) with some cheap book keeping. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49105 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
94202018c51d662c793a77a5e8239f3a35e11e60 |
|
19-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix live variables issues: 1. If part of a register is re-defined, an implicit kill and an implicit def are added to denote read / mod / write. However, this should only be necessary if the register is actually read later. This is a performance issue. 2. If a sub-register is being defined, and it doesn't have a previous use, do not add a implicit kill to the last use of a super-register: = EAX, AX<imp-use,kill> ... AX = In this case, EAX is live but AX is killed, this is wrong and will cause the coalescer to do bad things. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48521 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
6130f66eaae89f8878590796977678afa8448926 |
|
05-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Refactor code. Remove duplicated functions that basically do the same thing as findRegisterUseOperandIdx, findRegisterDefOperandIndx. Fix some naming inconsistencies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47927 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
1d5e8196c02ade7d2253165e99436ce415de9fda |
|
21-Feb-2008 |
Bill Wendling <isanbard@gmail.com> |
Clear PhysRegPartUse for the sub register as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47453 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
c927cc8731724a91733781c816b89d234c265d8c |
|
20-Feb-2008 |
Bill Wendling <isanbard@gmail.com> |
Remove one of the fixmes that I put in there. From Evan: No need to go up more levels. A def of a register also sets its sub-registers (so if PhysRegInfo[SuperReg] is NULL, it means SuperReg's super registers are not previously defined). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47399 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
55574c2ceab1b7c4dd1cc47d2fb328bc3728d29c |
|
20-Feb-2008 |
Bill Wendling <isanbard@gmail.com> |
Improve some comments explaining the "handle kills" stuff better. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47395 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
fe8276cec27332f590186a78b7d0091ba4a9dbac |
|
20-Feb-2008 |
Bill Wendling <isanbard@gmail.com> |
Fix comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47389 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
6d794746b7ae1ed531f08c04dd29d79c13b35075 |
|
20-Feb-2008 |
Bill Wendling <isanbard@gmail.com> |
Added some comments and reformatted others. No functionality change. Added two "FIXMEs" for code that looks dubious to me (but I could be wrong). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47366 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
420cdebbcb95f3881ab3518fd3bb670837669e43 |
|
20-Feb-2008 |
Bill Wendling <isanbard@gmail.com> |
More constification of things. More comments added. No functionality changes. (Sorry for any formatting changes that creeped in.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47362 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
90a3868fe5702caaa56082cde2edb6521de73e01 |
|
20-Feb-2008 |
Bill Wendling <isanbard@gmail.com> |
No functionality change: - Constified some MachineOperand values. - Added/Modified some comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47358 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
6f0d024a534af18d9e60b3ea757376cd8a3a980e |
|
10-Feb-2008 |
Dan Gohman <gohman@apple.com> |
Rename MRegisterInfo to TargetRegisterInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46930 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
bb4151bd1f292df8f505671e502d01f0b10afa0f |
|
05-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
If a vr is already marked alive in a bb, then it has PHI uses that are visited earlier, then it is not killed in the def block (i.e. not dead). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46763 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
b487e7215c4f70f3d98f8fbc0a11eb119afc1f37 |
|
24-Jan-2008 |
Owen Anderson <resistor@mac.com> |
Move some functionality for adding flags to MachineInstr's into methods on MachineInstr rather than LiveVariables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46295 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
40a627ddf87fe8e5fe057fba405cc0893cf14e70 |
|
15-Jan-2008 |
Owen Anderson <resistor@mac.com> |
Move some calls to getVRegDef higher in the callgraph, so they don't get executed as frequently in performance sensitive code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46027 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
7047dd4d227b5fb2e5ae0cb2e7d5de1d0098ad60 |
|
15-Jan-2008 |
Owen Anderson <resistor@mac.com> |
Remove DefInst from LiveVariables::VarInfo. Use the facilities on MachineRegisterInfo instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46016 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
749c6f6b5ed301c84aac562e414486549d7b98eb |
|
07-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
rename TargetInstrDescriptor -> TargetInstrDesc. Make MachineInstr::getDesc return a reference instead of a pointer, since it can never be null. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45695 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
349c4952009525b27383e2120a6b3c998f39bd09 |
|
07-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
Move a bunch more accessors from TargetInstrInfo to TargetInstrDescriptor git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45680 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
84bc5427d6883f73cfeae3da640acd011d35c006 |
|
31-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
Rename SSARegMap -> MachineRegisterInfo in keeping with the idea that "machine" classes are used to represent the current state of the code being compiled. Given this expanded name, we can start moving other stuff into it. For now, move the UsedPhysRegs and LiveIn/LoveOuts vectors from MachineFunction into it. Update all the clients to match. This also reduces some needless #includes, such as MachineModuleInfo from MachineFunction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45467 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
8aa797aa51cd4ea1ec6f46f4891a6897944b75b2 |
|
31-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
Add new shorter predicates for testing machine operands for various types: e.g. MO.isMBB() instead of MO.isMachineBasicBlock(). I don't plan on switching everything over, so new clients should just start using the shorter names. Remove old long accessors, switching everything over to use the short accessor: getMachineBasicBlock() -> getMBB(), getConstantPoolIndex() -> getIndex(), setMachineBasicBlock -> setMBB(), etc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45464 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
f73823000e2d5d6e1cf65bdf5a107297e18d35fb |
|
30-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
More cleanups for MachineOperand: - Eliminate the static "print" method for operands, moving it into MachineOperand::print. - Change various set* methods for register flags to take a bool for the value to set it to. Remove unset* methods. - Group methods more logically by operand flavor in MachineOperand.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45461 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
8019f41c0b7fda031d494e3900eada7d4e494772 |
|
30-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
Start using the simplified methods for adding operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45432 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
4ee451de366474b9c228b4e5fa573795a715216d |
|
29-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
Remove attribution from file headers, per discussion on llvmdev. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45418 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
81a038218171860ee4c382849c647d3dc841fe8b |
|
17-Nov-2007 |
Evan Cheng <evan.cheng@apple.com> |
Live interval splitting: When a live interval is being spilled, rather than creating short, non-spillable intervals for every def / use, split the interval at BB boundaries. That is, for every BB where the live interval is defined or used, create a new interval that covers all the defs and uses in the BB. This is designed to eliminate one common problem: multiple reloads of the same value in a single basic block. Note, it does *not* decrease the number of spills since no copies are inserted so the split intervals are *connected* through spill and reloads (or rematerialization). The newly created intervals can be spilled again, in that case, since it does not span multiple basic blocks, it's spilled in the usual manner. However, it can reuse the same stack slot as the previously split interval. This is currently controlled by -split-intervals-at-bb. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44198 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
a018540807775703d630e9c92f9d8013d545599e |
|
08-Nov-2007 |
Owen Anderson <resistor@mac.com> |
Bring UsedBlocks back. StrongPHIElimination needs this information. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43866 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
5942efb0e5f49fb772e340c251502cc0a7ff157e |
|
05-Nov-2007 |
Evan Cheng <evan.cheng@apple.com> |
Handle cases where a register and one of its super-register are both marked as defined on the same instruction. This fixes PR1767. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43699 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
92dfe2001e96f6e2b6d327e8816f38033f88b295 |
|
14-Sep-2007 |
Dan Gohman <gohman@apple.com> |
Remove isReg, isImm, and isMBB, and change all their users to use isRegister, isImmediate, and isMachineBasicBlock, which are equivalent, and more popular. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41958 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
0d8d31674f3cc95f5bba1174a0e8d54d5b9c210a |
|
13-Sep-2007 |
Evan Cheng <evan.cheng@apple.com> |
Fixed a typo that's causing a missing kill marker. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41893 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
6d6d352ed9bf69f06d8084b76042d7e9b3980cb5 |
|
12-Sep-2007 |
Evan Cheng <evan.cheng@apple.com> |
Sometimes a MI can define a register as well as defining a super-register at the same time. Do not mark the "smaller" def as dead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41871 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
21b3bf06508e8a9af86276099e6845961c883a62 |
|
01-Aug-2007 |
Evan Cheng <evan.cheng@apple.com> |
Bugs: missing partial uses and redundant partial defs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40688 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
c674a924d4ed62e857bf788d7e0c76c89239b903 |
|
21-Jul-2007 |
Dan Gohman <gohman@apple.com> |
Don't assume that only Uses can be kills. Defs are marked as kills initially when there are no uses. This fixes a dangling-pointer bug, where pointers to deleted instructions were not removed from kills lists. More info here: http://lists.cs.uiuc.edu/pipermail/llvmdev/2007-July/009749.html git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40131 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
f99002c14303fe3f58f854bb77f9bcfbe7656b64 |
|
17-Jul-2007 |
Evan Cheng <evan.cheng@apple.com> |
Dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39979 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
041040717db7dafe31155615fcb43d214ac88aa4 |
|
27-Jun-2007 |
Evan Cheng <evan.cheng@apple.com> |
Replace std::set with SmallPtrSet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37746 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
4efe74129f7483bc8c48d68f095d632b974c353d |
|
26-Jun-2007 |
Evan Cheng <evan.cheng@apple.com> |
Properly handle kills of a physical register which has sub-registers that are read by later instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37739 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
8b966d9fd0995fbc897ca06ff3b15e8178c0d0a3 |
|
14-May-2007 |
Evan Cheng <evan.cheng@apple.com> |
When marking a register as being implicitly defined, make sure to clear its partial use info as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37046 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
56184904cd9a348920de0c3b391d42b691091137 |
|
08-May-2007 |
Evan Cheng <evan.cheng@apple.com> |
Eliminate MarkVirtRegAliveInBlock recursion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36943 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
1997473cf72957d0e70322e2fe6fe2ab141c58a6 |
|
03-May-2007 |
Devang Patel <dpatel@apple.com> |
Drop 'const' git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36662 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
3e15bf33e024b9df9e89351a165acfdb1dde51ed |
|
02-May-2007 |
Devang Patel <dpatel@apple.com> |
Use 'static const char' instead of 'static const int'. Due to darwin gcc bug, one version of darwin linker coalesces static const int, which defauts PassID based pass identification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36652 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
794fd75c67a2cdc128d67342c6d88a504d186896 |
|
01-May-2007 |
Devang Patel <dpatel@apple.com> |
Do not use typeinfo to identify pass in pass manager. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36632 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
faa510726f4b40aa4495e60e4d341c6467e3fb01 |
|
26-Apr-2007 |
Evan Cheng <evan.cheng@apple.com> |
Rename findRegisterUseOperand to findRegisterUseOperandIdx to avoid confusion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36483 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
8e29b2192b498342682f9d79881c00248e3a5c0a |
|
26-Apr-2007 |
Evan Cheng <evan.cheng@apple.com> |
Minor bug. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36473 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
05350288a6bc22a294ff7625f244731ef7125f8a |
|
26-Apr-2007 |
Evan Cheng <evan.cheng@apple.com> |
Be careful when to add implicit kill / dead operands. Don't add them during / post reg-allocation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36458 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
ade31f9f07537502f68850d771678bfbef003c7e |
|
25-Apr-2007 |
Evan Cheng <evan.cheng@apple.com> |
Clean up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36449 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
e96f50142e8d12a2e12c3329bffb372e09731dd2 |
|
25-Apr-2007 |
Evan Cheng <evan.cheng@apple.com> |
Data structure change to improve compile time (especially in debug mode). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36447 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
24a3cc4c83e5edb25fadf7b8979a26b4451795c6 |
|
25-Apr-2007 |
Evan Cheng <evan.cheng@apple.com> |
Fix for PR1306. - A register def / use now implicitly affects sub-register liveness but does not affect liveness information of super-registers. - Def of a larger register (if followed by a use later) is treated as read/mod/write of a smaller register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36434 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
f44c72817e3a7f517ad796705effb8d59e6a6dfa |
|
18-Apr-2007 |
Evan Cheng <evan.cheng@apple.com> |
VarInfo::UsedBlocks is no longer used. Remove. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36250 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
38b7ca6651643f1f98e1f7b0e7f8a3499883804b |
|
17-Apr-2007 |
Evan Cheng <evan.cheng@apple.com> |
Keep track of number of uses within the function per virtual register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36214 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
c6a2410d58916b8a8a1b26f2448b903d12e77f2f |
|
17-Mar-2007 |
Evan Cheng <evan.cheng@apple.com> |
Track the BB's where each virtual register is used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35135 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
e2ee99620fa6e428292737349d8e28bbcdcdaa0b |
|
09-Mar-2007 |
Evan Cheng <evan.cheng@apple.com> |
If a virtual register is already marked alive in this block, that means it is alive in one of the successor block. Do not add it to the kill list. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35041 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
f0e3bb13337f59c7f158e4af5aa9a11a2e76fa9d |
|
09-Mar-2007 |
Evan Cheng <evan.cheng@apple.com> |
Avoid variable shadowing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35039 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
b371f457b0ea4a652a9f526ba4375c80ae542252 |
|
19-Feb-2007 |
Evan Cheng <evan.cheng@apple.com> |
Re-apply my liveintervalanalysis changes. Now with PR1207 fixes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34428 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
a284cbf667e11660840dc7bae3ee9eeaa3c7cbd2 |
|
19-Feb-2007 |
Reid Spencer <rspencer@reidspencer.com> |
For PR1207: Revert patches that caused the problem. Evan, please investigate and reapply when you've discovered the problem. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34399 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
e15764f28f10f86ad88c4391bb5619191609f6b4 |
|
17-Feb-2007 |
Evan Cheng <evan.cheng@apple.com> |
- Use MRegister::regsOverlap(). - Allow LiveVariables to track liveness of more registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34379 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
0c9f92e1ff64ee56724eae444a0442b02f83d0a8 |
|
13-Feb-2007 |
Evan Cheng <evan.cheng@apple.com> |
Allow any MachineBasicBlock (not just the entry block) to have live-in physical registers. Make sure liveinterval analysis is correctly creating live ranges for them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34217 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
bcd2498f4f1682dbdc41452add5b9bc72cbd6b3f |
|
07-Dec-2006 |
Bill Wendling <isanbard@gmail.com> |
Removed more <iostream> includes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32321 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
a6c4c1eb90413986519c46f70222539dee39ffe9 |
|
15-Nov-2006 |
Evan Cheng <evan.cheng@apple.com> |
Do away with kill / dead maps. Move kill / dead info onto MI's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31759 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
438f7bc67cf235ccee7e6f7ac7f4ae2186eb8020 |
|
10-Nov-2006 |
Evan Cheng <evan.cheng@apple.com> |
Add implicit def / use operands to MachineInstr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31633 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
3ed469ccd7b028a030b550d84b7336d146f5d8fa |
|
02-Nov-2006 |
Reid Spencer <rspencer@reidspencer.com> |
For PR786: Turn on -Wunused and -Wno-unused-parameter. Clean up most of the resulting fall out by removing unused variables. Remaining warnings have to do with unused functions (I didn't want to delete code without review) and unused variables in generated code. Maintainers should clean up the remaining issues when they see them. All changes pass DejaGnu tests and Olden. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31380 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
f7da4e939f02678cbe56cae666506da3b1a5e100 |
|
03-Oct-2006 |
Bill Wendling <isanbard@gmail.com> |
Fix for PR929. The PHI nodes were being gone through for each instruction in a successor block for every block...resulting in some O(N^k) algorithm which wasn't very good for performance. Calculating this information up front and keeping it in a map made it much faster. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30697 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
d8f44e07b89e651b2f0e3b0d680a775f44e667da |
|
05-Sep-2006 |
Chris Lattner <sabre@nondot.org> |
Only call isUse/isDef on register operands git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30118 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
7a3abdc63c0cc4e5d5411c3add0e909c6ac49e79 |
|
03-Sep-2006 |
Chris Lattner <sabre@nondot.org> |
Move two methods out of line, make them work when the record for a machine instruction includes physregs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30061 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
5d8925c7c506a54ebdfb0bc93437ec9f602eaaa0 |
|
28-Aug-2006 |
Chris Lattner <sabre@nondot.org> |
Eliminate RegisterAnalysis. RegisterPass now does all that is necessary. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29921 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
cd4317efcf334be10d9a98008a1445d6e12a7712 |
|
21-Jul-2006 |
Jim Laskey <jlaskey@mac.com> |
Eliminate data relocations by using NULL instead of global empty list. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29250 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
4efeab208cf0fe7ae2f68bcdd1264a8fdb18826c |
|
04-May-2006 |
Chris Lattner <sabre@nondot.org> |
Remove a bunch more dead V9 specific stuff git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28094 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
dacceef2666d37eb984c6f5e0a84cdabab8dfffc |
|
04-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
Add a LiveVariables::VarInfo::dump method git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25080 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
ac28fbd0436dd8b2bc0c071ba150b60bbfca67f3 |
|
21-Nov-2005 |
Chris Lattner <sabre@nondot.org> |
Add section switching to common code generator code. Add a couple of asserts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24445 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
657b4d1ac6a64d8751ed8c53d662201dab4438e1 |
|
24-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
Implement LiveVariables.h change git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22994 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
44b94c2185f4c1b826ec6003d25370cf2efac219 |
|
24-Aug-2005 |
Chris Lattner <sabre@nondot.org> |
adjust to new live variables interface git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22992 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
712ad0c36dcfacb30620c793a6ffe4e80bd5d569 |
|
13-May-2005 |
Chris Lattner <sabre@nondot.org> |
allow a virtual register to be associated with live-in values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21927 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
edf128a7fa90f2b0b7ee24741a04a7ae1ecd6f7e |
|
22-Apr-2005 |
Misha Brukman <brukman+llvm@gmail.com> |
Remove trailing whitespace git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21420 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
d493b34d31ddb37b2e2f0b24e00c4597cb1dcfd6 |
|
09-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
Consider the livein/out set for a function, allowing targets to not have to use ugly imp_def/imp_uses for arguments and return values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21180 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
2a6e163edc2f5c81ad1f4c527c354b1a727676b7 |
|
19-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Just in case, handle something that is both a use and a def. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19696 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
d45be36965470710eb18662fc716243ea384bf2f |
|
19-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
When an instruction moves, make sure to update the VarInfo::Kills list as well as all of teh other stuff in livevar. This fixes the compiler crash on fourinarow last night. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19695 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
6fcd8d848dc722537c32b91daea59f50b78a4eba |
|
25-Oct-2004 |
Chris Lattner <sabre@nondot.org> |
Do not use variable sized arrays in C++, they are non-portable. Patch contributed by Morten Ofstad git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17217 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
551ccae044b0ff658fe629dd67edd5ffe75d10e8 |
|
02-Sep-2004 |
Reid Spencer <rspencer@reidspencer.com> |
Changes For Bug 352 Move include/Config and include/Support into include/llvm/Config, include/llvm/ADT and include/llvm/Support. From here on out, all LLVM public header files must be under include/llvm/. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16137 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
2e58a410896ffbee3d856b113c3718bc4a5462e8 |
|
02-Sep-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Give a better assertion if we see a use before a def. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16135 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
81bc6e377e06c358747f59bce781aba25c60fb56 |
|
29-Aug-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Remove dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16077 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
22a2f6d5b05631a21b62e3e103aa1b9469ad0c5c |
|
27-Aug-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Use newly added API in MRegisterInfo and don't expose the allocatable register set anymore. Its users now use the MRegisterInfo API. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16061 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
74de8b1b26b12fda3364382946e519a2e37b6709 |
|
19-Jul-2004 |
Chris Lattner <sabre@nondot.org> |
There is no need to store the MBB along with the MI any more, we can now ask instructions for their parent. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14998 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
472405e0dc05f6fb8c09af00713ff893fff25b94 |
|
19-Jul-2004 |
Chris Lattner <sabre@nondot.org> |
Simplify the interface to LiveVariables::addVirtualRegister(Killed|Dead) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14997 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
73d4adfb1e5d6c0ce834b331e6099b14d3341dd7 |
|
19-Jul-2004 |
Chris Lattner <sabre@nondot.org> |
Remove the DefBlock element of VarInfo. DefBlock is always DefInst->getParent() git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14996 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
9fb6cf1d82617994cd6dad33ecd45c1e913534aa |
|
09-Jul-2004 |
Chris Lattner <sabre@nondot.org> |
Add checks to ensure that there are no unreachable blocks in the function git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14725 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
8490f9c92e354fd9cd242bae89b24e6c59e5c794 |
|
01-Jul-2004 |
Chris Lattner <sabre@nondot.org> |
Now that MachineFunction/MachineBasicBlock keep a mapping of blocks to ID #'s use them instead of a local LiveVariables numbering git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14523 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
8ba9771549bcff6109ad45ff3944a1b6c3c54b46 |
|
01-Jul-2004 |
Chris Lattner <sabre@nondot.org> |
Start using MBB numbers directly instead of going through the live variables map. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14518 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
a5287a63762fbf0976e333fb7787ec135fdc2061 |
|
01-Jul-2004 |
Chris Lattner <sabre@nondot.org> |
Instead of building a private numbering of MBB's use brg's nifty auto-numbering. Also convert df_iterator -> df_ext_iterator for subsequent stuff I'm doing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14517 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
09ba906cf55b165550aecefbd6286939be84b8d1 |
|
24-Jun-2004 |
Misha Brukman <brukman+llvm@gmail.com> |
Convert tabs to spaces. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14373 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
9bcdcd17c7219dbc68de2f11ca2de86471c8c390 |
|
02-Jun-2004 |
Chris Lattner <sabre@nondot.org> |
Adjust to new TargetMachine interface git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13956 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
6d3848df7e1f2d773ed7ae1a225944810d8510ad |
|
10-May-2004 |
Chris Lattner <sabre@nondot.org> |
Patch to fix PR337. Make sure to mark all aliased physical registers as used when we see a read of a register. This is important in cases like: AL = ... AH = ... = AX The read of AX must make both the AL and AH defs live until the use. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13444 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
f25fb4bc640340c60793a3e2bbf2510dea0e15f4 |
|
01-May-2004 |
Chris Lattner <sabre@nondot.org> |
Stop LiveVariables from using BasicBlocks as part of the mapping, instead use MachineBasicBlocks. To do this, we traverse the Machine CFG instead of the LLVM CFG, which is also *MUCH* more efficient by having fewer levels of indirections and mappings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13301 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
a8db01ac8353f00b519211e6e9e7d53feb1b2923 |
|
31-Mar-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Correctly update LiveVariables when an instruction changes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12561 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
92bc3bc11c2d439264b1cf9e7fc5bc79f4215a54 |
|
29-Feb-2004 |
Chris Lattner <sabre@nondot.org> |
Add an assert git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12010 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
71e353ed3530a5da48c3dd3257c410f6c4ce2e3e |
|
26-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Uncomment assertions that register# != 0 on calls to MRegisterInfo::is{Physical,Virtual}Register. Apply appropriate fixes to relevant files. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11882 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
a96478d7d6b2aee1aecad4af23506167ec16752c |
|
19-Feb-2004 |
Chris Lattner <sabre@nondot.org> |
Fix an iterator invalidation problem. :( git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11627 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
5ed001b6afe2225343ec79f58645a9aaf35c1fd2 |
|
19-Feb-2004 |
Chris Lattner <sabre@nondot.org> |
Add method to update livevar when an instruction moves git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11625 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
859a18b5833f3566799313ecba8db4916500485b |
|
15-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Make dense maps keyed on physical registers smallerusing MRegisterInfo::getNumRegs() instead of MRegisterInfo::FirstVirtualRegister. Also use MRegisterInfo::is{Physical,Virtual}Register where appropriate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11477 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
c0b9dc5be79f009d260edb5cd5e1d8346587aaa2 |
|
12-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Change MachineBasicBlock's vector of MachineInstr pointers into an ilist of MachineInstr objects. This allows constant time removal and insertion of MachineInstr instances from anywhere in each MachineBasicBlock. It also allows for constant time splicing of MachineInstrs into or out of MachineBasicBlocks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11340 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
61b08f193a6e84db44d3032a822e324ebb42a584 |
|
10-Feb-2004 |
Chris Lattner <sabre@nondot.org> |
Add #include git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11285 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
1cbe4d0ad0888e50858cca83cf2a0d3083709513 |
|
10-Feb-2004 |
Chris Lattner <sabre@nondot.org> |
Do not use MachineOperand::isVirtualRegister either! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11283 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
3d878d80d67452865e286069ceefe918c0f65acb |
|
10-Feb-2004 |
Chris Lattner <sabre@nondot.org> |
Eliminate users of MachineOperand::isPhysicalRegister git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11278 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
499487742ec4299852f7ae8962acebf7bc2a22a4 |
|
09-Feb-2004 |
Chris Lattner <sabre@nondot.org> |
Ugh, perform an optimization that GCC should be able to do itself. This speeds up livevar from .48/.32s -> .45/.31s in LLC on perlbmk git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11217 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
96aef893383a6ffcc6d6955c5d969f0fd57831c2 |
|
09-Feb-2004 |
Chris Lattner <sabre@nondot.org> |
Only do stuff for the REAL number of physical registers we have, not 1024. This speeds up live variables a lot, from .60/.39s -> .47/.26s in LLC, for the first/second pass respectively. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11216 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
ef09c63e7ba5dd5410655f71d35eb7245893b1f1 |
|
31-Jan-2004 |
Chris Lattner <sabre@nondot.org> |
Finegrainify namespacification, use new MRegisterInfo::isVirtualRegister method git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11037 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
49a5aaacef127970f91648ac468de1cd2b6f462f |
|
30-Jan-2004 |
Chris Lattner <sabre@nondot.org> |
Finegrainify namespacification Implement LiveVariables::getIndexMachineBasicBlock git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11018 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
c55640f0194511d2c44f4d8bea099e373199ae9d |
|
13-Jan-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Remove unneeded check (with the recent change in live variables a use of a physical register is always dominated by a def). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10821 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
19b6486d3891c8a02a301aa1b44348a420772fcf |
|
13-Jan-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Correctly compute live variable information for physical registers when an implicitely defined register is later used by an alias. For example: call foo %reg1024 = mov %AL The call implicitely defines EAX but only AL is used. Before this fix no information was available on AL. Now EAX and all its aliases except AL get defined and die at the call instruction whereas AL lives to be killed by the assignment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10813 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
4d7af65903cbc858464362e70a6adf499982ec8a |
|
14-Dec-2003 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Change interface of MachineOperand as follows: a) remove opIsUse(), opIsDefOnly(), opIsDefAndUse() b) add isUse(), isDef() c) rename opHiBits32() to isHiBits32(), opLoBits32() to isLoBits32(), opHiBits64() to isHiBits64(), opLoBits64() to isLoBits64(). This results to much more readable code, for example compare "op.opIsDef() || op.opIsDefAndUse()" to "op.isDef()" a pattern used very often in the code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10461 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
efe995a4063dd3f414f60c6ee2f4704dbb0fad34 |
|
13-Dec-2003 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Remove unecessary if statements when looping on ImplicitDefs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10444 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
d0fde30ce850b78371fd1386338350591f9ff494 |
|
11-Nov-2003 |
Brian Gaeke <gaeke@uiuc.edu> |
Put all LLVM code into the llvm namespace, as per bug 109. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9903 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
b576c94c15af9a440f69d9d03c2afead7971118c |
|
20-Oct-2003 |
John Criswell <criswell@uiuc.edu> |
Added LLVM project notice to the top of every C++ source file. Header files will be on the way. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9298 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
73ff5120eb8b8c0ccbfed8a17f1024c67a75f319 |
|
08-Oct-2003 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Change MRegisterDesc::AliasSet, TargetInstrDescriptor::ImplicitDefs and TargetInstrDescriptor::ImplicitUses to always point to a null terminated array and never be null. So there is no need to check for pointer validity when iterating over those sets. Code that looked like: if (const unsigned* AS = TID.ImplicitDefs) { for (int i = 0; AS[i]; ++i) { // use AS[i] } } was changed to: for (const unsigned* AS = TID.ImplicitDefs; *AS; ++AS) { // use *AS } git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8960 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
5f2180c53330502eb2f0f5bf3f21a838ad800906 |
|
27-May-2003 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
(1) Added special register class containing (for now) %fsr. Fixed spilling of %fcc[0-3] which are part of %fsr. (2) Moved some machine-independent reg-class code to class TargetRegInfo from SparcReg{Class,}Info. (3) Renamed MachienOperand::opIsDef to MachineOperand::opIsDefOnly() and related functions and flags. Fixed several bugs where only "isDef" was being checked, not "isDefAndUse". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6341 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
fb2cb69dc55c1e1d7754186cd1c8a9d543f54bdd |
|
12-May-2003 |
Chris Lattner <sabre@nondot.org> |
* Keep the BBMap around as long as the pass is live * Change getVarInfo to take real virtual register numbers and offset them itself. This has caused me so much grief, it's not even funny. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6115 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
5cdfbad72d76864325260f134d58294c290a4886 |
|
07-May-2003 |
Chris Lattner <sabre@nondot.org> |
Add a vector to keep track of which registers are allocatable. Remove FIXMEs git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6015 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
dff780f0466d824e775dd748d9880f0389be7260 |
|
06-May-2003 |
Chris Lattner <sabre@nondot.org> |
Re-add gross hack, it's still necessary. :( git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6012 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
82a4d207aaa18f2df6649ec747ec0d10edf0e1dc |
|
06-May-2003 |
Chris Lattner <sabre@nondot.org> |
Remove hideously nasty hack git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6011 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
f98358efc7be57d1984c11ba2b3b02d92b530030 |
|
01-May-2003 |
Chris Lattner <sabre@nondot.org> |
Minor cleanup git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5976 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
3501feab811c86c9659248a4875fc31a3165f84d |
|
14-Jan-2003 |
Chris Lattner <sabre@nondot.org> |
Rename MachineInstrInfo -> TargetInstrInfo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5272 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|
bc40e898e153c9b81f246a7971eaac7b14446c49 |
|
13-Jan-2003 |
Chris Lattner <sabre@nondot.org> |
New files git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5262 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/LiveVariables.cpp
|