f3ef5332fa3f4d5ec72c178a2b19dac363a19383 |
|
04-Mar-2016 |
Pirama Arumuga Nainar <pirama@google.com> |
Update aosp/master LLVM for rebase to r256229 http://b/26987366 Change-Id: I1f29c4676a8abe633ab5707dded58d846c973d50
/external/llvm/lib/CodeGen/InterferenceCache.h
|
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/InterferenceCache.h
|
37ed9c199ca639565f6ce88105f9e39e898d82d0 |
|
01-Dec-2014 |
Stephen Hines <srhines@google.com> |
Update aosp/master LLVM for rebase to r222494. Change-Id: Ic787f5e0124df789bd26f3f24680f45e678eef2d
/external/llvm/lib/CodeGen/InterferenceCache.h
|
dce4a407a24b04eebc6a376f8e62b41aaa7b071f |
|
29-May-2014 |
Stephen Hines <srhines@google.com> |
Update LLVM for 3.5 rebase (r209712). Change-Id: I149556c940fb7dc92d075273c87ff584f400941f
/external/llvm/lib/CodeGen/InterferenceCache.h
|
36b56886974eae4f9c5ebc96befd3e7bfe5de338 |
|
24-Apr-2014 |
Stephen Hines <srhines@google.com> |
Update to LLVM 3.5a. Change-Id: Ifadecab779f128e62e430c2b4f6ddd84953ed617
/external/llvm/lib/CodeGen/InterferenceCache.h
|
4f3b5e8c9232e43d1291aab8db5f5698d7ee0ea4 |
|
10-Oct-2013 |
Matthias Braun <matze@braunis.de> |
Represent RegUnit liveness with LiveRange instance Previously LiveInterval has been used, but having a spill weight and register number is unnecessary for a register unit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192397 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/InterferenceCache.h
|
55c06ae7afa3f862a6bb4a4441fe485c135f5b5e |
|
11-Sep-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
Revert "Give internal classes hidden visibility." It works with clang, but GCC has different rules so we can't make all of those hidden. This reverts commit r190534. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190536 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/InterferenceCache.h
|
15f387c93ef8d5c23f110143996c8b9b4a089864 |
|
11-Sep-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
Give internal classes hidden visibility. Worth 100k on a linux/x86_64 Release+Asserts clang. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190534 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/InterferenceCache.h
|
1ead68d769f27f6d68d4aaeffe4199fa2cacbc95 |
|
28-Nov-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Make the LiveRegMatrix analysis available to targets. No functional change, just moved header files. Targets can inject custom passes between register allocation and rewriting. This makes it possible to tweak the register allocation before rewriting, using the full global interference checking available from LiveRegMatrix. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168806 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/InterferenceCache.h
|
042888db2bb195c86bf34afbb6907d70855d2830 |
|
21-Jun-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Convert RAGreedy to LiveRegMatrix interference checking. Stop depending on the LiveIntervalUnions in RegAllocBase, they are about to be removed. The changes are mostly replacing register alias iterators with regunit iterators, and querying LiveRegMatrix instrad of RegAllocBase. InterferenceCache is converted to work with per-regunit LiveIntervalUnions, and it checks fixed regunit interference separately, using the fixed live intervals provided by LiveIntervalAnalysis. The local splitting helper calcGapWeights() is also considering fixed regunit interference which is kept on the side now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158867 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/InterferenceCache.h
|
6ef7da0197735a16aa534e9e2c80709d3d6e8c56 |
|
10-Feb-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add register mask support to InterferenceCache. This makes global live range splitting behave identically with and without register mask operands. This is not necessarily the best way of using register masks for live range splitting. It would be more efficient to first split global live ranges around calls (i.e., register masks), and reserve the fine grained per-physreg interference guidance for global live ranges that do not cross calls. For now the goal is to produce identical assembly when enabling register masks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150259 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/InterferenceCache.h
|
3bf7a1cc3c090e766b8912c6a14c3e2ec5dde7f8 |
|
10-Feb-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove unused variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150258 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/InterferenceCache.h
|
c7931fd725b390142f9112952b1426560000e6b4 |
|
23-Jul-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Allow null interference cursors to be queried. They always report 'no interference'. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135843 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/InterferenceCache.h
|
f1c709837bd11c5383fce3b8a026a7c8eaabba86 |
|
14-Jul-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Reapply r135121 with a fixed copy constructor. Original commit message: Count references to interference cache entries. Each InterferenceCache::Cursor instance references a cache entry. A non-zero reference count guarantees that the entry won't be reused for a new register. This makes it possible to have multiple live cursors examining interference for different physregs. The total number of live cursors into a cache must be kept below InterferenceCache::getMaxCursors(). Code generation should be unaffected by this change, and it doesn't seem to affect the cache replacement strategy either. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135130 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/InterferenceCache.h
|
4fcfcf498436533ea9bc59404d10751bc76cfd2c |
|
14-Jul-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Revert r135121 which broke a gcc-4.2 builder. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135122 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/InterferenceCache.h
|
6a9feaac935c9345f825b272cf3225248e282f3f |
|
14-Jul-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Count references to interference cache entries. Each InterferenceCache::Cursor instance references a cache entry. A non-zero reference count guarantees that the entry won't be reused for a new register. This makes it possible to have multiple live cursors examining interference for different physregs. The total number of live cursors into a cache must be kept below InterferenceCache::getMaxCursors(). Code generation should be unaffected by this change, and it doesn't seem to affect the cache replacement strategy either. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135121 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/InterferenceCache.h
|
c66a37df73f70ec3dbed06277763624f33ee3512 |
|
14-Jul-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Reapply r135074 and r135080 with a fix. The cache entry referenced by the best split candidate could become clobbered by an unsuccessful candidate. The correct fix here is to use reference counts on the cache entries. Coming up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135113 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/InterferenceCache.h
|
54c74e906a622c1a2d95d2fc11a7dae88a61963e |
|
14-Jul-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Revert r135074 and r135080. They broke clamscan. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135096 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/InterferenceCache.h
|
1337e2b75a6fc52ced7f6c2b2ad05ac62b8cbdca |
|
13-Jul-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Move the InterferenceCache cursor into the GlobalSplitCand struct. This is in preparation of supporting multiple global split candidates in a single live range split operation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135074 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/InterferenceCache.h
|
9d29cbad32814f31c91cd2464a3c74df412b0aac |
|
09-Apr-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Precompute interference for neighbor blocks as long as there is no interference. This doesn't require seeking in the live interval union, so it is very cheap. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129187 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/InterferenceCache.h
|
5907d863659eb972ebb2afe07bc863a4c616f0ef |
|
02-Apr-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add an InterferenceCache class for caching per-block interference ranges. When the greedy register allocator is splitting multiple global live ranges, it tends to look at the same interference data many times. The InterferenceCache class caches queries for unaltered LiveIntervalUnions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128764 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/InterferenceCache.h
|