History log of /external/llvm/lib/CodeGen/RegisterCoalescer.h
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
45c5c57179e8b4938042431f8e12c9bfad67b3c8 06-Sep-2012 Jakob Stoklund Olesen <stoklund@2pi.dk> Allow overlaps between virtreg and physreg live ranges.

The RegisterCoalescer understands overlapping live ranges where one
register is defined as a copy of the other. With this change, register
allocators using LiveRegMatrix can do the same, at least for copies
between physical and virtual registers.

When a physreg is defined by a copy from a virtreg, allow those live
ranges to overlap:

%CL<def> = COPY %vreg11:sub_8bit; GR32_ABCD:%vreg11
%vreg13<def,tied1> = SAR32rCL %vreg13<tied0>, %CL<imp-use,kill>

We can assign %vreg11 to %ECX, overlapping the live range of %CL.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163336 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/RegisterCoalescer.h
a7542d5f870c5d98960d1676e23ac1d1d975d7e5 06-Jun-2012 Benjamin Kramer <benny.kra@googlemail.com> Remove unused private fields found by clang's new -Wunused-private-field.

There are some that I didn't remove this round because they looked like
obvious stubs. There are dead variables in gtest too, they should be
fixed upstream.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158090 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/RegisterCoalescer.h
94b62ac5f3b2732251f164ee6feab2dd1a4b967f 15-May-2012 Jakob Stoklund Olesen <stoklund@2pi.dk> Extend the CoalescerPair interface to handle symmetric sub-register copies.

Now both SrcReg and DstReg can be sub-registers of the final coalesced
register.

CoalescerPair::setRegisters still rejects such copies because
RegisterCoalescer doesn't yet handle them.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156848 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/RegisterCoalescer.h
6fa87df0d6948d9957eb16042b088e9d6e859854 13-Mar-2012 Lang Hames <lhames@gmail.com> Fixed typo in comment.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152610 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/RegisterCoalescer.h
7842a741eb0e1baa35af8c3bb5884655c1edaa9e 17-Feb-2012 Jim Grosbach <grosbach@apple.com> Tidy up.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150820 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/RegisterCoalescer.h
c19e6dd64fe4fa825c8d79e1d097e301c66eaf72 09-Aug-2011 Jakob Stoklund Olesen <stoklund@2pi.dk> Rename member variables to follow coding standards.

No functional change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137094 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/RegisterCoalescer.h
8e0cca6945ec09bad0decf34ecd832f7e84dc7f1 09-Aug-2011 Jakob Stoklund Olesen <stoklund@2pi.dk> Move the RegisterCoalescer private to its implementation file.

RegisterCoalescer.h still has the CoalescerPair class interface.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137088 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/RegisterCoalescer.h
e4709777e38b58b856cf8395e071a3326d50a402 27-Jul-2011 Jakob Stoklund Olesen <stoklund@2pi.dk> Eliminate copies of undefined values during coalescing.

These copies would coalesce easily, but the resulting value would be
defined by a deleted instruction. Now we also remove the undefined value
number from the destination register.

This fixes PR10503.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136174 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/RegisterCoalescer.h
ef17e01725740a91bd12723520f6edb2f12526d2 30-Jun-2011 Rafael Espindola <rafael.espindola@gmail.com> Remove dead code.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134148 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/RegisterCoalescer.h
00258d17cd7152237141648d26e1b096cf0e882b 29-Jun-2011 Rafael Espindola <rafael.espindola@gmail.com> make compose and isMoveInstr static functions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134093 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/RegisterCoalescer.h
ca08dcc4834341e44abf02b92a67ac7d1a708e1d 27-Jun-2011 Rafael Espindola <rafael.espindola@gmail.com> Remove unused methods.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133900 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/RegisterCoalescer.h
5b220213bfe9c37c2bb41a7ae0804e06a14f1007 27-Jun-2011 Rafael Espindola <rafael.espindola@gmail.com> There is only one register coalescer. Merge it into the base class and
remove the analysis group.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133899 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/RegisterCoalescer.h
b0efa94fb63d55c7aa5eb3c7c23d39a763036c24 26-Jun-2011 Rafael Espindola <rafael.espindola@gmail.com> merge SimpleRegisterCoalescing.h into RegisterCoalescer.h.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133896 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/RegisterCoalescer.h
fdf16ca44f130afe80c57481d0c08130aa08cc09 26-Jun-2011 Rafael Espindola <rafael.espindola@gmail.com> Move RegisterCoalescer.h to lib/CodeGen.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133895 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/RegisterCoalescer.h