d9b0b025612992a0b724eeca8bdf10b1d7a5c355 |
|
02-Jun-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Fix typos found by http://github.com/lyda/misspell-check git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157885 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/CriticalAntiDepBreaker.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/CriticalAntiDepBreaker.cpp
|
f152fe8d487c46873bbdd4abab43200f783e978b |
|
01-Jun-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Switch some getAliasSet clients to MCRegAliasIterator. MCRegAliasIterator can optionally visit the register itself, allowing for simpler code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157837 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/CriticalAntiDepBreaker.cpp
|
397fc4874efe9c17e737d4c5c50bd19dc3bf27f5 |
|
08-May-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add an MF argument to TRI::getPointerRegClass() and TII::getRegClass(). The getPointerRegClass() hook can return register classes that depend on the calling convention of the current function (ptr_rc_tailcall). So far, we have been able to infer the calling convention from the subtarget alone, but as we add support for multiple calling conventions per target, that no longer works. Patch by Yiannis Tsiouris! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156328 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/CriticalAntiDepBreaker.cpp
|
cff4ad768ec721b72498dc6b605d882e36c1fb14 |
|
17-Mar-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
CriticalAntiDepBreaker: Replace a SmallSet of regs with a much denser BitVector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152999 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/CriticalAntiDepBreaker.cpp
|
87f3dbc446181dc5b1c525bd28ca89760f63bc76 |
|
16-Mar-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
CriticalAntiDepBreaker: BasicBlock::size is an expensive operation, reuse the cached value. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152927 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/CriticalAntiDepBreaker.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/CriticalAntiDepBreaker.cpp
|
e4fd907e72a599eddfa7a81eac4366b5b82523e3 |
|
04-Mar-2012 |
Craig Topper <craig.topper@gmail.com> |
Use uint16_t to store register overlaps to reduce static data. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152001 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/CriticalAntiDepBreaker.cpp
|
015f228861ef9b337366f92f637d4e8d624bb006 |
|
04-Mar-2012 |
Craig Topper <craig.topper@gmail.com> |
Use uint16_t to store registers in callee saved register tables to reduce size of static data. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151996 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/CriticalAntiDepBreaker.cpp
|
bbad2f1040fea671b4413f53b3fd816cb7bd2443 |
|
23-Feb-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Handle regmasks in CriticalAntiDepBreaker. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151223 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/CriticalAntiDepBreaker.cpp
|
b4566a999970b514d7c6973d99e293a6625d3f70 |
|
22-Feb-2012 |
Andrew Trick <atrick@apple.com> |
Initialize SUnits before DAG building. Affect on SD scheduling and postRA scheduling: Printing the DAG will display the nodes in top-down topological order. This matches the order within the MBB and makes my life much easier in general. Affect on misched: We don't need to track virtual register uses at all. This is awesome. I also intend to rely on the SUnit ID as a topo-sort index. So if A < B then we cannot have an edge B -> A. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151135 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/CriticalAntiDepBreaker.cpp
|
977679d6034791fd48a344e5b990503ba50fc242 |
|
07-Jan-2012 |
Evan Cheng <evan.cheng@apple.com> |
Added a late machine instruction copy propagation pass. This catches opportunities that only present themselves after late optimizations such as tail duplication .e.g. ## BB#1: movl %eax, %ecx movl %ecx, %eax ret The register allocator also leaves some of them around (due to false dep between copies from phi-elimination, etc.) This required some changes in codegen passes. Post-ra scheduler and the pseudo-instruction expansion passes have been moved after branch folding and tail merging. They were before branch folding before because it did not always update block livein's. That's fixed now. The pass change makes independently since we want to properly schedule instructions after branch folding / tail duplication. rdar://10428165 rdar://10640363 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147716 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/CriticalAntiDepBreaker.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/CriticalAntiDepBreaker.cpp
|
15993f83a419950f06d2879d6701530ae6449317 |
|
27-Jun-2011 |
Evan Cheng <evan.cheng@apple.com> |
More refactoring. Move getRegClass from TargetOperandInfo to TargetInstrInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133944 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/CriticalAntiDepBreaker.cpp
|
fa796dd720f1b34596a043f17f098fac18ecc028 |
|
16-Jun-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Teach antidependency breakers to use RegisterClassInfo. No functional change was intended. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133202 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/CriticalAntiDepBreaker.cpp
|
e29e8e100ea38be1771e5f010a5511cbb990d515 |
|
02-Jun-2011 |
Devang Patel <dpatel@apple.com> |
Update DBG_VALUEs while breaking anti dependencies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132487 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/CriticalAntiDepBreaker.cpp
|
bc4bd92d52be2f6707a8c311873ded27a8f2481f |
|
08-Feb-2011 |
Andrew Trick <atrick@apple.com> |
Fix PostRA antidependence breaker. Avoid using the same register for two def operands or and earlyclobber def and use operand. This fixes PR8986 and improves on the prior fix for rdar://problem/8959122. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125089 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/CriticalAntiDepBreaker.cpp
|
278ba1f9b6c14ddf79040979c88b978d41f8c036 |
|
05-Feb-2011 |
Andrew Trick <atrick@apple.com> |
Fix an anti-dep breaker corner case. <rdar://problem/8959122> illegal register operands for UMULL instruction in cfrac nightly test I'm stil working on a unit test, but the case is: rx = movcc rx, r3 r2 = ldr r2, r3 = umull r2, r2 The anti-dep breaker should not convert this into an illegal instruction: r2, r2 = umull git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124932 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/CriticalAntiDepBreaker.cpp
|
46388526963aba92344ee8ebd9e86d3556baa088 |
|
02-Nov-2010 |
Andrew Trick <atrick@apple.com> |
Fixes <rdar://problem/8612856>: During postRAsched, the antidependence breaker needs to check all definitions of the antidepenent register to avoid multiple defs of the same new register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118032 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/CriticalAntiDepBreaker.cpp
|
f70007e89e7b252abc9dc175aab92191c09bebf7 |
|
02-Oct-2010 |
Bob Wilson <bob.wilson@apple.com> |
Fix a miscompile in 186.crafty for Thumb2 that was exposed by Evan's scheduling change in svn 115121. The CriticalAntiDepBreaker had bad liveness information. It was calculating the KillIndices for one scheduling region in a basic block, rescheduling that region so the KillIndices were no longer valid, and then using those wrong KillIndices to make decisions for the next scheduling region. I've not been able to reduce a small testcase for this. Radar 8502534. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115400 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/CriticalAntiDepBreaker.cpp
|
59718a4f42551fc0034b860cb8119f728023c303 |
|
11-Sep-2010 |
Bob Wilson <bob.wilson@apple.com> |
Fix a comment typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113653 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/CriticalAntiDepBreaker.cpp
|
9b041c92efb5b0f6e74e154f0a6151968dc1ab58 |
|
02-Sep-2010 |
Jim Grosbach <grosbach@apple.com> |
Anti-dependency breaking needs to be careful not to use reserved regs git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112832 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/CriticalAntiDepBreaker.cpp
|
3eca15bdb5823d0f9ff5059a179a1759fee1a185 |
|
27-Jul-2010 |
Dan Gohman <gohman@apple.com> |
Fix a use-after-free. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109468 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/CriticalAntiDepBreaker.cpp
|
9c2a034730b289a2cf48bc91aa2ef69737a7afbb |
|
15-Jul-2010 |
Bill Wendling <isanbard@gmail.com> |
Use std::vector instead of TargetRegisterInfo::FirstVirtualRegister. This time make sure to allocate enough space in the std::vector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108449 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/CriticalAntiDepBreaker.cpp
|
7fa889b946266f5cf3f386acf2487aed244e5d10 |
|
15-Jul-2010 |
Chris Lattner <sabre@nondot.org> |
revert bill's patches in an attempt to fix the buildbot. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108419 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/CriticalAntiDepBreaker.cpp
|
f7f72bc1eaf01bfc6f09094d200e6aea35921f65 |
|
15-Jul-2010 |
Bill Wendling <isanbard@gmail.com> |
Use std::vector instead of a hard-coded array. The length of that array could get *very* large, but we only need it to be the size of thenumber of pregs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108411 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/CriticalAntiDepBreaker.cpp
|
46df4eb46e784036cf895db271fe29e1cf2a975a |
|
16-Jun-2010 |
Evan Cheng <evan.cheng@apple.com> |
Make post-ra scheduling, anti-dep breaking, and register scavenger (conservatively) aware of predicated instructions. This enables ARM to move if-conversion before post-ra scheduler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106091 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/CriticalAntiDepBreaker.cpp
|
086723d244952aee690a8aa39485a0fa0d3a7700 |
|
02-Jun-2010 |
Jim Grosbach <grosbach@apple.com> |
Not all entries in the range will have an SUnit. Check for that when looking for debug information. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105324 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/CriticalAntiDepBreaker.cpp
|
533934e06e99a86e8c93f8ec9b9d3b2c527b747e |
|
02-Jun-2010 |
Jim Grosbach <grosbach@apple.com> |
Update debug information when breaking anti-dependencies. rdar://7759363 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105300 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/CriticalAntiDepBreaker.cpp
|
01384ef159caa7eebff0e1d703638f2e2c862092 |
|
14-May-2010 |
Jim Grosbach <grosbach@apple.com> |
Remove trailing whitespace git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103807 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/CriticalAntiDepBreaker.cpp
|
66db3a0f10e96ae190c8a46a1a8d5242928d068c |
|
20-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Make BreakAntiDependencies' SUnits argument const, and make the Begin and End arguments by-value rather than by-reference. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101830 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/CriticalAntiDepBreaker.cpp
|
b0812f114b83a32c4b90a4b553c7177c557558b5 |
|
05-Mar-2010 |
Dale Johannesen <dalej@apple.com> |
Fix some more places where dbg_value affected codegen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97765 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/CriticalAntiDepBreaker.cpp
|
80c2b0d9efc951b23f90a3cf12b9853177994961 |
|
06-Jan-2010 |
Jim Grosbach <grosbach@apple.com> |
Anti-dependency breaking needs to be careful regarding instructions with multiple register definitions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92864 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/CriticalAntiDepBreaker.cpp
|
2973b57093b017f2e3b5f5edd0be9d4ea180f0e9 |
|
06-Jan-2010 |
Jim Grosbach <grosbach@apple.com> |
80 column and whitespace cleanup git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92837 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/CriticalAntiDepBreaker.cpp
|
89d6a2426256b56780c7934ddad24e6ecc4f690a |
|
04-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92490 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/CriticalAntiDepBreaker.cpp
|
990d2857654cb80e46d207533834be3047494830 |
|
09-Dec-2009 |
David Goodwin <david_goodwin@apple.com> |
<rdar://problem/7453528>. Track only physical registers that are valid for the target. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90970 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/CriticalAntiDepBreaker.cpp
|
557bbe6b5d13faaec38f85a266db457c7cb09ff2 |
|
20-Nov-2009 |
David Goodwin <david_goodwin@apple.com> |
Remove some old experimental code that is no longer needed. Remove additional, speculative scheduling pass as its cost did not translate into significant performance improvement. Minor tweaks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89471 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/CriticalAntiDepBreaker.cpp
|
4de099d8ca651e00fa5fac22bace4f4dba2d0292 |
|
03-Nov-2009 |
David Goodwin <david_goodwin@apple.com> |
Do a scheduling pass ignoring anti-dependencies to identify candidate registers that should be renamed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85939 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/CriticalAntiDepBreaker.cpp
|
2e7be612d5d0eb42ee3ae08194dbb03b750cc6bf |
|
26-Oct-2009 |
David Goodwin <david_goodwin@apple.com> |
Break anti-dependence breaking out into its own class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85127 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/CriticalAntiDepBreaker.cpp
|